0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是邊沿檢測

硬件攻城獅 ? 來源:硬件攻城獅 ? 2023-06-17 14:26 ? 次閱讀

1、什么是邊沿檢測

邊沿檢測用于檢測信號的上升沿或下降沿,通常用于使能信號的捕捉等場景。

2、采用1級觸發(fā)器的邊沿檢測電路設(shè)計(以下降沿為例)

2.1、設(shè)計方法

設(shè)計波形圖如下所示:

60103164-0cc6-11ee-962d-dac502259ad0.png

各信號說明如下:

sys_clk:基準時鐘信號(這里設(shè)定為50MHz,周期20ns)

sys_rst_n:低電平有效的復(fù)位信號

in:輸入信號,需要對其進行下降沿檢測

~in:輸入信號的反相信號

in_d1:對輸入信號寄存一拍

in_neg:得到的下降沿指示信號,該信號為 ind1 && ~in

對上圖進行分析:

信號in是我們需要對其進行下降沿檢測的信號

信號~in是將信號in反向

信號in_d1是使用寄存器寄存in信號,即對其進行打拍,或者說是同步到系統(tǒng)時鐘域下

輸入信號開始為高電平,在L2處變?yōu)榈碗娖剑a(chǎn)生第1個下降沿,在L5出產(chǎn)生第2個下降沿

A處為產(chǎn)生的第1個下降沿指示信號,B處為產(chǎn)生的第2個下降沿指示信號

由此我們可以推導(dǎo)出邊沿檢測信號產(chǎn)生的一般方法:

將需要檢測的信號寄存一拍,同步到系統(tǒng)時鐘域下,得到信號 in_d1

將需要檢測的信號反向,得到信號 ~in

將信號 in_d1 反向,得到信號 ~in_d1

通過組合邏輯電路可以得到下降沿信號 in_neg:assign in_neg = ~in && in_d1

同樣通過組合邏輯電路可以得到上升沿信號 in_pos:assign in_pos = in && ~in_d1

雙邊沿檢測就是將上兩條加(或運算)起來就可以了,化簡后有:雙邊沿信號 in_both = in ^ ind1

2.2、Verilog實現(xiàn)

根據(jù)上文分析不難編寫Verilog代碼如下:

60257d30-0cc6-11ee-962d-dac502259ad0.png

2.3、RTL電路

60366db6-0cc6-11ee-962d-dac502259ad0.png

上圖為生成的RTL電路:該電路由一級D觸發(fā)器+與邏輯門構(gòu)成。

2.4、Testbench

Testbench文件需要例化剛剛設(shè)計好的模塊,并設(shè)置好激勵。

6044ec2e-0cc6-11ee-962d-dac502259ad0.png

6052f7b0-0cc6-11ee-962d-dac502259ad0.png

2.5、仿真結(jié)果

使用ModelSim執(zhí)行仿真,仿真出來的波形如所示:

6062b150-0cc6-11ee-962d-dac502259ad0.png

從波形圖可以看到:

10ns后停止復(fù)位

在第1條參考線處輸入信號 in 產(chǎn)生了第1個下降沿信號

在第3條參考線處輸入信號 in 產(chǎn)生了第2個下降沿信號

在第1條參考線和第2條參考線之間的產(chǎn)生了一個周期的下降沿指示信號 in_neg

在第3條參考線和第4條參考線之間的產(chǎn)生了一個周期的下降沿指示信號 in_neg

3、采用2級觸發(fā)器的邊沿檢測電路(以下降沿為例)

3.1、設(shè)計方法

設(shè)計波形圖如下所示:

607f3564-0cc6-11ee-962d-dac502259ad0.png

各信號說明如下:

sys_clk:基準時鐘信號(這里設(shè)定為50MHz,周期20ns)

sys_rst_n:低電平有效的復(fù)位信號

in:輸入信號,需要對其進行下降沿檢測

in_d1:對輸入信號寄存1拍

in_d2:對輸入信號寄存2拍

~in_d1:in_d1信號的反相信號

