基于veriloghdl的異步FIFO設(shè)計(jì)說(shuō)明_第1頁(yè)
基于veriloghdl的異步FIFO設(shè)計(jì)說(shuō)明_第2頁(yè)
基于veriloghdl的異步FIFO設(shè)計(jì)說(shuō)明_第3頁(yè)
基于veriloghdl的異步FIFO設(shè)計(jì)說(shuō)明_第4頁(yè)
基于veriloghdl的異步FIFO設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 PAGE38 / NUMPAGES38題 目 基于verilog hdl的異步FIFO設(shè)計(jì) 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說(shuō)明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個(gè)人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作與取得的成果。盡我所知,除文中特別加以標(biāo)注和致的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過(guò)的研究成果,也不包含我為獲得與其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人或集體,均已在文中作了明確的說(shuō)明并表示了意。作 者 簽 名:日 期:指導(dǎo)教師簽名: 日期:使用授權(quán)說(shuō)明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交

2、畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝 ⒖s印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)??梢怨颊撐牡牟糠只蛉咳?。作者簽名: 日 期:學(xué)位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的容外,本論文不包含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫(xiě)的成果作品。對(duì)本文的研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中以明確方式標(biāo)明。本人完全意識(shí)到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文使用授權(quán)書(shū)本學(xué)位論文作者完全了解學(xué)校有

3、關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國(guó)家有關(guān)部門(mén)或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。涉密論文按學(xué)校規(guī)定處理。作者簽名:日期: 年 月 日導(dǎo)師簽名: 日期: 年 月 日注意事項(xiàng)1.設(shè)計(jì)(論文)的容包括:1)封面(按教務(wù)處制定的標(biāo)準(zhǔn)封面格式制作)2)原創(chuàng)性聲明3)中文摘要(300字左右)、關(guān)鍵詞4)外文摘要、關(guān)鍵詞5)目次頁(yè)(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致9)附錄(對(duì)論文支持必要時(shí))2.論文字?jǐn)?shù)要求:理工

4、類(lèi)設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬(wàn)字(不包括圖紙、程序清單等),文科類(lèi)論文正文字?jǐn)?shù)不少于1.2萬(wàn)字。3.附件包括:任務(wù)書(shū)、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語(yǔ)言流暢,書(shū)寫(xiě)字跡工整,打印字體與大小符合要求,無(wú)錯(cuò)別字,不準(zhǔn)請(qǐng)他人代寫(xiě)2)工程設(shè)計(jì)類(lèi)題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國(guó)家技術(shù)標(biāo)準(zhǔn)規(guī)。圖表整潔,布局合理,文字注釋必須使用工程字書(shū)寫(xiě),不準(zhǔn)用徒手畫(huà)3)畢業(yè)論文須用A4單面打印,論文50頁(yè)以上的雙面打印4)圖表應(yīng)繪制于無(wú)格子的頁(yè)面上5)軟件工程類(lèi)課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書(shū)、

5、開(kāi)題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂基于Verilog HDL的異步FIFO設(shè)計(jì)與實(shí)現(xiàn)摘 要在現(xiàn)代IC設(shè)計(jì)中,特別是在模塊與外圍芯片的通信設(shè)計(jì)中,多時(shí)鐘域的情況不可避免。當(dāng)數(shù)據(jù)從一個(gè)時(shí)鐘域傳遞到另一個(gè)域,并且目標(biāo)時(shí)鐘域與源時(shí)鐘域不相關(guān)時(shí),這些域中的動(dòng)作是不相關(guān)的,從而消除了同步操作的可能性,并使系統(tǒng)重復(fù)地進(jìn)入亞穩(wěn)定狀態(tài),造成系統(tǒng)時(shí)鐘時(shí)序上的紊亂。為了有效的解決這個(gè)問(wèn)題,我們采用一種異步FIFO(先進(jìn)先 出)存儲(chǔ)器來(lái)實(shí)現(xiàn)。本文提出一種新穎的異步FIFO設(shè)計(jì)方案,它通過(guò)先比較讀寫(xiě)地址并結(jié)合象限檢測(cè)法產(chǎn)生異步的空/滿(mǎn)標(biāo)志,再把異步的空/滿(mǎn)標(biāo)志同步到相應(yīng)的時(shí)鐘域。通過(guò)仿真驗(yàn)證,該方法是穩(wěn)定有

6、效的。關(guān)鍵詞:異步;FIFO;亞穩(wěn)態(tài);格雷碼;結(jié)繩法Design and accomplishasynchronous FIFO based on Verilog HDLAbstractIn modern IC design, particularly in the communications module and peripheral chip design, multiple clock domains of the inevitable. When data passes from one clock domain to another domain, and the target c

7、lock domains are not associated with the source clock domain, these domains are not related movements, thus eliminating the possibility of simultaneous operation and allows the system to enter the sub-repeat steady-state, causing disorder on the system clock timing. In order to effectively solve thi

8、s problem, we use a asynchronous FIFO (FIFO) memory to achieve. This paper proposes a novel asynchronous FIFO design, which compared reading and writing through the first address and generate an asynchronous combination of quadrant detection empty / full flag, then asynchronous empty / full flag syn

9、chronized to the corresponding clock domain. The simulation results that the method is stable and effective.Key Words: asynchronous; FIFO; metastable state; Gray code; tie knots France目 錄 TOC o 1-4 h z u HYPERLINK l _Toc2468487701 引言 PAGEREF _Toc246848770 h 1HYPERLINK l _Toc2468487711.1 FIFO研究意義 PAG

10、EREF _Toc246848771 h 1HYPERLINK l _Toc2468487721.2 生產(chǎn)需求狀況 PAGEREF _Toc246848772 h 1HYPERLINK l _Toc2468487731.3 存儲(chǔ)器外發(fā)展?fàn)顩r PAGEREF _Toc246848773 h 2HYPERLINK l _Toc2468487741.4 FIFO設(shè)計(jì)技術(shù)簡(jiǎn)介 PAGEREF _Toc246848774 h 4HYPERLINK l _Toc2468487751.4.1 基于信元的FIFO設(shè)計(jì)方法 PAGEREF _Toc246848775 h 4HYPERLINK l _Toc246

11、8487761.4.2 基于SRAM/DRAM的大容量FIFO的設(shè)計(jì)與實(shí)現(xiàn) PAGEREF _Toc246848776 h 4HYPERLINK l _Toc2468487771.5 異步FIFO設(shè)計(jì)中存在的問(wèn)題與解決辦法 PAGEREF _Toc246848777 h 5HYPERLINK l _Toc2468487781.5.1 亞穩(wěn)態(tài) PAGEREF _Toc246848778 h 5HYPERLINK l _Toc2468487791.5.2 空/滿(mǎn)指針的解決方法 PAGEREF _Toc246848779 h 6HYPERLINK l _Toc2468487801.6 論文主要容 P

12、AGEREF _Toc246848780 h 6HYPERLINK l _Toc2468487812 異步FIFO工作原理簡(jiǎn)介 PAGEREF _Toc246848781 h 7HYPERLINK l _Toc2468487822.1 關(guān)于異步信號(hào) PAGEREF _Toc246848782 h 7HYPERLINK l _Toc2468487832.2 異步FIFO芯片簡(jiǎn)介 PAGEREF _Toc246848783 h 8HYPERLINK l _Toc2468487842.3 FIFO的一些重要參數(shù) PAGEREF _Toc246848784 h 9HYPERLINK l _Toc246

13、8487852.4 異步FIFO設(shè)計(jì)的難點(diǎn) PAGEREF _Toc246848785 h 10HYPERLINK l _Toc2468487862.4.1 異步FIFO設(shè)計(jì)難點(diǎn)概述 PAGEREF _Toc246848786 h 10HYPERLINK l _Toc24684878 解決FIFO的滿(mǎn)/空技術(shù)方法概述和特點(diǎn) PAGEREF _Toc246848787 h 10HYPERLINK l _Toc24684878 亞穩(wěn)態(tài)問(wèn)題的產(chǎn)生與解決 PAGEREF _Toc246848788 h 10HYPERLINK l _Toc2468487892.5 FIF

