Лабораторная работа №2 Числа и Индикаторы

Цифровая логика - Лабораторные работы
Перевод – Грачевой Н.О. (адаптирован для работы с платой DE0)
Оригинал - Altera University Program
http://www.altera.com/education/univ/materials/digital_logic/labs/unv-labs.html
Лабораторная работа №2
Числа и Индикаторы
Эта работа посвящена разработке комбинаторных схем, которые позволяют
осуществить преобразование двоичных чисел в двоично-десятичные и сложение
двоично-десятичных (BCD) чисел.
Часть I
Мы хотим отобразить на семисегментных индикаторах HEX1-HEX0 значения,
устанавливаемые на переключателях SW7:0. Пусть значения, задаваемые
переключателями SW7:4, SW3:0 будут отображаться на индикаторах HEX1 и
HEX0 соответственно. Ваша схема должна отображать цифры от 0 до 9, и должна
игнорировать входные значения от 1010 до 1111.
1. Создайте новый проект, который будет использоваться для реализации
желаемой схемы на плате Altera DE0. Цель этого задания – вручную
вывести логические функции, необходимые для семисегментного
индикатора. Вы должны использовать только простой оператор assign в
вашем коде и описывать каждую логическую функцию логическим
выражением.
файл
Verilog,
который
обеспечивает
требуемую
2. Напишите
функциональность. Включите файл в ваш проект и установите соответствие
пинов FPGA, чтобы подсоединить переключатели и семисегментные
индикаторы, как описано в DE0 User Manual. Процедура назначения
соответствия пинов описана в руководстве Quartus II Introduction using
Verilog Design, которое находится на CD DE0-Series и на сайте Altera в
разделе University Program.
3. Откомпилируйте проект и загрузите откомпилированную схему в
микросхему FPGA.
4. Протестируйте функциональность вашего проекта, изменяя положения
переключателей и наблюдая изменения на индикаторах.
Часть II
Вы создадите схему, которая преобразует четырехбитное двоичное число V =
v3v2v1v0 в его двоично-десятичное представление. В таблице 1 представлены
требуемые выходные значения. Частично проект этой схемы представлен на рис.
1. Он включает в себя компаратор, который проверяет, что значение V больше 9, и
использует выход компаратора для управления семисегментными индикаторами.
Вам необходимо завершить проект – создать модуль Verilog, который включает в
себя компаратор, мультиплексоры и схему A (не включайте схему B и
семисегментные индикаторы на этом этапе). Ваш модуль Verilog должен включать
четырех-битный вход V, четырех-битный выход M и выход z. При выполнении
этого задания используйте простой оператор assign для описания требуемых
логических функций с использованием логических выражений. Ваш код Verilog не
должен включать каких-либо операторов if-else, case и т.п.
Таблица 1. Преобразование двоичного кода в десятичный
Двоичное число
Десятичные цифры
0000
0
0
0001
0
1
0010
0
2
0011
0
3
0100
0
4
0101
0
5
0110
0
6
0111
0
7
1000
0
8
1001
0
9
1010
1
0
1011
1
1
1100
1
2
1101
1
3
1110
1
4
1111
1
5
Рис. 1. Часть проекта преобразования двоичного кода в двоично-десятичный
Выполните следующие шаги:
1. Создайте проект Quartus II для своего модуля Verilog.
2. Откомпилируйте схему и выполните функциональное моделирование для
верификации вашего компаратора, мультиплексоров и схемы A.
3. Дополните ваш код Verilog, включив схему B так же как и семисегментный
дешифратор. Измените входы и выходы в вашем коде таким образом,
чтобы переключатели SW3:0 использовались для представления двоичного
числа V, а индикаторы HEX1 и HEX0 для вывода десятичных цифр d1 и d0.
Убедитесь, что включили в проект требуемые назначения пинов для платы
DE0.
4. Перекомпилируйте проект, и затем прошейте схему в микросхему FPGA.
5. Протестируйте вашу схему, задавая все возможные значения V и наблюдая
выход на индикаторах.
Часть VII
Разработайте комбинаторную схему, которая преобразует 6-битное двоичное
число в двух-знаковое двоично-десятичное число, представленное в BCD форме.
Используйте переключатели SW5:0, чтобы вводить двоичное число, и
семисегментные индикаторы HEX1 и HEX0, чтобы отображать десятичные
цифры. Реализуйте вашу схему на плате DE0 и продемонстрируйте ее работу.