天天看點

從多級延遲觸發器到邊沿檢測

一、多級延遲觸發器(或延遲觸發器鍊)

  (1)多級延遲觸發器電路

  多級延遲觸發器,顧明思議就是多個觸發器串在一起,對信号進行打拍,一個觸發器就延時了一拍,也就是延遲了一個時鐘周期。

多級觸發器的代碼如下所示:

 d0 是 D 的延遲一級采樣或者稱為 D 的延遲一拍信号,同樣 d1 是 D 的延遲兩拍信号,而 Q 則是 延遲三拍信号。一方面可以通過修改N來改變對多少位的信号的進行延時;另一方面,可以用通過修改部分代碼,添加或者減少延遲計數。

代碼綜合得到的電路(綜合之後)如下所示:

從多級延遲觸發器到邊沿檢測

電路中顯示出三級延時,可以延時三個時鐘節拍(也就是三個時鐘周期),需要說明的是,上述每一級觸發器都包含了3個觸發器(對三位資料總線進行延時)。

  (2)多級延遲觸發器的主要用法

①簡單的延時

   多級延遲觸發器最原始的作用單純的對 D 信号做延遲操作,這裡就不進行詳述。

②降低亞穩态往後級傳輸的機率

   如果 D 信号相對 clk 屬于不穩定信号,則 Q 和 d1 輸出相對 clk 屬 于穩定信号,這樣就有效地降低了亞穩态往後級傳輸的機率,多級延時觸發器鍊有時也稱為同步器。有關多級觸發器在降級亞穩态傳輸機率的内容,請檢視我的另一篇博文:http://www.cnblogs.com/IClearner/p/6485389.html 。

③用來邊沿檢測

   可以通過 d1 和 Q 信号擷取 D 信号的上升沿或者下降沿,具體介紹如下第二大點所示。

二、邊沿檢測電路

  邊沿檢測,顧名思義,就是檢查信号的邊沿,當信号的上升沿或者下降沿到來時,擷取一個脈沖信号,時序圖如下所示:

從多級延遲觸發器到邊沿檢測

上圖的檢測信号同時輸出上升沿檢測和下降沿檢測。那麼這個波形怎麼來的呢,我們來看看下面幾組波形:

從多級延遲觸發器到邊沿檢測

可以發現:

  原始信号與延遲一拍的信号 d0 的反向信号相與,就是上升沿脈沖;

  而原始信号取反,然後與延遲一拍信号d0相與就是下降沿脈沖。

如果擔心采樣不穩定,可以利用延遲兩拍的 d1 信号進行相 與。如果擔心不定态,還可以将脈沖信号進行鎖存。

代碼如下所示:

綜合得到的電路如下所示:

這個電路把代碼中的Q觸發器優化掉了。兩個輸出信号D_rising_edge 、D_falling_edge分别輸出上升沿檢測信号脈沖和下降沿檢測信号脈沖。

本文轉自帥氣的頭頭部落格51CTO部落格,原文連結http://blog.51cto.com/12902932/1949335如需轉載請自行聯系原作者

sshpp

繼續閱讀