
lr2
.docxФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«Санкт-Петербургский государственный университет телекоммуникаций
им. проф. М. А. Бонч-Бруевича»
___________________________________________________________________________
Кафедра программной инженерии и вычислительной техники.
Дисциплина «Микропроцессорные устройства»
Лабораторная работа № 2
«Исследование функционирования коммутационных КЦУ»
Выполнили: ст. гр.
Проверил: ст.пр. Неелова О.Л.
_____________________
Санкт-Петербург
2024
Программа 2.1
Мультиплексор
module biba_ms
(input wire d0, d1, d2, d3,
input wire [1:0] adr,
output wire line);
reg out;
assign line=out;
always@*
begin
if(adr==2'b00)
begin
out=d0;
end
else if (adr==2'b01)
begin
out=d1;
end
else if (adr==2'b10)
begin
out=d2;
end
else
begin
out=d3;
end
end
endmodule
Testbench:
`timescale 1ms/100ps
module biba_ms_tb;
reg [1:0] test_in;
reg d0, d1, d2, d3;
wire line;
biba_ms test (.adr(test_in), .d0(d0), .d1(d1), .d2(d2), .d3(d3), .line(line));
initial
begin
test_in=2'd0;
d0=1'b0;
#100;
d0=1'b1;
#100;
test_in=2'd1;
d1=1'b0;
#100;
d1=1'b1;
#100;
test_in=2'd2;
d2=1'b0;
#100;
d2=1'b1;
#100;
test_in=2'd3;
d3=1'b0;
#100;
d3=1'b1;
#100;
$stop;
end
endmodule
Рис.1 Симуляция работы мультиплексора
Программа 2.2
Демультиплексор
module biba_dms
(input wire line,
input wire [1:0] adr,
output wire data0,
output wire data1,
output wire data2,
output wire data3);
assign data0 = (adr== 2'd0)? line : 1'bx;
assign data1 = (adr== 2'd1)? line : 1'bx;
assign data2 = (adr== 2'd2)? line : 1'bx;
assign data3 = (adr== 2'd3)? line : 1'bx;
endmodule
Testbench
`timescale 1ms/100ps
module biba_dms_tb;
logic [1:0] adr;
logic data0, data1, data2, data3;
logic line;
biba_dms test (.adr(adr), .data0(data0), .data1(data1), .data2(data2), .data(data3), .line(line));
initial
begin
adr=2'd0;
line=1'b0;
#100;
line=1'b1;
#100;
adr=2'd1;
line=1'b0;
#100;
line=1'b1;
#100;
adr=2'd2;
line=1'b0;
#100;
line=1'b1;
#100;
adr=2'd3;
line=1'b0;
#100;
line=1'b1;
#100;
$stop;
end
endmodule
Рис.2 Симуляция работы демультиплексора