異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘 要隨著數(shù)字系統(tǒng)規(guī)模的不斷增大,單時(shí)鐘域設(shè)計(jì)會(huì)極大地限制數(shù)字系統(tǒng)性能,現(xiàn)代數(shù)字系統(tǒng)為了提升性能,常采用多時(shí)鐘域的設(shè)計(jì)??鐣r(shí)鐘域的信號(hào)在傳輸時(shí)會(huì)遇到亞穩(wěn)態(tài)現(xiàn)象,如何保持系統(tǒng)穩(wěn)定地傳輸數(shù)據(jù)是多時(shí)鐘域系統(tǒng)設(shè)計(jì)者重點(diǎn)關(guān)注的問(wèn)題,在跨時(shí)鐘域傳遞數(shù)據(jù)的系統(tǒng)中,常采用異步FIFO(First In First Out,先進(jìn)先出隊(duì)列)口來(lái)緩沖傳輸?shù)臄?shù)據(jù),以克服亞穩(wěn)態(tài)產(chǎn)生的錯(cuò)誤,保證數(shù)據(jù)的正確傳輸。常規(guī)的異步FIFO 設(shè)計(jì)采用先同步讀寫指針后比較產(chǎn)生空滿標(biāo)志和用先比較讀寫指針產(chǎn)生空滿標(biāo)志,再同步到相應(yīng)時(shí)鐘域的方法,但由于常規(guī)異步FIFO 模塊中的RAM 存儲(chǔ)器讀寫尋址指針常采用格雷碼計(jì)數(shù)器以及“空滿”控制邏輯

2、的存在,工作頻率低,面積大,將使通過(guò)這兩個(gè)模塊的信號(hào)通路延時(shí)對(duì)整個(gè)模塊的工作頻率造成制約。本文提出了一種新型異步FIFO 的設(shè)計(jì)方法,該方法省略“了滿”信號(hào)產(chǎn)生模塊和多余的存儲(chǔ)器位深來(lái)簡(jiǎn)化常規(guī)的FIFO 模塊,而只保留“空”信號(hào)產(chǎn)生模塊,避免使用大量的同步寄存器,減少了面積空間。FPGA 驗(yàn)證的結(jié)果表明,改進(jìn)后的異步 FIFO 性能有了顯著的提高。關(guān)鍵詞:現(xiàn)場(chǎng)可編程門陣列(FPGA ) 亞穩(wěn)態(tài) 空/滿標(biāo)志產(chǎn) 高速FIFOABSTRACTWith the increasing of digital system size, a single clock domain design will gr

3、eatly limit the digital system performance. To enhance the performance of modern digital systems, multiple clock domain design is conventionally adopted. While being transmitted, Cross-clock domain signals will come across the phenomenon of metastability, hence it will be a major concern for the mul

4、ti -clock domain system designers to probe how to maintain the system stability and to have data transmission conducted smoothly. As to the bus system data transmission in the system where the two data interface clocks dont match, one of super and effective solutions is to use asynchronous FIFO buff

5、er memory. How To solve the key and difficult issue that metastability and how to generate empty and full flag correctly in asynchronous FIFO design. Traditional FIFO design often synchronizes write/read address first, then compares them to generate empty/full signals or empty / full flag first comp

6、are the read and write pointer, and then synchronized to the clock domain, This design takes on too much area and can only work at a low frequency,this will allow the signaling pathways of these two modules delay caused by constraints of the operating frequency of the entire module. A new method of

7、asynchronous FIFO is proposed to overcome these problems, omit the "full" signal generator module and redundant memory bit depth to simplify the conventional FIFO module, leaving only the "empty" signal generation module,avoid the use of a large number of synchronization register

8、s, reducing the area of space. FPGA verification results show that the asynchronous FIFO improved performance has been significantly improved.Keywords: Field Programmable Gate Array (FPGA); Metastable; Mmpty / Full Flag production; High-speed FIFO目 錄摘 要IABSTRACTII第一章緒 論11.1研究背景和意義11.2研究現(xiàn)狀11.3本文的主要工作

9、31.4論文結(jié)構(gòu)3第二章 跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn)與實(shí)現(xiàn)方法42.1跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn)4亞穩(wěn)態(tài)問(wèn)題4亞穩(wěn)態(tài)產(chǎn)生的原因5亞穩(wěn)態(tài)的危害52.2 跨時(shí)鐘域的實(shí)現(xiàn)方法6同步器6握手機(jī)制9第三章 開(kāi)發(fā)環(huán)境113.1硬件平臺(tái)113.2軟件平臺(tái)11第四章 異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)134.1異步FIFO13異步FIFO工作原理13異步FIFO設(shè)計(jì)的難點(diǎn)144.2常見(jiàn)異步 FIFO 的設(shè)計(jì)164.2.1 讀寫地址產(chǎn)生邏輯18空/滿標(biāo)志的產(chǎn)生及代碼的實(shí)現(xiàn)19改進(jìn)的異步 FIFO 設(shè)計(jì)方法分析224.4高速異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)23常見(jiàn)FIFO模塊分析23高速異步FIFO 設(shè)計(jì)25第五章 結(jié) 論28第六章 參考文獻(xiàn)29

10、致 謝30附 錄 高速異步FIFO設(shè)計(jì)仿真分析31附1. 設(shè)計(jì)工作流程31附.1.1 設(shè)計(jì)輸入31附.1.2 設(shè)計(jì)編譯35附.1.3 設(shè)計(jì)仿真37第一章 緒 論1.1研究背景和意義作為21 世紀(jì)最重要的科學(xué)領(lǐng)域之一,超級(jí)計(jì)算機(jī)是體現(xiàn)科技競(jìng)爭(zhēng)力和綜合國(guó)力的重要標(biāo)志。各大國(guó)均把它作為國(guó)家科技創(chuàng)新的重要基礎(chǔ)設(shè)施,投入了巨資進(jìn)行研制和開(kāi)發(fā)。隨著科學(xué)技術(shù)的進(jìn)步,我國(guó)的超級(jí)計(jì)算機(jī)取得了高速的發(fā)展,2010 年11 月14 日,國(guó)際TOP500 組織在網(wǎng)站上公布了最新全球超級(jí)計(jì)算機(jī)前500 強(qiáng)排行榜,中國(guó)首臺(tái)千萬(wàn)億次超級(jí)計(jì)算機(jī)系統(tǒng)“天河一號(hào)”高居榜首。高性能微處理器是超級(jí)計(jì)算機(jī)的核心,高性能微處理器目前都采

