RM新时代网站-首页

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

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

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

為什么異步FIFO中需要用到格雷碼

工程師鄧生 ? 來源:芯司機 ? 作者:芯司機 ? 2022-09-02 11:20 ? 次閱讀

異步FIFO常用于跨時鐘域之間的數(shù)據(jù)傳輸,其可以實現(xiàn)數(shù)據(jù)的存儲,也可以處理異步時鐘數(shù)據(jù)傳輸?shù)膩喎€(wěn)態(tài)問題。異步FIFO的設(shè)計其關(guān)鍵點:通過格雷碼對內(nèi)部讀寫指針進行編碼,然后比較產(chǎn)生空滿標志,以維護FIFO的正常工作。

很多人在面試時被問到為什么異步FIFO中需要用到格雷碼,可能大部分的答案是格雷碼可以消除亞穩(wěn)態(tài)。這種回答比較模糊,今天我們就針對這個來深入探討一下。如下圖所示:

d4e57b80-2a6c-11ed-ba43-dac502259ad0.jpg

Push信息產(chǎn)生的連續(xù)寫指針wpt, 通過同步后,在rclk域與rpt進行比較,以產(chǎn)生rclk域的Empty信號。Empty信號用于控制讀操作,以避免在FIFO為空時仍然進行讀操作而導致的錯誤,并影響后續(xù)所有的FIFO讀操作。

Pop 信息產(chǎn)生的連續(xù)讀指針rpt, 通過同步后,在wclk域與wpt進行比較,以產(chǎn)生wclk域的Full信號。Full信號用于控制寫操作,以避免在FIFO為滿時仍然進行寫操作而導致的錯誤,并影響后續(xù)的所有的FIFO寫操作。

異步時鐘產(chǎn)生的亞穩(wěn)態(tài)發(fā)生在不同時鐘域信號wpt和rpt的比較上。對于多bit的讀寫指針信號,在跨時鐘域傳輸時會存在bit之前不同延時導致的毛刺,比如寫地址在從0111到1000轉(zhuǎn)換時4條地址線都會跳變,這樣在寫地址同步到讀時鐘域后得到的寫地址可能是0000-1111的某個值,因此本來wpt = rpt的情況變成了wpt > rpt的情況,本來應該出現(xiàn)空狀態(tài),因為亞穩(wěn)態(tài)導致未被發(fā)現(xiàn),讀操作繼續(xù)進行,從而影響了整個FIFO的功能。

我們知道,格雷碼編碼的連續(xù)數(shù)值之間只有1bit會發(fā)生變化,這種特性其實不能消除異步時鐘數(shù)據(jù)傳輸出現(xiàn)的亞穩(wěn)態(tài)。假設(shè)格雷碼編碼的寫地址從001(2)->011(3),讀時鐘域同步出錯,寫地址為001->001,也就是地址沒有跳變,此時用這個錯誤的寫地址與讀地址進行比較,出現(xiàn)虛假的空標志,但這種虛空只是提前阻止了后續(xù)的讀操作,不會發(fā)生讀空的情況,因此不會影響后續(xù)的操作及整個FIFO的功能。

同樣對于讀地址同步到寫時鐘域時也會出現(xiàn)虛滿的情況,這種虛空和虛滿,不會影響FIFO的功能,因此gray碼保證的是在出現(xiàn)亞穩(wěn)態(tài)的情形下,F(xiàn)IFO依然能夠正常的工作。



審核編輯:劉清

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

    關(guān)注

    9

    文章

    1880

    瀏覽量

    64555
  • fifo
    +關(guān)注

    關(guān)注

    3

    文章

    387

    瀏覽量

    43648
  • 編碼
    +關(guān)注

    關(guān)注

    6

    文章

    940

    瀏覽量

    54814

原文標題:異步FIFO-格雷碼