14、O的功能簡(jiǎn)介 PAGEREF _Toc246848789 h 11HYPERLINK l _Toc2468487902.6 Modelsim仿真工具簡(jiǎn)介 PAGEREF _Toc246848790 h 11HYPERLINK l _Toc2468487912.6.1 主要特點(diǎn) PAGEREF _Toc246848791 h 11HYPERLINK l _Toc2468487922.7 Verilog HDL語(yǔ)言的簡(jiǎn)介 PAGEREF _Toc246848792 h 12HYPERLINK l _Toc2468487932.8 HDL語(yǔ)言 PAGEREF _Toc246848793 h 12HY

15、PERLINK l _Toc2468487942.8.1 HDL與原理圖輸入法的關(guān)系 PAGEREF _Toc246848794 h 13HYPERLINK l _Toc2468487952.8.2 HDL開(kāi)發(fā)流程 PAGEREF _Toc246848795 h 13HYPERLINK l _Toc2468487963 異步FIFO實(shí)現(xiàn)的技所涉與的技術(shù)與其解決方法 PAGEREF _Toc246848796 h 14HYPERLINK l _Toc2468487973.1格雷碼 PAGEREF _Toc246848797 h 14HYPERLINK l _Toc2468487983.2結(jié)繩法

16、PAGEREF _Toc246848798 h 14HYPERLINK l _Toc2468487994 異步FIFO具體實(shí)現(xiàn)方法 PAGEREF _Toc246848799 h 16HYPERLINK l _Toc2468488004.1 亞穩(wěn)態(tài)問(wèn)題的解決方案 PAGEREF _Toc246848800 h 16HYPERLINK l _Toc2468488014.1.1 問(wèn)題的產(chǎn)生 PAGEREF _Toc246848801 h 16HYPERLINK l _Toc2468488024.1.2 常見(jiàn)的解決方法 PAGEREF _Toc246848802 h 16HYPERLINK l _T

17、oc24684880 格雷碼編碼法 PAGEREF _Toc246848803 h 16HYPERLINK l _Toc24684880 雙觸發(fā)器法 PAGEREF _Toc246848804 h 17HYPERLINK l _Toc24684880 結(jié)繩法 PAGEREF _Toc246848805 h 17HYPERLINK l _Toc2468488064.2 基于異步比較FIFO邏輯標(biāo)志的產(chǎn)生 PAGEREF _Toc246848806 h 18HYPERLINK l _Toc2468488074.2.1 設(shè)計(jì)思想 PAGEREF _To

18、c246848807 h 18HYPERLINK l _Toc2468488084.2.2 標(biāo)志位的產(chǎn)生 PAGEREF _Toc246848808 h 19HYPERLINK l _Toc24684880 異步比較FIFO邏輯標(biāo)志與時(shí)鐘的同步 PAGEREF _Toc246848809 h 19HYPERLINK l _Toc2468488 保守的空/滿(mǎn)標(biāo)志 PAGEREF _Toc246848810 h 21HYPERLINK l _Toc2468488 半滿(mǎn)、將近滿(mǎn)、將近空的產(chǎn)生 PAGEREF _Toc246848811 h 22HY

19、PERLINK l _Toc2468488FIFO異步空/滿(mǎn)信號(hào)的同步 PAGEREF _Toc246848812 h 23HYPERLINK l _Toc2468488134.3 仿真驗(yàn)證和綜合 PAGEREF _Toc246848813 h 23HYPERLINK l _Toc2468488145 總結(jié) PAGEREF _Toc246848814 h 24HYPERLINK l _Toc2468488155.1 異步FIFO設(shè)計(jì)的總結(jié) PAGEREF _Toc246848815 h 24HYPERLINK l _Toc2468488165.2 設(shè)計(jì)方法的不足之處 PAGE

20、REF _Toc246848816 h 24HYPERLINK l _Toc246848817附錄一 PAGEREF _Toc246848817 h 25HYPERLINK l _Toc246848818參考文獻(xiàn) PAGEREF _Toc246848818 h 30HYPERLINK l _Toc2468488191 引言1.1 FIFO研究意義隨著計(jì)算機(jī)、多媒體和數(shù)據(jù)通信技術(shù)的高速發(fā)展,數(shù)字圖像、語(yǔ)音等數(shù)據(jù)傳輸技術(shù)近年來(lái)得到了極大的重視和長(zhǎng)足的發(fā)展,并取得了廣泛的應(yīng)用。如何保障這些語(yǔ)音、圖像等數(shù)據(jù)傳輸?shù)臏?zhǔn)確性、與時(shí)性?如何高效率高速度地傳輸這些數(shù)據(jù)?這些都是當(dāng)今信息領(lǐng)域的科研人員所必須回答和

21、解決的問(wèn)題。而往往在這些數(shù)據(jù)傳輸系統(tǒng)中,又會(huì)遇到不同系統(tǒng)接口間數(shù)據(jù)的傳輸。通常在兩個(gè)相連接的不同電路系統(tǒng)之間,因?yàn)槊總€(gè)系統(tǒng)的數(shù)據(jù)傳輸速度不同,在系統(tǒng)的接口部分就會(huì)出現(xiàn)數(shù)據(jù)輸入速度和輸出速度不同,也就是會(huì)發(fā)生數(shù)據(jù)傳輸速率不匹配的問(wèn)題。這種情況往往會(huì)讓傳輸?shù)臄?shù)據(jù)產(chǎn)生復(fù)寫(xiě)或丟失,降低數(shù)據(jù)的傳輸速率,同時(shí)也因?yàn)閿?shù)據(jù)復(fù)寫(xiě)、丟失和無(wú)效數(shù)據(jù)的讀入,將會(huì)產(chǎn)生數(shù)據(jù)出錯(cuò),因此需要在不同系統(tǒng)的接口處設(shè)計(jì)數(shù)據(jù)傳輸單元來(lái)實(shí)現(xiàn)數(shù)據(jù)的高速高效傳輸。在現(xiàn)代的系統(tǒng)設(shè)計(jì)中,為了提高系統(tǒng)的性能,設(shè)計(jì)者對(duì)數(shù)據(jù)的傳輸率、數(shù)據(jù)的傳輸量,對(duì)系統(tǒng)各部分之間的接口部分不同的數(shù)據(jù)輸入和接收傳輸率的匹配有越來(lái)越高的要求,而 FIFO存儲(chǔ)器以其合理

22、的價(jià)格、使用的方便靈活性以與上述的對(duì)速度匹配的應(yīng)用而成為解決這類(lèi)問(wèn)題的理想途徑,因此FIFO 存儲(chǔ)器在計(jì)算機(jī)、多媒體和數(shù)據(jù)通信領(lǐng)域都有著廣泛的應(yīng)用,因此對(duì)FIFO的研究與設(shè)計(jì)應(yīng)用具有理論上和實(shí)際應(yīng)用上的雙重意義。 在現(xiàn)在的設(shè)計(jì)中,F(xiàn)IFO的設(shè)計(jì)方法主要有兩種。一種是在FPGA中基于信元的FIFO設(shè)計(jì)方法,另一種是基于SDRAM/DRAM的大容量的FIFO的設(shè)計(jì)方法。1.2 生產(chǎn)需求狀況3FPGA(現(xiàn)場(chǎng)可編程邏輯器件)產(chǎn)品的應(yīng)用領(lǐng)域已經(jīng)從原來(lái)的 HYPERLINK :/trs.cena .cn/trsweb/search.wct?channelid=3560 t _blank 通信擴(kuò)展到 HYP

23、ERLINK :/trs.cena .cn/trsweb/search.wct?channelid=7713 t _blank 消費(fèi)電子、汽車(chē) HYPERLINK :/trs.cena .cn/trsweb/search.wct?channelid=8453 t _blank 電子、工業(yè)控制、測(cè)試測(cè)量等廣泛的領(lǐng)域。而應(yīng)用的變化也使FPGA產(chǎn)品近幾年的演進(jìn)趨勢(shì)越來(lái)越明顯:一方面,F(xiàn)PGA供應(yīng)商致力于采用當(dāng)前最先進(jìn)的工藝來(lái)提升產(chǎn)品的性能,降低產(chǎn)品的成本;另一方面,越來(lái)越多的通用IP(知識(shí)產(chǎn)權(quán))或客戶(hù)定制IP被引入FPGA中,以滿(mǎn)足客戶(hù)產(chǎn)品快速上市的要求。此外,F(xiàn)PGA企業(yè)都在大力降低產(chǎn)品的功耗,滿(mǎn)