in_neg:得到的下降沿指示信號,該信號為 ~ind1 && ind2

對上圖進行分析:

信號in是我們需要對其進行下降沿檢測的信號

信號in_d1是使用寄存器寄存in信號,即對其打1拍

信號in_d2是使用寄存器寄存in_d1信號,即對其打1拍

信號~in_d1是將信號in_d1反向

輸入信號開始為高電平,在L2處變?yōu)榈碗娖剑a(chǎn)生第1個下降沿,在L5出產(chǎn)生第2個下降沿

A處為產(chǎn)生的第1個下降沿指示信號,B處為產(chǎn)生的第2個下降沿指示信號

輸出的下降沿指示信號落后下降沿一個時鐘周期,這是因為對輸入信號進行了寄存以消除亞穩(wěn)態(tài)

由此我們可以推導(dǎo)出邊沿檢測信號產(chǎn)生的一般方法:

將需要檢測的信號分別寄存1拍、2拍,同步到系統(tǒng)時鐘域下,得到信號 in_d1、in_d2

將in_d1信號反向,得到信號 ~in_d1

將in_d2信號反向,得到信號 ~in_d2

通過組合邏輯電路可以得到下降沿信號 in_neg:assign in_neg = ~in_d1 && in_d2

同樣通過組合邏輯電路可以得到上升沿信號 in_pos:assign in_pos = in_d1 && ~in_d2

雙邊沿檢測就是將上兩條加(或運算)起來就可以了,化簡后有:雙邊沿信號 in_both = in_d1 ^ in_d2

3.2、Verilog實現(xiàn)

根據(jù)上文分析不難編寫Verilog代碼如下:

60b6f13e-0cc6-11ee-962d-dac502259ad0.png

3.3、RTL電路

60db8ecc-0cc6-11ee-962d-dac502259ad0.png

上圖為生成的RTL電路:該電路由2級D觸發(fā)器+與邏輯門構(gòu)成。

3.4、Testbench

Testbench文件同2.4章。

3.5、仿真結(jié)果

使用ModelSim執(zhí)行仿真,仿真出來的波形如所示:

60e6e6fa-0cc6-11ee-962d-dac502259ad0.png

從波形圖可以看到:

10ns后停止復(fù)位

在第1條參考線處輸入信號 in 產(chǎn)生了第1個下降沿信號

在第4條參考線處輸入信號 in 產(chǎn)生了第2個下降沿信號

在第2條參考線和第3條參考線之間的產(chǎn)生了一個周期的下降沿指示信號 in_neg

在第5條參考線和第6條參考線之間的產(chǎn)生了一個周期的下降沿指示信號 in_neg

兩級寄存器構(gòu)成的邊沿檢測電路可以有效的防止亞穩(wěn)態(tài)的產(chǎn)生,產(chǎn)生的使能信號會落后一個時鐘周期。
責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1992

    瀏覽量

    60979
  • 檢測信號
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6298
  • 時鐘信號
    +關(guān)注

    關(guān)注

    4

    文章

    440

    瀏覽量

    28473

