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

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

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

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

異步FIFO設計方案詳解 異步FIFO設計的難點在哪里

電子設計 ? 作者:工程師飛燕 ? 2018-09-10 10:06 ? 次閱讀

無論是數(shù)據(jù)通訊或者SOC(包括FPGA或者ASIC設計)設計,跨時鐘域(clock domain crossing)處理都是一件讓人很頭疼的事情,無論是在設計的前端或者步入設計的后端,都沒有很好的工具去做保證,只能靠設計人員的經(jīng)驗進行最大的保證,然而這個問題如果處理不好,你的整個設計可能就完全報廢,而最怕的是你的設計時好時壞,有時穩(wěn)定,有時出錯,這個時候你甚至很難進行定位(尤其是上了FPGA開發(fā)板或者芯片已經(jīng)tapout了)。

一般而言,處理跨時鐘域的方法有這么幾種(大家在網(wǎng)上也都能找到資料,這些資料大都來自幾篇經(jīng)典的論文,中文方面的資料大都是翻譯過著理解這幾篇論文而來):少量的數(shù)據(jù)用邊沿檢測電路,或者脈沖檢測電路,或者電平檢測電路,或者兩級觸發(fā)器;比較多的數(shù)據(jù)時用異步FIFO。

本文側(cè)重講解本人對異步FIFO的深入理解,講解兩種經(jīng)典的異步FIFO的設計方案,這兩種方案來自一篇文章《simulation and synthesis techniques for asynchronous FIFO design》,大家可自行下載,設計思路這篇文章里面介紹的很詳細,解釋的也很出色,我更多的是談談我的部分理解。

1、異步FIFO設計的難點在哪里

1)寫地址和讀地址處于不同的時鐘域,如何比對寫地址和讀地址才能正確的產(chǎn)生空滿信號;

2)當讀寫地址相同時,究竟是讀空了還是寫滿了(因為存在你追我趕的情況,類似于一個圓環(huán))。

2、處理思路

1)對于難點1大家自然想到采用同步處理的方式,具體為將寫地址或者讀地址同步(例如利用兩級觸發(fā)器)到對方的時鐘域中,在相同的時鐘域中進行地址的比對,但是由于寫地址和讀地址很多時候并不止1bit,同時進行同步處理會增大錯誤的概率(如地址按0111->1000跳變,此時4bit都在變化,DFF進行同步時就很容易出錯),因而可以先將地址(二進制的)轉(zhuǎn)換為格雷碼(相鄰數(shù)據(jù)之間只有一個bit在變化),然后再進行同步,最后進行對比,這樣會大大減少錯誤的概率。

2)對于難點2可以在地址前面添加1bit用于標志位進行區(qū)分,例如復位時,讀寫地址的標志位都是0,如果寫完1輪而開始新的一輪時就將寫地址的標志位換為1(讀也同樣道理變換),這樣可以通過判斷標志位加上對比地址判斷是空還是滿,具體為當讀寫地址的標志位相同讀寫地址相同時為讀空,具體為當讀寫地址的標志位不同讀寫地址相同時為寫滿;另外也可以利用格雷碼的最高兩位00->01->10->11進行相位的區(qū)分,具體參考我給出的文章或者網(wǎng)絡資料,其實本質(zhì)上和上面的是一個道理。

3、經(jīng)典FIFO設計方案的解讀

1)同步讀寫地址(經(jīng)格雷碼轉(zhuǎn)換后)到對方的時鐘域

相比于直接同步二信號進制地址(先用握手,然后同步二進制地址)好處是格雷碼相鄰數(shù)據(jù)之間只有一個bit在變化,而二進制由于寫地址和讀地址很多時候并不止1bit,同時進行同步處理會增大錯誤的概率(如地址按0111->1000跳變,此時4bit都在變化,DFF進行同步時就很容易出錯);利用格雷碼進行同步,即使發(fā)生同步的時出錯也不會造成overrun和underrun的情況(因為同步后的數(shù)據(jù)必定小于等于同步前的數(shù)據(jù),即只可能1被同步為0,而不可能0被同步為1),例如當前的讀地址到了6,寫地址到了8,地址8經(jīng)過同步后出錯而變成了6,這時會出現(xiàn)地址相同而判斷為讀空,不過沒關(guān)系,讀空則不讀,至少不會出現(xiàn)underrun的情況,隨著時間的推移地址8總會被采樣到;然而格雷碼也有缺點,只能連續(xù)變化遞增或者遞減(如果間隔變化就不符合格雷碼的特點了),所以設計的深度必須是2的n次冪,如果不是的話,需要重新產(chǎn)生編碼格雷碼,否則也會出現(xiàn)間隔變化不符合相鄰之間只有1bit變化的特點。

異步FIFO設計方案詳解 異步FIFO設計的難點在哪里

2)將讀寫地址(經(jīng)格雷碼轉(zhuǎn)換后)同步到一個組合邏輯電路中(異步比較)直接比較空滿,然后將空滿信號同步到各自對應的模塊中

異步FIFO設計方案詳解 異步FIFO設計的難點在哪里

雖然這種電路會給fifo帶來不好的狀態(tài),例如已經(jīng)滿了wfull==1,但是這個時候讀走一個數(shù)據(jù),由于同步的延時性,導致這一段時間內(nèi)wfull==1一直不變(如果沒有同步帶來的延時應該變?yōu)?的),rempty也會遇到同樣的問題,但是這種電路不會出現(xiàn)underrun和overrun的情況。