11、用多核的結(jié)構(gòu),多核處理器是指在一個(gè)芯片內(nèi)集成多個(gè)處理核心而構(gòu)成的處理器,所謂“核心”,通常指包含指令部件、算術(shù)、邏輯部件、寄存器堆和一級(jí)或者二級(jí)緩存的處理單元?,F(xiàn)代數(shù)字系統(tǒng)的設(shè)計(jì)多采用全局異步,局部同步的設(shè)計(jì)方式,核心部件采用高頻設(shè)計(jì)為了提升性能,為了盡快地上市常常采用SoC 的設(shè)計(jì),集成成熟的IP,在同一芯片有多個(gè)時(shí)鐘域。在數(shù)字系統(tǒng)設(shè)計(jì)中,數(shù)據(jù)在不同模塊或系統(tǒng)間傳輸,而現(xiàn)代數(shù)字系統(tǒng)內(nèi)部采用多時(shí)鐘域設(shè)計(jì),導(dǎo)致數(shù)據(jù)進(jìn)行跨時(shí)鐘域傳輸。由于各系統(tǒng)數(shù)據(jù)總線上的傳輸速度不同而造成系統(tǒng)接口界面處出現(xiàn)數(shù)據(jù)輸入和輸出速度不同,就會(huì)發(fā)生數(shù)據(jù)傳輸速率不匹配的問(wèn)題,這會(huì)讓傳輸?shù)臄?shù)據(jù)產(chǎn)生錯(cuò)誤或者丟失,降低數(shù)據(jù)傳輸?shù)目?/p>

12、靠性,同時(shí)也會(huì)因?yàn)閷?duì)數(shù)據(jù)的復(fù)寫、丟棄而降低數(shù)據(jù)傳輸速率,因此需要在各系統(tǒng)接口界面處設(shè)計(jì)專用的電路來(lái)實(shí)現(xiàn)數(shù)據(jù)的高速高效傳輸。為了提高電路整體性能,設(shè)計(jì)者對(duì)數(shù)據(jù)傳輸率、數(shù)據(jù)吞吐量以及系統(tǒng)各部分接口之間不同數(shù)據(jù)傳輸速率以及帶寬的匹配有越來(lái)越高的要求,所以研究數(shù)據(jù)如何在異步時(shí)鐘域穩(wěn)定和快速地傳輸,具有非常重要的現(xiàn)實(shí)意義。1.2研究現(xiàn)狀隨著數(shù)字系統(tǒng)規(guī)模的不斷擴(kuò)大,跨時(shí)鐘域信號(hào)的同步器設(shè)計(jì)以及相應(yīng)的驗(yàn)證技術(shù),越來(lái)越被關(guān)注。目前的VLSI 設(shè)計(jì)進(jìn)入到SoC 時(shí)代,一個(gè)SoC 系統(tǒng)中一般含有多個(gè)時(shí)鐘域,如何在這些不同時(shí)鐘域之間進(jìn)行穩(wěn)定、可靠地傳輸成為設(shè)計(jì)人員所面臨的一個(gè)挑戰(zhàn)性的問(wèn)題。國(guó)內(nèi)外研究人員提出了異步握

13、手、異步包裝以及異步FIFO 等多種解決方案。實(shí)踐證明,采用異步FIFO 進(jìn)行跨時(shí)鐘域傳輸是非常有效、可靠的方法,在實(shí)際芯片設(shè)計(jì)中得到了廣泛的應(yīng)用。Clifford E.Cummings 在文獻(xiàn)1中提出了一種基于Gray 碼的異步FIFO 接口技術(shù)。同步多個(gè)異步輸入信號(hào)出現(xiàn)亞穩(wěn)態(tài)的概率遠(yuǎn)遠(yuǎn)大于同步一個(gè)異步信號(hào)的概率,解決這一問(wèn)題的有效方法是采用格雷碼。格雷碼是一種在相鄰計(jì)數(shù)數(shù)值之間只有一位發(fā)生變化的編碼方式,讀寫指針采用格雷碼的編碼方式,就可以盡可能地消除觸發(fā)器產(chǎn)生亞穩(wěn)態(tài)問(wèn)題。William J Dally 和John W Poulton 在文獻(xiàn)2中提出一個(gè)表示關(guān)于任意兩次故障出現(xiàn)的間隔時(shí)間期

14、望的平均無(wú)故障時(shí)間MTBF,一個(gè)系統(tǒng)亞穩(wěn)態(tài)的MTBF 是與系統(tǒng)頻率、器件速度之間的指數(shù)函數(shù)。同步器去采樣輸入的異步數(shù)據(jù),當(dāng)在第一級(jí)的時(shí)序器件出現(xiàn)亞穩(wěn)態(tài)的問(wèn)題時(shí),其輸出會(huì)出現(xiàn)一種不穩(wěn)定的中間值,并且這個(gè)時(shí)間受多種因素影響。當(dāng)?shù)诙€(gè)時(shí)序器件的采樣窗口到來(lái)的時(shí)候,在第二級(jí)輸入端口上的電平仍然處在可以使第二級(jí)出現(xiàn)亞穩(wěn)態(tài)的電平范圍內(nèi)的概率會(huì)變得很小,由計(jì)算公式表明,對(duì)于大多數(shù)的應(yīng)用問(wèn)題,兩級(jí)鎖存器同步失效的概率很小足以消除可能出現(xiàn)的亞穩(wěn)態(tài)情況。Vijay A. Nebhrajani 在文獻(xiàn)3中提出關(guān)于異步FIFO 的五種結(jié)構(gòu),分別從單時(shí)鐘結(jié)構(gòu),雙時(shí)鐘三種結(jié)構(gòu)和脈沖模式的FIFO 的結(jié)構(gòu)進(jìn)行了闡述。著重介

15、紹了怎樣設(shè)計(jì)異步FIFO,主要討論了異步FIFO 空滿標(biāo)志的產(chǎn)生方法。美國(guó)研究人員Tiberiu Chelcea,Steven M. Nowick,Xin Wang, Tapani Ahonen,Jari Numi 在文獻(xiàn)4,5中用寫/讀令牌環(huán)代替寫/讀指針,簡(jiǎn)化了“滿”/“空”狀態(tài)的檢測(cè),節(jié)省了編碼轉(zhuǎn)換邏輯以及同步器的延遲和面積開(kāi)銷,但是為了防止寫/讀溢出及死鎖,又引入了額外的控制邏輯,并且仍然存在可用空間的浪費(fèi)。日本研究人員Jeong-Gun Lee,Suk-Jin Kim,Kiseon Kim 在文獻(xiàn)6結(jié)合握手協(xié)議和行波流水技術(shù)實(shí)現(xiàn)了一種異步FIFO,降低了延遲和功耗,但其純異步電路實(shí)現(xiàn)

