标志信号(flag)
脉冲标志信号( flag),它可以减少代码中 if 括号内的条件让代码更加清晰简洁,而且当需要在多处使用脉冲标志信号的地方要比全部写出的方式更节约逻辑资源,脉冲标志信号在指示某些状态时是非常有用的,当大家以后在实现相对复杂的逻辑功能时注意想到使用脉冲标志信号,后面我们还会介绍到另一个有用的信后——使能信号。
带标志信号的计数器
module counter
#(
parameter CNT_MAX = 25'd24_999_999
)
(
input wire sys_clk , //系统时钟 50Mh
input wire sys_rst_n , //全局复位
output reg led_out //输出控制 led 灯
);
//reg define
reg [24:0] cnt ; //经计算得需要 25 位宽的寄存器才够 500ms
reg cnt_flag;
//cnt:计数器计数,当计数到 CNT_MAX 的值时清零
always@(posedge sys_clk or negedge sys_rst_n)
if(sys_rst_n == 1'b0)
cnt <= 25'b0;
else if(cnt == CNT_MAX)
cnt <= 25'b0;
else
cnt <= cnt + 1'b1;
//cnt_flag:计数到最大值产生的标志信号,每当计数满标志信号有效时取反
always@(posedge sys_clk or ne