1、同步复位
只在时钟有效沿对系统进行复位
always@(posedge clk) begin
if(rst) begin
...
end else begin
...
end
end
优点
- 利于仿真
- 可综合成时序电路,利于时序分析,综合后系统工作频率高
- 可滤除高于时钟频率的毛刺,抗干扰能力强
缺点
- 复位信号有效时长需要大于时钟周期
- 大多数库的DFF只有异步复位接口,需要额外的资源
2、异步复位
与时钟无关,只要有复位信号,就对系统进行复位
always@(posedge clk or posedge rst) begin
if(rst) begin
...
end else begin
...
end
end
优点
- 大多数库的DFF有异步复位接口,节省资源
- 设计简单,识别方便
缺点
- 复位信号释放时容易造成系统进入亚稳态
- 容易受到毛刺影响,抗干扰能力差
3、异步复位同步释放
always@(posedge clk) begin
rst_r <= rst;
end
always@(posedge clk or posedge rst_r) begin
if(rst_r) begin
...
end else begin
...
end
end