文章出處:【微信號:芯司機,微信公眾號:芯司機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    n型焊接頭需要用到哪些材料

    德索工程師說道N型焊接頭作為射頻同軸連接器的一種,其制造過程需要使用多種材料以確保其性能的穩(wěn)定性和可靠性。以下是對N型焊接頭所需材料的詳細分析: 銅合金:N型焊接頭的核心接觸件通常采用高導電性
    的頭像 發(fā)表于 11-20 10:52 ?106次閱讀
    n型焊接頭<b class='flag-5'>需要用到</b>哪些材料

    ADS9234R這個AD的寄存器如何配置,需要用到哪幾個引腳?

    請問一下,ADS9234R這個AD的寄存器如何配置,需要用到哪幾個引腳?時序是怎樣的?與復位信號有什么關(guān)系?感覺官方文檔對寄存器配置這一塊描述比較少,我用FPGA與ADS9234R做接口,寫入寄出器參數(shù),讀出總是不對。
    發(fā)表于 11-15 07:48

    調(diào)試音頻放大倍數(shù)時,需要用到1khz 0db的正弦波測試音源,請問下這個0db對應的電壓峰峰值的幅度是多少?

    調(diào)試音頻放大倍數(shù)時,需要用到1khz 0db的正弦波測試音源,請問下這個0db對應的電壓峰峰值的幅度是多少? 怎么計算的? 謝謝
    發(fā)表于 10-28 08:04

    在進行高速信號放大設(shè)計時,往往需要用到反饋電路,是否反饋電路越短越好?

    在進行高速信號放大設(shè)計時,往往需要用到反饋電路,是否反饋電路越短越好,不同封裝是否在這方面有不同優(yōu)勢?
    發(fā)表于 09-26 07:55

    射頻連接器mcx需要用到護線套嗎

     德索工程師說道射頻連接器MCX是否需要用到護線套,這主要取決于具體的應用場景、環(huán)境條件以及保護需求。以下是對此問題的詳細分析:   MCX連接器是一種超小型射頻連接器,發(fā)明于1980年代
    的頭像 發(fā)表于 09-02 10:48 ?241次閱讀
    射頻連接器mcx<b class='flag-5'>需要用到</b>護線套嗎

    什么時候需要用到no phase reversal運放呢?

    什么時候需要用到no phase reversal運放呢? 此時不用的話會造成什么影響呢?
    發(fā)表于 08-02 14:09

    請問INA231EVM采樣電阻需要用多大的?

    INA231EVM 采樣電阻需要用多大的?
    發(fā)表于 08-01 06:18

    同步FIFO異步FIFO區(qū)別介紹

    ,并且間隔時間長,也就是突發(fā)寫入。那么通過設(shè)置一定深度的FIFO,可以起到數(shù)據(jù)暫存的功能,且使得后續(xù)處理流程平滑。 時鐘域的隔離:主要用異步FIFO。對于不同時鐘域的數(shù)據(jù)傳輸,可以通過
    的頭像 發(fā)表于 06-04 14:27 ?1564次閱讀
    同步<b class='flag-5'>FIFO</b>和<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>區(qū)別介紹

    ADXL1002噪聲密度,非線性度,量程,靈敏度該如何測試?需要用到哪些器件?

    ADXL1002比如噪聲密度,非線性度,量程,靈敏度該如何測試,需要用到哪些器件,有沒有相應的學習資料。
    發(fā)表于 05-31 06:29

    STM32的PMSM FOC 4.2需要用哪種版本的KEIL MDK ?

    請問,STM32的PMSM FOC 4.2 需要用哪種版本的 KEIL MDK ? 我原先采用FOC 4.0 ,開發(fā)工具用的是KEIL 5.10,換到4.2以后顯示打不開工程。
    發(fā)表于 05-13 08:35

    電動車上 哪些部分需要用到霍爾元件?

    霍爾元件
    hallwee
    發(fā)布于 :2024年05月11日 15:07:58

    在一個應用需要用到ST32的觸摸遇到的疑問求解

    我在一個應用需要用到ST32的觸摸,現(xiàn)在遇到問題,向大家求助,謝謝! 1、htsc.Init.ChannelIOs這個配置是指我們用手觸摸的那個管腳吧? 我理解是手觸摸的端口,且可以接多個觸摸端口
    發(fā)表于 04-23 07:16

    FIFO漫談之異步FIFO空滿信號的產(chǎn)生位置

    的事聊完了,后面順理成章的就是讀寫通路模塊的設(shè)計。不過在讀寫控制通路之前還要明確下另一個問題,就是空滿信號的產(chǎn)生位置的事情。
    的頭像 發(fā)表于 03-19 13:37 ?666次閱讀
    <b class='flag-5'>FIFO</b>漫談之<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>空滿信號的產(chǎn)生位置

    電源測試需要用到哪些計算公式?

    在電源模塊測試過程不僅要了解測試過程和步驟,對于一些測試項目而言還需要了解其正確的計算測試方法,得到準確的測試結(jié)果。
    的頭像 發(fā)表于 03-13 14:32 ?510次閱讀

    異步FIFO結(jié)構(gòu)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《異步FIFO結(jié)構(gòu)設(shè)計.pdf》資料免費下載
    發(fā)表于 02-06 09:06 ?0次下載
    RM新时代网站-首页