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

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

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

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

異步FIFO-格雷碼

芯司機(jī) ? 來(lái)源:芯司機(jī) ? 2023-08-26 14:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

ef419bb8-43c9-11ee-a2ef-92fbcf53809c.jpg

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

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

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

我們知道,格雷碼編碼的連續(xù)數(shù)值之間只有1bit會(huì)發(fā)生變化,這種特性其實(shí)不能消除異步時(shí)鐘數(shù)據(jù)傳輸出現(xiàn)的亞穩(wěn)態(tài)。假設(shè)格雷碼編碼的寫(xiě)地址從001(2)->011(3),讀時(shí)鐘域同步出錯(cuò),寫(xiě)地址為001->001,也就是地址沒(méi)有跳變,此時(shí)用這個(gè)錯(cuò)誤的寫(xiě)地址與讀地址進(jìn)行比較,出現(xiàn)虛假的空標(biāo)志,但這種虛空只是提前阻止了后續(xù)的讀操作,不會(huì)發(fā)生讀空的情況,因此不會(huì)影響后續(xù)的操作及整個(gè)FIFO的功能。同樣對(duì)于讀地址同步到寫(xiě)時(shí)鐘域時(shí)也會(huì)出現(xiàn)虛滿的情況,這種虛空和虛滿,不會(huì)影響FIFO的功能,因此gray碼保證的是在出現(xiàn)亞穩(wěn)態(tài)的情形下,F(xiàn)IFO依然能夠正常的工作。



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

    關(guān)注

    3

    文章

    400

    瀏覽量

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

    關(guān)注

    6

    文章

    967

    瀏覽量

    55617
  • 格雷碼
    +關(guān)注

    關(guān)注

    2

    文章

    34

    瀏覽量

    13382

原文標(biāo)題:異步FIFO-格雷碼

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是

    (Gray code),又叫循環(huán)二進(jìn)制或反射二進(jìn)制 在數(shù)字系統(tǒng)中只能識(shí)別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,
    發(fā)表于 11-11 09:34 ?7758次閱讀
    什么是<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    異步FIFO設(shè)計(jì)之

    相鄰的只有1bit的差異,因此常常用于異步
    的頭像 發(fā)表于 11-01 17:37 ?1837次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>設(shè)計(jì)之<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序
    發(fā)表于 04-22 09:00

    什么是BCD、8421、余三、

    的是8421BCD,無(wú)權(quán)用得較多的是余三,我們通常所說(shuō)的BCD
    發(fā)表于 11-03 17:36

    介紹

    介紹
    發(fā)表于 08-14 09:44

    詳細(xì)討論異步FIFO的具體實(shí)現(xiàn)???

    我在網(wǎng)上看到一篇利用來(lái)設(shè)計(jì)異步FIFO,但是看他們寫(xiě)的一些源碼,小弟有些不是很理解,在設(shè)計(jì)時(shí)為什么會(huì)出現(xiàn)Waddr和wptr兩個(gè)關(guān)于寫(xiě)
    發(fā)表于 05-19 11:04

    的規(guī)則和應(yīng)用問(wèn)題?

    今天看到一個(gè)計(jì)數(shù)的程序,搜了下定義,覺(jué)得還是云里霧里,定義寫(xiě)的是若任意兩個(gè)相鄰的代碼只有一位二進(jìn)制數(shù)不同,則這種編碼為
    發(fā)表于 08-20 14:41

    異步FIFO的VHDL設(shè)計(jì)

    給出了一個(gè)利用對(duì)地址編碼的羿步FIFO 的實(shí)現(xiàn)方法,并給出了VHDL 程序,以解決異步讀寫(xiě)時(shí)鐘引起的問(wèn)題。
    發(fā)表于 07-16 15:15 ?26次下載

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序

    簡(jiǎn)介及格與二進(jìn)制的轉(zhuǎn)換程序
    發(fā)表于 01-16 11:52 ?5268次閱讀

    運(yùn)算研究

    運(yùn)算研究 在數(shù)字系統(tǒng)中只能識(shí)別0和1,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,是一
    發(fā)表于 03-18 14:07 ?1531次閱讀

    循環(huán)VHDL源程序

    我們知道計(jì)數(shù)的特點(diǎn)就是相鄰的碼字只有一個(gè)比特不同,那么我們?cè)谠O(shè)計(jì)計(jì)數(shù)時(shí)找到這個(gè)比特取
    發(fā)表于 11-11 09:32 ?2189次閱讀

    辨析

    討論了Gray Code 的由來(lái),剖析了關(guān)于的一些不合理說(shuō)法,明確了其正宗的發(fā)明者應(yīng)該是弗蘭克·,正確的英文名稱是Gray Cod
    發(fā)表于 11-28 16:04 ?6160次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>辨析

    編碼規(guī)則_有什么規(guī)律

    典型的二進(jìn)制簡(jiǎn)稱,因1953年公開(kāi)的弗蘭克·
    的頭像 發(fā)表于 03-02 14:29 ?5.9w次閱讀
    <b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>編碼規(guī)則_<b class='flag-5'>格</b><b class='flag-5'>雷</b><b class='flag-5'>碼</b>有什么規(guī)律

    如何把二進(jìn)制轉(zhuǎn)換為?是如何判斷讀空寫(xiě)滿呢?

    在傳遞讀寫(xiě)時(shí)鐘域的指針使用來(lái)傳遞,如何把二進(jìn)制轉(zhuǎn)換為,
    的頭像 發(fā)表于 09-15 09:38 ?8654次閱讀
    如何把二進(jìn)制轉(zhuǎn)換為<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><b class='flag-5'>碼</b>是如何判斷讀空寫(xiě)滿呢?

    異步FIFO的原因有哪些

    異步FIFO通過(guò)比較讀寫(xiě)地址進(jìn)行滿空判斷,但是讀寫(xiě)地址屬于不同的時(shí)鐘域,所以在比較之前需要先將讀寫(xiě)地址進(jìn)行同步處理,將寫(xiě)地址同步到讀時(shí)鐘域再和讀地址比較進(jìn)行FIFO空狀態(tài)判斷(同步后的寫(xiě)地址一定
    的頭像 發(fā)表于 08-04 14:05 ?4724次閱讀