Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба_12 / Лабораторная работа12.docx
Скачиваний:
0
Добавлен:
16.06.2026
Размер:
1.92 Mб
Скачать

Модуль dc_3_8 — дешифратор 3-в-8

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'b00000000;

endcase

endmodule

Модуль cd_8_3 — шифратор 8-в-3

module cd_8_3 (

input [2:0] mng,

output reg [7: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'bzzz;

endcase

endmodule

Модуль add1 — одноразрядный полный сумматор

module add1 (

input a, b, c,

output s, co

);

assign s = a^b^c;

assign co = (a & b) | (a & c) | (b & c);

endmodule

Модуль add4 — четырехразрядный сумматор

module add4 (

input [3:0] a, b,

input c,

output [3:0] s,

output co

);

wire [2:0] cw;

add1 inst0 (

.a(a[0]),

.b(b[0]),

.c(c),

.s(s[0]),

.co(cw[0])

); add1 inst1 (

.a(a[1]),

.b(b[1]),

.c(cw[0]),

.s(s[1]),

.co(cw[1])

); add1 inst2 (

.a(a[2]),

.b(b[2]),

.c(cw[1]),

.s(s[2]),

.co(cw[2])

); add1 inst3 (

.a(a[3]),

.b(b[3]),

.c(cw[2]),

.s(s[3]),

.co(co)

);endmodule

Модуль wrapper_add4 — четырехразрядный сумматор c драйвером вывода

module wrapper_add4(

input [3:0] A, B,

output [6:0] HEXO,

output CO

);

wire [3:0] s;

add4 add4_inst (

.a(A),

.b(B),

.s(s),

.co(CO)

);

driver7seg driver7seg_inst (

.bin(s),

.hex(HEXO)

);

Endmodule

* Вывод указанных чисел

<14>

<8>

<21>

Исполнители

Заключение

В ходе выполнения работы мы изучили принцип работы семисегментного индикатора, мультиплексора, демультиплексора, шифратора и дешифратора, сумматора, а также реализовали их на языке Verilog.