异步复位同步释放电路

目的:防止异步复位信号 release 释放时出现亚稳态现象。

含义:

异步复位:复位与 clk 无关:always@(posedge clk or negedge rst_n)

同步释放:复位信号在第二级触发器的 clk 边沿来后释放,第二级输出是稳定且被同步。 多打一拍,消除亚稳态。一般触发器都会在一个或两个时钟周期内返回稳态。

1
always @(posedge clk or negedge rstn) begin
2
    if(!rstn) begin
3
       q1 <= 1'b0;
4
       q2 <= 1'b0;
5
    end
6
    else begin
7
        q1 <= 1'b1;
8
        q2 <= q1;
9
    end
10
end
11
assign rst_syn = q2;
12
13
always @(posedge clk or negedge q2) begin
14
    if(!q2) begin
15
       q3 <= 0;
16
    end
17
    else begin
18
       q3 <= data_in 
19
    end
20
end