名称:使能复位加载显示切换的8位计数器设计Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
功能要求:
1、8位计数器,也就是可以从0计数到255(8’b11111111);
2、使能(命名为EN):同步使能EN=1, 则允许加载或计数;复位(命名为RST):RST=0时, 对计数器寄存器单元异步清零;
3、加载数值(命名为LOAD):当LOAD=0, 向内部寄存器加载数据;
4、显示切换(命名为jinzhi):当jinzhi=1,使用3个数码管(数码管5、6、7)以10进制显示计数值;当jinzhi=0,使用2个数码管(数码管5、6)以16进制显示计数值,数码管7显示0;
5、按键8、7、6、5、4对应CLK,RST,EN,LOAD,jinzhi;
6、工程命名以个人名字的小写拼音命名,例如:张三,则工程命名为zhangsan;
HDL代码要添加适当的注释。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 原理图
3. 代码
计数模块
显示模块
4. 仿真图
整体仿真图
计数模块
显示模块
部分代码展示:
//计数器模块 module counter( input CLK,//时钟 input RST,//复位,RST=0时, 对计数器寄存器单元异步清零 input EN,//使能,同步使能 input LOAD,//加载数值,当LOAD=0, 向内部寄存器加载数据 input [7:0] load_data, output reg [7:0] count_data//计数值 ); always@(posedge CLK or negedge RST) if(RST==0)//RST=0时, 对计数器寄存器单元异步清零 count_data<=8'd0; else if(EN==1)//同步使能EN=1, 则允许加载或计数 if(LOAD==0)//加载数值,当LOAD=0, 向内部寄存器加载数据 count_data<=load_data; else count_data<=count_data+1;//正常计数 else count_data<=count_data;//EN=0,不计数 endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1088
1199