16、方式增大了設(shè)計(jì)的復(fù)雜度和應(yīng)用的難度。受國(guó)外研究熱潮的影響,近些年來(lái),國(guó)內(nèi)一些院校和科研單位也開(kāi)始對(duì)異步FIFO 展開(kāi)研究,主要研究有:中國(guó)科學(xué)院微電子研究所的博士生導(dǎo)師袁國(guó)順和張英武博士等人,共同設(shè)計(jì)實(shí)現(xiàn)了一款低功耗的異步FIFO,引入了門控時(shí)鐘技術(shù)降低了控制電路和譯碼電路80的功耗7,并采用位線分割技術(shù)降低了存儲(chǔ)單元38的功耗。利用格雷碼作異步FIFO 指針的控制電路,能有效地消除多時(shí)鐘域中的亞穩(wěn)態(tài)。國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院博士生導(dǎo)師陳書(shū)明、劉祥遠(yuǎn)博士,針對(duì)現(xiàn)有FIFO 設(shè)計(jì)方法的不足,提出一種新的異步FIFO 結(jié)構(gòu)8WG-FIFO,采用加權(quán)Gray 碼進(jìn)行指針編碼,采用實(shí)時(shí)狀態(tài)檢測(cè)器控制寫/

17、讀操作。模擬結(jié)果表明,在FIFO 深度為416 的情況下,該結(jié)構(gòu)與已有的FIFO 結(jié)構(gòu)相比在性能、面積開(kāi)銷以及寫讀操作效率等方面都獲得了明顯的改善。特別地,當(dāng)FIFO 的深度為8、寬度為32時(shí),相比B-FIFO,WG-FIFO 的最高時(shí)鐘頻率提高31.6,單元面積減少17.1,且寫/讀效率最大能提高47。東南大學(xué)周磊碩提出了一種新型結(jié)構(gòu)異步FIFO 電路的實(shí)現(xiàn)方案9,運(yùn)用整體移位實(shí)現(xiàn)數(shù)據(jù)正確寫入和輸出,使用緩沖寄存器組存放移位產(chǎn)生的多余數(shù)據(jù),適用于頻率不成整數(shù)倍的異步時(shí)鐘域之間的數(shù)據(jù)傳輸。利用串聯(lián)的D 觸發(fā)器作為同步器,避免產(chǎn)生亞穩(wěn)態(tài),實(shí)現(xiàn)異步信號(hào)的同步,采用自頂向下、基于0.18mm 標(biāo)準(zhǔn)單

18、元庫(kù)的半定制ASIC 流程對(duì)其進(jìn)行設(shè)計(jì)。該方案與常見(jiàn)的異步FIFO 實(shí)現(xiàn)方案進(jìn)行比較,面積大約減少一半,工作速度提高約三分之一。指針編碼不同程度地存在下列問(wèn)題:(1)寫/讀指針編碼轉(zhuǎn)換、計(jì)算的延時(shí)大,限制了寫/讀操作頻率。(2)跨時(shí)鐘域傳遞寫/讀指針需要大量的同步器,面積開(kāi)銷大。(3)由于同步器的延遲,導(dǎo)致FIFO 的狀態(tài)檢測(cè)保守,浪費(fèi)可用空間。綜上所述,國(guó)內(nèi)外關(guān)于異步FIFO 的設(shè)計(jì)與驗(yàn)證的研究,雖然取得了一定的成果,但是研究仍處于發(fā)展階段,跨時(shí)鐘域設(shè)計(jì)將面臨著更多的困難與挑戰(zhàn)。1.3本文的主要工作本文較為全面地討論了跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn),并論述了異步FIFO 的設(shè)計(jì)和驗(yàn)證過(guò)程,最后分別對(duì)常見(jiàn)

19、的異步FIFO 和改進(jìn)的異步FIFO 進(jìn)行了FPGA 驗(yàn)證綜合,并對(duì)綜合后的結(jié)果進(jìn)行了比較。其主要工作包括:1、針對(duì)FIFO設(shè)計(jì)的局限性,先簡(jiǎn)單地介紹了亞穩(wěn)態(tài)的工作原理,并詳細(xì)地分析了常規(guī)FIFO 口對(duì)模塊工作頻率制約的主要原因,然后結(jié)合FPGA優(yōu)秀的邏輯控制功能,及低功耗、高可靠性、可重構(gòu)性、開(kāi)發(fā)周期短和開(kāi)費(fèi)用低廉等特性,提出了一種在FPGA 內(nèi)實(shí)現(xiàn)高速異步FIFO 的方法。2、提出了基于DE2-70平臺(tái)的異步FIFO 的檢驗(yàn)方法,利用原理圖描述異步FIFO,對(duì)設(shè)計(jì)的異步FIFO進(jìn)行模塊化綜合驗(yàn)證,達(dá)到了預(yù)期的效果。1.4論文結(jié)構(gòu)本文共分六章,各章的組織如下:第一章,緒論,包括論文選題的背景

20、與意義、研究現(xiàn)狀及主要工作等;第二章,介紹跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn)和實(shí)現(xiàn)方法,介紹了亞穩(wěn)態(tài)的現(xiàn)象、產(chǎn)生的原因及危害和同步器及握手機(jī)制的實(shí)現(xiàn)方法;第三章,介紹本設(shè)計(jì)的開(kāi)發(fā)環(huán)境;第四章,對(duì)常規(guī)異步FIFO做了分析,提出高速異步FIFO的設(shè)計(jì)和實(shí)現(xiàn)方法;第五章,總結(jié)得出結(jié)論;第六章,參考文獻(xiàn);致謝附錄第二章 跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn)與實(shí)現(xiàn)方法在一般的 ASIC 設(shè)計(jì)中,比較常見(jiàn)的是同步時(shí)序設(shè)計(jì),即單時(shí)鐘的設(shè)計(jì),但是在實(shí)際應(yīng)用中,純粹的單時(shí)鐘設(shè)計(jì)并不能滿足 ASIC 設(shè)計(jì)的多方面需求,特別是所設(shè)計(jì)模塊需要與外圍設(shè)備通訊時(shí),跨時(shí)鐘域的數(shù)據(jù)傳輸是不可避免的。如果對(duì)這種情況估計(jì)不足或者缺乏足夠的了解將會(huì)使設(shè)計(jì)面臨重大的

