名称:数码管移位循环显示数字verilog代码ego1开发板
软件:VIVADO
语言:Verilog
代码功能:
采用EGO1中的两组数码管,让该8个数码管循环显示:01234567,12345678,23456789....
电路的输入信号en进行启动或暂停;用按键控制循环,按一下显示下一组数。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在ego1开发板验证,开发板如下,其他开发板可以修改管脚适配:

代码下载:数码管移位循环显示数字verilog代码ego1开发板名称:数码管移位循环显示数字verilog代码ego1开发板(代码在文末下载)软件:VIVADO语言:Verilog代码功能:采用EGO1中的两组数码管,让该8个数码管循环显示:01234567,12345678,23456789....电路的输入信号en进行启动或暂停;用按键控制循环,按一下显示下一组数。FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com本代码已在e
http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=312
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
上一篇:IEPE与数据采集