一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

介紹3種方法跨時鐘域處理方法

FPGA設計論壇 ? 來源:CSDN技術社區(qū) ? 作者:weixin_43343190 ? 2021-09-18 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

時鐘域處理是FPGA設計中經常遇到的問題,而如何處理好跨時鐘域間的數據,可以說是每個FPGA初學者的必修課。如果是還是在校的學生,跨時鐘域處理也是面試中經常常被問到的一個問題。

在本篇文章中,主要介紹3種跨時鐘域處理的方法,這3種方法可以說是FPGA界最常用也最實用的方法,這三種方法包含了單bit和多bit數據的跨時鐘域處理,學會這3招之后,對于FPGA相關的跨時鐘域數據處理便可以手到擒來。

本文介紹的3種方法跨時鐘域處理方法如下:

1.打兩拍;“

2.異步雙口RAM;”

3.格雷碼轉換;“

第一種方法:打兩拍

大家很清楚,處理跨時鐘域的數據有單bit和多bit之分,而打兩拍的方式常見于處理單bit數據的跨時鐘域問題。

打兩拍的方式,其實說白了,就是定義兩級寄存器,對輸入的數據進行延拍。

先簡單說下兩級寄存器的原理:兩級寄存是一級寄存的平方,兩級并不能完全消除亞穩(wěn)態(tài)危害,但是提高了可靠性減少其發(fā)生概率??偟膩碇v,就是一級概率很大,三級改善不大。

這樣說可能還是有很多人不夠完全理解,那么請看下面的時序示意圖:

65ba5808-13d8-11ec-8fb8-12bb97331649.jpg

data是時鐘域1的數據,需要傳到時鐘域2(clk)進行處理,寄存器1和寄存器2使用的時鐘都為clk。假設在clk的上升沿正好采到data的跳變沿(從0變1的上升沿,實際上的數據跳變不可能是瞬時的,所以有短暫的跳變時間),那這時作為寄存器1的輸入到底應該是0還是1呢?

這是一個不確定的問題。所以Q1的值也不能確定,但至少可以保證,在clk的下一個上升沿,Q1基本可以滿足第二級寄存器的保持時間和建立時間要求,出現(xiàn)亞穩(wěn)態(tài)的概率得到了很大的改善。

如果再加上第三級寄存器,由于第二級寄存器對于亞穩(wěn)態(tài)的處理已經起到了很大的改善作用,第三級寄存器在很大程度上可以說只是對于第二級寄存器的延拍,所以意義是不大的。

第二種方法:異步雙口RAM

處理多bit數據的跨時鐘域,一般采用異步雙口RAM。假設我們現(xiàn)在有一個信號采集平臺,ADC芯片提供源同步時鐘60MHz,ADC芯片輸出的數據在60MHz的時鐘上升沿變化,而FPGA內部需要使用100MHz的時鐘來處理ADC采集到的數據(多bit)。

在這種類似的場景中,我們便可以使用異步雙口RAM來做跨時鐘域處理。先利用ADC芯片提供的60MHz時鐘將ADC輸出的數據寫入異步雙口RAM,然后使用100MHz的時鐘從RAM中讀出。

對于使用異步雙口RAM來處理多bit數據的跨時鐘域,相信大家還是可以理解的。當然,在能使用異步雙口RAM來處理跨時鐘域的場景中,也可以使用異步FIFO來達到同樣的目的。

第三種方法:格雷碼轉換

對于第三種方法,Kevin在大學里邊從沒接觸過,也是在工作中才接觸到。

我們依然繼續(xù)使用介紹第二種方法中用到的ADC例子,將ADC采樣的數據寫入RAM時,需要產生RAM的寫地址,但我們讀出RAM中的數據時,肯定不是一上電就直接讀取,而是要等RAM中有ADC的數據之后才去讀RAM。這就需要100MHz的時鐘對RAM的寫地址進行判斷,當寫地址大于某個值之后再去讀取RAM。

