同步与异步复位的区别
同步复位与异步复位的区别主要看是否有时钟信号参与。异步复位不需要时钟参与,一旦信号有效立即执行复位操作;同步信号需要时钟参与,只有有效的时钟信号出现,复位信号才有效。
同步复位的优缺点:有效防止复位信号的毛刺引起的误复位操作,但不能立即生效,需要等待有效的时钟信号
异步复位的优缺点:在没有时钟的情况下完成复位操作,但容易产生毛刺和亚稳态
异步复位产生亚稳态的原因
D触发器的一个特性“复位恢复时间”。
D触发器需要满足复位时间才能正常复位。因为异步复位过程中复位信号的出现是随机的,可能出现不满足复位时间的情况,以致时钟来时输出的数据变不稳定,出现亚稳态。
异步复位同步释放
异步复位同步释放的目的就是为了解决异步复位易产生亚稳态的缺点,同时兼顾异步复位的即时性,即对复位信号的响应是立即生效的。
module test(
<span style="white-space:pre"> </span>clk,
rst_n,
rst_n_out
);
input clk;
input rst_n;
output rst_n_out;
reg rst_tmp,rst_n_out;
always @(posedge clk or negedge rst_n)begin
if(!rst_n)begin
rst_tmp<=1'd0;
rst_n_out<=1'd0;
end
else begin
rst_tmp<=1'