名称:20进制加减计数器(进制可改)Verilog代码Quartus? 开发板
软件:Quartus
语言:Verilog
代码功能:做课程设计,要求仅使用2位数码管,另外2位要熄灭,点亮的2位依次显示00到19,两个按键,第一个按键每按一下数值加1,第二个按键每按一下数值减1。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
整体仿真图
按键消抖模块
控制模块
显示模块
部分代码展示:
`timescale?1ns?/?1ps //显示模块 module?display_num( input?clk, input?[4:0]?data,//计数 output?reg?[3:0]?bit_select,//位选 output?reg?[7:0]?lednum_select//段选 ); wire?[3:0]?data_ten; wire?[3:0]?data_one; assign?data_ten=data/10;//计数10位 assign?data_one=data%10;//计数个位? reg[15:0]counter='d0; always@(posedge?clk) begin ????counter<=counter+16'd1; end reg?[3:0]?display_data=4'd0; always@(posedge?clk) begin case(counter[15:14]) 2'd0:display_data<=data_ten;//十位 2'd1:display_data<=data_one;//个位????? 2'd2:display_data<=0;// 2'd3:display_data<=0;// ??????default:; endcase end always@(posedge?clk) begin ????????case(counter[15:14]) ????????????2'd0:?bit_select<=(4'b0111);//数码管位选 ????????????2'd1:?bit_select<=(4'b1011); ????????????2'd2:?bit_select<=(4'b1111); ????????????2'd3:?bit_select<=(4'b1111); ????????????default:bit_select<=(4'b1111); ????????endcase case(display_data) 0?:?lednum_select=?(8'hc0);?//数码管段选 1?:?lednum_select=?(8'hf9);? 2?:?lednum_select=?(8'ha4);? 3?:?lednum_select=?(8'hb0);? 4?:?lednum_select=?(8'h99);? 5?:?lednum_select=?(8'h92); 6?:?lednum_select=?(8'h82);? 7?:?lednum_select=?(8'hf8);? 8?:?lednum_select=?(8'h80);? 9?:?lednum_select=?(8'h90);? endcase end endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=431
阅读全文
496