国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

揭秘FPGA跨時鐘域處理的三大方法

454398 ? 來源:alpha007 ? 作者:alpha007 ? 2022-12-05 16:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

這里介紹的三種方法跨時鐘域處理方法如下:

打兩拍;

異步雙口 RAM

格雷碼轉換。

01

方法一:打兩拍

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

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

應該很多人都會問,為什么是打兩拍呢,打一拍、打三拍行不行呢?

先簡單說下兩級寄存器的原理:兩級寄存是一級寄存的平方,兩級并不能完全消除亞穩態危害,但是提高了可靠性減少其發生概率。總的來講,就是一級概率很大,三級改善不大。

data 是時鐘域 1 的數據,需要傳到時鐘域 2(clk)進行處理,寄存器 1 和寄存器 2 使用的時鐘都為 clk。假設在 clk 的上升沿正好采到 data 的跳變沿(從 0 變 1 的上升沿,實際上的數據跳變不可能是瞬時的,所以有短暫的跳變時間),那這時作為寄存器 1 的輸入到底應該是 0 還是 1 呢?這是一個不確定的問題。所以 Q1 的值也不能確定,但至少可以保證,在 clk 的下一個上升沿,Q1 基本可以滿足第二級寄存器的保持時間和建立時間要求,出現亞穩態的概率得到了很大的改善。

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

02

方法二:異步雙口 RAM

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

先利用 ADC 芯片提供的 60MHz 時鐘將 ADC 輸出的數據寫入異步雙口 RAM,然后使用 100MHz 的時鐘從 RAM 中讀出。對于使用異步雙口 RAM 來處理多 bit 數據的跨時鐘域,相信大家還是可以理解的。當然,在能使用異步雙口 RAM 來處理跨時鐘域的場景中,也可以使用異步 FIFO 來達到同樣的目的。

03

方法三:格雷碼轉換

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

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

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

對于格雷碼與十進制互換的代碼,僅提供給大家作參考:

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

