VerilogHDL程序设计与仿真作业3:
——实现74HC4511的功能
文章目录
- VerilogHDL程序设计与仿真作业3:
- ——实现74HC4511的功能
- 一、实验目的
- 二、
- 1、设计思路
- 2、实现代码
- 3、测试代码
- 4、仿真
一、实验目的
- 实现74HC4511的功能
二、
1、设计思路
- 功能表
- 功能表(续)
2、实现代码
//文件名称:_74HC4511.v
//fuchaoxinHUST11152020
module _74HC4511(D,LE,BL_,LT_,L);
input LE,BL_,LT_;
input [3:0] D;
output reg [6:0] L;
/*说明:
输入端:LE BL_ LT_决定了74HC4511的工作状态,[3:0]D只有前十个数能够得到相应的输出,其余全部是无效输出。
输出端:[6:0]L从高位到低位分别代表了a-g,决定灯的亮与灭,高电平有效。
*/always @(*) beginif (LE==0&&BL_==1&<_==1) begincase(D[3:0])4'b0000: L[6:0]=7'b1111110;//0-9 a为高位 g为低位4'b0001: L[6:0]=7'b0110000;4'b0010: L[6:0]=7'b1101101;4'b0011: L[6:0]=7'b1111001;4'b0100: L[6:0]=7'b0110011;4'b0101: L[6:0]=7'b1011011;4'b0110: L[6:0]=7'b0011111;4'b0111: L[6:0]=7'b1110000;4'b1000: L[6:0]=7'b1111111;4'b1001: L[6:0]=7'b1111011; default L[6:0]=7'b0000000; endcaseendelse if (LT_==0) L[6:0]=7'b1111111;//灯测试else if (BL_==0&<_==1) L[6:0]=7'b0000000;//灯熄灭else L<=L;// LE=BL_=LT_=1时 锁存//也可以使用else和casex语句
end
endmodule
3、测试代码
//文件名称:Test_74HC4511.v
//fuchaoxinHUST11152020
`timescale 10ns/1ns
module Test_74HC4511;
reg LE,BL_,LT_;
reg [3:0] D;
wire [6:0] L;_74HC4511 U0(D,LE,BL_,LT_,L);//实例化元件
initial $monitor($time,":\t D=%b, LE=%b, BL_%b, LT_%b, L%b \n", D, LE, BL_, LT_, L); //监视器的显示内容
initial begin
//正常显示LE=0; BL_=1; LT_=1; D[3:0]=4'b0000;#5LE=0; BL_=1; LT_=1; D[3:0]=4'b0101;#5LE=0; BL_=1; LT_=1; D[3:0]=4'b1111;//熄灭#5
//灯测试LE=1; BL_=1; LT_=0; D[3:0]=4'b0101;#5
//灯熄灭LE=1; BL_=0; LT_=1; D[3:0]=4'b0101;#5
// LE=BL_=LT_=1时 锁存LE=1; BL_=1; LT_=1; D[3:0]=4'b0101;#5$stop;//停止模拟仿真
end
endmodule
4、仿真
-
波形
-
监控器