21、隱患,甚至?xí)斐刹豢晒懒康膿p失。本章主要介紹跨時(shí)鐘域數(shù)據(jù)傳輸時(shí)容易出現(xiàn)的問(wèn)題與同步器設(shè)計(jì)的實(shí)現(xiàn)方法。2.1跨時(shí)鐘域設(shè)計(jì)的挑戰(zhàn)亞穩(wěn)態(tài)問(wèn)題隨著數(shù)字系統(tǒng)規(guī)模的不斷增大,一個(gè)系統(tǒng)通常與若干個(gè)子系統(tǒng)進(jìn)行通信,如 計(jì)算機(jī)會(huì)有并口、串口、USB 接口等各種不同種類的接口,可以連接不同的外部設(shè)備。由于外部設(shè)備與主機(jī)的時(shí)鐘不一致,跨時(shí)鐘域異步信號(hào)的可靠傳輸變得十分重要。在通信系統(tǒng)中,各個(gè)節(jié)點(diǎn)間時(shí)鐘不一致,節(jié)點(diǎn)間跨時(shí)鐘域的低誤碼率傳 輸極其重要. 跨時(shí)鐘信號(hào)傳輸是指某時(shí)鐘域內(nèi)的信號(hào)傳遞到另外一個(gè)或多個(gè)時(shí)鐘域,該信號(hào)對(duì)于另一個(gè)時(shí)鐘域來(lái)說(shuō),一般是異步的,即不能保證采樣時(shí)該信號(hào)是穩(wěn)定的,或者說(shuō)無(wú)法保證采樣點(diǎn)前后的建立和

22、保持時(shí)間。這種不穩(wěn)定性常常會(huì)造成不可預(yù) 測(cè)的錯(cuò)誤或干擾,致使硬件系統(tǒng)無(wú)法正常工作。在信號(hào)傳輸中,每種觸發(fā)器都有時(shí)序要求,對(duì)于使用上升沿觸發(fā)的觸發(fā)器來(lái) 說(shuō),建立時(shí)間(Setup Time)是在時(shí)鐘上升沿到來(lái)之前,觸發(fā)器數(shù)據(jù)保持穩(wěn)定的最小 時(shí)間,而保持時(shí)間(Hold Time)是在時(shí)鐘上升沿到來(lái)之后,觸發(fā)器數(shù)據(jù)還應(yīng)該保持 的最小時(shí)間29,在時(shí)鐘上升沿前后的這個(gè)窗口內(nèi)數(shù)據(jù)應(yīng)該保持不變,否則會(huì)使觸 發(fā)器工作在一個(gè)不確定的狀態(tài),即亞穩(wěn)態(tài)。當(dāng)觸發(fā)器處于亞穩(wěn)態(tài)且處于亞穩(wěn)態(tài)的時(shí)間超過(guò)了一個(gè)時(shí)鐘周期時(shí),這種不確定的狀態(tài)將會(huì)影響到下一級(jí)的觸發(fā)器,最 終導(dǎo)致連鎖反應(yīng),從而使整個(gè)系統(tǒng)功能失常,如圖 2.1 所示。當(dāng)一

23、個(gè)信號(hào)跨越某個(gè) 時(shí)鐘域時(shí),對(duì)新時(shí)鐘域的電路來(lái)說(shuō),它是一個(gè)異步信號(hào)。由于異步信號(hào)之間的時(shí) 序是毫無(wú)關(guān)系的,因此必然存在建立時(shí)間/保持時(shí)間(Setup Time/Hold Time)沖突.簡(jiǎn)單來(lái)說(shuō),亞穩(wěn)態(tài)就是指當(dāng)觸發(fā)器的建立時(shí)間和保持時(shí)間要求沒(méi)有得到滿足時(shí),觸發(fā)器就 會(huì)進(jìn)入一個(gè)介于邏輯 1 和邏輯 0 之間的第三種狀態(tài),換句話說(shuō),是指觸發(fā)器無(wú)法在某個(gè)規(guī)定時(shí)間段內(nèi)達(dá)到一個(gè)可確認(rèn)的狀態(tài)。當(dāng)一個(gè)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)時(shí),既無(wú)法預(yù)測(cè)該單元的輸出電平,也無(wú)法預(yù)測(cè)何時(shí)輸出才能穩(wěn)定在某個(gè)正確的電平上, 在這個(gè)穩(wěn)定期間,觸發(fā)器輸出一些中間級(jí)電平或者可能處于振蕩狀態(tài),并且這種 無(wú)效的輸出電平可以沿信號(hào)通道上的各個(gè)觸發(fā)器級(jí)

24、聯(lián)式傳播下去。 “?” “1” “? ” “0” dat adat bdat ” “?” “?” clka clkbclka adat clkb bdat 圖 2.1 異步時(shí)鐘和亞穩(wěn)態(tài)現(xiàn)象 亞穩(wěn)態(tài)產(chǎn)生的原因如果觸發(fā)器的建立時(shí)間或保持時(shí)間(setup time / hold time)不滿足時(shí),在同步系統(tǒng)中,亞穩(wěn)態(tài)現(xiàn)象就可能會(huì)出現(xiàn),此時(shí)觸發(fā)器的輸出端 Q,在有效時(shí)鐘沿之后, 很長(zhǎng)的一段時(shí)間里處于不確定的狀態(tài),在這段時(shí)間里 Q 端振蕩、毛刺、固定的某一電壓值,而不是等于數(shù)據(jù)輸入端 D 的值,這段之間成為決斷時(shí)間(resolution time)。經(jīng)過(guò)決斷時(shí)間(resolution time)之后,

25、Q 端將穩(wěn)定到 1 或 0 上,但是究竟是0 還是 1,這是隨機(jī)出現(xiàn)的,與輸入沒(méi)有因果聯(lián)系。亞穩(wěn)態(tài)的危害由于輸出在穩(wěn)定下來(lái)之前可能是振蕩、毛刺或固定的某一電壓值,因此亞穩(wěn)態(tài)除了導(dǎo)致邏輯誤判之外,輸出0到 1之間的中間電壓值還會(huì)使下一級(jí)產(chǎn)生亞穩(wěn)態(tài)現(xiàn)象。在電路設(shè)計(jì)中,邏輯誤判有可能通過(guò)特殊設(shè)計(jì)減輕其危害,但亞穩(wěn)態(tài)現(xiàn)象的傳播擴(kuò)大了故障面,難以處理。只要系統(tǒng)中有異步元器件,亞穩(wěn)態(tài)現(xiàn)象就會(huì)出現(xiàn)的,因此設(shè)計(jì)的電路首先要盡可能減少亞穩(wěn)態(tài)引發(fā)錯(cuò)誤的概率,其次要使系統(tǒng)對(duì)產(chǎn)生的錯(cuò)誤不受其影響。常用用同步器來(lái)減少亞穩(wěn)態(tài)發(fā)生的概率。2.2 跨時(shí)鐘域的實(shí)現(xiàn)方法SoC(System on chip,SoC)技術(shù)的廣泛應(yīng)用