在這個場景中,其實很多人都是使用直接用100MHz的時鐘于RAM的寫地址進行打兩拍的方式,但RAM的寫地址屬于多bit,如果單純只是打兩拍,那不一定能確保寫地址數據的每一個bit在100MHz的時鐘域變化都是同步的,肯定有一個先后順序。如果在低速的環(huán)境中不一定會出錯,在高速的環(huán)境下就不一定能保證了。所以更為妥當的一種處理方法就是使用格雷碼轉換。

對于格雷碼,相鄰的兩個數間只有一個bit是不一樣的(格雷碼,在本文中不作詳細介紹),如果先將RAM的寫地址轉為格雷碼,然后再將寫地址的格雷碼進行打兩拍,之后再在RAM的讀時鐘域將格雷碼恢復成10進制。這種處理就相當于對單bit數據的跨時鐘域處理了。對于格雷碼與十進制互換的代碼,僅提供給大家作參考:

65c5065e-13d8-11ec-8fb8-12bb97331649.png

代碼使用的是函數的形式,方便調用,op表示編碼或者譯碼,WADDRWIDTH和RADDRWIDTH表示位寬。

編輯:jq

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

    關注

    460

    文章

    52511

    瀏覽量

    440860
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1392

    瀏覽量

    117522
  • adc
    adc
    +關注

    關注

    99

    文章

    6709

    瀏覽量

    549218
  • 函數
    +關注

    關注

    3

    文章

    4381

    瀏覽量

    64870
  • 代碼
    +關注

    關注

    30

    文章

    4900

    瀏覽量

    70736