原文標題:4、參考

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    FPGA設(shè)計經(jīng)驗之邊沿檢測

    在同步電路設(shè)計中,邊沿檢測是必不可少的!
    發(fā)表于 03-01 09:59 ?5072次閱讀

    FPGA設(shè)計中的邊沿檢測問題

    在同步電路設(shè)計中,邊沿檢測是必不可少的!后一種方法所耗的資源要比前一種方法多(一個觸發(fā)器),但是就可以大大提高可靠性,這絕對是物有所值!!
    發(fā)表于 02-01 10:53 ?965次閱讀
    FPGA設(shè)計中的<b class='flag-5'>邊沿</b><b class='flag-5'>檢測</b>問題

    FPGA設(shè)計經(jīng)驗:邊沿檢測

    在同步電路設(shè)計中,邊沿檢測是必不可少的!
    發(fā)表于 08-16 15:19 ?1868次閱讀
    FPGA設(shè)計經(jīng)驗:<b class='flag-5'>邊沿</b><b class='flag-5'>檢測</b>

    關(guān)于邊沿檢測的問題

    入圖,有沒有大神分析一下,是怎實現(xiàn)邊沿檢測的,它各個時期的電平狀態(tài)是什么
    發(fā)表于 04-13 14:36

    fpga應(yīng)用篇(二):邊沿檢測

    `fpga應(yīng)用篇(二):邊沿檢測上一篇介紹了阻塞賦值與非阻塞賦值,這次我們利用非阻塞賦值產(chǎn)生一個簡單的應(yīng)用即邊沿檢測,邊沿
    發(fā)表于 04-06 21:28

    邊沿檢測設(shè)計報告

    邊沿檢測設(shè)計報告
    發(fā)表于 09-26 15:38

    FPGA_100天之旅_邊沿檢測

    FPGA_100天之旅_邊沿檢測
    發(fā)表于 09-28 13:37

    基于FPGA邊沿檢測的理解問題?

    我看到網(wǎng)上關(guān)于邊沿檢測的講解,有個地方不理解,t0時刻和t1時刻分別是怎樣的時刻,trigger在時鐘上升沿經(jīng)過觸發(fā)器輸出的信號和經(jīng)過非門的信號是什么樣的關(guān)系?我的理解是trigger分別輸出后是兩個電平相反的信號,為什么相與之后就可以
    發(fā)表于 05-10 14:52

    邊沿檢測與提取-輪廓跟蹤知識詳解

    邊沿檢測與提取程序
    發(fā)表于 01-29 14:56 ?0次下載

    用移位寄存器實現(xiàn)邊沿檢測的技巧

    本文記錄一下關(guān)于用移位寄存器實現(xiàn)邊沿檢測的技巧。要學(xué)會硬件思維式的“模塊式”讀寫代碼,那么請多看別人的代碼,并用ISE或者VIVADO綜合出來看看。 邊沿檢測
    發(fā)表于 04-15 10:26 ?3215次閱讀

    邊沿檢測的目的及電路原理分析

    邊沿檢測電路(edge detection circuit)是個常用的基本電路。所謂邊沿檢測就是對前一個clock狀態(tài)和目前clock狀態(tài)的比較,如果是由0變?yōu)?,能夠
    的頭像 發(fā)表于 11-19 07:09 ?1.1w次閱讀

    Verilog系統(tǒng)函數(shù)和邊沿檢測

    “ 本文主要分享了在Verilog設(shè)計過程中一些經(jīng)驗與知識點,主要包括Verilog仿真時常用的系統(tǒng)任務(wù)、雙向端口的使用(inout)、邊沿檢測
    的頭像 發(fā)表于 03-15 13:34 ?2223次閱讀

    FPGA學(xué)習(xí)-邊沿檢測技術(shù)

    所謂邊沿檢測,就是檢測輸入信號即上升沿或者下降沿的檢測邊沿檢測的電路很好實現(xiàn):上一時刻為低電
    的頭像 發(fā)表于 11-26 10:20 ?1637次閱讀

    Verilog邊沿檢測的基本原理和代碼實現(xiàn)

    本文將從Verilog和邊沿檢測的基本概念入手,介紹Verilog邊沿檢測的原理和應(yīng)用代碼示例。
    的頭像 發(fā)表于 05-12 17:05 ?3506次閱讀
    Verilog<b class='flag-5'>邊沿</b><b class='flag-5'>檢測</b>的基本原理和代碼實現(xiàn)

    Verilog實現(xiàn)邊沿檢測的原理

    邊沿檢測大致分為:上升沿檢測,下降沿檢測和,雙沿檢測。原理都是通過比輸入信號快很多的時鐘去采集信號,當(dāng)出現(xiàn)兩個連續(xù)的采集值不等的時候就是
    的頭像 發(fā)表于 06-28 15:19 ?2714次閱讀
    Verilog實現(xiàn)<b class='flag-5'>邊沿</b><b class='flag-5'>檢測</b>的原理