同步复位:同步复位就是指复位信号只有在时钟上升沿到来时,才能有效
module sync_rst(
input clk_i,
input rst_n,
input din,
output reg dout
);
always @(posedge clk_i) begin
if(!rst_n)
dout <= 0;
else
dout <= din;
end
endmodule
异步复位:异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位
//Asynchronous Reset
module async_rst(
input clk_i,
input rst_n,
input din,
output reg dout
);
always @(posedge clk_i or negedge rst_n) begin
if(!rst_n)
dout <= 0;
else
dout <= din;
end
endmodule
同步复位异步复位优缺点比较
同步复位的优点:
1、一般能够确保电路是百分之百同步的。
2、确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。
同步复位的缺点:
1、复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。
2、同时还要考虑如:时钟偏移、组合逻辑路径延时、复位延时等因素。
3、由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源(mux)。
异步复位优点:
1、异步复位信号识别方便,而且可以很方便的使用全局复位。
2、可以节约逻辑资源。
异步复位缺点:
1、复位信号容易受到毛刺的影响。
2、复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。