24、足業(yè)界越來(lái)越苛刻的低功耗需求。在FPGA設(shè)計(jì)中,F(xiàn)IFO(先進(jìn)先出隊(duì)列)的設(shè)計(jì)是一種在電子系統(tǒng)得到廣泛應(yīng)用的器件,通常用于數(shù)據(jù)的緩存和用于容納異步信號(hào)的頻率或相位的差異。電子產(chǎn)品的更新速度很快,品種也在也逐漸增多,所以緩存對(duì)于電子產(chǎn)品的工作速度來(lái)說(shuō)是相當(dāng)重要的,這也就使得FIFO的應(yīng)用更加廣泛。所以FIFO的研發(fā)在一定意義上已經(jīng)盡量的滿(mǎn)足了市場(chǎng)對(duì)產(chǎn)品的高速度的要求。1.3 存儲(chǔ)器的發(fā)展?fàn)顩rFIFO,簡(jiǎn)單的說(shuō)就是一種存儲(chǔ)器。下面簡(jiǎn)單介紹一下存儲(chǔ)器的發(fā)展?fàn)顩r。(1)汞延遲線(xiàn)汞延遲線(xiàn)是基于汞在室溫時(shí)是液體,同時(shí)又是導(dǎo)體,每比特?cái)?shù)據(jù)用機(jī)械波的波峰機(jī)械波從汞柱的一端開(kāi)始,一定厚度的熔融態(tài)金屬汞通過(guò)一振動(dòng)

25、膜片沿著縱向從一端傳到另一端,這樣就得名“汞延遲線(xiàn)”。在管的另一端,一傳感器得到每一比特的信息,并反饋到起點(diǎn)。設(shè)想是汞獲取并延遲這些數(shù)據(jù),這樣它們便能存儲(chǔ)了。這個(gè)過(guò)程是機(jī)械和電子的奇妙結(jié)合。缺點(diǎn)是由于環(huán)境條件的限制,這種存儲(chǔ)器方式會(huì)受各種環(huán)境因素影響而不精確。1950年,世界上第一臺(tái)具有存儲(chǔ)程序功能的計(jì)算機(jī)EDVAC由.諾依曼博士領(lǐng)導(dǎo)設(shè)計(jì)。它的主要特點(diǎn)是采用二進(jìn)制,使用汞延遲線(xiàn)作存儲(chǔ)器,指令和程序可存入計(jì)算機(jī)中。1951年3月,由ENIAC的主要設(shè)計(jì)者莫克利和??颂卦O(shè)計(jì)的第一臺(tái)通用自動(dòng)計(jì)算機(jī)UNIVAC-I交付使用。它不僅能作科學(xué)計(jì)算,而且能作數(shù)據(jù)處理。 (2) 磁帶UNIVAC-I第一次采用

26、磁帶機(jī)作外存儲(chǔ)器,首先用奇偶校驗(yàn)方法和雙重運(yùn)算線(xiàn)路來(lái)提高系統(tǒng)的可靠性,并最先進(jìn)行了自動(dòng)編程的試驗(yàn)。磁帶是所有存儲(chǔ)媒體中單位存儲(chǔ)信息成本最低、容量最大、標(biāo)準(zhǔn)化程度最高的常用存儲(chǔ)介質(zhì)之一。它互換性好、易于保存,近年來(lái),由于采用了具有高糾錯(cuò)能力的編碼技術(shù)和即寫(xiě)即讀的通道技術(shù),大大提高了磁帶存儲(chǔ)的可靠性和讀寫(xiě)速度。根據(jù)讀寫(xiě)磁帶的工作原理可分為螺旋掃描技術(shù)、線(xiàn)性記錄(數(shù)據(jù)流)技術(shù)、DLT技術(shù)以與比較先進(jìn)的LTO技術(shù)。根據(jù)讀寫(xiě)磁帶的工作原理,磁帶機(jī)可以分為六種規(guī)格。其中兩種采用螺旋掃描讀寫(xiě)方式的是面向工作組級(jí)的DAT(4mm)磁帶機(jī)和面向部門(mén)級(jí)的8mm磁帶機(jī),另外四種則是選用數(shù)據(jù)流存儲(chǔ)技術(shù)設(shè)計(jì)的設(shè)備,它們

27、分別是采用單磁頭讀寫(xiě)方式、磁帶寬度為1/4英寸、面向低端應(yīng)用的Travan和DC系列,以與采用多磁頭讀寫(xiě)方式、磁帶寬度均為1/2英寸、面向高端應(yīng)用的DLT和IBM的3480/3490/3590系列等。(3) 磁鼓1953年,第一臺(tái)磁鼓應(yīng)用于IBM 701,它是作為存儲(chǔ)器使用的。磁鼓是利用鋁鼓筒表面涂覆的磁性材料來(lái)存儲(chǔ)數(shù)據(jù)的。鼓筒旋轉(zhuǎn)速度很高,因此存取速度快。它采用飽和磁記錄,從固定式磁頭發(fā)展到浮動(dòng)式磁頭,從采用磁膠發(fā)展到采用電鍍的連續(xù)磁介質(zhì)。這些都為后來(lái)的磁盤(pán)存儲(chǔ)器打下了基礎(chǔ)。磁鼓最大的缺點(diǎn)是利用率不高, 一個(gè)大圓柱體只有表面一層用于存儲(chǔ),而磁盤(pán)的兩面都利用來(lái)存儲(chǔ),顯然利用率要高得多。 因此,

28、當(dāng)磁盤(pán)出現(xiàn)后,磁鼓就被淘汰了。 (4) 磁芯美國(guó)物理學(xué)家王安1950年提出了利用磁性材料制造存儲(chǔ)器的思想。福雷斯特則將這一思想變成了現(xiàn)實(shí)。為了實(shí)現(xiàn)磁芯存儲(chǔ),福雷斯特需要一種物質(zhì),這種物質(zhì)應(yīng)該有一個(gè)非常明確的磁化閾值。他找到在新澤西生產(chǎn)電視機(jī)用鐵氧體變換器的一家公司的德國(guó)老瓷專(zhuān)家,利用熔化鐵礦和氧化物獲取了特定的磁性質(zhì)。對(duì)磁化有明確閾值是設(shè)計(jì)的關(guān)鍵。最先獲得這些專(zhuān)利許可證的是IBM,IBM最終獲得了在北美防衛(wèi)軍事基地安裝“旋風(fēng)”的商業(yè)合同。更重要的是,自20世紀(jì)50年代以來(lái),所有大型和中型計(jì)算機(jī)也采用了這一系統(tǒng)。磁芯存儲(chǔ)從20世紀(jì)50年代、60年代,直至70年代初,一直是計(jì)算機(jī)主存的標(biāo)準(zhǔn)方式。

29、(5)磁盤(pán)世界第一臺(tái)硬盤(pán)存儲(chǔ)器是由IBM公司在1956年發(fā)明的,其型號(hào)為IBM 350 RAMAC(Random Access Method of Accounting and Control)。這套系統(tǒng)的總?cè)萘恐挥?MB,共使用了50個(gè)直徑為24英寸的磁盤(pán)。1968年,IBM公司提出“溫徹斯特/Winchester”技術(shù),其要點(diǎn)是將高速旋轉(zhuǎn)的磁盤(pán)、磁頭與其尋道機(jī)構(gòu)等全部密封在一個(gè)無(wú)塵的封閉體中,形成一個(gè)頭盤(pán)組合件(HDA),與外界環(huán)境隔絕,避免了灰塵的污染,并采用小型化輕浮力的磁頭浮動(dòng)塊,盤(pán)片表面涂潤(rùn)滑劑,實(shí)行接觸起停,這是現(xiàn)代絕大多數(shù)硬盤(pán)的原型。1979年,IBM發(fā)明了薄膜磁頭,進(jìn)一步減輕

