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

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

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

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

冬至子 ? 來源:玩兒轉(zhuǎn)FPGA ? 作者:建東 ? 2023-06-28 15:19 ? 次閱讀

邊沿檢測原理

邊沿檢測大致分為:上升沿檢測,下降沿檢測和,雙沿檢測。原理都是通過比輸入信號快很多的時鐘去采集信號,當出現(xiàn)兩個連續(xù)的采集值不等的時候就是邊沿產(chǎn)生處。

圖1為邊沿采集圖,clk為采集時鐘,sig為被采集信號,現(xiàn)在需要知道什么時候sig的跳邊沿到來,于是有了一個sig_buf的2bit信號用來存儲被采集的sig信號,當前值被放在低位,高位時是上一個時刻的值。也就是

sig_buf[1:0] <= {sig_buf[0],sig};

從圖中可以看出,sig_buf為2'01的時候正好是上升沿出現(xiàn)之后,2'b10正是下降沿出現(xiàn)之后。所以正好可以利用這兩個信號的出現(xiàn)來判斷上升沿還是下降沿。這樣也就實現(xiàn)了邊沿檢測。

重點

這種邊沿檢測方法一定要有clk周期小于sig高電平脈寬的條件,不然無法保證能夠每次采集到sig的邊沿。

圖片

圖1. 邊沿采集示意圖

邊沿采集代碼講解

此代碼可以修改sig_buf的長度,也就是 不用一個0和一個1判斷,而是多個0和多個1,但是寬度變了以后對sig的脈寬要求也就更寬,這點一定要牢記,不然很可能出現(xiàn)檢測邊沿無法實現(xiàn)。

很多人反映tb寫不來,不知道tb要寫什么,要怎么寫。這里順便說下怎么寫,就以邊沿檢測tb為例。

仿真目的 :產(chǎn)生符合自己要求的激勵信號,測試此時的輸出是否和預想一致,一致則通過,否則失敗。

仿真步驟 :根據(jù)仿真目的也很容易可以抽象出來仿真的步驟分為2步,第一步,產(chǎn)生激勵,第二步,查看被測試模塊輸出。

激勵產(chǎn)生

周期信號產(chǎn)生always begin #5 clk=0; #5 clk=1; end //時鐘信號

只在最開始產(chǎn)生某種特殊波形:initial begin rst = 1 ; #10 rst = 0; end

上述兩種信號都是關(guān)于時間的函數(shù)f(t),這種函數(shù)特點決定了可以用延時命令#xx去產(chǎn)生。

需要結(jié)合當前狀態(tài)的信號:這種波形不僅僅時間的函數(shù),還和某個信號相關(guān),比如分頻模塊,分頻值在不停變,那么這個時候不如直接調(diào)用一個已經(jīng)寫好的分頻模塊,分頻系數(shù)可以外部狀態(tài)機控制,這樣就可以解決。換句話說,tb只是產(chǎn)生理想激勵,所以需要你不擇手段的去產(chǎn)生自己想要的東西,不管是可綜合還是不可綜合語句。

tb文件的一般代碼結(jié)構(gòu)

1.module定義

2.reg和wire定義,需要被你主動控制的信號定義為reg,有賦值來源的信號定義為wire,比如模塊輸入定義為reg,方便自己產(chǎn)生各種波形,輸出定義為wire。

3.initial begin end語句,產(chǎn)生初始化激勵,比如復位,使能。initial語句可以寫多個,效果上兩個initial都是同時執(zhí)行的,仿真的時候你感受不出差別。

4.特殊激勵產(chǎn)生,比如時鐘,狀態(tài)機等

5.被測試模塊調(diào)用

6.被測試模塊輸出結(jié)果合格檢測,這一步如果不會可以忽略,自己看波形。對于復雜設(shè)計看波形會非常累,所以建議慢慢養(yǎng)成習慣

仿真結(jié)果展示

上升沿檢測波形,mode=0,當輸入信號被檢測到上升沿的時候,信號the_edge就會有一個高脈沖:

圖片

圖2. 上升沿檢測

下降沿檢測波形,mode=1,當輸入信號被檢測到下降沿的時候,信號the_edge就會有一個高脈沖:

圖片

圖3. 下降沿檢測

雙沿檢測波形,mode=2,當輸入信號被檢測到上升沿或者下降沿的時候,信號the_edge就會有一個高脈沖:

圖片

圖4. 雙沿檢測

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

    關(guān)注

    14

    文章

    1008

    瀏覽量

    83436
  • 狀態(tài)機
    +關(guān)注

    關(guān)注

    2

    文章

    489

    瀏覽量

    27391
  • CLK
    CLK
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    17039
  • Verilog語言
    +關(guān)注

    關(guān)注

    0

    文章

    113

    瀏覽量

    8192
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    在同步電路設(shè)計中,邊沿檢測是必不可少的!
    發(fā)表于 08-16 15:19 ?1852次閱讀
    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應用篇(二):邊沿檢測

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

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

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

    關(guān)于FPGA進行外部邊沿檢測,檢測不準確問題?

    程序邊沿檢測下降沿并統(tǒng)計數(shù)量(數(shù)量到達2后重新計數(shù),并發(fā)送動作信號),但是最終發(fā)現(xiàn)檢測結(jié)果不準確,有時候能檢測到,有時候檢測不到。萬分感謝您
    發(fā)表于 08-21 12:58

    基于Verilog-HDL的軸承振動噪聲電壓峰值檢測

    介紹模擬峰值電壓的檢測方式,敘述基于Verilog-HDL 與高速A/D轉(zhuǎn)換器相結(jié)合所實現(xiàn)的數(shù)字式快速軸承噪聲檢測方法, 給出相關(guān)的Verilog
    發(fā)表于 04-16 10:53 ?22次下載

    基于Verilog-HDL的軸承振動噪聲電壓峰值檢測

    摘要:介紹模擬峰值電壓的檢測方式,敘述基于Verilog-HDL與高速A/D轉(zhuǎn)換器相結(jié)合所實現(xiàn)的數(shù)字式快速軸承噪聲檢測方法,給出相關(guān)的Verilog
    發(fā)表于 06-20 15:14 ?942次閱讀
    基于<b class='flag-5'>Verilog</b>-HDL的軸承振動噪聲電壓峰值<b class='flag-5'>檢測</b>

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

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

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

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

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

    邊沿檢測電路(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)任務、雙向端口的使用(inout)、邊沿檢測
    的頭像 發(fā)表于 03-15 13:34 ?2112次閱讀

    FPGA學習-邊沿檢測技術(shù)

    所謂邊沿檢測,就是檢測輸入信號即上升沿或者下降沿的檢測。 邊沿檢測的電路很好
    的頭像 發(fā)表于 11-26 10:20 ?1530次閱讀

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

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

    什么是邊沿檢測

    1、什么是邊沿檢測 邊沿檢測用于檢測信號的上升沿或下降沿,通常用于使能信號的捕捉等場景。 2、采用1級觸發(fā)器的
    的頭像 發(fā)表于 06-17 14:26 ?2221次閱讀
    什么是<b class='flag-5'>邊沿</b><b class='flag-5'>檢測</b>