文档介绍:EDA实验报告
学院:
班级:
姓名:
学号:
实验三译码器、选择器实验
实验内容:
1:按照教材第5 章内容,编写BCD-七段显示译码器、数据选择器、数据分配器、数字比较器的Verilog HDL 程序,并实现其仿真;
BCD-七段显示译码器
程序代码如下:
module bcd_decorder(y,a);
output[6:0]y;
input[3:0]a;
reg[6:0]y;
always@(a)
begin
case(a[3:0])
4'b0000:y[6:0]=7'b1111110;
4'b0001:y[6:0]=7'b0110000;
4'b0010:y[6:0]=7'b1101101;
4'b0011:y[6:0]=7'b1111001;
4'b0100:y[6:0]=7'b0110011;
4'b0101:y[6:0]=7'b1011011;
4'b0110:y[6:0]=7'b1011111;
4'b0111:y[6:0]=7'b1110000;
4'b1000:y[6:0]=7'b1111111;
4'b1001:y[6:0]=7'b1111011;
4'b1010:y[6:0]=7'b1110111;
4'b1011:y[6:0]=7'b0011111;
4'b1100:y[6:0]=7'b1001110;
4'b1101:y[6:0]=7'b0111101;
4'b1110:y[6:0]=7'b1001111;
4'b1111:y[6:0]=7'b1000111;
endcase
end
endmodule
功能仿真如下:
时序仿真如下:
包装如下:
数据选择器
程序代码如下:
module mux4(y,d0,d1,d2,d3,g,a);
output y;
input d0,d1,d2,d3;
input g;
input[1:0]a;
reg y;
always@(d0 or d1 or d2 or d3 or g or a)
begin
if(g==0) y=0;
else
case(a[1:0])
2'b00:y=d0;
2'b01:y=d1;
2'b10:y=d2;
2'b11:y=d3;
default:y=0;
endcase
end
endmodule
功能仿真如下:
时序仿真如下:
包装如下:
数据分配器
程序代码如下:
module demux4(y0,y1,y2,y3,din,a);
output y0,y1,y2,y3;
input din;
input[1:0]a;
reg y0,y1,y2,y3;
always@(din,a)
begin
y0=0;y1=0;y2=0;y3=0;
case(a[1:0])
2'b00:y0=din;
2'b01:y1=din;
2'b10:y2=din;
2'b11:y3=din;
default:;
endcase
end
endmodule
功能仿真如下:
时序仿真如下:
包装如下:
数字比较器
程序代