30、了磁頭重量,使更快的存取速度、更高的存儲(chǔ)密度成為可能。20世紀(jì)80年代末期,IBM公司又對(duì)磁盤(pán)技術(shù)作出一項(xiàng)重大貢獻(xiàn),發(fā)明了MR(Magneto Resistive)磁阻磁頭,這種磁頭在讀取數(shù)據(jù)時(shí)對(duì)信號(hào)變化相當(dāng)敏感,使得盤(pán)片的存儲(chǔ)密度比以往提高了數(shù)十倍。1991年,IBM生產(chǎn)的3.5英寸硬盤(pán)使用了MR磁頭,使硬盤(pán)的容量首次達(dá)到了1GB,從此,硬盤(pán)容量開(kāi)始進(jìn)入了GB數(shù)量級(jí)。另一種磁盤(pán)存儲(chǔ)設(shè)備是軟盤(pán),從早期的8英寸軟盤(pán)、5.25英寸軟盤(pán)到3.5英寸軟盤(pán),主要為數(shù)據(jù)交換和小容量備份之用。其中,3.5英寸1.44MB軟盤(pán)占據(jù)計(jì)算機(jī)的標(biāo)準(zhǔn)配置地位近20年之久,之后出現(xiàn)過(guò)24MB、100MB、200MB的高

31、密度過(guò)渡性軟盤(pán)和軟驅(qū)產(chǎn)品。(6)光盤(pán)光盤(pán)主要分為只讀型光盤(pán)和讀寫(xiě)型光盤(pán)。只讀型指光盤(pán)上的容是固定的,不能寫(xiě)入、修改,只能讀取其中的容。讀寫(xiě)型則允許人們對(duì)光盤(pán)容進(jìn)行修改,可以抹去原來(lái)的容,寫(xiě)入新的容。用于微型計(jì)算機(jī)的光盤(pán)主要有CD-ROM、CD-R/W和DVD-ROM等幾種。(7) 納米存儲(chǔ)納米是一種長(zhǎng)度單位,符號(hào)為nm。1納米=1毫微米,約為10個(gè)原子的長(zhǎng)度。假設(shè)一根頭發(fā)的直徑為0.05毫米,把它徑向平均剖成5萬(wàn)根,每根的厚度即約為1納米。與納米存儲(chǔ)有關(guān)的主要進(jìn)展有如下容。1998年,美國(guó)明尼達(dá)大學(xué)和普林斯頓大學(xué)制備成功量子磁盤(pán),這種磁盤(pán)是由磁性納米棒組成的納米陣列體系。一個(gè)量子磁盤(pán)相當(dāng)于我們

32、現(xiàn)在的10萬(wàn)100萬(wàn)個(gè)磁盤(pán),而能源消耗卻降低了1萬(wàn)倍。1988年,法國(guó)人首先發(fā)現(xiàn)了巨磁電阻效應(yīng),到1997年,采用巨磁電阻原理的納米結(jié)構(gòu)器件已在美國(guó)問(wèn)世,它在磁存儲(chǔ)、磁記憶和計(jì)算機(jī)讀寫(xiě)磁頭等方面均有廣闊的應(yīng)用前景。2002年9月,美國(guó)威斯康星州大學(xué)的科研小組宣布,他們?cè)谑覝貤l件下通過(guò)操縱單個(gè)原子,研制出原子級(jí)的硅記憶材料,其存儲(chǔ)信息的密度是目前光盤(pán)的100萬(wàn)倍。這是納米存儲(chǔ)材料技術(shù)研究的一大進(jìn)展。1.4 FIFO設(shè)計(jì)技術(shù)簡(jiǎn)介1.4.1 基于信元的FIFO設(shè)計(jì)方法2設(shè)計(jì)者通常在FPGA上實(shí)現(xiàn)FIFO(先進(jìn)先出寄存器)的時(shí)候,都會(huì)使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對(duì)性變差

33、,某些情況下會(huì)變得不方便或者將增加硬件成本。此時(shí),需要進(jìn)行自行FIFO設(shè)計(jì)。有一種基于信元的FIFO設(shè)計(jì)方法以供設(shè)計(jì)者在適當(dāng)?shù)臅r(shí)候選用。這種方法也適合于不定長(zhǎng)包的處理。以ATM的設(shè)計(jì)為例,在ATM的相關(guān)設(shè)計(jì)中,設(shè)計(jì)者則更多希望一個(gè)FIFO對(duì)外給出的信息是“現(xiàn)在FIFO中還剩下幾個(gè)信元”。要實(shí)現(xiàn)這一功能通常有兩種方法:(1)調(diào)用廠(chǎng)商提供的以操作粒度為基本單元的通用FIFO,然后在這個(gè)FIFO的外面再加上一個(gè)“套子”。這個(gè)套子里面設(shè)計(jì)一些計(jì)數(shù)器,根據(jù)計(jì)數(shù)容對(duì)外提供相應(yīng)的信息。(2)設(shè)計(jì)操作粒度為信元的定制FIFO。這樣對(duì)外直接提供設(shè)計(jì)者最希望得到的信息,即FIFO中還有多少個(gè)信元。設(shè)定FIFO最多

34、可以存放4個(gè)信元?;締卧獮樽止?jié),因此RAM的數(shù)據(jù)寬度為8位,一個(gè)信元的長(zhǎng)度為53字節(jié)。把RAM分成4個(gè)信元區(qū)域,讀寫(xiě)地址的高二位指明信元區(qū)域,低六位指明信元區(qū)域的字節(jié)地址,這樣組合成8位讀寫(xiě)地址。讀寫(xiě)雙方的信息交換是互相通知對(duì)方還有多少個(gè)信元在FIFO中。讀寫(xiě)雙方都擁有自己的記分牌(Scoreboard),這個(gè)記分牌可以由一個(gè)四位的寄存器來(lái)實(shí)現(xiàn),每一位對(duì)應(yīng)一個(gè)信元區(qū)域。當(dāng)一個(gè)信元區(qū)域中有一個(gè)完整的信元的時(shí)候,記分牌的相應(yīng)的寄存器被設(shè)置為1,否則為0。讀出方讀出一個(gè)信元,修改自己記分牌的動(dòng)作叫做清位。寫(xiě)入方寫(xiě)入一個(gè)完整信元,修改自己記分牌的動(dòng)作叫置位。從邏輯上說(shuō),只需要讀出方把自己的記分牌的信

35、息(清位信息)傳送給寫(xiě)入方,同時(shí)寫(xiě)入方把自己的記分牌的信息(置位信息)傳送給讀出方就可以了,即只要構(gòu)成兩條邏輯通道就可以滿(mǎn)足需求。但是,在硬件上的實(shí)現(xiàn)卻要比這種只從邏輯上的思考要復(fù)雜。由于讀寫(xiě)雙方有可能處在不同的時(shí)鐘域,所以當(dāng)讀寫(xiě)雙方交換信息的時(shí)候就需要處理信號(hào)采樣的亞穩(wěn)態(tài)情況。1.4.2基于SRAM/DRAM的大容量FIFO的設(shè)計(jì)與實(shí)現(xiàn)2許多系統(tǒng)都需要大容量FIFO作為緩存,但是由于成本和容量限制,常采用多個(gè)FIFO芯片級(jí)聯(lián)擴(kuò)展,這往往導(dǎo)致系統(tǒng)結(jié)構(gòu)復(fù)雜,成本高。靜態(tài)隨機(jī)存取存儲(chǔ)器SRAM(Static Random Access Memory)是一種非常重要的易失性存儲(chǔ)器,它的速度非??欤?/p>

