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

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

 

現花時間進行原理性的解答:理解爲何異步復位、同步釋放可以實現?後端

 

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

當復位端有效時(通常爲1),復位信號直接做用於最後一級的SR鎖存器(須要知道鎖存器的原理以及觸發器的原理,這個是電子的基礎),此時觸發器直接輸出q爲0。異步

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

該圖爲set,clr都爲復位端的圖,咱們理解時,使用單獨set進行理解。3d

異步復位、同步釋放。code

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。htm

當rst_n從0變爲1過程當中時,此時復位端變爲0,將沒法直接做用與觸發器的輸出端。此時的狀態,q1由d1決定,q2由d2肯定。此時因爲q1有時鐘上升沿與復位信號共同做用與第一觸發器blog

,因爲d1爲1,q1輸出將根據clk來決定,而此時因爲時鐘與復位信號已經做用與第二觸發器,此時d2爲以前q1=0的狀態,因爲d2爲0,根據D觸發器的原理,不管clk爲何,q2=0,因而q2繼續輸出爲0。input

 

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

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

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

 

也就是說異步復位、同步釋放的本質就是,將本來由異步復位信號在有效時能直接做用於輸出端,改成延後一個週期經過在復位信號無效時進行時鐘控制,即同步釋放。

 

原文出處:https://www.cnblogs.com/jevonFPGA/p/11295328.html

相關文章
相關標籤/搜索