26、,芯片的高性能和低功耗的需求, 芯片的多個(gè)部件通常工作在不同頻率的異步時(shí)鐘域中??鐣r(shí)鐘域(Clock Domain Crossing,CDC)的數(shù)據(jù)傳輸電路被稱為跨時(shí)鐘域設(shè)計(jì),其功能的正確性是 SoC 系 統(tǒng)芯片各跨時(shí)鐘域部件間正確傳輸數(shù)據(jù)的基礎(chǔ)。在跨時(shí)鐘域路徑上傳遞信號(hào)不正 確的設(shè)計(jì)可能產(chǎn)生三種情況,一種是產(chǎn)生亞穩(wěn)態(tài)(Metability),該路徑終點(diǎn)寄存 器的建立或保持時(shí)間違例(Setup/Hold Timing Violation),從而引起寄存器的輸入 端進(jìn)入亞穩(wěn)態(tài)狀態(tài);另一種是數(shù)據(jù)保持時(shí)間(Hold Time)不足,產(chǎn)生數(shù)據(jù)丟失,例 如來(lái)自一個(gè)快時(shí)鐘域的信號(hào)不能夠被慢時(shí)鐘域的時(shí)鐘采樣

27、到;最后一種是數(shù)據(jù)聚 合(Re-convergence),一組被同步的控制信號(hào)再次匯聚時(shí)丟失或重復(fù)采樣。對(duì)于第一種情況,如果是單根控制信號(hào),最簡(jiǎn)單的解決方法是采用兩級(jí)同步器;對(duì)于第二、三種可采用異步 FIFO,帶使能的同步器,握手協(xié)議等方法??鐣r(shí)鐘域信號(hào)同步器的設(shè)計(jì),通常用同步器或增加握手信號(hào)可以實(shí)現(xiàn)。同步器跨時(shí)鐘域信號(hào)同步器的設(shè)計(jì),通常的實(shí)現(xiàn)方法有以下幾種:1、兩級(jí)同步器:解決跨時(shí)鐘域設(shè)計(jì)問(wèn)題的基本方法是同步器,同步器是將幾個(gè)用本地時(shí)鐘驅(qū) 動(dòng)的時(shí)序器件串聯(lián)起來(lái),去采樣輸入的異步數(shù)據(jù),當(dāng)在第一級(jí)的時(shí)序器件出現(xiàn)亞 穩(wěn)態(tài)的問(wèn)題時(shí),其輸出會(huì)出現(xiàn)一種不穩(wěn)定的中間值,并且這個(gè)時(shí)間受多種因素影 響,或者說(shuō)

28、這個(gè)輸出在高電平到低電平之間滿足一定形式的概率分布。當(dāng)?shù)诙€(gè) 時(shí)序器件的采樣窗口到來(lái)的時(shí)候,在第二級(jí)輸入端口上的電平仍然處在可以使第 二級(jí)出現(xiàn)亞穩(wěn)態(tài)的電平范圍內(nèi)的概率會(huì)變得很小,如果再加上第三級(jí),在第三級(jí) 上的這個(gè)概率幾乎可以忽略不計(jì)。從數(shù)學(xué)上講,每個(gè)時(shí)序器件的亞穩(wěn)態(tài)的出現(xiàn)都 有一定的概率,如果多個(gè)期間串聯(lián),總概率是各自概率的積,因此增加期間,會(huì) 消除“亞穩(wěn)態(tài)”,但是這里的消除是指降低不穩(wěn)定的時(shí)間,使得輸出電平的穩(wěn)定時(shí)間接近時(shí)鐘周期。至于能否采樣到正確的邏輯,則基本取決于第一個(gè)時(shí)序器件的輸出??鐣r(shí)鐘域的核心問(wèn)題是亞穩(wěn)態(tài)現(xiàn)象,最簡(jiǎn)單的同步器設(shè)計(jì)加在該路徑終點(diǎn)寄存器,同步器設(shè)計(jì)為兩個(gè)背靠背的兩級(jí)觸

29、發(fā)器,適用于慢時(shí)鐘到 快時(shí)鐘域的單根控制信號(hào)的同步。雖然同步器可以消除亞穩(wěn)態(tài)現(xiàn)象,但其輸出體 現(xiàn)輸入變化的明確時(shí)鐘周期仍然不可預(yù)測(cè),這種不確定性是跨時(shí)鐘域設(shè)計(jì)中功能 錯(cuò)誤的本質(zhì)原因,值得注意的是電平信號(hào)同步轉(zhuǎn)換,有效電平必須保持或大于 2個(gè)目的時(shí)鐘周期,否則可能會(huì)丟掉,如圖 2.4 所示 sigin D clkin Q D Q D Q sinout clkout圖 2.4 二級(jí)同步信號(hào)轉(zhuǎn)換邏輯 sigin D R1 R2 R3 Clkin Q D Q D Q RI Step time hold time clkout Cycle 1 R2 cycle2 cycle3 R3 圖 2.5 跨時(shí)鐘域

30、信號(hào)的亞穩(wěn)態(tài)現(xiàn)象如圖 2.5 所示,兩級(jí)寄存器組成的同步器,其輸出信號(hào) R3 雖然不存在亞穩(wěn)態(tài)現(xiàn)象,但 R3 體現(xiàn) R1 變化的時(shí)鐘周期可能在 Cycle 2 也可能在 Cycle 3,這種不確定性是跨時(shí)鐘域設(shè)計(jì)中功能錯(cuò)誤的本質(zhì)原因,采用二級(jí)同步器的方式,R1 信號(hào)的有效時(shí)間是 Cycle 1,正確使用 R3 信號(hào)時(shí)間是 Cycle 4,電平信號(hào)同步轉(zhuǎn) 換,有效電平必須保持或大于持 2 個(gè)目的時(shí)鐘周期,否則可能會(huì)丟掉,適合于慢時(shí)鐘域到快時(shí)鐘域的單根控制信號(hào)的同步。2、采用格雷碼的同步轉(zhuǎn)換器適合于單根有效信號(hào)的轉(zhuǎn)換,如圖2.7 所示二進(jìn)制計(jì)數(shù)器的位寬與源時(shí)鐘、目的時(shí)鐘的頻差有關(guān)系,位寬log2(

31、clkin/clkout),適合高速時(shí)鐘域進(jìn)入低速時(shí)鐘域應(yīng)用的場(chǎng)合:如數(shù)據(jù)傳輸?shù)挠行盘?hào)和適合于跨時(shí)鐘域的遞增指針的傳輸。 sigin binary binary Counter counter clkin clkout full compare D Q D Q D Q compare sigout clkin clkout圖2.7 采用格雷碼的二級(jí)同步信號(hào)轉(zhuǎn)換邏輯3、采用格雷碼編碼的數(shù)據(jù)總線同步器:數(shù)據(jù)有效信號(hào)采用格雷編碼轉(zhuǎn)換邏輯, 產(chǎn)生目的時(shí)鐘域的數(shù)據(jù)使能信號(hào),這種類型主要用于寄存器通路中,同步后的讀寫使能信號(hào)作為同步使能信號(hào),對(duì)地址和數(shù)據(jù)進(jìn)行同步,如圖 2.9 所示 Source clo

