名称:数码管移位循环显示数字verilog代码ego1开发板(代码在文末下载)
软件:VIVADO
语言:Verilog
代码功能:
采用EGO1中的两组数码管,让该8个数码管循环显示:01234567,12345678,23456789....
电路的输入信号en进行启动或暂停;用按键控制循环,按一下显示下一组数。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. RTL图
5. 管脚分配
6. Testbench
7. 仿真图
整体仿真图
按键消抖模块
显示模块
部分代码展示:
module?Numeric_Display( input?clk,//标准时钟,100MHz input?reset,//复位信号,低有效? input?SW_en,//使能 input?shift_key_p,//移位 output?reg?[7:0]?segment_strobe_1, output?reg?[3:0]?bit_strobe_1,??//高电平点亮,高电平选通 output?reg?[7:0]?segment_strobe_2, output?reg?[3:0]?bit_strobe_2//高电平点亮,高电平选通 ); reg?[39:0]?data_in;//输入8位数据 ???always?@(posedge?clk?or?negedge?reset)?? ???if(reset==0) ?????????data_in<=40'h0123456789; ???else?if(SW_en==1)begin//使能 ??????if?(shift_key_p)//按下移位 ?????????data_in<={data_in[35:0],data_in[39:36]};//移位 ???end ???reg?[15:0]?counter=16'd0;??? ???always?@(posedge?clk)????? ??????begin ?????????if?(counter?==?16'hffff) ????????????counter?<=?16'h0000; ?????????else ????????????counter?<=?counter?+?1;//计数 ??????end ?????? reg?[3:0]?display_data_1;? reg?[3:0]?display_data_2;? //数码管1位选控制 ???always?@(posedge?clk) ??????case?(counter[15:14]) ?????????2'd0?:?begin ????????????display_data_1?<=?data_in[31:28]; ????????????bit_strobe_1?<=4'b1000; ????????????end ?????????2'd1?:begin ????????????display_data_1?<=?data_in[27:24]; ????????????bit_strobe_1?<=4'b0100; ????????????end ?????????2'd2?:begin ????????????display_data_1?<=?data_in[23:20]; ????????????bit_strobe_1?<=4'b0010;??????? ????????????end ?????????2'd3?:begin ????????????display_data_1?<=?data_in[19:16]; ????????????bit_strobe_1?<=4'b0001;???????????? ????????????end ??????endcase
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=312
阅读全文