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

2021-09-08 13:17:56 字數 3066 閱讀 1900

本文記錄一下關於延遲觸發器鏈與它的常用用法(即邊沿檢測。多級延遲的觸發器應該是比較常用的,當我們需要對訊號訊號進行延時,這個時候我們就用到了延遲觸發器鏈。下面就來記錄一下吧。

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

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

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

多級觸發器的**如下所示:

1 module dff_n #(parameter n=3)(

2 input clk,

3 input reset,

4 input [n-1:0] d,

5 output reg [n-1:0] q

6 );

7 reg [n-1:0]d0;

8 reg [n-1:0]d1;

9 always@(posedge clk or negedge reset)

10 if(!reset)begin

11 d0 <= 0; //非同步清 0,低電平有效

12 d1 <= 0; //非同步清 0,低電平有效

13 q <= 0; //非同步清 0,低電平有效

14 end

15 else begin

16 d0 <= d;

17 d1 <= d0;

18 q <= d1;

19 end

20 21 endmodule

d0 是 d 的延遲一級取樣或者稱為 d 的延遲一拍訊號,同樣 d1 是 d 的延遲兩拍訊號,而 q 則是 延遲三拍訊號。一方面可以通過修改n來改變對多少位的訊號的進行延時;另一方面,可以用通過修改部分**,新增或者減少延遲計數。

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

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

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

①簡單的延時

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

②降低亞穩態往後級傳輸的概率

如果 d 訊號相對 clk 屬於不穩定訊號,則 q 和 d1 輸出相對 clk 屬 於穩定訊號,這樣就有效地降低了亞穩態往後級傳輸的概率,多級延時觸發器鏈有時也稱為同步器。有關多級觸發器在降級亞穩態傳輸概率的內容,請檢視我的另一篇博文: 。

③用來邊沿檢測

可以通過 d1 和 q 訊號獲取 d 訊號的上公升沿或者下降沿,具體介紹如下第二大點所示。

二、邊沿檢測電路

邊沿檢測,顧名思義,就是檢查訊號的邊沿,當訊號的上公升沿或者下降沿到來時,獲取乙個脈衝訊號,時序圖如下所示:

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

可以發現:

始訊號與延遲一拍的訊號 d0 的反向信號相,就是上公升沿脈衝

始訊號取反,然後與延遲一拍訊號d0就是下降沿脈衝

如果擔心取樣不穩定,可以利用延遲兩拍的 d1 訊號進行相 與。如果擔心不定態,還可以將脈衝訊號進行鎖存。

**如下所示:

1 module  dff_n #(parameter  n=1)(

2 input clk,

3 input reset,

4 input [n-1:0] d,

5 output [n-1:0] d_rising_edge, //上公升沿檢測

6 output [n-1:0] d_falling_edge //下降沿檢測

7 );

8 reg [n-1:0]d0;

9 reg [n-1:0]d1;

10 reg [n-1:0]q;

11 always@(posedge clk or negedge reset)

12 if(!reset)begin

13 d0 <= 0;

14 d1 <= 0;

15 q <= 0;

16 end else begin

17 d0 <= d;

18 d1 <= d0;

19 q <= d1;

20 end

21 22 assign d_rising_edge = ~d0 & d; //關鍵

23 assign d_falling_edge= d0 & ~d; //關鍵

24 endmodule

反入與延上公升沿:取反輸入訊號之後,再與延遲一拍的輸出相與就得到了上公升沿)

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

這個電路把**中的q觸發器優化掉了。兩個輸出訊號d_rising_edge 、d_falling_edge分別輸出上公升沿檢測訊號脈衝和下降沿檢測訊號脈衝。

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

本文記錄一下關於延遲觸發器鏈與它的常用用法 即邊沿檢測。多級延遲的觸發器應該是比較常用的,當我們需要對訊號訊號進行延時,這個時候我們就用到了延遲觸發器鏈。下面就來記錄一下吧。一 多級延遲觸發器 或延遲觸發器鏈 1 多級延遲觸發器電路 多級延遲觸發器,顧明思議就是多個觸發器串在一起,對訊號進行打拍,乙...

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

一 多級延遲觸發器 或延遲觸發器鏈 1 多級延遲觸發器電路 多級延遲觸發器,顧明思議就是多個觸發器串在一起,對訊號進行打拍,乙個觸發器就延時了一拍,也就是延遲了乙個時鐘週期。多級觸發器的 如下所示 1 module dff n parameter n 3 2 input clk,3 input re...

邊沿觸發是什麼意思 邊沿觸發器的動作特點及主要特點

觸發器的基本特點 觸發器是組成時序邏輯電路的基本單元電路,它是一種有記憶功能的邏輯部件。觸發器的基本特點是 1 具有兩個互補輸出端q和 q 2 具有 0 態和 1 態兩個穩定狀態 3 在外部訊號作用下可實現狀態轉換,即翻轉 4 外部訊號消失時具有記憶功能,這就使得觸發器能夠記憶二進位制資訊。按照穩定...