为什么要进行异步复位同步释放---verilog实现

1、什么是同步复位?

      仅在有效的时钟上升沿时对触发器复位,该复位信号经过组合逻辑馈送到触发器的输入端。

always@(posedge clk) begin
    if(!rst) begin
        ...
    end
end

2、什么是异步复位?

      无论时钟处于什么状态,只要复位信号有效,即对电路进行复位。

always@(posedge clk or negedge rst) begin
    if(!rst) begin
        ...
    end
end

3、什么是异步复位同步释放?

  复位信号不考虑时钟状态,但是当对电路进行复位时,需在时钟有效沿进行。

4、两种复位方式优缺点?

  同步复位:①因为触发器都有异步复位端口,如果进行同步复位,则需要在触发器的输入端前添加组合逻辑电路,会使用较多的逻辑资源。②复位信号必须要大于一个时钟周期,则复位信号才真正有效。

  异步复位:异步信号释放时,容易出现亚稳态,即不满足去除时间(removal time)和恢复时间(recovery time),且容易受到毛刺的影响。

5、异步复位同步释放--verilog实现

always @(posedge clk or negedge rst) begin
    if(!rst) begin
        rst_1 <= 1'b0;
        rst_2 <= 1'b0;
    end
    else begin
        rst_1 <= 1'b1;
        rst_2 <= rst_1;
    end
end
assign rst_n = rst_2;//rst_n才是同步后的电路复位信号

 

  

posted @ 2020-08-13 14:45  影-fish  阅读(1717)  评论(0编辑  收藏  举报