關於異步復位同步釋放原理的詳細解答


首先,本人查找了異步復位同步釋放原理網絡相關資料。大都沒有講清楚相關原理性的東西,令人困惱。

 

現花時間進行原理性的解答:理解為什么異步復位、同步釋放能夠實現?

 

首先要知道復位D觸發器的工作原理,復位信號作用於最后端口也作用於觸發器邏輯中間。

當復位端有效時(一般為1),復位信號直接作用於最后一級的SR鎖存器(需要知道鎖存器的原理以及觸發器的原理,這個是電子的基礎),此時觸發器直接輸出q為0。

當復位信號無效時(為0時),復位信號為0,不能驅動最后一級SR鎖存器,此時輸出q=輸入的d,其中由時鍾信號與復位信號共同進行控制數據的變化,使q=d。

該圖為set,clr都為復位端的圖,我們理解時,使用單獨set進行理解。

異步復位、同步釋放。

module code ( clk,rst_n,rst_n_out);
input clk;
input rst_n;
output rst_n_out;

//wire rst_n_out_n;   //輸入輸出沒定義類型,默認是wire型
reg rst_n1;
reg rst_n2;

always @(posedge clk or negedge rst_n)
begin
    if(!rst_n) 
       begin
     rst_n1 <= 1'b0;
     rst_n2 <= 1'b0;
       end
     else 
       begin
       rst_n1 <= 1'b1;
       rst_n2 <= rst_n1;
        end
end
    
assign rst_n_out = rst_n2;

endmodule

 

先以rst_n為0,復位端即為1(將此時為復位狀態作起點),此時q1與q2同時由復位信號rst_n控制,直接輸出為0。

當rst_n從0變為1過程中時,此時復位端變為0,將無法直接作用與觸發器的輸出端。此時的狀態,q1由d1決定,q2由d2確定。此時由於q1有時鍾上升沿與復位信號共同作用與第一觸發器

,由於d1為1,q1輸出將根據clk來決定,而此時由於時鍾與復位信號已經作用與第二觸發器,此時d2為之前q1=0的狀態,由於d2為0,根據D觸發器的原理,無論clk為什么,q2=0,於是q2繼續輸出為0。

 

當第一觸發器不滿足復位信號與時鍾信號的恢復時間時,即不滿足第一級觸發器內部延時,這個時候,第一級觸發器將發生亞穩態狀態,而此時第二級觸發器已經上升沿完畢,

需要等下一個上升沿才能繼續改變q2數據。

當亞穩態時間過去之后(亞穩態時間不會超過一個周期,超過一個周期仍然會影響到第二級觸發器),下一個周期時鍾來臨時,此時第一觸發器已經能夠正常的輸出為1,而第二觸發器也能夠直接等於d2,這時輸出rst_n_out = 1,完成復位。

 

也就是說異步復位、同步釋放的本質就是,將原本由異步復位信號在有效時能直接作用於輸出端,改為延后一個周期通過在復位信號無效時進行時鍾控制,即同步釋放。

 


免責聲明!

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



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