异步复位、异步复位-同步释放
同步复位由于和时钟同步,所以不能及时响应外部的复位输入信号。
异步复位能及时响应外部的复位输入,但是如果异步复位信号在时钟有效沿附近到来,可能产生亚稳态,影响时序功能。
普通异步复位代码:
always @(posedge clk or negedge ext_rst_n) begin
if (!ext_rst_n)
some_reg <= 1'b0;
else
some_reg <= 1'b1;
end
异步复位-同步释放,不仅能及时响应外部复位输入,还避免了亚稳态。
always @(posedge clk or negedge ext_rst_n) begin
if (!ext_rst_n) begin
reg1 <= 1'b0;
sys_rst_n <= 1'b0;
end else begin
reg1 <= 1'b1;
sys_rst_n <= reg1;
end
end
