Uploaded by jon4ik22rg

Лабораторная работа Микропроцессорные устройства

advertisement
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,
СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное
образовательное учреждение бюджетное
высшего профессионального образования
«САНКТ-ПЕТЕРБУРГСКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ
Им. Проф. М.А. БОНЧ-БРУЕВИЧА»
Кафедра конструирования и производства радиоэлектронных средств связи
Отчёт по Лабораторной работе №2
“ШИФРАТОР И ДЕШИФРАТОР. КОДОПРЕОБРАЗОВАТЕЛИ”
Дисциплина “Микропроцессорные устройства”
Вариант №16
Группа РК-92
Сеньков А.
Летягин Н.
Преподаватель
Березин А. Ю.
Санкт-Петербург
2021
Цель работы: Познакомиться с принципами работы дешифратора и
шифратора. Спроектировать кодопреобразователь на примере драйвера для
семисегментого индикатора отладочной платы DE1-SoC.
Задание на лабораторную работу:
1) Создать модуль дешифратора на языке Verilog;
2) Выполнить временную симуляцию дешифратора согласно варианту;
3) Создать модуль шифратора на языке Verilog;
4) Выполнить временную симуляцию шифратора согласно варианту;
5) Создать модуль драйвера для семисегментого индикатора на языке
Verilog;
6) Получить RTL-схему драйвера;
7) Выполнить временную симуляцию драйвера согласно варианту.
1.Создание модуля дешифратора на языке Verilog
module dc_3_8 (
input [2:0] addr,
output reg [7:0] mng
);
always @(*) case(addr)
3'd0: mng = 8'b00000001;
3'd1: mng = 8'b00000010;
3'd2: mng = 8'b00000100;
3'd3: mng = 8'b00001000;
3'd4: mng = 8'b00010000;
3'd5: mng = 8'b00100000;
3'd6: mng = 8'b01000000;
3'd7: mng = 8'b10000000;
default: mng = 8'bz;
endcase
endmodule
Временная симуляцию дешифратора
RTL-схема шифратора
2.Создание модуля дешифратора на языке Verilog
module cd_8_3 (
input [7:0] mng,
output reg [2:0] addr );
always @(*) case(mng)
8'b00000001: addr = 3'b000;
8'b00000010: addr = 3'b001;
8'b00000100: addr = 3'b010;
8'b00001000: addr = 3'b011;
8'b00010000: addr = 3'b100;
8'b00100000: addr = 3'b101;
8'b01000000: addr = 3'b110;
8'b10000000: addr = 3'b111;
default: addr = 3'bz;
endcase
endmodule
Временная симуляцию шифратора
RTL-схема шифратора
3.Создать модуль драйвера для семисегментого индикатора на языке Verilog
module driver (
input wire [3:0] addr,
output reg [0:6] mng );
always @(*) case(addr)
4'b0000: mng = 7'b1000000;
4'b0001: mng = 7'b1111001;
4'b0010: mng = 7'b0100100;
4'b0011: mng = 7'b0110000;
4'b0100: mng = 7'b0011001;
4'b0101: mng = 7'b0010010;
4'b0110: mng = 7'b0000010;
4'b0111: mng = 7'b1011000;
4'b1000: mng = 7'b0000000;
4'b1001: mng = 7'b0010000;
4'b1010: mng = 7'b0001000;
4'b1011: mng = 7'b0000011;
4'b1100: mng = 7'b1000110;
4'b1101: mng = 7'b0100001;
4'b1110: mng = 7'b0000110;
4'b1111: mng = 7'b0001110;
endcase
endmodule
Временная симуляция драйвера
RTL-схема драйвера
Вывод:
В данной лабораторной работе мы познакомились с принципами работы дешифратора и
шифратора. Спроектировали кодопреобразователь на примере драйвера для
семисегментого индикатора на языке Verilog. Проанализировав временную симуляцию
(на дешифратор подали заданный вариантом полноразрядный двоичный код на 3
адресных входа и увидели, что в каждый момент времени он преобразовывается в
унитарный двоичный код на 8 выходах. На шифратор подали сигналы на линии,
заданные вариантом и увидели, что в моменты когда сигнал на 2 линиях или ни на
одной из линий устройство входит в состояние неопределённости, в остальных же
случаях верно преобразовывает сигнал. На драйвер подавали заданные числа 16-ой
системы счисления и видели на выходе двоичный код, соответствующий коду,
необходимому для включения нужных сегментов на индикаторе, убедились в
корректности работы.
Download