«…Труд избавляет человека от трех великих зол: скуки, порока, нужды…»

ПЦУСБ/Практическая работа 2 — различия между версиями

Материал из Wiki
Перейти к: навигация, поиск
м (Задание 12. Блок осуществления сдвигов)
м (Общие требования к выполнению)
Строка 33: Строка 33:
  
 
* Сформулировать задачу: определить имена и разрядность входов и выходов, записать таблицу истинности (можно в сокращенной записи)
 
* Сформулировать задачу: определить имена и разрядность входов и выходов, записать таблицу истинности (можно в сокращенной записи)
 +
** В интерфейсе блока (entity) допускается использовать типы std_logic и std_logic_vector
 +
** внутри блока допускается использование типов std_logic, std_logic_vector, natural, unsigned, signed.
 
* Нарисовать принципиальную схему на уровне базовых библиотечных элементов (комбинационный блок, реализующие заданную таблицу истинности; де-/шифраторы; де-/мультиплексоры; двоичный одноразрядный сумматор и др.)
 
* Нарисовать принципиальную схему на уровне базовых библиотечных элементов (комбинационный блок, реализующие заданную таблицу истинности; де-/шифраторы; де-/мультиплексоры; двоичный одноразрядный сумматор и др.)
 
* Разработать VHDL модель устройства и составить тестбенч для проверки модели с помощью моделирования
 
* Разработать VHDL модель устройства и составить тестбенч для проверки модели с помощью моделирования
 
* Подготовить отчет, включающий описание входов/выходов, таблицу истинности, принципиальную схему, VHDL модель, тесбенч и временные диаграммы.
 
* Подготовить отчет, включающий описание входов/выходов, таблицу истинности, принципиальную схему, VHDL модель, тесбенч и временные диаграммы.
  
Как выполнять задания можно найти в {{книга
+
Как выполнять задания можно найти в книге {{книга
 
| автор = Д. Уэйкерли
 
| автор = Д. Уэйкерли
 
| название = Пректирование цифровых устройств. В 2-х томах
 
| название = Пректирование цифровых устройств. В 2-х томах
Строка 56: Строка 58:
 
** число (сумма) единиц в векторе
 
** число (сумма) единиц в векторе
 
** четность числа (суммы) единиц  
 
** четность числа (суммы) единиц  
 +
Разрядность и кодировку выходов нужно определить самостоятельно.
 
==== Задание 2. Преобразование двоичного 8-ми разрядного числа (от 0 до 128) в дополнительный код (8 бит) ====
 
==== Задание 2. Преобразование двоичного 8-ми разрядного числа (от 0 до 128) в дополнительный код (8 бит) ====
 +
Необходимо преобразовать положительные числа (от 0 до 128) в отрицательные числа, заданные в дополнительном коде.
 
==== Задание 3. Преобразователь из двоичного кода в код Грея 8-ми разрядного числа ====
 
==== Задание 3. Преобразователь из двоичного кода в код Грея 8-ми разрядного числа ====
 
==== Задание 4. Преобразователь из кода Грея в двоичный код 8-ми разрядного числа ====
 
==== Задание 4. Преобразователь из кода Грея в двоичный код 8-ми разрядного числа ====
==== Задание 5. Преобразователь из двоичного кода в двоично-десятичный код 8-ми разрядного числа ====
+
==== Задание 5. Преобразователь из двоичного кода в двоично-десятичный код 8-ми разрядное число ====
==== Задание 6. Преобразователь из двоично-десятичный кода в двоичный код 8-ми разрядного числа ====
+
* для описания поведения удобно воспользоваться типом unsigned из библиотеки numeric_std. Ознакомиться с функциями пакета можно [http://www.bsuir.by/vhdl/posts/paket-numeric_std-yazyka-vhdl/ тут].
 +
==== Задание 6. Преобразователь число из двоично-десятичного кода в двоичный 8-ми разрядный код ====
 +
* Входные числа от 0 до 255 (представленные в двоично-десятичном коде)
 
==== Задание 7. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (2х позиционного) с отображением в шестнадцатеричном виде ====
 
==== Задание 7. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (2х позиционного) с отображением в шестнадцатеричном виде ====
 
==== Задание 8. Приоритетный полный шифратор 16 в 4 ====
 
==== Задание 8. Приоритетный полный шифратор 16 в 4 ====
Строка 67: Строка 73:
 
* выходы:
 
* выходы:
 
** двоичный код 4 бита
 
** двоичный код 4 бита
 +
** индикатор отсутствия кода на входе
  
==== Задание 8A. Приоритетный полный шифратор 16 в 4 ====
+
==== Задание 8A. Приоритетный полный шифратор 16 в 4 (в код Грея) ====
 
* приоритет от старших к младшим разрядам (кодам)
 
* приоритет от старших к младшим разрядам (кодам)
 
* входы: 16 бит
 
* входы: 16 бит
 
* выходы:
 
* выходы:
 
** код Грея: 4 бита
 
** код Грея: 4 бита
 +
** индикатор отсутствия кода на входе
  
 
==== Задание 9. Двойной приоритетный шифратор 16 в 4 ====
 
==== Задание 9. Двойной приоритетный шифратор 16 в 4 ====
* входы : 16 бит
+
* входы: 16 бит
 +
* выходы:
 +
** код разряда 1го приоритета
 +
** код разряда 2го приоритета
 +
** индикатор отсутствия кода на входе
  
 
==== Задание 10. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (3х позиционного) с отображением в десятичном виде ====
 
==== Задание 10. Шифратор двоичного кода (8-ми разрядного числа) в код семисегментного индикатора (3х позиционного) с отображением в десятичном виде ====
 +
* для описания поведения удобно воспользоваться типом unsigned из библиотеки numeric_std. Ознакомиться с функциями пакета можно [http://www.bsuir.by/vhdl/posts/paket-numeric_std-yazyka-vhdl/ тут].
  
 
==== Задание 11. Преобразование (шифратор) двоичного числа в формат с плавающей точкой ====
 
==== Задание 11. Преобразование (шифратор) двоичного числа в формат с плавающей точкой ====

Версия 23:18, 3 октября 2013

Лекции ПЦУСБ

Лекции

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

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

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

До 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 Сдать работу (не позже следующего ПЗ)

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

  • Сформулировать задачу: определить имена и разрядность входов и выходов, записать таблицу истинности (можно в сокращенной записи)
    • В интерфейсе блока (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.