ПЦУСБ/Практическая работа 2 — различия между версиями
Материал из Wiki
< ПЦУСБ
ANA (обсуждение | вклад) (Новая страница: «{{ПЦУСБ TOC}} * Пройти тест 1») |
ANA (обсуждение | вклад) м (→Задание 6. Преобразователь число из двоично-десятичного кода в двоичный 8-ми разрядный код) |
||
(не показаны 13 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
{{ПЦУСБ TOC}} | {{ПЦУСБ TOC}} | ||
− | * [ | + | * [{{SERVER}}/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:MediawikiQuizzer&id=%D0%9F%D0%A6%D0%A3%D0%A1%D0%91+test1 Пройти тест 1] |
+ | |||
+ | <blockquote>До 25.09 данный [{{SERVER}}/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:MediawikiQuizzer&id=%D0%9F%D0%A6%D0%A3%D0%A1%D0%91+test1 тест 1] в режиме обучения, т.е. показывает правильные ответы при ошибках. | ||
+ | |||
+ | С 25.09 тест 1 переходит в режим проверки знаний, т.е. правильные ответы при ошибках доступны не будут. | ||
+ | |||
+ | С 25.09 по 08.10 все студенты групп 013201-013202 должны пройти тест. Чтобы Ваш тест был зачтен, необходимо в поле «Для прохождения теста, введите ФИО и № группы:» вписать имя и номер группы. Например, «Иванов И. (013201)» | ||
+ | </blockquote> | ||
+ | |||
+ | |||
+ | == Задания для практической работы №2 == | ||
+ | |||
+ | <blockquote>{{Кр|'''Сроки выполнения работы:'''}} | ||
+ | {| class=standard align=center width=90% style="border:1px solid #000; border-collapse: collapse" | ||
+ | ! гр. 013201 | ||
+ | ! гр. 013202 | ||
+ | ! Примечание | ||
+ | |- | ||
+ | | до 9.10.2013 | ||
+ | | до 4.10.2013 | ||
+ | | Выбрать вариант задания. Можно по почте. Но следует учитывать, что не более 3 человек на одно задание. <br /> | ||
+ | {{ЖЛампа|16px}} Можно предложить свой вариант задания реализации комбинационной схемы. | ||
+ | |- | ||
+ | | до 23.10.2013 | ||
+ | | до 18.10.2013 | ||
+ | | Сдать работу (не позже следующего ПЗ) | ||
+ | |} | ||
+ | |||
+ | |||
+ | {{Info|Для гр. 013201 остались варианты 1, 7, 11, 15 и один 8}} | ||
+ | |||
+ | {{Info|Для гр. 013202 остались варианты 8-11, 15}} | ||
+ | </blockquote> | ||
+ | |||
+ | ==Общие требования к выполнению == | ||
+ | |||
+ | * Сформулировать задачу: определить имена и разрядность входов и выходов, записать таблицу истинности (можно в сокращенной записи) или в виде системы функций | ||
+ | ** В интерфейсе блока (entity) допускается использовать типы std_logic и std_logic_vector | ||
+ | ** внутри блока допускается использование типов std_logic, std_logic_vector, natural, unsigned, signed. | ||
+ | * Нарисовать принципиальную схему на уровне базовых цифровых элементов (комбинационный блок, реализующие заданную таблицу истинности; де-/шифраторы; де-/мультиплексоры; двоичный одноразрядный сумматор и др.) | ||
+ | * Разработать VHDL модель устройства и составить тестбенч для проверки модели с помощью моделирования | ||
+ | * Подготовить отчет, включающий описание входов/выходов, таблицу истинности, принципиальную схему, VHDL модель, тесбенч и временные диаграммы. | ||
+ | |||
+ | Как выполнять задания можно найти в книге {{книга | ||
+ | | автор = Д. Уэйкерли | ||
+ | | название = Пректирование цифровых устройств. В 2-х томах | ||
+ | | ссылка = | ||
+ | | город = М. | ||
+ | | издательство = | ||
+ | | страниц = 544 | ||
+ | | том = 1-2 | ||
+ | | isbn = | ||
+ | | год = 2002 | ||
+ | }} | ||
+ | |||
+ | === Задания === | ||
+ | |||
+ | ==== Задание 1. Счетчик числа единиц и определение четности ==== | ||
+ | * разрядность входного вектора 8 бит | ||
+ | * выходы | ||
+ | ** число (сумма) единиц в векторе | ||
+ | ** четность числа (суммы) единиц | ||
+ | Разрядность и кодировку выходов нужно определить самостоятельно. | ||
+ | ==== Задание 2. Преобразование двоичного 8-ми разрядного числа (от 0 до 128) в дополнительный код (8 бит) ==== | ||
+ | Необходимо преобразовать положительные числа (от 0 до 128) в отрицательные числа, заданные в дополнительном коде. | ||
+ | ==== Задание 3. Преобразователь из двоичного кода в код Грея 8-ми разрядного числа ==== | ||
+ | ==== Задание 4. Преобразователь из кода Грея в двоичный код 8-ми разрядного числа ==== | ||
+ | ==== Задание 5. Преобразователь 8-ми разрядного числа из двоичного кода в двоично-десятичный код ==== | ||
+ | * для описания поведения удобно воспользоваться типом unsigned из библиотеки numeric_std. Ознакомиться с функциями пакета можно [http://www.bsuir.by/vhdl/posts/paket-numeric_std-yazyka-vhdl/ тут]. | ||
+ | |||
+ | ==== Задание 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. Ознакомиться с функциями пакета можно [http://www.bsuir.by/vhdl/posts/paket-numeric_std-yazyka-vhdl/ тут]. | ||
+ | |||
+ | ==== Задание 11. Преобразование (шифратор) двоичного числа в формат с плавающей точкой ==== | ||
+ | * входное число 16 бит | ||
+ | * выходное число в формате M*2<sup>E</sup> | ||
+ | ** мантиса (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. |
Текущая версия на 23:14, 3 ноября 2013
Лекции ПЦУСБ
Лекции
Практические
- Практическая работа 1
- Практическая работа 2
- Практическая работа 3
- Практическая работа 4
Тесты
Лабораторные
Доп. материалы
До 25.09 данный тест 1 в режиме обучения, т.е. показывает правильные ответы при ошибках.С 25.09 тест 1 переходит в режим проверки знаний, т.е. правильные ответы при ошибках доступны не будут.
С 25.09 по 08.10 все студенты групп 013201-013202 должны пройти тест. Чтобы Ваш тест был зачтен, необходимо в поле «Для прохождения теста, введите ФИО и № группы:» вписать имя и номер группы. Например, «Иванов И. (013201)»
Задания для практической работы №2
Сроки выполнения работы:
![]()
Для гр. 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.