36、且能在快速讀取和刷新時(shí)保持?jǐn)?shù)據(jù)完整性。SRAM器件采用Hynix公司的HY64UD16322A。HY64UD16322A是高速、超低功耗32 Mbit SRAM,部具有2 097 152個(gè)16 bit字容量。采用了CMOS制造工藝、TTL電平接口以與三態(tài)輸出,具有較大的輸入電壓和溫度圍。同時(shí)HY64UD16322A支持DPD(Deep Power Down)模式,保證其在待機(jī)模式下功耗進(jìn)一步降低。系統(tǒng)采用CPLD作為總控制器件。根據(jù)FIFO的特點(diǎn),需要將SRAM按地址存儲(chǔ)用程序控制成先進(jìn)先出的結(jié)構(gòu)。這里采用指針?biāo)惴▉?lái)實(shí)現(xiàn)這種結(jié)構(gòu)設(shè)計(jì):設(shè)置兩個(gè)指針變量StartPos和EndPos。分別作為進(jìn)入

37、數(shù)據(jù)頭尾指針。當(dāng)有新數(shù)據(jù)寫(xiě)入時(shí),數(shù)據(jù)從上一次存儲(chǔ)最后位置的下一個(gè)位置開(kāi)始存入一個(gè)數(shù)據(jù),EndPos就自動(dòng)加1,保持與最后數(shù)據(jù)位置同步。當(dāng)EndPos超過(guò)整個(gè)RAM的最大容量(RAM_SIZE)時(shí),就需要循環(huán)返回,從0 x000位置存放,一直到EndPos與StartPos重合。這時(shí)可以認(rèn)為RAM已經(jīng)存滿(mǎn)。同理,讀出數(shù)據(jù)時(shí)。起始位置StartPos自動(dòng)加1。當(dāng)StartPos超過(guò)整個(gè)RAM的最大容量時(shí),就從0 x000位置讀取。一直到StartPos與EndPos重合,這時(shí)可以認(rèn)為RAM已經(jīng)讀空。在這兩個(gè)過(guò)程當(dāng)中,CPLD需要對(duì)地址線(xiàn)進(jìn)行控制。不難發(fā)現(xiàn),寫(xiě)數(shù)據(jù)的時(shí)候Address與EndPos一

38、致,讀數(shù)據(jù)的時(shí)候Address與StartPos一致。1.5 異步FIFO設(shè)計(jì)中存在的問(wèn)題與解決辦法11.5.1 亞穩(wěn)態(tài)對(duì)于亞穩(wěn)態(tài)的解決方法主要有三種:1:對(duì)寫(xiě)地址/讀地址采用格雷碼。由實(shí)踐可知,同步多個(gè)異步輸入信號(hào)出現(xiàn)亞穩(wěn)態(tài)的概率遠(yuǎn)遠(yuǎn)大于同步一個(gè)異步信號(hào)的概率。對(duì)多個(gè)觸發(fā)器的輸出所組成的寫(xiě)地址/讀地址可以采用格雷碼。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩(wěn)態(tài)的產(chǎn)生。2:采用兩極觸發(fā)器來(lái)同步異步輸入信號(hào)。信號(hào)同步的目的是防止新時(shí)鐘域中第一級(jí)觸發(fā)器的亞穩(wěn)態(tài)信號(hào)對(duì)下級(jí)邏輯造成影響。兩級(jí)寄存器的同步化處理單元由兩個(gè)觸發(fā)器串聯(lián)而成,中問(wèn)沒(méi)有其它組合電路。這種設(shè)計(jì)可以保證后面的觸發(fā)器獲得前

39、一個(gè)觸發(fā)器輸出時(shí),前一個(gè)觸發(fā)器已退出了亞穩(wěn)態(tài),并且輸出已穩(wěn)定。但是,這種方法同時(shí)帶來(lái)了對(duì)輸入信號(hào)的一級(jí)延時(shí),需要在設(shè)計(jì)時(shí)鐘的時(shí)候加以注意。3:在信號(hào)從快時(shí)鐘域向慢時(shí)鐘域過(guò)渡時(shí),如果信號(hào)變化太快,慢時(shí)鐘將可能無(wú)法對(duì)該信號(hào)進(jìn)行正確采樣,即采樣失敗。所以在使用雙鎖存器法時(shí),應(yīng)該使原始信號(hào)保持足夠長(zhǎng)的時(shí)間,以便另一個(gè)時(shí)鐘域的鎖存器對(duì)其進(jìn)行正確的采樣。 對(duì)上述問(wèn)題,一般采用“結(jié)繩法”的設(shè)計(jì)方法,將慢時(shí)鐘周期信號(hào)通過(guò)分頻的方式將其周期增長(zhǎng),經(jīng)過(guò)雙鎖存采樣以后再使其恢復(fù)原來(lái)的時(shí)鐘周期。即用“結(jié)繩”將信號(hào)延長(zhǎng),用“同步”實(shí)現(xiàn)雙latch采樣,用“解繩”還原為原來(lái)的時(shí)鐘,保證另一個(gè)時(shí)鐘域也可以正確采樣,而接收方

40、用相反的流程送回響應(yīng)信號(hào)。1.5.2 空/滿(mǎn)指針的解決方法空/滿(mǎn)標(biāo)志產(chǎn)生的原則是:寫(xiě)滿(mǎn)不溢出,讀空不多讀。即無(wú)論在什么進(jìn)修,都不應(yīng)出現(xiàn)讀寫(xiě)地址同時(shí)對(duì)一個(gè)存儲(chǔ)器地址操作的情況。在讀寫(xiě)地址相等或相差一個(gè)或多個(gè)地址的時(shí)候,滿(mǎn)標(biāo)志應(yīng)該有效,表示此時(shí)FIFO已滿(mǎn),外部電路應(yīng)對(duì)FIFO發(fā)數(shù)據(jù)。在滿(mǎn)信號(hào)有效時(shí)寫(xiě)數(shù)據(jù),應(yīng)根據(jù)設(shè)計(jì)的要求,或保持、或拋棄重發(fā)。同理,空標(biāo)志的產(chǎn)生也是如此,即:空標(biāo)志=(|寫(xiě)地址-讀地址|=預(yù)定值)AND(寫(xiě)地址超前讀地址)滿(mǎn)標(biāo)志=(|寫(xiě)地址-讀地址|=預(yù)定值)AND(讀地址超前寫(xiě)地址)最直接的做法是,采用讀寫(xiě)地址相比較來(lái)產(chǎn)生空滿(mǎn)標(biāo)志。當(dāng)讀寫(xiě)地址的差值等于一個(gè)預(yù)設(shè)值的時(shí)候,空/滿(mǎn)信號(hào)

41、被置位。這種實(shí)現(xiàn)方法邏輯簡(jiǎn)單,但它是減法器形成的一個(gè)比較大的組合邏輯,因而限制了FIFO的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。1.6論文主要容第一章引言。簡(jiǎn)單介紹了所研究題目的發(fā)展?fàn)顩r,以與它的研究有意義。第二章FIFO工作原理簡(jiǎn)介。通過(guò)簡(jiǎn)單的與原理圖介紹了異步FIFO的實(shí)現(xiàn)框圖以與設(shè)計(jì)的相關(guān)技術(shù)和簡(jiǎn)要工作原理。第三章FIFO的實(shí)現(xiàn)方法與技術(shù)。分析了異步FIFO的參數(shù)和設(shè)計(jì)的難點(diǎn)。第四章異步FIFO實(shí)現(xiàn)與主要方法。通過(guò)第二章第三章對(duì)異步FIFO具體介紹,在這容中,重點(diǎn)描述了異步FIFO的實(shí)現(xiàn)方法。第五章總結(jié)。對(duì)異步FIFO的設(shè)計(jì)方法作了簡(jiǎn)要的總結(jié),簡(jiǎn)述了設(shè)計(jì)方法的不足之

