名称:BCD码计数器设计Verilog代码Quartus? DE2开发板
软件:Quartus
语言:Verilog
代码功能:
研究目标:采用EDA技术,以硬件描述语言 Verilog HDL为系统逻辑描述语言,在QUARTUS工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建一个基于FPGA的BCD码计数器设计。该计数器具有置数和复位功能,并可以根据外部的拨码开关来选择加1计数还是减1计数,并能在数码管上面正确显示。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2开发板验证,DE2开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1.?工程文件
2.?程序文件
3.?程序编译
4.?RTL图
5.?仿真图
整体仿真图
分频模块
计数控制模块
显示模块
部分代码展示:
//计数控制模块 module?bcd_counter( input?clk_in,//50MHz input?clk_1Hz,//计数时钟 input?rst_n,//复位按键 input?load_n,//置数按键 input?[3:0]?h_in,//高位置数 input?[3:0]?l_in,//低位置数 input?[3:0]?cnt_sw,//计数控制开关,4个拨码开关 output?[3:0]?bcd_h,//bcd计数高位 output?[3:0]?bcd_l?//bcd计数低位 ); reg?[3:0]?bcd_high;//bcd计数高位 reg?[3:0]?bcd_low;?//bcd计数低位 always@(posedge?clk_in?or?negedge?rst_n) if(!rst_n)begin//复位按键 bcd_high<=4'd0; bcd_low<=4'd0; end else?if(!load_n)//置数按键 begin//复位按键 bcd_high<=h_in;//高位置数 bcd_low?<=l_in;//低位置数 end else?if(clk_1Hz)//计数时钟 case(cnt_sw)//计数控制开关,4个拨码开关 4'b1000://加1计数 if(bcd_high==4'd9?&&?bcd_low==4'd9)//计数到99 begin bcd_high<=4'd0; bcd_low?<=4'd0;? end else?if(bcd_low==4'd9)//计数到9 begin bcd_high<=bcd_high+4'd1;//十位加1 bcd_low?<=4'd0;? end else begin bcd_high<=bcd_high;// bcd_low?<=bcd_low+4'd1;//个位加1? end
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1177
阅读全文
436