32、ck domainack Destination clock domainGraycode synchronizersrc_vld D Gray code synchronizerdst_vld D Q src_addD Qm bitsen dst_addD src_clksrc_dataD Qn bitsst_clkenD dst_dataQ 圖 2.9 采用使能信號(hào)的同步器的邏輯4、不帶應(yīng)答的數(shù)據(jù)總線同步器:跨時(shí)鐘域數(shù)據(jù)總線的傳輸,數(shù)據(jù)使能信號(hào)通 過(guò)脈沖同步器完成,特別適用于目的時(shí)鐘大于源時(shí)鐘域頻率 3 倍以上的,低速時(shí) 鐘域進(jìn)入高速時(shí)鐘域應(yīng)用的場(chǎng)合,源時(shí)鐘域發(fā)送數(shù)據(jù)時(shí),前一個(gè)數(shù)據(jù)一定被目

33、的 時(shí)鐘域接收。數(shù)據(jù)總線輸入同步器和輸出同步器都是棧進(jìn)棧出,利于定義約束文件,如圖 2.10 所示。 datasrc_data D Q dst_data dst_valid D Qsrc_valid D Q Qclkin D Q D Q D clkout圖 2.10 不帶應(yīng)答的數(shù)據(jù)總線同步器5、適用于低速時(shí)鐘域進(jìn)入高速時(shí)鐘域應(yīng)用的場(chǎng)合的脈沖同步器,如圖 2.11 所示。sigoutsigin DclkinQ D Q D Q Clkout 圖 2.11 脈沖同步器信號(hào)邏輯典型的同步器有電平同步器、邊沿檢測(cè)同步器、脈沖同步器等,雖然它們都可以消除亞穩(wěn)態(tài)現(xiàn)象,但是其輸出體現(xiàn)輸入變化的確切時(shí)鐘周期仍然

34、不可預(yù)測(cè)的。2.2.2握手機(jī)制跨時(shí)鐘域數(shù)據(jù)總線的傳輸,數(shù)據(jù)的使能信號(hào)通過(guò)握手信號(hào)完成。握手信號(hào)是 指由源電路聲明,發(fā)送到目的電路的請(qǐng)求信號(hào)。目的電路檢測(cè)該請(qǐng)求信號(hào),判斷 其有效性,然后聲明它的響應(yīng)信號(hào)反饋給源電路。在電路實(shí)現(xiàn)中,源電路請(qǐng)求后 一定有應(yīng)答;請(qǐng)求信號(hào)有效的過(guò)程,數(shù)據(jù)總保持穩(wěn)定。信號(hào)轉(zhuǎn)換邏輯,如圖 2.15所示。對(duì)全握手信號(hào),雙方電路在聲明或中止各自的握手信號(hào)前都要等待對(duì)方的響應(yīng),第一步,電路A 聲明它的請(qǐng)求信號(hào),第二步,電路B 檢測(cè)到該請(qǐng)求信號(hào)有效后,聲明它的響應(yīng)信號(hào),當(dāng)電路A 檢測(cè)到響應(yīng)信號(hào)有效后,中止自己的請(qǐng)求信號(hào),第三步,當(dāng)電路B 檢測(cè)到請(qǐng)求無(wú)效后,它中止自己的響應(yīng)信號(hào),除非

35、電路A 檢測(cè)到無(wú)效的響應(yīng)信號(hào),否則它不會(huì)再聲明新的請(qǐng)求信號(hào)。data busD Qdata_outD Qen enreq_clkSenderHandshakeFSMREQack_clkACK F FF FF FF FF FF FF FQ DQ DReceiverHandshake FSMack_clkreq_clk圖2.15 握手協(xié)議信號(hào)轉(zhuǎn)換邏輯當(dāng)使用部分握手信號(hào)方式時(shí),響應(yīng)的電路必須以正確的時(shí)序產(chǎn)生它的信號(hào)。如果響應(yīng)電路要求先處理完一個(gè)請(qǐng)求,然后才能處理下一個(gè)請(qǐng)求,則響應(yīng)信號(hào)的時(shí)序就很重要,電路用它的響應(yīng)信號(hào)來(lái)指示它的處理任務(wù)何時(shí)完成。第一種部分握手方法混合了電平與脈沖信號(hào),而第二種方法則只

36、使用脈沖信號(hào)。這些握手協(xié)議使用的都是跨越時(shí)鐘域的單一信號(hào),但當(dāng)幾組信號(hào)要跨越時(shí)鐘域時(shí),設(shè)計(jì)人員就需要使用較復(fù)雜的信號(hào)傳送方法。本文將在第四章進(jìn)一步完成異步FIFO的設(shè)計(jì)。第三章 開(kāi)發(fā)環(huán)境3.1硬件平臺(tái)隨著FPGA的不斷發(fā)展,尤其是如今許多高端FPGA的高密度、高性能以及豐富的特性,高端芯片系統(tǒng)(SoC)設(shè)計(jì)都選擇了業(yè)界效率最高、性能最好的邏輯、嵌入式存儲(chǔ)器和DSP功能的Stratix系列的FPGA。而這些高端的FPGA的開(kāi)發(fā)平臺(tái)也不得不隨之不斷地改進(jìn)和升級(jí),以滿足高端FPGA設(shè)計(jì)的最佳解決方案。與各種FPGA的開(kāi)發(fā)平臺(tái)相比,Altera DE2-70 多媒體開(kāi)發(fā)板配備了數(shù)量高達(dá)70,000 個(gè)

37、邏輯單元的Altera Cyclone. II 2C70 和更大容量的記憶體元件,并完全承襲了Altera DE2 多媒體平臺(tái)豐富的多媒體、儲(chǔ)存及網(wǎng)路等應(yīng)用介面的優(yōu)點(diǎn)。Altera DE2-70 最新多媒體開(kāi)發(fā)平臺(tái)提供使用者豐富的產(chǎn)品功能,在廣泛的電路設(shè)計(jì)運(yùn)用上,從簡(jiǎn)易的電路設(shè)計(jì),到多樣化的多媒體專案,使用者都能輕易完成。DE2-70 擁有顯示器、視訊輸出接口、音訊輸入出、輸入按鈕、額外的存儲(chǔ)存空間等配件,能夠從事更為廣泛的硬體設(shè)計(jì);且其開(kāi)發(fā)板可獨(dú)立運(yùn)作的特性,也更適合嵌入式系統(tǒng)相關(guān)硬體的開(kāi)發(fā)。本設(shè)計(jì)就是基于DE2-70開(kāi)發(fā)平臺(tái)來(lái)完成異步FIFO的設(shè)計(jì)的。3.2軟件平臺(tái)Quartus II 是