審核編輯黃昊宇

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

    關注

    1660

    文章

    22408

    瀏覽量

    636206
  • 時鐘域
    +關注

    關注

    0

    文章

    53

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Xilinx FPGA中IDELAYCTRL參考時鐘控制模塊的使用

    IDELAYCTRL 是 Xilinx FPGA(特別是支持高速 I/O 的系列,如 Virtex-5/6/7、Kintex-7、Artix-7、Spartan-6/7 等)中用于管理和校準輸入延遲模塊(IDELAYE2/IDELAYE3)的必須存在的參考時鐘控制模塊。
    的頭像 發表于 02-26 14:41 ?2384次閱讀

    揭秘LMK1D210x:高性能LVDS時鐘緩沖器的卓越之選

    揭秘LMK1D210x:高性能LVDS時鐘緩沖器的卓越之選 在電子工程領域,時鐘緩沖器作為信號處理與傳輸的關鍵角色,其性能直接影響著整個系統的穩定性與可靠性。今天,就帶大家深入了解TI
    的頭像 發表于 02-06 17:20 ?1493次閱讀

    什么是位

    有些信息在存儲時,并不需要占用一個完整的字節, 而只需占幾個或一個二進制位。 例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省存儲空間,并使處理簡便,C語言又提供了一種
    發表于 12-15 08:07

    如何降低系統時鐘頻率?

    使用低頻率的高速時鐘 HSI、HSE 或低速時鐘 LSI、LSE 通過編程預分頻寄存器,降低 SYSCLK、HCLK、PCLK 的頻率 - 設置 SYSCTRL_CR0 寄存器的 SYSCLK 位
    發表于 12-10 07:34

    數字IC/FPGA設計中的時序優化方法

    在數字IC/FPGA設計的過程中,對PPA的優化是無處不在的,也是芯片設計工程師的使命所在。此節主要將介紹performance性能的優化,如何對時序路徑進行優化,提高工作時鐘頻率。
    的頭像 發表于 12-09 10:33 ?3273次閱讀
    數字IC/<b class='flag-5'>FPGA</b>設計中的時序優化<b class='flag-5'>方法</b>

    解讀

    C語言除了開發桌面應用等,還有一個很重要的領域,那就是「單片機」開發。單片機上的硬件資源十分有限,容不得我們去肆意揮灑。單片機使一種集成電路芯片,使采用超大規模集成電路技術把具有數據處理能力的CPU
    發表于 12-05 06:45

    航盛電子搭載QNX技術的墨子融合平臺正式量產

    近日,航盛創新引領行業的單芯片級艙駕融合解決方案--墨子融合平臺實現全球量產首發,并將配套國內某頭部合資車企。該平臺搭載QNX Hypervisor for Safety技術,具備更強的穩定性、靈活性和安全性,實現車規級設計與功能安全、網絡信息安全要求,為消費者帶來艙
    的頭像 發表于 12-04 15:19 ?498次閱讀

    黑芝麻智能武當C1200家族作為計算芯片的核心突破

    本文圍繞汽車電子電氣架構(EEA)向中央計算演進的技術需求,分析分布式、集中架構的碎片化、間壁壘等痛點,重點闡述武當 C1200 家族作為計算芯片的核心突破:7nm 異構融合架
    的頭像 發表于 11-20 16:38 ?1500次閱讀

    基于FPGA的高效內存到串行數據傳輸模塊設計

    本文介紹了一個基于FPGA的內存到串行數據傳輸模塊,該模塊設計用來高效地處理存儲器中的數據并傳輸至串行接口。項目中自定義的“datamover_mm2s_fpga_”方案利用異步FIFO結構來解決不同
    的頭像 發表于 11-12 14:31 ?4328次閱讀
    基于<b class='flag-5'>FPGA</b>的高效內存到串行數據傳輸模塊設計

    ”圖像視頻監測裝置:為輸電線路安全保駕護航

    輸電線路“”指的是跨越高速鐵路、高速公路和重要輸電通道的架空輸電線路區段。其中,重要輸電通道由若干重要輸電線路組成。 “”的監測難點: 1.環境復雜多樣:“
    的頭像 發表于 10-29 09:39 ?313次閱讀

    E203軟核提高CPU時鐘頻率方法

    本文將分享我們團隊提高E203軟核主頻的辦法。 查閱芯來科技官方出版的《手把手教你設計CPU——RISC-V處理器篇》教材,我們發現,原本設計的E203主時鐘應該是100MHZ
    發表于 10-29 06:19

    手機板 layout 走線分割問題

    的layout,比如手機、筆記本。信號的分割處理已經不在是不能分割了。 在這類產品中成本是很重要的,所以層數都是能少就少。 這種情況下,如何分辨那些信號是可以分割的,
    發表于 09-16 14:56

    黑芝麻智能時間同步技術:消除多計算單元的時鐘信任鴻溝

    上海2025年7月21日 /美通社/ -- 本文圍繞時間同步技術展開,作為智能汽車 "感知-決策-執行 -交互" 全鏈路的時間基準,文章介紹了 PTP、gPTP、CAN 等主流同步技術及特點
    的頭像 發表于 07-22 09:17 ?584次閱讀
    黑芝麻智能<b class='flag-5'>跨</b><b class='flag-5'>域</b>時間同步技術:消除多<b class='flag-5'>域</b>計算單元的<b class='flag-5'>時鐘</b>信任鴻溝

    比亞迪 · 超級e平臺 · 技術方案的全面揭秘 | 第曲: 30000轉驅動電機 · 12項核心技術揭秘

    比亞迪 · 超級e平臺 · 技術方案的全面揭秘 | 第曲: 30000轉驅動電機 · 12項核心技術揭秘
    的頭像 發表于 06-08 07:20 ?2278次閱讀
    比亞迪 · 超級e平臺 · 技術方案的全面<b class='flag-5'>揭秘</b> | 第<b class='flag-5'>三</b>曲: 30000轉驅動電機 · 12項核心技術<b class='flag-5'>揭秘</b>

    異步時鐘處理方法大全

    方法只用于慢到快時鐘的1bit信號傳遞。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)標記,將兩個寄存器盡量靠近綜合,降低 亞穩態因導線延遲太大而傳播到第二個寄存器的可能性。
    的頭像 發表于 05-14 15:33 ?1526次閱讀
    <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>大全