




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 PAGE38 / NUMPAGES38題 目 基于verilog hdl的異步FIFO設(shè)計(jì) 畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明和使用授權(quán)說明原創(chuàng)性聲明本人重承諾:所呈交的畢業(yè)設(shè)計(jì)(論文),是我個人在指導(dǎo)教師的指導(dǎo)下進(jìn)行的研究工作與取得的成果。盡我所知,除文中特別加以標(biāo)注和致的地方外,不包含其他人或組織已經(jīng)發(fā)表或公布過的研究成果,也不包含我為獲得與其它教育機(jī)構(gòu)的學(xué)位或?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人或集體,均已在文中作了明確的說明并表示了意。作 者 簽 名:日 期:指導(dǎo)教師簽名: 日期:使用授權(quán)說明本人完全了解大學(xué)關(guān)于收集、保存、使用畢業(yè)設(shè)計(jì)(論文)的規(guī)定,即:按照學(xué)校要求提交
2、畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版本;學(xué)校有權(quán)保存畢業(yè)設(shè)計(jì)(論文)的印刷本和電子版,并提供目錄檢索與閱覽服務(wù);學(xué)??梢圆捎糜坝?、縮印、數(shù)字化或其它復(fù)制手段保存論文;在不以贏利為目的前提下,學(xué)校可以公布論文的部分或全部容。作者簽名: 日 期:學(xué)位論文原創(chuàng)性聲明本人重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨(dú)立進(jìn)行研究所取得的研究成果。除了文中特別加以標(biāo)注引用的容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律后果由本人承擔(dān)。作者簽名: 日期: 年 月 日學(xué)位論文使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有
3、關(guān)保留、使用學(xué)位論文的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)大學(xué)可以將本學(xué)位論文的全部或部分容編入有關(guān)數(shù)據(jù)庫進(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)目次頁(附件不統(tǒng)一編入)6)論文主體部分:引言(或緒論)、正文、結(jié)論7)參考文獻(xiàn)8)致9)附錄(對論文支持必要時)2.論文字?jǐn)?shù)要求:理工
4、類設(shè)計(jì)(論文)正文字?jǐn)?shù)不少于1萬字(不包括圖紙、程序清單等),文科類論文正文字?jǐn)?shù)不少于1.2萬字。3.附件包括:任務(wù)書、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)。4.文字、圖表要求:1)文字通順,語言流暢,書寫字跡工整,打印字體與大小符合要求,無錯別字,不準(zhǔn)請他人代寫2)工程設(shè)計(jì)類題目的圖紙,要求部分用尺規(guī)繪制,部分用計(jì)算機(jī)繪制,所有圖紙應(yīng)符合國家技術(shù)標(biāo)準(zhǔn)規(guī)。圖表整潔,布局合理,文字注釋必須使用工程字書寫,不準(zhǔn)用徒手畫3)畢業(yè)論文須用A4單面打印,論文50頁以上的雙面打印4)圖表應(yīng)繪制于無格子的頁面上5)軟件工程類課題應(yīng)有程序清單,并提供電子文檔5.裝訂順序1)設(shè)計(jì)(論文)2)附件:按照任務(wù)書、
5、開題報(bào)告、外文譯文、譯文原文(復(fù)印件)次序裝訂基于Verilog HDL的異步FIFO設(shè)計(jì)與實(shí)現(xiàn)摘 要在現(xiàn)代IC設(shè)計(jì)中,特別是在模塊與外圍芯片的通信設(shè)計(jì)中,多時鐘域的情況不可避免。當(dāng)數(shù)據(jù)從一個時鐘域傳遞到另一個域,并且目標(biāo)時鐘域與源時鐘域不相關(guān)時,這些域中的動作是不相關(guān)的,從而消除了同步操作的可能性,并使系統(tǒng)重復(fù)地進(jìn)入亞穩(wěn)定狀態(tài),造成系統(tǒng)時鐘時序上的紊亂。為了有效的解決這個問題,我們采用一種異步FIFO(先進(jìn)先 出)存儲器來實(shí)現(xiàn)。本文提出一種新穎的異步FIFO設(shè)計(jì)方案,它通過先比較讀寫地址并結(jié)合象限檢測法產(chǎn)生異步的空/滿標(biāo)志,再把異步的空/滿標(biāo)志同步到相應(yīng)的時鐘域。通過仿真驗(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 存儲器外發(fā)展?fàn)顩r PAGEREF _Toc246848773 h 2HYPERLINK l _Toc2468487741.4 FIFO設(shè)計(jì)技術(shù)簡介 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ì)中存在的問題與解決辦法 PAGEREF _Toc246848777 h 5HYPERLINK l _Toc2468487781.5.1 亞穩(wěn)態(tài) PAGEREF _Toc246848778 h 5HYPERLINK l _Toc2468487791.5.2 空/滿指針的解決方法 PAGEREF _Toc246848779 h 6HYPERLINK l _Toc2468487801.6 論文主要容 P
12、AGEREF _Toc246848780 h 6HYPERLINK l _Toc2468487812 異步FIFO工作原理簡介 PAGEREF _Toc246848781 h 7HYPERLINK l _Toc2468487822.1 關(guān)于異步信號 PAGEREF _Toc246848782 h 7HYPERLINK l _Toc2468487832.2 異步FIFO芯片簡介 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的滿/空技術(shù)方法概述和特點(diǎn) PAGEREF _Toc246848787 h 10HYPERLINK l _Toc24684878 亞穩(wěn)態(tài)問題的產(chǎn)生與解決 PAGEREF _Toc246848788 h 10HYPERLINK l _Toc2468487892.5 FIF
14、O的功能簡介 PAGEREF _Toc246848789 h 11HYPERLINK l _Toc2468487902.6 Modelsim仿真工具簡介 PAGEREF _Toc246848790 h 11HYPERLINK l _Toc2468487912.6.1 主要特點(diǎn) PAGEREF _Toc246848791 h 11HYPERLINK l _Toc2468487922.7 Verilog HDL語言的簡介 PAGEREF _Toc246848792 h 12HYPERLINK l _Toc2468487932.8 HDL語言 PAGEREF _Toc246848793 h 12HY
15、PERLINK l _Toc2468487942.8.1 HDL與原理圖輸入法的關(guān)系 PAGEREF _Toc246848794 h 13HYPERLINK l _Toc2468487952.8.2 HDL開發(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)問題的解決方案 PAGEREF _Toc246848800 h 16HYPERLINK l _Toc2468488014.1.1 問題的產(chǎn)生 PAGEREF _Toc246848801 h 16HYPERLINK l _Toc2468488024.1.2 常見的解決方法 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)志與時鐘的同步 PAGEREF _Toc246848809 h 19HYPERLINK l _Toc2468488 保守的空/滿標(biāo)志 PAGEREF _Toc246848810 h 21HYPERLINK l _Toc2468488 半滿、將近滿、將近空的產(chǎn)生 PAGEREF _Toc246848811 h 22HY
19、PERLINK l _Toc2468488FIFO異步空/滿信號的同步 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ù)字圖像、語音等數(shù)據(jù)傳輸技術(shù)近年來得到了極大的重視和長足的發(fā)展,并取得了廣泛的應(yīng)用。如何保障這些語音、圖像等數(shù)據(jù)傳輸?shù)臏?zhǔn)確性、與時性?如何高效率高速度地傳輸這些數(shù)據(jù)?這些都是當(dāng)今信息領(lǐng)域的科研人員所必須回答和
21、解決的問題。而往往在這些數(shù)據(jù)傳輸系統(tǒng)中,又會遇到不同系統(tǒng)接口間數(shù)據(jù)的傳輸。通常在兩個相連接的不同電路系統(tǒng)之間,因?yàn)槊總€系統(tǒng)的數(shù)據(jù)傳輸速度不同,在系統(tǒng)的接口部分就會出現(xiàn)數(shù)據(jù)輸入速度和輸出速度不同,也就是會發(fā)生數(shù)據(jù)傳輸速率不匹配的問題。這種情況往往會讓傳輸?shù)臄?shù)據(jù)產(chǎn)生復(fù)寫或丟失,降低數(shù)據(jù)的傳輸速率,同時也因?yàn)閿?shù)據(jù)復(fù)寫、丟失和無效數(shù)據(jù)的讀入,將會產(chǎn)生數(shù)據(jù)出錯,因此需要在不同系統(tǒng)的接口處設(shè)計(jì)數(shù)據(jù)傳輸單元來實(shí)現(xiàn)數(shù)據(jù)的高速高效傳輸。在現(xiàn)代的系統(tǒng)設(shè)計(jì)中,為了提高系統(tǒng)的性能,設(shè)計(jì)者對數(shù)據(jù)的傳輸率、數(shù)據(jù)的傳輸量,對系統(tǒng)各部分之間的接口部分不同的數(shù)據(jù)輸入和接收傳輸率的匹配有越來越高的要求,而 FIFO存儲器以其合理
22、的價格、使用的方便靈活性以與上述的對速度匹配的應(yīng)用而成為解決這類問題的理想途徑,因此FIFO 存儲器在計(jì)算機(jī)、多媒體和數(shù)據(jù)通信領(lǐng)域都有著廣泛的應(yīng)用,因此對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ǎn)品的應(yīng)用領(lǐng)域已經(jīng)從原來的 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)電子、汽車 HYPERLINK :/trs.cena .cn/trsweb/search.wct?channelid=8453 t _blank 電子、工業(yè)控制、測試測量等廣泛的領(lǐng)域。而應(yīng)用的變化也使FPGA產(chǎn)品近幾年的演進(jìn)趨勢越來越明顯:一方面,F(xiàn)PGA供應(yīng)商致力于采用當(dāng)前最先進(jìn)的工藝來提升產(chǎn)品的性能,降低產(chǎn)品的成本;另一方面,越來越多的通用IP(知識產(chǎn)權(quán))或客戶定制IP被引入FPGA中,以滿足客戶產(chǎn)品快速上市的要求。此外,F(xiàn)PGA企業(yè)都在大力降低產(chǎn)品的功耗,滿
24、足業(yè)界越來越苛刻的低功耗需求。在FPGA設(shè)計(jì)中,F(xiàn)IFO(先進(jìn)先出隊(duì)列)的設(shè)計(jì)是一種在電子系統(tǒng)得到廣泛應(yīng)用的器件,通常用于數(shù)據(jù)的緩存和用于容納異步信號的頻率或相位的差異。電子產(chǎn)品的更新速度很快,品種也在也逐漸增多,所以緩存對于電子產(chǎn)品的工作速度來說是相當(dāng)重要的,這也就使得FIFO的應(yīng)用更加廣泛。所以FIFO的研發(fā)在一定意義上已經(jīng)盡量的滿足了市場對產(chǎn)品的高速度的要求。1.3 存儲器的發(fā)展?fàn)顩rFIFO,簡單的說就是一種存儲器。下面簡單介紹一下存儲器的發(fā)展?fàn)顩r。(1)汞延遲線汞延遲線是基于汞在室溫時是液體,同時又是導(dǎo)體,每比特?cái)?shù)據(jù)用機(jī)械波的波峰機(jī)械波從汞柱的一端開始,一定厚度的熔融態(tài)金屬汞通過一振動
25、膜片沿著縱向從一端傳到另一端,這樣就得名“汞延遲線”。在管的另一端,一傳感器得到每一比特的信息,并反饋到起點(diǎn)。設(shè)想是汞獲取并延遲這些數(shù)據(jù),這樣它們便能存儲了。這個過程是機(jī)械和電子的奇妙結(jié)合。缺點(diǎn)是由于環(huán)境條件的限制,這種存儲器方式會受各種環(huán)境因素影響而不精確。1950年,世界上第一臺具有存儲程序功能的計(jì)算機(jī)EDVAC由.諾依曼博士領(lǐng)導(dǎo)設(shè)計(jì)。它的主要特點(diǎn)是采用二進(jìn)制,使用汞延遲線作存儲器,指令和程序可存入計(jì)算機(jī)中。1951年3月,由ENIAC的主要設(shè)計(jì)者莫克利和埃克特設(shè)計(jì)的第一臺通用自動計(jì)算機(jī)UNIVAC-I交付使用。它不僅能作科學(xué)計(jì)算,而且能作數(shù)據(jù)處理。 (2) 磁帶UNIVAC-I第一次采用
26、磁帶機(jī)作外存儲器,首先用奇偶校驗(yàn)方法和雙重運(yùn)算線路來提高系統(tǒng)的可靠性,并最先進(jìn)行了自動編程的試驗(yàn)。磁帶是所有存儲媒體中單位存儲信息成本最低、容量最大、標(biāo)準(zhǔn)化程度最高的常用存儲介質(zhì)之一。它互換性好、易于保存,近年來,由于采用了具有高糾錯能力的編碼技術(shù)和即寫即讀的通道技術(shù),大大提高了磁帶存儲的可靠性和讀寫速度。根據(jù)讀寫磁帶的工作原理可分為螺旋掃描技術(shù)、線性記錄(數(shù)據(jù)流)技術(shù)、DLT技術(shù)以與比較先進(jìn)的LTO技術(shù)。根據(jù)讀寫磁帶的工作原理,磁帶機(jī)可以分為六種規(guī)格。其中兩種采用螺旋掃描讀寫方式的是面向工作組級的DAT(4mm)磁帶機(jī)和面向部門級的8mm磁帶機(jī),另外四種則是選用數(shù)據(jù)流存儲技術(shù)設(shè)計(jì)的設(shè)備,它們
27、分別是采用單磁頭讀寫方式、磁帶寬度為1/4英寸、面向低端應(yīng)用的Travan和DC系列,以與采用多磁頭讀寫方式、磁帶寬度均為1/2英寸、面向高端應(yīng)用的DLT和IBM的3480/3490/3590系列等。(3) 磁鼓1953年,第一臺磁鼓應(yīng)用于IBM 701,它是作為存儲器使用的。磁鼓是利用鋁鼓筒表面涂覆的磁性材料來存儲數(shù)據(jù)的。鼓筒旋轉(zhuǎn)速度很高,因此存取速度快。它采用飽和磁記錄,從固定式磁頭發(fā)展到浮動式磁頭,從采用磁膠發(fā)展到采用電鍍的連續(xù)磁介質(zhì)。這些都為后來的磁盤存儲器打下了基礎(chǔ)。磁鼓最大的缺點(diǎn)是利用率不高, 一個大圓柱體只有表面一層用于存儲,而磁盤的兩面都利用來存儲,顯然利用率要高得多。 因此,
28、當(dāng)磁盤出現(xiàn)后,磁鼓就被淘汰了。 (4) 磁芯美國物理學(xué)家王安1950年提出了利用磁性材料制造存儲器的思想。福雷斯特則將這一思想變成了現(xiàn)實(shí)。為了實(shí)現(xiàn)磁芯存儲,福雷斯特需要一種物質(zhì),這種物質(zhì)應(yīng)該有一個非常明確的磁化閾值。他找到在新澤西生產(chǎn)電視機(jī)用鐵氧體變換器的一家公司的德國老瓷專家,利用熔化鐵礦和氧化物獲取了特定的磁性質(zhì)。對磁化有明確閾值是設(shè)計(jì)的關(guān)鍵。最先獲得這些專利許可證的是IBM,IBM最終獲得了在北美防衛(wèi)軍事基地安裝“旋風(fēng)”的商業(yè)合同。更重要的是,自20世紀(jì)50年代以來,所有大型和中型計(jì)算機(jī)也采用了這一系統(tǒng)。磁芯存儲從20世紀(jì)50年代、60年代,直至70年代初,一直是計(jì)算機(jī)主存的標(biāo)準(zhǔn)方式。
29、(5)磁盤世界第一臺硬盤存儲器是由IBM公司在1956年發(fā)明的,其型號為IBM 350 RAMAC(Random Access Method of Accounting and Control)。這套系統(tǒng)的總?cè)萘恐挥?MB,共使用了50個直徑為24英寸的磁盤。1968年,IBM公司提出“溫徹斯特/Winchester”技術(shù),其要點(diǎn)是將高速旋轉(zhuǎn)的磁盤、磁頭與其尋道機(jī)構(gòu)等全部密封在一個無塵的封閉體中,形成一個頭盤組合件(HDA),與外界環(huán)境隔絕,避免了灰塵的污染,并采用小型化輕浮力的磁頭浮動塊,盤片表面涂潤滑劑,實(shí)行接觸起停,這是現(xiàn)代絕大多數(shù)硬盤的原型。1979年,IBM發(fā)明了薄膜磁頭,進(jìn)一步減輕
30、了磁頭重量,使更快的存取速度、更高的存儲密度成為可能。20世紀(jì)80年代末期,IBM公司又對磁盤技術(shù)作出一項(xiàng)重大貢獻(xiàn),發(fā)明了MR(Magneto Resistive)磁阻磁頭,這種磁頭在讀取數(shù)據(jù)時對信號變化相當(dāng)敏感,使得盤片的存儲密度比以往提高了數(shù)十倍。1991年,IBM生產(chǎn)的3.5英寸硬盤使用了MR磁頭,使硬盤的容量首次達(dá)到了1GB,從此,硬盤容量開始進(jìn)入了GB數(shù)量級。另一種磁盤存儲設(shè)備是軟盤,從早期的8英寸軟盤、5.25英寸軟盤到3.5英寸軟盤,主要為數(shù)據(jù)交換和小容量備份之用。其中,3.5英寸1.44MB軟盤占據(jù)計(jì)算機(jī)的標(biāo)準(zhǔn)配置地位近20年之久,之后出現(xiàn)過24MB、100MB、200MB的高
31、密度過渡性軟盤和軟驅(qū)產(chǎn)品。(6)光盤光盤主要分為只讀型光盤和讀寫型光盤。只讀型指光盤上的容是固定的,不能寫入、修改,只能讀取其中的容。讀寫型則允許人們對光盤容進(jìn)行修改,可以抹去原來的容,寫入新的容。用于微型計(jì)算機(jī)的光盤主要有CD-ROM、CD-R/W和DVD-ROM等幾種。(7) 納米存儲納米是一種長度單位,符號為nm。1納米=1毫微米,約為10個原子的長度。假設(shè)一根頭發(fā)的直徑為0.05毫米,把它徑向平均剖成5萬根,每根的厚度即約為1納米。與納米存儲有關(guān)的主要進(jìn)展有如下容。1998年,美國明尼達(dá)大學(xué)和普林斯頓大學(xué)制備成功量子磁盤,這種磁盤是由磁性納米棒組成的納米陣列體系。一個量子磁盤相當(dāng)于我們
32、現(xiàn)在的10萬100萬個磁盤,而能源消耗卻降低了1萬倍。1988年,法國人首先發(fā)現(xiàn)了巨磁電阻效應(yīng),到1997年,采用巨磁電阻原理的納米結(jié)構(gòu)器件已在美國問世,它在磁存儲、磁記憶和計(jì)算機(jī)讀寫磁頭等方面均有廣闊的應(yīng)用前景。2002年9月,美國威斯康星州大學(xué)的科研小組宣布,他們在室溫條件下通過操縱單個原子,研制出原子級的硅記憶材料,其存儲信息的密度是目前光盤的100萬倍。這是納米存儲材料技術(shù)研究的一大進(jìn)展。1.4 FIFO設(shè)計(jì)技術(shù)簡介1.4.1 基于信元的FIFO設(shè)計(jì)方法2設(shè)計(jì)者通常在FPGA上實(shí)現(xiàn)FIFO(先進(jìn)先出寄存器)的時候,都會使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對性變差
33、,某些情況下會變得不方便或者將增加硬件成本。此時,需要進(jìn)行自行FIFO設(shè)計(jì)。有一種基于信元的FIFO設(shè)計(jì)方法以供設(shè)計(jì)者在適當(dāng)?shù)臅r候選用。這種方法也適合于不定長包的處理。以ATM的設(shè)計(jì)為例,在ATM的相關(guān)設(shè)計(jì)中,設(shè)計(jì)者則更多希望一個FIFO對外給出的信息是“現(xiàn)在FIFO中還剩下幾個信元”。要實(shí)現(xiàn)這一功能通常有兩種方法:(1)調(diào)用廠商提供的以操作粒度為基本單元的通用FIFO,然后在這個FIFO的外面再加上一個“套子”。這個套子里面設(shè)計(jì)一些計(jì)數(shù)器,根據(jù)計(jì)數(shù)容對外提供相應(yīng)的信息。(2)設(shè)計(jì)操作粒度為信元的定制FIFO。這樣對外直接提供設(shè)計(jì)者最希望得到的信息,即FIFO中還有多少個信元。設(shè)定FIFO最多
34、可以存放4個信元?;締卧獮樽止?jié),因此RAM的數(shù)據(jù)寬度為8位,一個信元的長度為53字節(jié)。把RAM分成4個信元區(qū)域,讀寫地址的高二位指明信元區(qū)域,低六位指明信元區(qū)域的字節(jié)地址,這樣組合成8位讀寫地址。讀寫雙方的信息交換是互相通知對方還有多少個信元在FIFO中。讀寫雙方都擁有自己的記分牌(Scoreboard),這個記分牌可以由一個四位的寄存器來實(shí)現(xiàn),每一位對應(yīng)一個信元區(qū)域。當(dāng)一個信元區(qū)域中有一個完整的信元的時候,記分牌的相應(yīng)的寄存器被設(shè)置為1,否則為0。讀出方讀出一個信元,修改自己記分牌的動作叫做清位。寫入方寫入一個完整信元,修改自己記分牌的動作叫置位。從邏輯上說,只需要讀出方把自己的記分牌的信
35、息(清位信息)傳送給寫入方,同時寫入方把自己的記分牌的信息(置位信息)傳送給讀出方就可以了,即只要構(gòu)成兩條邏輯通道就可以滿足需求。但是,在硬件上的實(shí)現(xiàn)卻要比這種只從邏輯上的思考要復(fù)雜。由于讀寫雙方有可能處在不同的時鐘域,所以當(dāng)讀寫雙方交換信息的時候就需要處理信號采樣的亞穩(wěn)態(tài)情況。1.4.2基于SRAM/DRAM的大容量FIFO的設(shè)計(jì)與實(shí)現(xiàn)2許多系統(tǒng)都需要大容量FIFO作為緩存,但是由于成本和容量限制,常采用多個FIFO芯片級聯(lián)擴(kuò)展,這往往導(dǎo)致系統(tǒng)結(jié)構(gòu)復(fù)雜,成本高。靜態(tài)隨機(jī)存取存儲器SRAM(Static Random Access Memory)是一種非常重要的易失性存儲器,它的速度非??欤?/p>
36、且能在快速讀取和刷新時保持?jǐn)?shù)據(jù)完整性。SRAM器件采用Hynix公司的HY64UD16322A。HY64UD16322A是高速、超低功耗32 Mbit SRAM,部具有2 097 152個16 bit字容量。采用了CMOS制造工藝、TTL電平接口以與三態(tài)輸出,具有較大的輸入電壓和溫度圍。同時HY64UD16322A支持DPD(Deep Power Down)模式,保證其在待機(jī)模式下功耗進(jìn)一步降低。系統(tǒng)采用CPLD作為總控制器件。根據(jù)FIFO的特點(diǎn),需要將SRAM按地址存儲用程序控制成先進(jìn)先出的結(jié)構(gòu)。這里采用指針?biāo)惴▉韺?shí)現(xiàn)這種結(jié)構(gòu)設(shè)計(jì):設(shè)置兩個指針變量StartPos和EndPos。分別作為進(jìn)入
37、數(shù)據(jù)頭尾指針。當(dāng)有新數(shù)據(jù)寫入時,數(shù)據(jù)從上一次存儲最后位置的下一個位置開始存入一個數(shù)據(jù),EndPos就自動加1,保持與最后數(shù)據(jù)位置同步。當(dāng)EndPos超過整個RAM的最大容量(RAM_SIZE)時,就需要循環(huán)返回,從0 x000位置存放,一直到EndPos與StartPos重合。這時可以認(rèn)為RAM已經(jīng)存滿。同理,讀出數(shù)據(jù)時。起始位置StartPos自動加1。當(dāng)StartPos超過整個RAM的最大容量時,就從0 x000位置讀取。一直到StartPos與EndPos重合,這時可以認(rèn)為RAM已經(jīng)讀空。在這兩個過程當(dāng)中,CPLD需要對地址線進(jìn)行控制。不難發(fā)現(xiàn),寫數(shù)據(jù)的時候Address與EndPos一
38、致,讀數(shù)據(jù)的時候Address與StartPos一致。1.5 異步FIFO設(shè)計(jì)中存在的問題與解決辦法11.5.1 亞穩(wěn)態(tài)對于亞穩(wěn)態(tài)的解決方法主要有三種:1:對寫地址/讀地址采用格雷碼。由實(shí)踐可知,同步多個異步輸入信號出現(xiàn)亞穩(wěn)態(tài)的概率遠(yuǎn)遠(yuǎn)大于同步一個異步信號的概率。對多個觸發(fā)器的輸出所組成的寫地址/讀地址可以采用格雷碼。由于格雷碼每次只變化一位,采用格雷碼可以有效地減少亞穩(wěn)態(tài)的產(chǎn)生。2:采用兩極觸發(fā)器來同步異步輸入信號。信號同步的目的是防止新時鐘域中第一級觸發(fā)器的亞穩(wěn)態(tài)信號對下級邏輯造成影響。兩級寄存器的同步化處理單元由兩個觸發(fā)器串聯(lián)而成,中問沒有其它組合電路。這種設(shè)計(jì)可以保證后面的觸發(fā)器獲得前
39、一個觸發(fā)器輸出時,前一個觸發(fā)器已退出了亞穩(wěn)態(tài),并且輸出已穩(wěn)定。但是,這種方法同時帶來了對輸入信號的一級延時,需要在設(shè)計(jì)時鐘的時候加以注意。3:在信號從快時鐘域向慢時鐘域過渡時,如果信號變化太快,慢時鐘將可能無法對該信號進(jìn)行正確采樣,即采樣失敗。所以在使用雙鎖存器法時,應(yīng)該使原始信號保持足夠長的時間,以便另一個時鐘域的鎖存器對其進(jìn)行正確的采樣。 對上述問題,一般采用“結(jié)繩法”的設(shè)計(jì)方法,將慢時鐘周期信號通過分頻的方式將其周期增長,經(jīng)過雙鎖存采樣以后再使其恢復(fù)原來的時鐘周期。即用“結(jié)繩”將信號延長,用“同步”實(shí)現(xiàn)雙latch采樣,用“解繩”還原為原來的時鐘,保證另一個時鐘域也可以正確采樣,而接收方
40、用相反的流程送回響應(yīng)信號。1.5.2 空/滿指針的解決方法空/滿標(biāo)志產(chǎn)生的原則是:寫滿不溢出,讀空不多讀。即無論在什么進(jìn)修,都不應(yīng)出現(xiàn)讀寫地址同時對一個存儲器地址操作的情況。在讀寫地址相等或相差一個或多個地址的時候,滿標(biāo)志應(yīng)該有效,表示此時FIFO已滿,外部電路應(yīng)對FIFO發(fā)數(shù)據(jù)。在滿信號有效時寫數(shù)據(jù),應(yīng)根據(jù)設(shè)計(jì)的要求,或保持、或拋棄重發(fā)。同理,空標(biāo)志的產(chǎn)生也是如此,即:空標(biāo)志=(|寫地址-讀地址|=預(yù)定值)AND(寫地址超前讀地址)滿標(biāo)志=(|寫地址-讀地址|=預(yù)定值)AND(讀地址超前寫地址)最直接的做法是,采用讀寫地址相比較來產(chǎn)生空滿標(biāo)志。當(dāng)讀寫地址的差值等于一個預(yù)設(shè)值的時候,空/滿信號
41、被置位。這種實(shí)現(xiàn)方法邏輯簡單,但它是減法器形成的一個比較大的組合邏輯,因而限制了FIFO的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。1.6論文主要容第一章引言。簡單介紹了所研究題目的發(fā)展?fàn)顩r,以與它的研究有意義。第二章FIFO工作原理簡介。通過簡單的與原理圖介紹了異步FIFO的實(shí)現(xiàn)框圖以與設(shè)計(jì)的相關(guān)技術(shù)和簡要工作原理。第三章FIFO的實(shí)現(xiàn)方法與技術(shù)。分析了異步FIFO的參數(shù)和設(shè)計(jì)的難點(diǎn)。第四章異步FIFO實(shí)現(xiàn)與主要方法。通過第二章第三章對異步FIFO具體介紹,在這容中,重點(diǎn)描述了異步FIFO的實(shí)現(xiàn)方法。第五章總結(jié)。對異步FIFO的設(shè)計(jì)方法作了簡要的總結(jié),簡述了設(shè)計(jì)方法的不足之
42、處,以與應(yīng)采取的措施。2 異步FIFO工作原理簡介2.1關(guān)于異步信號9在許多情況下,數(shù)據(jù)在跨越時鐘域時需要“堆積”起來,因此使用單個保持寄存器無法完成工作。例如一種情況是某個傳輸電路猝發(fā)式發(fā)送數(shù)據(jù),接收電路來不與采樣。另一種情況是接收電路采樣速度超出傳輸電路發(fā)送數(shù)據(jù)的速度,但采樣的數(shù)據(jù)寬度不夠。這些情況就要使用 FIFO 了?;旧?,人們使用 FIFO 有兩個目的:速度匹配或數(shù)據(jù)寬度匹配。在速度匹配時,F(xiàn)IFO 較快的端口處理猝發(fā)的數(shù)據(jù)傳輸,而較慢的端口則維持恒定的數(shù)據(jù)流。但是,雖然訪問方式和速度不同,但進(jìn)出 FIFO 的平均數(shù)據(jù)速率必須是一樣的,否則 FIFO 就會出現(xiàn)上溢(oveRFlow
43、)或下溢(underflow)問題。與單寄存器設(shè)計(jì)一樣,F(xiàn)IFO 將數(shù)據(jù)保存在寄存器或存儲器中,同時HYPERLINK :/article.ednchina /word/66469.aspx o 同步同步狀態(tài)HYPERLINK :/article.ednchina /word/66470.aspx o 信號信號,判斷何時可以把數(shù)據(jù)寫入 FIFO 或從 FIFO 中讀出。在速度匹配應(yīng)用中,每個端口(讀或?qū)懀┑臅r鐘不同。FIFO 中的寄存器使用寫端口時鐘,就像保持寄存器使用電路時鐘來改變寄存器容一樣。信號同步發(fā)生在指針邏輯中,而且比握手信號要復(fù)雜得多?,F(xiàn)在指針邏輯的設(shè)計(jì)有多種方法。第一種方法是將讀
44、、寫選通進(jìn)行同步,同時在各個時鐘域使用計(jì)數(shù)器來跟蹤 FIFO 中可用的項(xiàng)。計(jì)數(shù)器反映出可用于讀寫的 FIFO 項(xiàng)目號,計(jì)數(shù)器也與相應(yīng)的端口同步。讀計(jì)數(shù)器跟蹤包含有效數(shù)據(jù)的項(xiàng)數(shù),而寫計(jì)數(shù)器則跟蹤可以存儲數(shù)據(jù)的項(xiàng)數(shù)。當(dāng)對指針邏輯進(jìn)行復(fù)位時,由于沒有數(shù)據(jù)可讀,讀計(jì)數(shù)器從零起始。寫計(jì)數(shù)器則從 FIFO 中項(xiàng)的總數(shù)開始計(jì)數(shù),即所有項(xiàng)均可用來存儲數(shù)據(jù)。讀選通信號累減讀計(jì)數(shù)器,并與寫時鐘域同步,因?yàn)樗瑫r也累加寫計(jì)數(shù)器。寫選通信號則累減寫計(jì)數(shù)器,并與讀時鐘域同步,因?yàn)樗瑫r也累加讀計(jì)數(shù)器。這種設(shè)計(jì)需要單時鐘寬度脈沖以與用于讀、寫選通的脈沖同步器,因?yàn)楫?dāng)一個電平信號從一個時鐘域跨越到另一個更快的時鐘域時,在較
45、快時鐘域中它能在更多的時鐘周期中保持有效。由于只要讀或?qū)懶盘柺怯行У?,每個計(jì)數(shù)器就會發(fā)生變化,因此較快的時鐘域就檢測到更多的讀、寫,超出較慢時鐘域?qū)嶋H發(fā)生的數(shù)量。脈沖同步器可以將一個時鐘域的時鐘寬度脈沖轉(zhuǎn)換為新時鐘域的時鐘寬度脈沖,每個脈沖都表示一次 FIFO 的讀或?qū)?。這種 FIFO 狀態(tài)技術(shù)對讀、寫狀態(tài)都不太有利。當(dāng) FIFO 中所有項(xiàng)均充滿時,寫端口狀態(tài)指示為滿,并在讀選通觸發(fā)后繼續(xù)指示 FIFO 滿,因?yàn)橥竭^程會使選通信號延遲送給寫計(jì)數(shù)器。讀端口為空時也會出現(xiàn)這種情況,因?yàn)橥竭^程會使寫選通信號延遲到達(dá)讀計(jì)數(shù)器。這種設(shè)計(jì)的另一種考慮是與時檢測全滿/全空狀態(tài)。如果 FIFO 還有一項(xiàng)可
46、用,并且有寫選通觸發(fā),則 FIFO 必須立即置為全滿狀態(tài)。這樣才能提前一個時鐘給出全滿標(biāo)志,使 FIFO 有足夠時間防止下一個數(shù)據(jù)寫入而產(chǎn)生溢出。對 FIFO 的讀端口也是這樣。這種情況下,如果 FIFO 里只有一個數(shù),并且有讀選通觸發(fā),則必須置全空狀態(tài),以給讀電路足夠的時間防止讀空 FIFO。這種指針邏輯限制電路在每個時鐘周期中訪問 FIFO,即使在慢速時鐘域中也是這樣。這一功能的優(yōu)點(diǎn)在于訪問 FIFO 的電路至少有一個時鐘周期來評估 FIFO 的狀態(tài)。FIFO 可以將所有項(xiàng)都填滿數(shù)據(jù),而不會出現(xiàn)數(shù)據(jù)被覆蓋或全空無數(shù)據(jù)可讀的情況。這種設(shè)計(jì)的另一個優(yōu)點(diǎn)是每一端都可以讀其相應(yīng)的計(jì)數(shù)器,來判斷 F
47、IFO 中還有多少項(xiàng)可用。人們可以將這種 FIFO設(shè)計(jì)用在進(jìn)行多次數(shù)據(jù)讀/寫的電路中,而不會造成上溢或下溢的情況。這種設(shè)計(jì)的不足之處是由計(jì)數(shù)器來判斷狀態(tài),而不是直接比較讀、寫指針。對大型 FIFO 來說,這些計(jì)數(shù)器也很大。而且,由于使用脈沖同步時,來自較快時鐘域的讀、寫脈沖在較慢時鐘域的脈沖間至少必須有兩個時鐘周期,因此平均數(shù)據(jù)速率為最低時鐘頻率的一半。解決這些問題的一種方法是采用直接指針比較法。在這種 FIFO 設(shè)計(jì)中,讀、寫指針的比較決定了 FIFO 的狀態(tài)。HYPERLINK :/article.ednchina /word/66471.aspx o 異步異步設(shè)計(jì)中的指針比較更富有挑戰(zhàn)性
48、,因?yàn)槊總€指針位于不同的時鐘域中,對信號總線的同步要求在同步握手信號期間總線不發(fā)生改變。將這種技術(shù)用于指針同步的 FIFO 設(shè)計(jì)可能會很慢。要解決這個問題,F(xiàn)IFO 指針邏輯使用了格雷碼,代替指針使用的二進(jìn)制碼。格雷碼如表 2-1所示,在每一次計(jì)數(shù)增減時只改變其中的一位。可以在格雷碼總線上使用同步器,因?yàn)槊恳淮慰偩€改變時只有一根信號線有變化,于是就消除了格雷碼總線各位通過不同同步器時的競爭情況。這種設(shè)計(jì)的指針為格雷碼計(jì)數(shù)器。使用二進(jìn)制指針時需要將其變換成格雷碼后的同步指針,而使用變換邏輯會違反對同步信號的限制,即同步的信號在跨越時鐘域前要來自觸發(fā)器。Decimal012345678910111
49、2131415Binary01101110010111011110001001101010111100110111101111Gray01111011011110110011001101111111101010101110011000表2-1 格雷碼與十進(jìn)制,二進(jìn)制的轉(zhuǎn)換關(guān)系表2.2 異步FIFO芯片簡介3FIFO芯片是一種具有存儲功能的高速邏輯芯片,可在高速數(shù)字系統(tǒng)中用作數(shù)據(jù)緩存。FIFO通常利用雙口RAM和讀寫地址產(chǎn)生模塊來實(shí)現(xiàn)其功能。FIFO的接口信號包括異步寫時鐘(wr-clk)和讀時鐘(rd-clk)、與寫時鐘同步的寫有效(wren)和寫數(shù)據(jù)(wr-data)、與讀時鐘同步的讀有效(
50、rden)和讀數(shù)據(jù)(rd-data)。寫地址產(chǎn)生模塊一般還根據(jù)讀地址和寫地址來產(chǎn)生FIFO的滿標(biāo)志。讀地址產(chǎn)生模塊一般根據(jù)讀地址和寫地址的差來產(chǎn)生FIFO的空標(biāo)志。為了實(shí)現(xiàn)正確的讀寫和避免FIFO的上溢或下溢,通常還應(yīng)給出與讀時鐘和寫時鐘同步的FIFO的空標(biāo)志(empty)和滿標(biāo)志(full),以禁止讀寫操作。寫地址產(chǎn)生模塊通常根據(jù)寫時鐘和寫有效信號來產(chǎn)生遞增的寫地址,而讀地址產(chǎn)生模塊則根據(jù)讀時鐘和讀有效信號來產(chǎn)生遞增的讀地址。FIFO一般在操作時,首先在寫時鐘wr clk的上升沿且當(dāng)wren有效時,將wrdata寫入雙口RAM中寫地址對應(yīng)的位置中,然后將讀地址對應(yīng)的雙口RAM中的數(shù)據(jù)輸出到讀
51、數(shù)據(jù)總線上,這樣就可實(shí)現(xiàn)先進(jìn)先出功能。讀寫操作一般會自動訪問存儲器中連續(xù)的存儲單元。從FIFO中讀出的數(shù)據(jù)順序與寫入的順序一樣,而地址的順序則在部已經(jīng)預(yù)先定義好,因此,對FIFO芯片的操作不需要額外的地址信息。另外,F(xiàn)IFO芯片還能提供對讀寫指針的復(fù)位功能。這些結(jié)構(gòu)上的特點(diǎn)使FIFO的應(yīng)用大大簡化了電路的復(fù)雜程度,提高了系統(tǒng)的可靠性和穩(wěn)定性。2.3 FIFO的一些重要參數(shù)7FIFO的寬度:也就是英文資料里??吹降腡HE WIDTH,它只的是FIFO一次讀寫操作的數(shù)據(jù)位,就像MCU有8位和16位,ARM 32位等等,F(xiàn)IFO的寬度在單片成品IC中是固定的,也有可選擇的,如果用FPGA自己實(shí)現(xiàn)一個
52、FIFO,其數(shù)據(jù)位,也就是寬度是可以自己定義的。FIFO的深度:THE DEEPTH,它指的是FIFO可以存儲多少個N位的數(shù)據(jù)(如果寬度為N)。如一個8位的FIFO,若深度為8,它可以存儲8個8位的數(shù)據(jù),深度為12 ,就可以存儲12個8位的數(shù)據(jù),F(xiàn)IFO的深度可大可小,個人認(rèn)為FIFO深度的計(jì)算并無一個固定的公式。在FIFO實(shí)際工作中,其數(shù)據(jù)的滿/空標(biāo)志可以控制數(shù)據(jù)的繼續(xù)寫入或讀出。在一個具體的應(yīng)用中也不可能由一些參數(shù)算數(shù)精確的所需FIFO深度為多少,這在寫速度大于讀速度的理想狀態(tài)下是可行的,但在實(shí)際中用到的FIFO深度往往要大于計(jì)算值。一般來說根據(jù)電路的具體情況,在兼顧系統(tǒng)性能和FIFO成本
53、的情況下估算一個大概的寬度和深度就可以了。而對于寫速度慢于讀速度的應(yīng)用,F(xiàn)IFO的深度要根據(jù)讀出的數(shù)據(jù)結(jié)構(gòu)和讀出數(shù)據(jù)的由那些具體的要求來確定。 滿標(biāo)志:FIFO已滿或?qū)⒁獫M時由FIFO的狀態(tài)電路送出的一個信號,以阻止FIFO的寫操作繼續(xù)向FIFO中寫數(shù)據(jù)而造成溢出(overflow)空標(biāo)志:FIFO已空或?qū)⒁諘r由FIFO的狀態(tài)電路送出的一個信號,以阻止FIFO的讀操作繼續(xù)從FIFO中讀出數(shù)據(jù)而造成無效數(shù)據(jù)的讀出(underflow)。讀時鐘:讀操作所遵循的時鐘,在每個時鐘沿來臨時讀數(shù)據(jù)。寫時鐘:寫操作所遵循的時鐘,在每個時鐘沿來臨時寫數(shù)據(jù)。讀指針:指向下一個讀出地址。讀完后自動加1。寫指針:
54、指向下一個要寫入的地址的,寫完自動加1。 讀寫指針其實(shí)就是讀寫的地址,只不過這個地址不能任意選擇,而是連續(xù)的。2.4 異步FIFO設(shè)計(jì)的難點(diǎn)92.4.1 異步FIFO設(shè)計(jì)難點(diǎn)概述計(jì)異步FIFO有兩個難點(diǎn):一是如何正確地設(shè)計(jì)空、滿指針以與幾乎滿等信號的控制電路;二是如何同步異步信號,使觸發(fā)器不產(chǎn)生亞穩(wěn)態(tài)。 解決FIFO的滿/空技術(shù)方法概述和特點(diǎn)怎樣判斷FIFO的空/滿狀態(tài)?為了保證數(shù)據(jù)正確的寫入或讀出,而不發(fā)生益處或讀空的狀態(tài)出現(xiàn),必須保證FIFO在滿的情況下,不能進(jìn)行寫操作。在空的狀態(tài)下不能進(jìn)行讀操作。怎樣判斷FIFO的滿/空就成了FIFO設(shè)計(jì)的核心問題。由于同步FIFO幾乎很少
55、用到,這里只描述異步FIFO的空/滿標(biāo)志產(chǎn)生問題???滿標(biāo)志產(chǎn)生的原則是:寫滿不溢出,讀空不多讀。即無論在什么進(jìn)修,都不應(yīng)出現(xiàn)讀寫地址同時對一個存儲器地址操作的情況。在讀寫地址相等或相差一個或多個地址的時候,滿標(biāo)志應(yīng)該有效,表示此時FIFO已滿,外部電路應(yīng)對FIFO發(fā)數(shù)據(jù)。在滿信號有效時寫數(shù)據(jù),應(yīng)根據(jù)設(shè)計(jì)的要求,或保持、或拋棄重發(fā)。同理,空標(biāo)志的產(chǎn)生也是如此,即:空標(biāo)志=(|寫地址-讀地址|=預(yù)定值)AND(寫地址超前讀地址)滿標(biāo)志=(|寫地址-讀地址|=預(yù)定值)AND(讀地址超前寫地址)最直接的做法是,采用讀寫地址相比較來產(chǎn)生空滿標(biāo)志。當(dāng)讀寫地址的差值等于一個預(yù)設(shè)值的時候,空/滿信號被置位。
56、這種實(shí)現(xiàn)方法邏輯簡單,但它是減法器形成的一個比較大的組合邏輯,因而限制了FIFO的速度。所以,一般只采用相等不相等的比較邏輯,避免使用減法器。 亞穩(wěn)態(tài)問題的產(chǎn)生與解決在用到觸發(fā)器的設(shè)計(jì)中,不可避免的會遇到亞穩(wěn)態(tài)的問題。在涉與到觸發(fā)器的電路中,亞穩(wěn)態(tài)無法徹底消除,只能想辦法將其發(fā)生的概率將到最低。其中的一個方法就是使用格雷碼。格雷碼在相鄰的兩個碼元之間只由一位變換(二進(jìn)制碼在很多情況下是很多碼元在同時變化)。這就會避免計(jì)數(shù)器與時鐘同步的時候發(fā)生亞穩(wěn)態(tài)現(xiàn)象。但是格雷碼有個缺點(diǎn)就是只能定義2n的深度,而不能像二進(jìn)制碼那樣隨意的定義FIFO的深度,因?yàn)楦窭状a必須循環(huán)一個2n,否則就不能保
57、證兩個相鄰碼元之間相差一位的條件,因此也就不是真正的格雷碼了。第二就是使用冗余的觸發(fā)器,假設(shè)一個觸發(fā)器發(fā)生亞穩(wěn)態(tài)的概率為P,那么兩個與聯(lián)的觸發(fā)器發(fā)生亞穩(wěn)態(tài)的概率就為P的平方。但這會導(dǎo)致延時的增加。亞穩(wěn)態(tài)的發(fā)生會使得FIFO出現(xiàn)錯誤,讀/寫時鐘采樣的地址指針會與真實(shí)的值之間不同,這就導(dǎo)致寫入或讀出的地址錯誤。由于考慮延時的作用,空/滿標(biāo)志的產(chǎn)生并不一定出現(xiàn)在FIFO真的空/滿時才出現(xiàn)??赡蹻IFO還未空/滿時就出現(xiàn)了空/滿標(biāo)志。這并沒有什么不好,只要保證FIFO不出現(xiàn)overflow或underflow 就足夠了。2.5 異步FIFO的功能簡介9FIFO(First In First Out)存
58、儲器是一個先入先出的雙口緩沖器,即第一個進(jìn)入其的數(shù)據(jù)第一個被移出,其中一個存儲器的輸入口,另一個口是存儲器的輸出口。對于單片F(xiàn)IFO來說,主要有兩種結(jié)構(gòu):觸發(fā)導(dǎo)向結(jié)構(gòu)和零導(dǎo)向傳輸結(jié)構(gòu)。觸發(fā)導(dǎo)向傳輸結(jié)構(gòu)的FIFO是由寄存器陣列構(gòu)成的,是由具有讀和寫地址指針的雙口RAM構(gòu)成。本文所描述的是零導(dǎo)向傳輸結(jié)構(gòu)的FIFO。FIFO存儲器是系統(tǒng)的緩沖環(huán)節(jié),如果沒有FIFO存儲器,整個系統(tǒng)就不可能正常工作,它主要有幾方面的功能:(1)對連續(xù)的數(shù)據(jù)流進(jìn)行緩存,防止在進(jìn)機(jī)和存儲操作時丟失數(shù)據(jù);(2)數(shù)據(jù)集中起來進(jìn)行進(jìn)機(jī)和存儲,可避免頻繁的總線操作,減輕CPU的負(fù)擔(dān);(3)允許系統(tǒng)進(jìn)行DMA(Direct Memo
59、ry Access,直接存儲器存取)操作,提高數(shù)據(jù)的傳輸速度。這是至關(guān)重要的一點(diǎn),如果不采用DMA操作,數(shù)據(jù)傳輸將達(dá)不到傳輸要求,而且大大增加CPU的負(fù)擔(dān),無法同時完成數(shù)據(jù)的存儲工作。FIFO設(shè)計(jì)的難點(diǎn)在于怎樣判斷FIFO的空/滿狀態(tài)。為了保證數(shù)據(jù)正確的寫入或讀出,而不發(fā)生益處或讀空的狀態(tài)出現(xiàn),必須保證FIFO在滿的情況下,不能進(jìn)行寫操作。在空的狀態(tài)下不能進(jìn)行讀操作。怎樣判斷FIFO的滿/空就成了FIFO設(shè)計(jì)的核心問題。2.6 Quartus仿真工具簡介5 Quartus是Altera公司提供的FPGA/CPLD開發(fā)集成環(huán) 境,Altera是世界上最大可編程邏輯器件的供應(yīng)商之一。Quartus
60、界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。在Quartus上可以完成設(shè)計(jì)輸入、元件適配、時序仿真和功能仿真、編程下載整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。2.6.1主要特點(diǎn)一、開放的界面Quartus支持與Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。 二、與結(jié)構(gòu)無關(guān)Quartus系統(tǒng)的核心Complier支持Altera公司所有可編程邏輯器件,提供了世界上唯一真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。三、完全集成化Quartus的設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年售電業(yè)務(wù)考核試題及答案
- 2025年工廠安全考試題及答案
- 2025年溫州英語中考試題及答案
- 2025年關(guān)于海底的測試題及答案
- 2025年高中生社會試題及答案
- 2025年樂高大積木測試題及答案
- 2025年西城中考生物試題及答案
- 2025年法理學(xué)接本試題及答案
- LabVIEW軟件在安裝過程中的各種問題以及解決辦法-lab
- 2025年護(hù)理類職業(yè)測試題及答案
- 農(nóng)業(yè)大數(shù)據(jù)分析
- 專題10 浮力(3大模塊知識清單+5個易混易錯+3種方法技巧+典例真題解析)
- 醫(yī)藥招商銷售技巧培訓(xùn)
- 國家公務(wù)員考試(面試)試題及解答參考(2024年)
- 智慧食堂管理系統(tǒng)建設(shè)方案
- 2025年中國鑄造高溫合金產(chǎn)業(yè)深度分析、投資前景及發(fā)展趨勢預(yù)測報(bào)告
- 2024年大學(xué)生參加學(xué)法普法知識競賽考試題庫及答案
- 2023年醫(yī)院二甲復(fù)審核心制度理論考核試題
- 老年科護(hù)士進(jìn)修匯報(bào)
- 2024-2025學(xué)年初中音樂九年級下冊滬教版教學(xué)設(shè)計(jì)合集
評論
0/150
提交評論