42、處,以與應(yīng)采取的措施。2 異步FIFO工作原理簡(jiǎn)介2.1關(guān)于異步信號(hào)9在許多情況下,數(shù)據(jù)在跨越時(shí)鐘域時(shí)需要“堆積”起來(lái),因此使用單個(gè)保持寄存器無(wú)法完成工作。例如一種情況是某個(gè)傳輸電路猝發(fā)式發(fā)送數(shù)據(jù),接收電路來(lái)不與采樣。另一種情況是接收電路采樣速度超出傳輸電路發(fā)送數(shù)據(jù)的速度,但采樣的數(shù)據(jù)寬度不夠。這些情況就要使用 FIFO 了?;旧?,人們使用 FIFO 有兩個(gè)目的:速度匹配或數(shù)據(jù)寬度匹配。在速度匹配時(shí),F(xiàn)IFO 較快的端口處理猝發(fā)的數(shù)據(jù)傳輸,而較慢的端口則維持恒定的數(shù)據(jù)流。但是,雖然訪(fǎng)問(wèn)方式和速度不同,但進(jìn)出 FIFO 的平均數(shù)據(jù)速率必須是一樣的,否則 FIFO 就會(huì)出現(xiàn)上溢(oveRFlow

43、)或下溢(underflow)問(wèn)題。與單寄存器設(shè)計(jì)一樣,F(xiàn)IFO 將數(shù)據(jù)保存在寄存器或存儲(chǔ)器中,同時(shí)HYPERLINK :/article.ednchina /word/66469.aspx o 同步同步狀態(tài)HYPERLINK :/article.ednchina /word/66470.aspx o 信號(hào)信號(hào),判斷何時(shí)可以把數(shù)據(jù)寫(xiě)入 FIFO 或從 FIFO 中讀出。在速度匹配應(yīng)用中,每個(gè)端口(讀或?qū)懀┑臅r(shí)鐘不同。FIFO 中的寄存器使用寫(xiě)端口時(shí)鐘,就像保持寄存器使用電路時(shí)鐘來(lái)改變寄存器容一樣。信號(hào)同步發(fā)生在指針邏輯中,而且比握手信號(hào)要復(fù)雜得多?,F(xiàn)在指針邏輯的設(shè)計(jì)有多種方法。第一種方法是將讀

44、、寫(xiě)選通進(jìn)行同步,同時(shí)在各個(gè)時(shí)鐘域使用計(jì)數(shù)器來(lái)跟蹤 FIFO 中可用的項(xiàng)。計(jì)數(shù)器反映出可用于讀寫(xiě)的 FIFO 項(xiàng)目號(hào),計(jì)數(shù)器也與相應(yīng)的端口同步。讀計(jì)數(shù)器跟蹤包含有效數(shù)據(jù)的項(xiàng)數(shù),而寫(xiě)計(jì)數(shù)器則跟蹤可以存儲(chǔ)數(shù)據(jù)的項(xiàng)數(shù)。當(dāng)對(duì)指針邏輯進(jìn)行復(fù)位時(shí),由于沒(méi)有數(shù)據(jù)可讀,讀計(jì)數(shù)器從零起始。寫(xiě)計(jì)數(shù)器則從 FIFO 中項(xiàng)的總數(shù)開(kāi)始計(jì)數(shù),即所有項(xiàng)均可用來(lái)存儲(chǔ)數(shù)據(jù)。讀選通信號(hào)累減讀計(jì)數(shù)器,并與寫(xiě)時(shí)鐘域同步,因?yàn)樗瑫r(shí)也累加寫(xiě)計(jì)數(shù)器。寫(xiě)選通信號(hào)則累減寫(xiě)計(jì)數(shù)器,并與讀時(shí)鐘域同步,因?yàn)樗瑫r(shí)也累加讀計(jì)數(shù)器。這種設(shè)計(jì)需要單時(shí)鐘寬度脈沖以與用于讀、寫(xiě)選通的脈沖同步器,因?yàn)楫?dāng)一個(gè)電平信號(hào)從一個(gè)時(shí)鐘域跨越到另一個(gè)更快的時(shí)鐘域時(shí),在較

45、快時(shí)鐘域中它能在更多的時(shí)鐘周期中保持有效。由于只要讀或?qū)懶盘?hào)是有效的,每個(gè)計(jì)數(shù)器就會(huì)發(fā)生變化,因此較快的時(shí)鐘域就檢測(cè)到更多的讀、寫(xiě),超出較慢時(shí)鐘域?qū)嶋H發(fā)生的數(shù)量。脈沖同步器可以將一個(gè)時(shí)鐘域的時(shí)鐘寬度脈沖轉(zhuǎn)換為新時(shí)鐘域的時(shí)鐘寬度脈沖,每個(gè)脈沖都表示一次 FIFO 的讀或?qū)?。這種 FIFO 狀態(tài)技術(shù)對(duì)讀、寫(xiě)狀態(tài)都不太有利。當(dāng) FIFO 中所有項(xiàng)均充滿(mǎn)時(shí),寫(xiě)端口狀態(tài)指示為滿(mǎn),并在讀選通觸發(fā)后繼續(xù)指示 FIFO 滿(mǎn),因?yàn)橥竭^(guò)程會(huì)使選通信號(hào)延遲送給寫(xiě)計(jì)數(shù)器。讀端口為空時(shí)也會(huì)出現(xiàn)這種情況,因?yàn)橥竭^(guò)程會(huì)使寫(xiě)選通信號(hào)延遲到達(dá)讀計(jì)數(shù)器。這種設(shè)計(jì)的另一種考慮是與時(shí)檢測(cè)全滿(mǎn)/全空狀態(tài)。如果 FIFO 還有一項(xiàng)可

46、用,并且有寫(xiě)選通觸發(fā),則 FIFO 必須立即置為全滿(mǎn)狀態(tài)。這樣才能提前一個(gè)時(shí)鐘給出全滿(mǎn)標(biāo)志,使 FIFO 有足夠時(shí)間防止下一個(gè)數(shù)據(jù)寫(xiě)入而產(chǎn)生溢出。對(duì) FIFO 的讀端口也是這樣。這種情況下,如果 FIFO 里只有一個(gè)數(shù),并且有讀選通觸發(fā),則必須置全空狀態(tài),以給讀電路足夠的時(shí)間防止讀空 FIFO。這種指針邏輯限制電路在每個(gè)時(shí)鐘周期中訪(fǎng)問(wèn) FIFO,即使在慢速時(shí)鐘域中也是這樣。這一功能的優(yōu)點(diǎn)在于訪(fǎng)問(wèn) FIFO 的電路至少有一個(gè)時(shí)鐘周期來(lái)評(píng)估 FIFO 的狀態(tài)。FIFO 可以將所有項(xiàng)都填滿(mǎn)數(shù)據(jù),而不會(huì)出現(xiàn)數(shù)據(jù)被覆蓋或全空無(wú)數(shù)據(jù)可讀的情況。這種設(shè)計(jì)的另一個(gè)優(yōu)點(diǎn)是每一端都可以讀其相應(yīng)的計(jì)數(shù)器,來(lái)判斷 F

47、IFO 中還有多少項(xiàng)可用。人們可以將這種 FIFO設(shè)計(jì)用在進(jìn)行多次數(shù)據(jù)讀/寫(xiě)的電路中,而不會(huì)造成上溢或下溢的情況。這種設(shè)計(jì)的不足之處是由計(jì)數(shù)器來(lái)判斷狀態(tài),而不是直接比較讀、寫(xiě)指針。對(duì)大型 FIFO 來(lái)說(shuō),這些計(jì)數(shù)器也很大。而且,由于使用脈沖同步時(shí),來(lái)自較快時(shí)鐘域的讀、寫(xiě)脈沖在較慢時(shí)鐘域的脈沖間至少必須有兩個(gè)時(shí)鐘周期,因此平均數(shù)據(jù)速率為最低時(shí)鐘頻率的一半。解決這些問(wèn)題的一種方法是采用直接指針比較法。在這種 FIFO 設(shè)計(jì)中,讀、寫(xiě)指針的比較決定了 FIFO 的狀態(tài)。HYPERLINK :/article.ednchina /word/66471.aspx o 異步異步設(shè)計(jì)中的指針比較更富有挑戰(zhàn)性