38、Altera公司的綜合性PLD/FPGA開(kāi)發(fā)軟件,是Altera前一代FPGACPLD集成開(kāi)發(fā)環(huán)境MAX+plus II的更新?lián)Q代產(chǎn)品。支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整PLD設(shè)計(jì)流程,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便的進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Quartus II提供了完整的平臺(tái)的設(shè)計(jì)環(huán)境,能夠滿足各種特定的設(shè)計(jì)需要,設(shè)計(jì)工具完全支持VHDL、Verilog的設(shè)計(jì)流程,其內(nèi)部嵌有VHDL、Ve

39、rilog邏輯綜合器。Quartus II也可以第三方的綜合工具,如Leonardo Spectrum、Synplify Pro、FPGA Complier,并能直接調(diào)用這些工具。同樣,Quartus II具備仿真功能,同時(shí)也支持第三方的仿真工具,如ModelSim。此外,Quartus II與MATLAB和DSP Buider結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開(kāi)發(fā)。Quartus II包括塊化的編譯器。編譯器包括的公共模塊有分析綜合器(Analysis&Synthesis)適配器(Fitter)、裝配器(Assembler)、時(shí)序分析器(Timing Analyzer)、設(shè)計(jì)輔助

40、模塊、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編譯數(shù)據(jù)庫(kù)接口等。Quartus II 還包含許多十分有用的LPM(Library of Parameterized Moudles)模塊,它們是復(fù)雜或高級(jí)系統(tǒng)的重要組成部分,在SOPC設(shè)計(jì)中被大量使用。Quartus II軟件的功能特性如下:Quartus II提供了完全集成且與電路結(jié)構(gòu)無(wú)關(guān)的開(kāi)發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計(jì)的全部特性,包括: 可利用原理圖、結(jié)構(gòu)框圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計(jì)實(shí)體文件; 芯片(電路)平面布局連線編輯; LogicLock增量設(shè)計(jì)方法,用戶可建立并優(yōu)化系

41、統(tǒng),然后添加對(duì)原始系統(tǒng)的性能影響較小或無(wú)影響的后續(xù)模塊; 功能強(qiáng)大的邏輯綜合工具; 完備的電路功能仿真與時(shí)序邏輯仿真工具; 定時(shí)/時(shí)序分析與關(guān)鍵路徑延時(shí)分析; 可使用SignalTap II邏輯分析工具進(jìn)行嵌入式的邏輯分析; 支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來(lái)生成編程文件; 使用組合編譯方式可一次完成整體設(shè)計(jì)流程; 自動(dòng)定位編譯錯(cuò)誤; 高效的期間編程與驗(yàn)證工具; 可讀入標(biāo)準(zhǔn)的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件; 能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。Quartus II還擁有良好的設(shè)計(jì)輸入定位器,用于確定文本或圖形設(shè)計(jì)中的錯(cuò)誤。

42、在進(jìn)行編譯后,可對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真,編譯和仿真無(wú)誤后,便可以將下載信息通過(guò)Quartus II提供的編程器下載到目標(biāo)器件中了。有了Quartus II強(qiáng)大功能的平臺(tái)支持,就可方便快捷高效地實(shí)現(xiàn)異步FIFO的設(shè)計(jì)和實(shí)現(xiàn)了。第四章 異步FIFO的設(shè)計(jì)與實(shí)現(xiàn)4.1異步FIFO 設(shè)計(jì)同步化是當(dāng)今集成電路設(shè)計(jì)的主導(dǎo)思想之一,即采用同一個(gè)時(shí)鐘來(lái)控制 所有時(shí)鐘控制器件,然而在實(shí)際的數(shù)字系統(tǒng)中,完全同步化的設(shè)計(jì),實(shí)現(xiàn)起來(lái)非 常困難,多數(shù)情況下,完成數(shù)據(jù)在不同時(shí)鐘域間的傳輸是不可避免的。因此,如 何保持系統(tǒng)順利、穩(wěn)定地完成數(shù)據(jù)的傳輸是一個(gè)極其重要的問(wèn)題,通常解決這一問(wèn)題的做法是采用對(duì)每位信號(hào)增加握手信號(hào)或加同步

43、器,但是這樣會(huì)影響傳輸速 度和增加系統(tǒng)的復(fù)雜度。本文在兩個(gè)時(shí)鐘域的交界處增加一個(gè)異步 FIFO,通過(guò)它來(lái)實(shí)現(xiàn)數(shù)據(jù)流的傳輸。然而,常見(jiàn)的異步FIFO 設(shè)計(jì)采用同步讀寫地址后比較產(chǎn)生空滿標(biāo)志的方法,面積大、工作頻率低。本章將通過(guò)優(yōu)化格雷碼編碼電路來(lái)改進(jìn) 常見(jiàn)的異步 FIFO 設(shè)計(jì),減少面積空間,提升工作頻率 寫地址產(chǎn)生 雙口RAM 讀地址產(chǎn)生 full wr_clk empty wr_en wr_adder wr_clk rd_addr rd_clk wt_en wr_adder rd_adder wr_adder rd_adder rd_en圖3.1 異步FIFO內(nèi)部模塊和接口信號(hào)4.1.1異步

44、FIFO工作原理異步FIFO 的工作原理如圖1 所示。一般可以分為4個(gè)模塊: 寫地址模塊、讀地址模塊、數(shù)據(jù)存儲(chǔ)模塊以及空/滿標(biāo)志位產(chǎn)生模塊。數(shù)據(jù)存儲(chǔ)模塊在FPGA 中是一個(gè)雙口RAM, 可以同時(shí)進(jìn)行讀寫操作。整個(gè)系統(tǒng)分為兩個(gè)完全獨(dú)立的時(shí)鐘域: 讀時(shí)鐘域和寫時(shí)鐘域。由圖 可以看寫地址產(chǎn)生模塊根據(jù)寫時(shí)鐘和寫有效信號(hào)產(chǎn)生遞增的寫地址, 讀地址產(chǎn)生模塊根據(jù)讀時(shí)鐘和讀有效信號(hào)產(chǎn)生遞增的讀地址。在FIFO 中的具體實(shí)現(xiàn)過(guò)程為: 在寫時(shí)鐘的上升沿, 當(dāng)寫使能有效, 將數(shù)據(jù)寫入到雙口RAM 的寫地址對(duì)應(yīng)位置; 在讀時(shí)鐘的上升沿, 讀使能有效的時(shí)候, 始終將讀地址對(duì)應(yīng)的雙口RAM 中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上。空