原文標題:解決跨時鐘域問題的三大方法

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    異步時鐘處理方法大全

    方法只用于慢到快時鐘的1bit信號傳遞。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)標記,將兩個寄存器盡量靠近綜合,降低 亞穩(wěn)態(tài)因導線延遲太大而傳播到第二個寄存器的可能性。
    的頭像 發(fā)表于 05-14 15:33 ?636次閱讀
    <b class='flag-5'>跨</b>異步<b class='flag-5'>時鐘</b><b class='flag-5'>域</b><b class='flag-5'>處理</b><b class='flag-5'>方法</b>大全

    電源效率測量方法

    本課程講義用于將向大家介紹測量開關電源 轉換效率的兩不同方法。 第一種方法使用一個瓦特表和兩個萬用表; 第二種方法
    發(fā)表于 05-12 16:13

    精選好文!噪聲系數測量的三種方法

    本文介紹了測量噪聲系數的三種方法:增益法、Y系數法和噪聲系數測試儀法。這三種方法的比較以表格的形式給出。 在無線通信系統(tǒng)中,噪聲系數(NF)或者相對應的噪聲因數(F)定義了噪聲性能和對接
    發(fā)表于 05-07 10:18

    使用高側開關控制器解決驅動容性負載挑戰(zhàn)的各種方法

    負載供電》,將討論使用高側開關控制器解決驅動容性負載挑戰(zhàn)的各種方法。 ? 引言 車輛架構從向區(qū)域的轉變顯著改變了汽車的配電方式,基于半導體開關的解決方案(請參閱圖 1)正在取代傳統(tǒng)的熔斷型保險絲用于線束保護。這些解決方案具有諸多優(yōu)
    的頭像 發(fā)表于 02-22 13:46 ?1084次閱讀
    使用高側開關控制器解決驅動容性負載挑戰(zhàn)的各<b class='flag-5'>種方法</b>

    6種方法去除焊接應力

    ? ? 焊接應力是個啥?6種方法輕松去除! ??? 由于焊接時局部不均勻熱輸入,導致構件內部溫度場、應力場以及顯微組織狀態(tài)發(fā)生快速變化,容易產生不均勻彈塑性形變,因此采用焊接工藝加工的工件較其他加工
    的頭像 發(fā)表于 02-18 09:29 ?1149次閱讀
    6<b class='flag-5'>種方法</b>去除焊接應力

    AN210 GD32G5x3系列QSPI高速模式時鐘調整方法

    電子發(fā)燒友網站提供《AN210 GD32G5x3系列QSPI高速模式時鐘調整方法.pdf》資料免費下載
    發(fā)表于 01-20 14:33 ?0次下載
    AN210 GD32G5x<b class='flag-5'>3</b>系列QSPI高速模式<b class='flag-5'>時鐘</b>調整<b class='flag-5'>方法</b>

    探索對抗訓練的概率分布偏差:DPA雙概率對齊的通用自適的目標檢測方法

    檢測) 目標檢測作為計算機視覺領域的核心任務,在閉集場景中已經取得了顯著的進展。然而,現(xiàn)有的方法通常假設類別集合是固定的,并依賴于大量的標注數據,這導致它們在處理數據時,特別是在源
    的頭像 發(fā)表于 01-15 13:45 ?755次閱讀
    探索對抗訓練的概率分布偏差:DPA雙概率對齊的通用<b class='flag-5'>域</b>自適的目標檢測<b class='flag-5'>方法</b>

    FPGA頻率測量的三種方法

    1、FPGA頻率測量? 頻率測量在電子設計和測量領域中經常用到,因此對頻率測量方法的研究在實際工程應用中具有重要意義。 通常的頻率測量方法有三:直接測量法,間接測量法,等精度測量法。 2、直接
    的頭像 發(fā)表于 01-09 09:37 ?743次閱讀
    FPGA頻率測量的三<b class='flag-5'>種方法</b>

    一文解析時鐘傳輸

    采樣到的信號質量!最常用的同步方法是雙級觸發(fā)器緩存法,俗稱延遲打拍法。信號從一個時鐘進入另一個時鐘之前,將該信號用兩級觸發(fā)器連續(xù)緩存兩次
    的頭像 發(fā)表于 11-16 11:55 ?1276次閱讀
    一文解析<b class='flag-5'>跨</b><b class='flag-5'>時鐘</b><b class='flag-5'>域</b>傳輸

    反極圖實驗數據的分析方法

    利用樣品的軋面(ND面)、與軋向垂直的剖面(RD面)、與橫向垂直的剖面(TD面)等3個觀察面的普通粉末衍射數據,進行2分析處理。第1種方法是利用Excel表格把晶面指數與強度的關系
    的頭像 發(fā)表于 11-05 11:37 ?1901次閱讀
    反極圖實驗數據的分析<b class='flag-5'>方法</b>

    簡單高效配置FPGA的方法

    本文描述了一簡單高效配置FPGA的方法,該方法利用微處理器從串行外圍接口(SPI)閃存配置FPGA設備。這種方法減少了硬件組件、板空間和成
    的頭像 發(fā)表于 10-24 14:57 ?1620次閱讀
    一<b class='flag-5'>種</b>簡單高效配置FPGA的<b class='flag-5'>方法</b>

    直流無刷電機調速有幾種方法及應用

    直流無刷電機(BLDC)是一高效、高可靠性的電機,廣泛應用于各種工業(yè)和消費電子產品中。調速是電機控制中的一個重要方面,它允許電機在不同的速度下運行,以滿足不同的應用需求。直流無刷電機的調速方法
    的頭像 發(fā)表于 09-03 10:43 ?4081次閱讀

    時序邏輯電路的五描述方法

    時序邏輯電路是數字電路中的一重要類型,它具有存儲和處理信息的能力。時序邏輯電路的描述方法有很多種,不同的方法適用于不同的設計和分析場景。以下是五
    的頭像 發(fā)表于 08-28 11:39 ?2843次閱讀

    MCUXpresso IDE下在線聯(lián)合調試雙核MCU工程的三種方法

    大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家分享的是MCUXpresso IDE下在線聯(lián)合調試i.MXRT1170雙核工程的三種方法。
    的頭像 發(fā)表于 08-08 15:18 ?1363次閱讀
    MCUXpresso IDE下在線聯(lián)合調試雙核MCU工程的三<b class='flag-5'>種方法</b>

    pwm脈寬調制的四種方法有哪些

    于電機控制、LED調光、音頻處理等領域。以下是四常見的PWM脈寬調制方法: 固定頻率PWM(Fixed-Frequency PWM) 固定頻率PWM是一最基本的PWM調制
    的頭像 發(fā)表于 08-08 15:10 ?3031次閱讀