48、,因?yàn)槊總€(gè)指針位于不同的時(shí)鐘域中,對(duì)信號(hào)總線(xiàn)的同步要求在同步握手信號(hào)期間總線(xiàn)不發(fā)生改變。將這種技術(shù)用于指針同步的 FIFO 設(shè)計(jì)可能會(huì)很慢。要解決這個(gè)問(wèn)題,F(xiàn)IFO 指針邏輯使用了格雷碼,代替指針使用的二進(jìn)制碼。格雷碼如表 2-1所示,在每一次計(jì)數(shù)增減時(shí)只改變其中的一位??梢栽诟窭状a總線(xiàn)上使用同步器,因?yàn)槊恳淮慰偩€(xiàn)改變時(shí)只有一根信號(hào)線(xiàn)有變化,于是就消除了格雷碼總線(xiàn)各位通過(guò)不同同步器時(shí)的競(jìng)爭(zhēng)情況。這種設(shè)計(jì)的指針為格雷碼計(jì)數(shù)器。使用二進(jìn)制指針時(shí)需要將其變換成格雷碼后的同步指針,而使用變換邏輯會(huì)違反對(duì)同步信號(hào)的限制,即同步的信號(hào)在跨越時(shí)鐘域前要來(lái)自觸發(fā)器。Decimal012345678910111

49、2131415Binary01101110010111011110001001101010111100110111101111Gray01111011011110110011001101111111101010101110011000表2-1 格雷碼與十進(jìn)制,二進(jìn)制的轉(zhuǎn)換關(guān)系表2.2 異步FIFO芯片簡(jiǎn)介3FIFO芯片是一種具有存儲(chǔ)功能的高速邏輯芯片,可在高速數(shù)字系統(tǒng)中用作數(shù)據(jù)緩存。FIFO通常利用雙口RAM和讀寫(xiě)地址產(chǎn)生模塊來(lái)實(shí)現(xiàn)其功能。FIFO的接口信號(hào)包括異步寫(xiě)時(shí)鐘(wr-clk)和讀時(shí)鐘(rd-clk)、與寫(xiě)時(shí)鐘同步的寫(xiě)有效(wren)和寫(xiě)數(shù)據(jù)(wr-data)、與讀時(shí)鐘同步的讀有效(

50、rden)和讀數(shù)據(jù)(rd-data)。寫(xiě)地址產(chǎn)生模塊一般還根據(jù)讀地址和寫(xiě)地址來(lái)產(chǎn)生FIFO的滿(mǎn)標(biāo)志。讀地址產(chǎn)生模塊一般根據(jù)讀地址和寫(xiě)地址的差來(lái)產(chǎn)生FIFO的空標(biāo)志。為了實(shí)現(xiàn)正確的讀寫(xiě)和避免FIFO的上溢或下溢,通常還應(yīng)給出與讀時(shí)鐘和寫(xiě)時(shí)鐘同步的FIFO的空標(biāo)志(empty)和滿(mǎn)標(biāo)志(full),以禁止讀寫(xiě)操作。寫(xiě)地址產(chǎn)生模塊通常根據(jù)寫(xiě)時(shí)鐘和寫(xiě)有效信號(hào)來(lái)產(chǎn)生遞增的寫(xiě)地址,而讀地址產(chǎn)生模塊則根據(jù)讀時(shí)鐘和讀有效信號(hào)來(lái)產(chǎn)生遞增的讀地址。FIFO一般在操作時(shí),首先在寫(xiě)時(shí)鐘wr clk的上升沿且當(dāng)wren有效時(shí),將wrdata寫(xiě)入雙口RAM中寫(xiě)地址對(duì)應(yīng)的位置中,然后將讀地址對(duì)應(yīng)的雙口RAM中的數(shù)據(jù)輸出到讀

51、數(shù)據(jù)總線(xiàn)上,這樣就可實(shí)現(xiàn)先進(jìn)先出功能。讀寫(xiě)操作一般會(huì)自動(dòng)訪(fǎng)問(wèn)存儲(chǔ)器中連續(xù)的存儲(chǔ)單元。從FIFO中讀出的數(shù)據(jù)順序與寫(xiě)入的順序一樣,而地址的順序則在部已經(jīng)預(yù)先定義好,因此,對(duì)FIFO芯片的操作不需要額外的地址信息。另外,F(xiàn)IFO芯片還能提供對(duì)讀寫(xiě)指針的復(fù)位功能。這些結(jié)構(gòu)上的特點(diǎn)使FIFO的應(yīng)用大大簡(jiǎn)化了電路的復(fù)雜程度,提高了系統(tǒng)的可靠性和穩(wěn)定性。2.3 FIFO的一些重要參數(shù)7FIFO的寬度:也就是英文資料里??吹降腡HE WIDTH,它只的是FIFO一次讀寫(xiě)操作的數(shù)據(jù)位,就像MCU有8位和16位,ARM 32位等等,F(xiàn)IFO的寬度在單片成品IC中是固定的,也有可選擇的,如果用FPGA自己實(shí)現(xiàn)一個(gè)

52、FIFO,其數(shù)據(jù)位,也就是寬度是可以自己定義的。FIFO的深度:THE DEEPTH,它指的是FIFO可以存儲(chǔ)多少個(gè)N位的數(shù)據(jù)(如果寬度為N)。如一個(gè)8位的FIFO,若深度為8,它可以存儲(chǔ)8個(gè)8位的數(shù)據(jù),深度為12 ,就可以存儲(chǔ)12個(gè)8位的數(shù)據(jù),F(xiàn)IFO的深度可大可小,個(gè)人認(rèn)為FIFO深度的計(jì)算并無(wú)一個(gè)固定的公式。在FIFO實(shí)際工作中,其數(shù)據(jù)的滿(mǎn)/空標(biāo)志可以控制數(shù)據(jù)的繼續(xù)寫(xiě)入或讀出。在一個(gè)具體的應(yīng)用中也不可能由一些參數(shù)算數(shù)精確的所需FIFO深度為多少,這在寫(xiě)速度大于讀速度的理想狀態(tài)下是可行的,但在實(shí)際中用到的FIFO深度往往要大于計(jì)算值。一般來(lái)說(shuō)根據(jù)電路的具體情況,在兼顧系統(tǒng)性能和FIFO成本

53、的情況下估算一個(gè)大概的寬度和深度就可以了。而對(duì)于寫(xiě)速度慢于讀速度的應(yīng)用,F(xiàn)IFO的深度要根據(jù)讀出的數(shù)據(jù)結(jié)構(gòu)和讀出數(shù)據(jù)的由那些具體的要求來(lái)確定。 滿(mǎn)標(biāo)志:FIFO已滿(mǎn)或?qū)⒁獫M(mǎn)時(shí)由FIFO的狀態(tài)電路送出的一個(gè)信號(hào),以阻止FIFO的寫(xiě)操作繼續(xù)向FIFO中寫(xiě)數(shù)據(jù)而造成溢出(overflow)空標(biāo)志:FIFO已空或?qū)⒁諘r(shí)由FIFO的狀態(tài)電路送出的一個(gè)信號(hào),以阻止FIFO的讀操作繼續(xù)從FIFO中讀出數(shù)據(jù)而造成無(wú)效數(shù)據(jù)的讀出(underflow)。讀時(shí)鐘:讀操作所遵循的時(shí)鐘,在每個(gè)時(shí)鐘沿來(lái)臨時(shí)讀數(shù)據(jù)。寫(xiě)時(shí)鐘:寫(xiě)操作所遵循的時(shí)鐘,在每個(gè)時(shí)鐘沿來(lái)臨時(shí)寫(xiě)數(shù)據(jù)。讀指針:指向下一個(gè)讀出地址。讀完后自動(dòng)加1。寫(xiě)指針:

54、指向下一個(gè)要寫(xiě)入的地址的,寫(xiě)完自動(dòng)加1。 讀寫(xiě)指針其實(shí)就是讀寫(xiě)的地址,只不過(guò)這個(gè)地址不能任意選擇,而是連續(xù)的。2.4 異步FIFO設(shè)計(jì)的難點(diǎn)92.4.1 異步FIFO設(shè)計(jì)難點(diǎn)概述計(jì)異步FIFO有兩個(gè)難點(diǎn):一是如何正確地設(shè)計(jì)空、滿(mǎn)指針以與幾乎滿(mǎn)等信號(hào)的控制電路;二是如何同步異步信號(hào),使觸發(fā)器不產(chǎn)生亞穩(wěn)態(tài)。 解決FIFO的滿(mǎn)/空技術(shù)方法概述和特點(diǎn)怎樣判斷FIFO的空/滿(mǎn)狀態(tài)?為了保證數(shù)據(jù)正確的寫(xiě)入或讀出,而不發(fā)生益處或讀空的狀態(tài)出現(xiàn),必須保證FIFO在滿(mǎn)的情況下,不能進(jìn)行寫(xiě)操作。在空的狀態(tài)下不能進(jìn)行讀操作。怎樣判斷FIFO的滿(mǎn)/空就成了FIFO設(shè)計(jì)的核心問(wèn)題。由于同步FIFO幾乎很少