45、/ 滿標(biāo)志位產(chǎn)生模塊是由讀寫地址相互比較生成空/滿標(biāo)志。異步FIFO 存儲(chǔ)器的接口信號(hào)如圖3.1 所示, 包括異步的寫時(shí)鐘( wrclk) 、讀時(shí)鐘( rd_ clk) 、與寫時(shí)鐘同步的寫有效( wr _en) 、寫數(shù)據(jù)( wr _data) 、及與讀時(shí)鐘同步的讀有效( rd_en) 、讀數(shù)據(jù)( rd_ data) . 為了實(shí)現(xiàn)正確的讀寫和避免異步FIFO 存儲(chǔ)器的上溢或下溢, 給出的與讀時(shí)鐘和寫時(shí)鐘同步的FIFO 的空標(biāo)志( empty) 、滿標(biāo)志( full) 以禁止非法讀、寫操作. 由圖4 可以看出, 寫地址產(chǎn)生模塊根據(jù)寫時(shí)鐘和寫有效信號(hào)產(chǎn)生遞增的寫地址, 讀地址產(chǎn)生模塊根據(jù)讀時(shí)鐘和讀有

46、效信號(hào)產(chǎn)生遞增的讀地址. 在寫時(shí)鐘wr_ clk 的上升沿, 當(dāng)wr _en 有效時(shí), 將wr_data 寫入雙口RAM 中寫地址對(duì)應(yīng)的位置中; 并始終將讀地址對(duì)應(yīng)的雙口RAM 中的數(shù)據(jù)輸出到讀數(shù)據(jù)總線上, 從而實(shí)現(xiàn)了先進(jìn)先出的功能.當(dāng)讀寫地址的差值等于一個(gè)預(yù)設(shè)值的時(shí)候,空/滿信號(hào)被置位。這種實(shí)現(xiàn)方法邏輯簡(jiǎn) 單,但它是減法器形成的一個(gè)比較大的組合邏輯,因而限制了 FIFO 的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。圖3.3 是另外一種設(shè)計(jì),比較器只對(duì)讀寫地址比較是否相等。在讀寫地址相等的時(shí)候無(wú)法判斷空滿狀態(tài),所以附加了一個(gè)并行的區(qū)間判斷邏輯來(lái)指示是空還是滿。這個(gè)區(qū)間判斷邏輯

47、將整個(gè)地址空間分為幾個(gè)部分,以指示讀寫地址的相對(duì)位置,這種做法提高了整個(gè)電路的速度,但是其缺點(diǎn)主要是直接采用讀寫地址是否相等的比較邏輯來(lái)進(jìn)行空/滿標(biāo)志的判斷,在某些時(shí)候有可能帶來(lái)誤判。寫地址 比較器 讀地址 空/滿標(biāo)志 判斷邏輯 區(qū)間指示器圖3.3 帶區(qū)間指示的FIFO 標(biāo)志產(chǎn)生邏輯4.1.2異步FIFO設(shè)計(jì)的難點(diǎn)異步 FIFO 是一個(gè)經(jīng)典的跨時(shí)鐘域設(shè)計(jì),蘊(yùn)含很多跨時(shí)鐘域設(shè)計(jì)方法,具有 兩大特點(diǎn)。一是單個(gè)信號(hào)跨時(shí)鐘域,由于兩個(gè)時(shí)鐘不同,跨時(shí)鐘信號(hào)不能滿足新 時(shí)鐘的建立和保持時(shí)間所造成的亞穩(wěn)態(tài)問(wèn)題。二是多個(gè)控制狀態(tài)信號(hào)的跨時(shí)鐘傳 遞。具體地說(shuō),就是把一組信號(hào)傳遞到另外一個(gè)時(shí)鐘域的時(shí)候,這一組信號(hào)

48、可能 因?yàn)檠舆t不同,這樣到達(dá)新時(shí)鐘域之后,得到的數(shù)據(jù)相差一個(gè)老時(shí)鐘域的時(shí)鐘周 期。在異步 FIFO 中,需要傳遞的是一個(gè)計(jì)數(shù)器,這個(gè)計(jì)數(shù)器可以編碼成格雷碼, 這樣的編碼每次只變化一個(gè)位,避免了多個(gè)跨時(shí)鐘域信號(hào)同時(shí)變化。值得注意的 是,這里對(duì)格雷碼的相對(duì)延遲和相關(guān)的時(shí)鐘周期有一個(gè)要求,這就是異步 FIFO 中最關(guān)鍵的一點(diǎn)。多位同步信號(hào)轉(zhuǎn)換主要適用在異步 FIFO 這樣的邏輯,其讀寫指針在進(jìn)行時(shí)鐘 域轉(zhuǎn)換時(shí),首先要將其轉(zhuǎn)換為格雷碼形式,再進(jìn)行轉(zhuǎn)換。在寄存器通路中,讀寫 使能信號(hào)也通過(guò)本方式進(jìn)行同步,值得注意的是,異步 FIFO 的描述與域庫(kù)器件的 邏輯描述相關(guān),器件選型后,規(guī)范統(tǒng)一異步 FIFO

49、的描述,異步 FIFO 的同步信號(hào) 轉(zhuǎn)換邏輯,如圖 3.4 所示。 data_in data_ out Register D Qfile waddr clk_rdraddr wr Binary Binarycounte counter rdwr_clk rd_clk D D D D Q DQdata_vld full compare Q Q Q Q compare D wr_clk rd_clk rd_clk圖 3.4 異步 FIFO 的同步信號(hào)轉(zhuǎn)換邏輯計(jì)者使用異步 FIFO 有兩個(gè)目的:速度匹配或數(shù)據(jù)寬度匹配。在速度匹配時(shí), 異步 FIFO 較快的端口處理猝發(fā)的數(shù)據(jù)傳輸,而較慢的端口則維持恒定的數(shù)據(jù)流。 雖然訪問(wèn)方式和速度不同,但是進(jìn)出異步 FIFO 的平均數(shù)據(jù)速率必須是相同的, 否則異步 FIFO 就會(huì)出現(xiàn)上溢或下溢問(wèn)題。在速度匹配應(yīng)用中,每個(gè)端口(讀或?qū)懀?的時(shí)鐘不同。異步 FIFO 中的寄存器使用寫端口時(shí)鐘,就像保持

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論