- •Модуль driver7seg — драйвер для семисегментного индикатора
- •Модуль driverascii — драйвер для вывода сигналов в формате ascii
- •Модуль mux_2_1 — мультиплексор 2-в-1
- •Модуль mux_8_1 — мультиплексор 8-в-1
- •Модуль bus_mux_8_1 — шинный мультиплексор 8-в-1
- •Модуль dmx_1_2 — демультиплексор 1-в-2
- •Модуль dmx_1_8 — демультиплексор 1-в-8
- •Модуль bus_dmx_1_8 — шинный демультиплексор 1-в-8
- •Модуль dc_3_8 — дешифратор 3-в-8
- •Модуль cd_8_3 — шифратор 8-в-3
- •Модуль add1 — одноразрядный полный сумматор
- •Модуль add4 — четырехразрядный сумматор
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»
(СПбГУТ)
ФАКУЛЬТЕТ КИБЕРБЕЗОПАСНОСТИ (КБ)
КАФЕДРА ЗАЩИЩЕННЫХ СИСТЕМ СВЯЗИ (ЗСС)
______________________________________________________________________________
Лабораторная работа №2
«E12FA КОМБИНАЦИОННЫЕ ЦИФРОВЫЕ УСТРОЙСТВА
(ASCII, 7SEG, MUX, DMX, CD, DC, ADD)»
Направление/специальность подготовки:
Выполнили: студенты группы ИБС-32
Цель работы
Рассмотреть работу устройств преобразования (драйверов) для отображения информации.
Задачи работы
Разработать описание драйвера для семисегментного индикатора на Verilog HDL в Quartus II;
Рассмотреть работу драйвера для семисегментного индикатора в симуляторе Quartus II.
Разработать описание ASCII-драйвера на Verilog HDL в Quartus II;
Рассмотреть работу ASCII-драйвера в симуляторе Quartus II.
Разработать описание мультиплексоров на Verilog HDL в Quartus II;
Рассмотреть работу мультиплексоров в симуляторе Quartus II.
Разработать описание демультиплексоров на Verilog HDL в Quartus II;
Рассмотреть работу демультиплексоров в симуляторе Quartus II.
Разработать описание дешифратора на Verilog HDL в Quartus II;
Рассмотреть работу дешифратора в симуляторе Quartus II.
Разработать описание шифратора на Verilog HDL в Quartus II;
Рассмотреть работу шифратора в симуляторе Quartus II.
Разработать описание одноразрядного полного сумматора на Verilog HDL в Quartus II;
Рассмотреть работу одноразрядного полного сумматора в симуляторе Quartus II.
Разработать описание четырехразрядного сумматора, основанного на одноразрядных полных сумматорах, на Verilog HDL в Quartus II,
Ознакомиться с принципами объединения модулей в многомодульное устройство;
Рассмотреть работу четырехразрядного сумматора в симуляторе Quartus II.
*Рассмотреть работу четырехразрядного сумматора на отладочной плате DE1-SoC.
Модуль driver7seg — драйвер для семисегментного индикатора
# |
bin[3:0] |
7seg[6:0] |
|
|||||||||||
3 |
2 |
1 |
0 |
6/g |
5/f |
4/e |
3/d |
2/c |
1/b |
0/a |
|
|||
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
||
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
||
2 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
2 |
||
3 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
3 |
||
4 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
4 |
||
5 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
5 |
||
6 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
6 |
||
7 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
7 |
||
8 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
8 |
||
9 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
9 |
||
10 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
A |
||
11 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
B |
||
12 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
C |
||
13 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
D |
||
14 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
E |
||
15 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
F |
||
module driver7seg(
input [3:0] bin,
output [6:0] hex
);
reg [6:0] rhex;
always @*
case (bin)
4'b0000: rhex = 7'b1000000;
4'b0001: rhex = 7'b1111001;
4'b0010: rhex = 7'b0100100;
4'b0011: rhex = 7'b0110000;
4'b0100: rhex = 7'b0011001;
4'b0101: rhex = 7'b0010010;
4'b0110: rhex = 7'b0000010;
4'b0111: rhex = 7'b1111000;
4'b1000: rhex = 7'b0000000;
4'b1001: rhex = 7'b0010000;
4'b1010: rhex = 7'b0001000;
4'b1011: rhex = 7'b0000011;
4'b1100: rhex = 7'b1000110;
4'b1101: rhex = 7'b0100001;
4'b1110: rhex = 7'b0000110;
4'b1111: rhex = 7'b0001110;
endcase
assign hex = rhex;
endmodule