55、用到,這里只描述異步FIFO的空/滿(mǎn)標(biāo)志產(chǎn)生問(wèn)題。空/滿(mǎn)標(biāo)志產(chǎn)生的原則是:寫(xiě)滿(mǎn)不溢出,讀空不多讀。即無(wú)論在什么進(jìn)修,都不應(yīng)出現(xiàn)讀寫(xiě)地址同時(shí)對(duì)一個(gè)存儲(chǔ)器地址操作的情況。在讀寫(xiě)地址相等或相差一個(gè)或多個(gè)地址的時(shí)候,滿(mǎn)標(biāo)志應(yīng)該有效,表示此時(shí)FIFO已滿(mǎn),外部電路應(yīng)對(duì)FIFO發(fā)數(shù)據(jù)。在滿(mǎn)信號(hào)有效時(shí)寫(xiě)數(shù)據(jù),應(yīng)根據(jù)設(shè)計(jì)的要求,或保持、或拋棄重發(fā)。同理,空標(biāo)志的產(chǎn)生也是如此,即:空標(biāo)志=(|寫(xiě)地址-讀地址|=預(yù)定值)AND(寫(xiě)地址超前讀地址)滿(mǎn)標(biāo)志=(|寫(xiě)地址-讀地址|=預(yù)定值)AND(讀地址超前寫(xiě)地址)最直接的做法是,采用讀寫(xiě)地址相比較來(lái)產(chǎn)生空滿(mǎn)標(biāo)志。當(dāng)讀寫(xiě)地址的差值等于一個(gè)預(yù)設(shè)值的時(shí)候,空/滿(mǎn)信號(hào)被置位。

56、這種實(shí)現(xiàn)方法邏輯簡(jiǎn)單,但它是減法器形成的一個(gè)比較大的組合邏輯,因而限制了FIFO的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。 亞穩(wěn)態(tài)問(wèn)題的產(chǎn)生與解決在用到觸發(fā)器的設(shè)計(jì)中,不可避免的會(huì)遇到亞穩(wěn)態(tài)的問(wèn)題。在涉與到觸發(fā)器的電路中,亞穩(wěn)態(tài)無(wú)法徹底消除,只能想辦法將其發(fā)生的概率將到最低。其中的一個(gè)方法就是使用格雷碼。格雷碼在相鄰的兩個(gè)碼元之間只由一位變換(二進(jìn)制碼在很多情況下是很多碼元在同時(shí)變化)。這就會(huì)避免計(jì)數(shù)器與時(shí)鐘同步的時(shí)候發(fā)生亞穩(wěn)態(tài)現(xiàn)象。但是格雷碼有個(gè)缺點(diǎn)就是只能定義2n的深度,而不能像二進(jìn)制碼那樣隨意的定義FIFO的深度,因?yàn)楦窭状a必須循環(huán)一個(gè)2n,否則就不能保

57、證兩個(gè)相鄰碼元之間相差一位的條件,因此也就不是真正的格雷碼了。第二就是使用冗余的觸發(fā)器,假設(shè)一個(gè)觸發(fā)器發(fā)生亞穩(wěn)態(tài)的概率為P,那么兩個(gè)與聯(lián)的觸發(fā)器發(fā)生亞穩(wěn)態(tài)的概率就為P的平方。但這會(huì)導(dǎo)致延時(shí)的增加。亞穩(wěn)態(tài)的發(fā)生會(huì)使得FIFO出現(xiàn)錯(cuò)誤,讀/寫(xiě)時(shí)鐘采樣的地址指針會(huì)與真實(shí)的值之間不同,這就導(dǎo)致寫(xiě)入或讀出的地址錯(cuò)誤。由于考慮延時(shí)的作用,空/滿(mǎn)標(biāo)志的產(chǎn)生并不一定出現(xiàn)在FIFO真的空/滿(mǎn)時(shí)才出現(xiàn)。可能FIFO還未空/滿(mǎn)時(shí)就出現(xiàn)了空/滿(mǎn)標(biāo)志。這并沒(méi)有什么不好,只要保證FIFO不出現(xiàn)overflow或underflow 就足夠了。2.5 異步FIFO的功能簡(jiǎn)介9FIFO(First In First Out)存

58、儲(chǔ)器是一個(gè)先入先出的雙口緩沖器,即第一個(gè)進(jìn)入其的數(shù)據(jù)第一個(gè)被移出,其中一個(gè)存儲(chǔ)器的輸入口,另一個(gè)口是存儲(chǔ)器的輸出口。對(duì)于單片F(xiàn)IFO來(lái)說(shuō),主要有兩種結(jié)構(gòu):觸發(fā)導(dǎo)向結(jié)構(gòu)和零導(dǎo)向傳輸結(jié)構(gòu)。觸發(fā)導(dǎo)向傳輸結(jié)構(gòu)的FIFO是由寄存器陣列構(gòu)成的,是由具有讀和寫(xiě)地址指針的雙口RAM構(gòu)成。本文所描述的是零導(dǎo)向傳輸結(jié)構(gòu)的FIFO。FIFO存儲(chǔ)器是系統(tǒng)的緩沖環(huán)節(jié),如果沒(méi)有FIFO存儲(chǔ)器,整個(gè)系統(tǒng)就不可能正常工作,它主要有幾方面的功能:(1)對(duì)連續(xù)的數(shù)據(jù)流進(jìn)行緩存,防止在進(jìn)機(jī)和存儲(chǔ)操作時(shí)丟失數(shù)據(jù);(2)數(shù)據(jù)集中起來(lái)進(jìn)行進(jìn)機(jī)和存儲(chǔ),可避免頻繁的總線(xiàn)操作,減輕CPU的負(fù)擔(dān);(3)允許系統(tǒng)進(jìn)行DMA(Direct Memo

59、ry Access,直接存儲(chǔ)器存取)操作,提高數(shù)據(jù)的傳輸速度。這是至關(guān)重要的一點(diǎn),如果不采用DMA操作,數(shù)據(jù)傳輸將達(dá)不到傳輸要求,而且大大增加CPU的負(fù)擔(dān),無(wú)法同時(shí)完成數(shù)據(jù)的存儲(chǔ)工作。FIFO設(shè)計(jì)的難點(diǎn)在于怎樣判斷FIFO的空/滿(mǎn)狀態(tài)。為了保證數(shù)據(jù)正確的寫(xiě)入或讀出,而不發(fā)生益處或讀空的狀態(tài)出現(xiàn),必須保證FIFO在滿(mǎn)的情況下,不能進(jìn)行寫(xiě)操作。在空的狀態(tài)下不能進(jìn)行讀操作。怎樣判斷FIFO的滿(mǎn)/空就成了FIFO設(shè)計(jì)的核心問(wèn)題。2.6 Quartus仿真工具簡(jiǎn)介5 Quartus是Altera公司提供的FPGA/CPLD開(kāi)發(fā)集成環(huán) 境,Altera是世界上最大可編程邏輯器件的供應(yīng)商之一。Quartus

60、界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。在Quartus上可以完成設(shè)計(jì)輸入、元件適配、時(shí)序仿真和功能仿真、編程下載整個(gè)流程,它提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。2.6.1主要特點(diǎn)一、開(kāi)放的界面Quartus支持與Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。 二、與結(jié)構(gòu)無(wú)關(guān)Quartus系統(tǒng)的核心Complier支持Altera公司所有可編程邏輯器件,提供了世界上唯一真正與結(jié)構(gòu)無(wú)關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。三、完全集成化Quartus的設(shè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論