74HC595:位移缓存器 seg[0]~seg[7] : sel[5]~sel[0]
第一个功能模块
module seg_static
#(
parameter CNT_MAX = 25'd24_999_999
)
(
input wire sys_clk ,
input wire sys_rst_n ,
output reg [5:0] sel ,
output reg [7:0] seg
);
reg [24:0] cnt;
reg [3:0] data;
reg cnt_flag;
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
cnt <= 25'd0;
else if (cnt == CNT_MAX)
cnt <= 25'd0;
else
cnt <= cnt + 1'b1;
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
data <= 4'd0;
else if((cnt_flag == 1'b1)&&(data == 4'd15))
data <= 4'd0;
else if(cnt == CNT_MAX)
data <= data + 1'b1;
else
data <= data;
//con_flag 是为了切换字符的显示
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
cnt_flag <= 1'b0;
else if (cnt == CNT_MAX - 1)
cnt_flag <= 1'b1;
else
cn