«…лишь недалекие люди боятся конкуренции, а люди подлинного творчества ценят общение с каждым талантом…» А. Бек, Талант.

ПЦУСБ/Практическая работа 2

Материал из Wiki
Перейти к: навигация, поиск
Лекции ПЦУСБ

Лекции

Практические
Тесты

Лабораторные

Доп. материалы

До 25.09 данный тест 1 в режиме обучения, т.е. показывает правильные ответы при ошибках.

С 25.09 тест 1 переходит в режим проверки знаний, т.е. правильные ответы при ошибках доступны не будут.

С 25.09 по 08.10 все студенты групп 013201-013202 должны пройти тест. Чтобы Ваш тест был зачтен, необходимо в поле «Для прохождения теста, введите ФИО и № группы:» вписать имя и номер группы. Например, «Иванов И. (013201)»


Содержание

Задания для практической работы №2

Сроки выполнения работы:
гр. 013201 гр. 013202 Примечание
до 9.10.2013 до 4.10.2013 Выбрать вариант задания. Можно по почте. Но следует учитывать, что не более 3 человек на одно задание.
Bombilla amarilla - yellow Edison lamp.png Можно предложить свой вариант задания реализации комбинационной схемы.
до 23.10.2013 до 18.10.2013 Сдать работу (не позже следующего ПЗ)


Информация

Для гр. 013201 остались варианты 1, 7, 11, 15 и один 8

Информация

Для гр. 013202 остались варианты 8-11, 15

Общие требования к выполнению

  • Сформулировать задачу: определить имена и разрядность входов и выходов, записать таблицу истинности (можно в сокращенной записи) или в виде системы функций
    • В интерфейсе блока (entity) допускается использовать типы std_logic и std_logic_vector
    • внутри блока допускается использование типов std_logic, std_logic_vector, natural, unsigned, signed.
  • Нарисовать принципиальную схему на уровне базовых цифровых элементов (комбинационный блок, реализующие заданную таблицу истинности; де-/шифраторы; де-/мультиплексоры; двоичный одноразрядный сумматор и др.)
  • Разработать VHDL модель устройства и составить тестбенч для проверки модели с помощью моделирования
  • Подготовить отчет, включающий описание входов/выходов, таблицу истинности, принципиальную схему, VHDL модель, тесбенч и временные диаграммы.

Как выполнять задания можно найти в книге Д. Уэйкерли Пректирование цифровых устройств. В 2-х томах — М., 2002 Т. 1-2. — 544 с.

Задания

Задание 1. Счетчик числа единиц и определение четности

  • разрядность входного вектора 8 бит
  • выходы
    • число (сумма) единиц в векторе
    • четность числа (суммы) единиц

Разрядность и кодировку выходов нужно определить самостоятельно.

Задание 2. Преобразование двоичного 8-ми разрядного числа (от 0 до 128) в дополнительный код (8 бит)

Необходимо преобразовать положительные числа (от 0 до 128) в отрицательные числа, заданные в дополнительном коде.

Задание 3. Преобразователь из двоичного кода в код Грея 8-ми разрядного числа

Задание 4. Преобразователь из кода Грея в двоичный код 8-ми разрядного числа

Задание 5. Преобразователь 8-ми разрядного числа из двоичного кода в двоично-десятичный код

  • для описания поведения удобно воспользоваться типом unsigned из библиотеки numeric_std. Ознакомиться с функциями пакета можно тут.

Задание 6. Преобразователь числа из двоично-десятичного кода в двоичный 8-ми разрядный код

  • Входные числа от 0 до 255 (представленные в двоично-десятичном коде)

Задание 7. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (2х позиционного) с отображением в шестнадцатеричном виде

Задание 8. Приоритетный полный шифратор 16 в 4

  • приоритет от старших к младшим разрядам (кодам)
  • входы: 16 бит
  • выходы:
    • двоичный код 4 бита
    • индикатор отсутствия кода на входе

Задание 8A. Приоритетный полный шифратор 16 в 4 (в код Грея)

  • приоритет от старших к младшим разрядам (кодам)
  • входы: 16 бит
  • выходы:
    • код Грея: 4 бита
    • индикатор отсутствия кода на входе

Задание 9. Двойной приоритетный шифратор 16 в 4

  • входы: 16 бит
  • выходы:
    • код разряда 1го приоритета
    • код разряда 2го приоритета
    • индикатор отсутствия кода на входе

Задание 10. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (3х позиционного) с отображением в десятичном виде

  • для описания поведения удобно воспользоваться типом unsigned из библиотеки numeric_std. Ознакомиться с функциями пакета можно тут.

Задание 11. Преобразование (шифратор) двоичного числа в формат с плавающей точкой

  • входное число 16 бит
  • выходное число в формате M*2E
    • мантиса (M) 8 бит
    • степень (E) 3 бита
    • остаток 8 бит

Задание 12. Блок выполнения сдвигов

  • Входы:
    • Входной вектор: 16 бит
    • Входной перенос: 1 бит - используется при логическом сдвиге (задвигается в вектор)
    • входы управление видом операции (арифметический, логический, циклический сдвиг и 2 направления сдвига) - всего 6 операций
    • входы, задающие величину сдвига (задание от 0 до 15 бит)

Задание 13. Компаратор

  • сравнить два 8-ми разрядных двоичных числа с учетом знака (числа кодируются в дополнительном коде), определив три выхода:
    • A > B
    • A < B
    • A = B
    • A = B с учетом дополнительного входа, задающего 8-разрядную маску. Установленные биты в маске задают биты, которые будут игнорироваться при сравнении A = B.

Задание 14. Сумматор в двоично-десятичном коде

  • Входы: два числа от 0 до 255.

Задание 15. АЛУ

  • Входы:
  • два числа от 0 до 255.
  • задание операции: сумма, разность, логическое И, ИЛИ, исключающее ИЛИ, сдвиг (логический, арифметический, циклически + 2 направления для каждого; число разрядов для сдвига задаётся вторым вторым аргументом), установка бита (разряд задается вторым числом), сброс бита (разряд задается вторым числом).
  • Выходы:
    • результат операции
    • перенос
    • флаг Zero - выставляется когда результат операции равен 0.