3)2)相比1)可能會節(jié)省面積,因為1)同步wptr[n-1:0]和rptr[n-1:0],2)只需要同步afull_n,aempty_n;1)的速率可能較2)會快些,2)中存在異步且組合邏輯比較,不利于時序的優(yōu)化。

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

    關(guān)注

    3

    文章

    397

    瀏覽量

    44507
  • 數(shù)據(jù)通訊
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    12123
收藏 人收藏

    評論

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

    基于FPGA器件實現(xiàn)異步FIFO讀寫系統(tǒng)的設計

    是這個問題的一種簡便、快捷的解決方案,使用異步 FIFO 可以在兩個不同時鐘系統(tǒng)之間快速而方便地傳輸實時數(shù)據(jù)。
    發(fā)表于 07-16 17:41 ?1317次閱讀
    基于FPGA器件實現(xiàn)<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>讀寫系統(tǒng)的設計

    異步FIFO的設計難點是什么,怎么解決這些難點?

    異步FIFO介紹異步FIFO的設計難點是什么,怎么解決這些難點?
    發(fā)表于 04-08 06:08

    怎么解決異步FIFO設計的難點?

    FIFO的基本結(jié)構(gòu)和工作原理異步FIFO設計中的問題與解決辦法FPGA內(nèi)部軟異步FIFO設計
    發(fā)表于 04-08 07:07

    異步FIFO結(jié)構(gòu)及FPGA設計

    首先介紹異步FIFO 的概念、應用及其結(jié)構(gòu),然后分析實現(xiàn)異步FIFO難點問題及其解決辦法; 在傳統(tǒng)設計的基礎(chǔ)上提出一種新穎的電路結(jié)構(gòu)并對其
    發(fā)表于 04-16 09:25 ?46次下載

    高速異步FIFO的設計與實現(xiàn)

    本文主要研究了用FPGA 芯片內(nèi)部的EBRSRAM 來實現(xiàn)異步FIFO 設計方案,重點闡述了異步FIFO 的標志信號——空/滿狀態(tài)的設計思路
    發(fā)表于 01-13 17:11 ?40次下載

    Camera Link接口的異步FIFO設計與實現(xiàn)

    介紹了異步FIFO在Camera Link接口中的應用,將Camera Link接口中的幀有效信號FVAL和行有效信號LVAL引入到異步FIFO的設計中。分析了FPGA中設計
    發(fā)表于 07-28 16:08 ?32次下載

    異步FIFO結(jié)構(gòu)及FPGA設計

    摘要:首先介紹異步FIFO的概念、應用及其結(jié)構(gòu),然后分析實現(xiàn)異步FIFO難點問題及其解決辦法;在傳統(tǒng)設計的基礎(chǔ)上提出一種新穎的電路結(jié)構(gòu)并對
    發(fā)表于 06-20 12:46 ?3959次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>結(jié)構(gòu)及FPGA設計

    異步FIFO結(jié)構(gòu)及FPGA設計

    異步FIFO結(jié)構(gòu)及FPGA設計,解決亞穩(wěn)態(tài)的問題
    發(fā)表于 11-10 15:21 ?4次下載

    異步FIFO的設計分析及詳細代碼

    本文首先對異步 FIFO 設計的重點難點進行分析,最后給出詳細代碼。 一、FIFO簡單講解 FIFO的本質(zhì)是RAM, 先進先出 重要參數(shù):
    發(fā)表于 11-15 12:52 ?8862次閱讀
    <b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>的設計分析及詳細代碼

    基于FPGA的異步FIFO設計方法詳解

    在現(xiàn)代電路設計中,一個系統(tǒng)往往包含了多個時鐘,如何在異步時鐘間傳遞數(shù)據(jù)成為一個很重要的問題,而使用異步FIFO可以有效地解決這個問題。異步FIFO
    發(fā)表于 07-17 08:33 ?8572次閱讀
    基于FPGA的<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>設計方法<b class='flag-5'>詳解</b>

    基于異步FIFO結(jié)構(gòu)原理

    問題一種簡便、快捷的解決方案。使用異步FIFO可以在兩個不同時鐘系統(tǒng)之間快速而方便地傳輸實時數(shù)據(jù)。在網(wǎng)絡接口、圖像處理等方面,異步FIFO
    發(fā)表于 02-07 14:22 ?0次下載
    基于<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>結(jié)構(gòu)原理

    異步FIFO之Verilog代碼實現(xiàn)案例

    同步FIFO的意思是說FIFO的讀寫時鐘是同一個時鐘,不同于異步FIFO異步FIFO的讀寫時鐘
    發(fā)表于 11-01 09:58 ?1883次閱讀

    異步fifo詳解

    異步fifo詳解 一. 什么是異步FIFO FIFO即First in First out的英文
    的頭像 發(fā)表于 12-12 14:17 ?4634次閱讀

    FIFO設計—異步FIFO

    異步FIFO主要由五部分組成:寫控制端、讀控制端、FIFO Memory和兩個時鐘同步端
    發(fā)表于 05-26 16:17 ?1771次閱讀
    <b class='flag-5'>FIFO</b>設計—<b class='flag-5'>異步</b><b class='flag-5'>FIFO</b>

    同步FIFO異步FIFO的區(qū)別 同步FIFO異步FIFO各在什么情況下應用

    同步FIFO異步FIFO的區(qū)別 同步FIFO異步FIFO各在什么情況下應用? 1. 同步
    的頭像 發(fā)表于 10-18 15:23 ?1982次閱讀