

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
cnt_flag

该博客介绍了如何使用Verilog设计一个74HC595位移缓存器的静态显示模块,通过计数器和标志位实现0-f字符的循环显示,并详细描述了移位和存储时钟的控制逻辑。同时,还展示了测试平台的搭建,用于验证设计的正确性。
最低0.47元/天 解锁文章
2808

被折叠的 条评论
为什么被折叠?



