每日一摘:Verilog復位


三種復位實現:同步復位、異步復位、異步復位同步釋放

一、同步復位

同步復位是指復位信號只有在時鍾有效邊沿到來時才能生效的復位方法。如果時鍾有效邊沿未到來,即使是復位信號有效也不執行復位操作。

代碼:

`timescale 1ns / 1ps

module sync_reset(
      input clk,
      input rst_n,
      input data_in,
      output reg data_out
    );
      
      always @ (posedge clk)
           if (!rst_n)
                 data_out <= 1'b0;
           else
                 data_out <= data_in;

endmodule

電路圖:

 

采用同步復位的話,由於大多數寄存器沒有單獨的同步復位端口,綜合出來的RTL一般是數據輸入(data_in)和復位信號(rst_n)取與操作/如圖的MUX。相比於異步復位,會額外消耗電路的組合邏輯資源。

二、異步復位

異步復位是指只要復位信號有效立即執行復位操作。即使是在時鍾有效邊沿未到來的時候,寄存器也執行復位操作。

 代碼:

`timescale 1ns / 1ps

module async_reset(
      input clk,
      input rst_n,
      input data_in,
      output reg data_out
    );
      
      always @ (posedge clk or negedge rst_n)
           if (!rst_n)
                 data_out <= 1'b0;
           else
                 data_out <= data_in;

endmodule

電路圖:

 

雖然異步復位沒有占用額外的組合邏輯資源,但是其對復位信號的要求較高,假如復位信號中出現毛刺,會使整個寄存器執行復位操作。

總結一下同步與異步復位各自的優缺點

同步復位 異步復位
優點 優點
有利於時序分析 節省邏輯資源
有利於仿真器仿真 設計相對簡單
能夠濾除復位信號毛刺 信號識別方便
缺點 缺點
對復位信號的長度有要求,需要大於一個時鍾周期 異步復位容易受到毛刺信號的干擾
大多數邏輯器件目標庫內觸發器沒有同步復位端口,若采用同步復位會占用額外的組合邏輯資源 異步復位信號在釋放時容易出現問題。異步復位信號在結束的時候,可能會不滿足recovery和removal time,可能使電路進入亞穩態。

 三、異步復位同步釋放

代碼:

`timescale 1ns / 1ps

module test(
      input clk,
      input rst_n,
      input data_in,
      output reg data_out
    );
      
        reg rst_n_reg_a,rst_n_reg_b;
        wire rst_n_sync;
        
      always @ (posedge clk or negedge rst_n)
           if (!rst_n)
               begin
                        rst_n_reg_a <= 1'b0;
                        rst_n_reg_b <= 1'b0;
                    end
           else
               begin
                        rst_n_reg_a <= 1'b1;
                        rst_n_reg_b <= rst_n_reg_a;
                    end
        
        assign rst_n_sync = rst_n_reg_b;
        
         always @ (posedge clk or negedge rst_n_sync)
           if (!rst_n_sync)
                 data_out <= 1'b0;
           else
                 data_out <= data_in;

endmodule

電路圖:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM