- 什么是复位?
复位是让触发器进入一个已知的确定的状态。通常每个触发器都应该复位,但是在某些高速应用中使用移位寄存器时,为了实现更高的性能,可能会不给触发器复位。理解是通常每个always中都要先加一个if(!rst_n),为了节省资源提高速率,省去这一步。 - 是否需要复位?
实际硬件电路如果有初值,就不用复位。
一开始没按下时,按键key是高电平,有确定值,不用复位。
LED端(图中2的位置),如果不复位,是不定值。
定义
- 异步复位:
它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。
always @ (posedge clk or negedge Rst_n) begin
if (!Rst_n)
...
end
计数器的复位信号clr
- 同步复位:
同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。
always @ (posedge clk) begin
if (!Rst_n)
...
end
clr生成了选择器,资源占用变多。total logic elements多了1个。
目前我都是用异步复位,进一步的分析待后面再说。
https://www.jianshu.com/p/f2f78b4be64c
https://blog.csdn.net/vivid117/article/details/90898969