電子與信息工程畢業(yè)論文基于fpga的同步fifo設(shè)計(jì)與仿真_第1頁
已閱讀1頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本 科 畢 業(yè) 設(shè) 計(jì)</p><p>  基于FPGA的同步fifo設(shè)計(jì)與仿真</p><p>  所在學(xué)院 </p><p>  專業(yè)班級 電子與信息工程 </p><p>  學(xué)生姓名 學(xué)號

2、 </p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘要</b></p><p>  RAM是一種重要的時(shí)序邏輯存儲(chǔ)電路,它的邏輯功能是在地址信號的選擇下對指定的存儲(chǔ)單元進(jìn)

3、行相應(yīng)的讀寫操作。數(shù)據(jù)讀入后,存儲(chǔ)器內(nèi)的原數(shù)據(jù)不變;而新數(shù)據(jù)寫入后,原數(shù)據(jù)自然消失,并為新數(shù)據(jù)代替。FIFO作為RAM下面的一種存儲(chǔ)器,本身的性能和RAM十分地相似。本論文中的同步FIFO是指讀和寫都在一個(gè)時(shí)鐘下工作的存儲(chǔ)器。FIFO作為一種先進(jìn)先出的存儲(chǔ)器,應(yīng)用范圍廣泛,加之現(xiàn)代電子技術(shù)的不斷發(fā)展,信息量越來越大,人們需要對數(shù)據(jù)進(jìn)行快速存儲(chǔ)和讀取,尤其體現(xiàn)在大規(guī)模的電路設(shè)計(jì)中,需要較大的存儲(chǔ),實(shí)存存儲(chǔ)已經(jīng)無法滿足需求,這就需要建立可存

4、儲(chǔ)大量數(shù)據(jù)的虛擬存儲(chǔ)空間,而FIFO這種先進(jìn)先出的結(jié)構(gòu)特點(diǎn)很好地適應(yīng)了這些要求。</p><p>  本文中同步FIFO的對外接口包括時(shí)鐘,清零,讀請求,寫請求,數(shù)據(jù)輸入總線,數(shù)據(jù)輸出總線,空以及滿信號。采用VerilogHDL描述語言進(jìn)行編程,運(yùn)行成功后在QuartusⅡ開發(fā)平臺上進(jìn)行設(shè)計(jì)仿真。仿真結(jié)果顯示,本論文設(shè)計(jì)的同步FIFO雖然虛擬存儲(chǔ)空間較小,但是程序上可以無限擴(kuò)展,空滿狀態(tài)的檢測方便,雖然程序簡單,

5、但體現(xiàn)了設(shè)計(jì)的靈活性。</p><p>  關(guān)鍵詞:同步;fifo;可編程邏輯器件;FPGA;Verilog語言</p><p><b>  Abstract</b></p><p>  RAM is a kind of important temporal logic storage circuit, it's logical fun

6、ction in the choice to address signals under specified storage unit for the corresponding reading and writing operation. Data read the original, memory after data within changeless; But new data writing, the original dat

7、a, and disappear naturally for new data instead. FIFO as a memory RAM below the performance and RAM, itself very similar. This thesis of synchronous FIFO refers to read and write all in one clock worked un</p><

8、;p>  In this paper the synchronous FIFO foreign interface including clock, reset, read requests, write request, data input, data output bus, the bus and full signal empty. Using VerilogHDL describing programming langu

9、age, after the success of the operation in QuartusⅡdevelopment platform design simulation. Simulation results show that, this thesis design synchronous FIFO although virtual storage space on smaller, but the program can

10、be extended unlimitedly, empty full detecting state of convenient, a</p><p>  Key words: synchronous;fifo; programmable logic device; FPGA; Verilog language</p><p><b>  目錄</b></p&

11、gt;<p><b>  第1章 緒論1</b></p><p><b>  1.1 引言1</b></p><p>  1.2 國內(nèi)外研究現(xiàn)狀1</p><p>  1.3 本論文所做的主要工作2</p><p>  第2章 常用存儲(chǔ)器及其原理4</p>

12、<p>  2.1 存儲(chǔ)器4</p><p>  2.1.1 存儲(chǔ)器的基本結(jié)構(gòu)4</p><p>  2.1.2 存儲(chǔ)器的基本指標(biāo)6</p><p>  2.2常用的存儲(chǔ)器的分類7</p><p>  2.2.1 RAM9</p><p>  2.2.2 ROM9</p><

13、;p>  2.2.3 FIFO10</p><p>  2.3軟件實(shí)現(xiàn)虛擬存儲(chǔ)器功能12</p><p>  第3章 基于FPGA的同步FIFO16</p><p>  3.1 各器件介紹16</p><p>  3.1.1 可編程邏輯器件16</p><p>  3.1.2硬件描述語言Verilog

14、HDL16</p><p>  3.1.3 開發(fā)工具簡介17</p><p>  3.2整體設(shè)計(jì)方案19</p><p>  3.2.1 EP1C3T144C8芯片介紹19</p><p>  3.2.2 FIFO接口的設(shè)計(jì)19</p><p>  3.3各種功能模塊結(jié)果圖24</p><

15、;p>  3.3.1滿信號顯示24</p><p>  3.3.2 NRST低電平時(shí)的情況25</p><p>  3.4結(jié)果仿真圖25</p><p>  第4章 調(diào)試中錯(cuò)誤的解決27</p><p><b>  小結(jié)28</b></p><p>  致謝錯(cuò)誤!未定義書簽。&l

16、t;/p><p><b>  參考文獻(xiàn)30</b></p><p><b>  附錄31</b></p><p><b>  第1章 緒論</b></p><p><b>  1.1 引言</b></p><p>  早期的電子管

17、、晶體管、中小規(guī)模集成電路早已被現(xiàn)在的超大規(guī)模集成電路所取代。但是,隨著電子技術(shù)的發(fā)展,,設(shè)計(jì)與制造集成電路的任務(wù)已不完全由半導(dǎo)體廠商來獨(dú)立承擔(dān)。在社會(huì)需求下,數(shù)字電路系統(tǒng)的設(shè)計(jì)正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。</p><p>  早期的可編程邏輯器件(PLD),能夠完成各種數(shù)字邏輯功能,并且延續(xù)了EEPROM工藝,實(shí)現(xiàn)了電可擦除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因此具有很強(qiáng)的靈活性,但

18、是過于簡單,無法滿足較大規(guī)模的電路。但是20世紀(jì)80年代,Xilinx推出的FPGA具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點(diǎn)。同時(shí)又滿足了設(shè)計(jì)者要求的設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實(shí)現(xiàn)在線檢驗(yàn)等優(yōu)點(diǎn),立刻占據(jù)了市場。</p><p>  由于用FPGA廣泛應(yīng)用于門陣列、PLD和中小規(guī)模通用數(shù)字集成電路,使整個(gè)設(shè)計(jì)更加緊湊、更小巧、靈活、穩(wěn)定、可靠。把

19、FIFO器件集成到其中是替代專用芯片的最有效的實(shí)現(xiàn)方式。常用的FIFO是雙端口的存儲(chǔ)器,其中一個(gè)端口用于寫入數(shù)據(jù),而另一個(gè)端口用于讀出數(shù)據(jù),同時(shí)對存儲(chǔ)器的字存儲(chǔ)單元進(jìn)行寫入和讀出操作。FIFO型的存儲(chǔ)器由另外的信號線(或標(biāo)志)來指明存儲(chǔ)器的內(nèi)容狀態(tài),不通過地址來存取數(shù)據(jù)。</p><p>  本文提出了一種用FPGA 芯片實(shí)現(xiàn)同步FIFO 的設(shè)計(jì)方案, 重點(diǎn)強(qiáng)調(diào)了設(shè)計(jì)有效、可靠的握手信號EMPTY 與FULL 的

20、方法, 并給出了其Verilog語言實(shí)現(xiàn),同時(shí)根據(jù)程序給出不同情況下的仿真圖。FIFO(First IN First Out)先進(jìn)先出電路是一種實(shí)現(xiàn)數(shù)據(jù)先進(jìn)先出的存儲(chǔ)器件,普遍用作數(shù)據(jù)緩沖器。FIFO的基本單元是寄存器,作為存儲(chǔ)器件,F(xiàn)IFO的存儲(chǔ)能力是由其內(nèi)部定義的存儲(chǔ)寄存器的數(shù)量決定。</p><p>  1.2 國內(nèi)外研究現(xiàn)狀</p><p><b> ?。?)研究意義&

21、lt;/b></p><p>  近代信息技術(shù)在不斷地發(fā)展,尤其是在本世紀(jì)在九十年代早期美國在南斯拉夫戰(zhàn)爭和兩次海灣戰(zhàn)爭中運(yùn)用了大量的電子戰(zhàn)、信息戰(zhàn),其強(qiáng)大的軍事力量讓全世界震驚,持此以外也獲得了眾多國家的關(guān)注和學(xué)習(xí),再結(jié)合本世紀(jì)70年代初我國在航天航空事業(yè)方面的快速發(fā)展,使得我國開始重視和發(fā)展信息技術(shù),同樣的,技術(shù)越是發(fā)展,對信息的存儲(chǔ)容量就提出了要求,對高速、大容量、高可靠性的靜態(tài)存儲(chǔ)器提出了更高的要求

22、。軍隊(duì)也對數(shù)據(jù)存儲(chǔ)器提出了更高的要求。從現(xiàn)有的資料中了解到軍用計(jì)算機(jī)對數(shù)據(jù)傳輸速率最大也只在5Mb/s,目前采用的最快的數(shù)據(jù)傳輸方式—DMA(直接存儲(chǔ)器存取模式)已經(jīng)無法滿足幾十Mb/s的超高速采樣速率,直接導(dǎo)致數(shù)據(jù)在采集過程就結(jié)束時(shí)還沒被計(jì)算機(jī)讀取。所以傳統(tǒng)的計(jì)算機(jī)傳輸方法和處理數(shù)據(jù)的方法已經(jīng)難以滿足當(dāng)前的信息技術(shù)上的需求,同時(shí),采樣速率達(dá)不到要求可能造成數(shù)據(jù)的丟失與混亂。在這里,提出了本論文的主要意義——對于快速采集,慢速處理的系統(tǒng)

23、能做到緩存。</p><p>  同步FIFO是一種先進(jìn)先出電路,它能以普通速度匹配數(shù)據(jù)緩沖器,能在快速的處理器和、外設(shè)之間實(shí)現(xiàn)匹配。而且在遠(yuǎn)程通信、數(shù)字信號處理、圖像處理、大容量存儲(chǔ)系統(tǒng)和周邊系統(tǒng)有著廣泛的應(yīng)用前景。當(dāng)FIFO芯片在容量、寬度和速度上的提高,芯片也會(huì)越來越廣闊的應(yīng)用前景。</p><p>  近年來,隨著存儲(chǔ)器在容量以及表現(xiàn)在存儲(chǔ)設(shè)備的進(jìn)一步發(fā)展,F(xiàn)IFO存儲(chǔ)方式得到了越

24、來越廣泛的應(yīng)用。但是國內(nèi)保密性要求嚴(yán)格的存儲(chǔ)器卻幾乎依賴進(jìn)口。雖然國內(nèi)有有名的研究所和廠商也開發(fā)了FIFO電路,在這方面,臺灣企業(yè)的技術(shù)比國內(nèi)的有很大的優(yōu)勢。但是存儲(chǔ)器目前還沒有形成系列化,遠(yuǎn)不能滿足軍事需求,即使是我國引以為傲的航天技術(shù)中運(yùn)用的武器和裝備也是依賴國外進(jìn)口,我國對進(jìn)口設(shè)備的過分依賴對未來的軍事建設(shè)危害巨大。近年來我國FIFO市場發(fā)展迅速,產(chǎn)品產(chǎn)出持續(xù)擴(kuò)張,國家鼓勵(lì)FIFO產(chǎn)業(yè)向高技術(shù)產(chǎn)品發(fā)展,國內(nèi)企業(yè)新增投資項(xiàng)目投資逐漸

25、增多,F(xiàn)IFO市場的發(fā)展研究增大,這么做的目的一方面為了防止國外廠商對我國的封鎖和禁運(yùn),另一方面研發(fā)出國產(chǎn)的高性能同步FIFO,這對加強(qiáng)國防建設(shè),發(fā)展空間技術(shù)有著重大意義。</p><p> ?。?)國內(nèi)外發(fā)展概況</p><p>  早在上世紀(jì)80年代處資訊并不發(fā)達(dá),F(xiàn)IFO存儲(chǔ)器容量和速度的要求很低。FIFO芯片是基于中規(guī)模邏輯器件的移位寄存器中,串行的移位寄存器作為存儲(chǔ)單元,組合邏輯

26、電路構(gòu)成輸入輸出端。在這種FIFO芯片中數(shù)據(jù)在時(shí)鐘的作用下從第一個(gè)寄存器到第N個(gè)寄存器(N是FIFO芯片的容量)在輸入和輸出的情況下,最后被讀出,從結(jié)構(gòu)的角度看,數(shù)據(jù)從寫入到讀出要經(jīng)過N個(gè)周期的延遲。如果這種FIFO芯片的容量N很大,那么這種延遲也將很長。我們可以得出FIFO芯片中的緩存器可以對間斷性瞬間高速外部數(shù)據(jù)進(jìn)行緩存。但從長時(shí)間來看,平均速率卻不高。FIFO緩存器有兩種組合,一種就是先進(jìn)先出,后進(jìn)后出;第二種時(shí)基于RAM陣列的結(jié)

27、構(gòu),目前市面上常用的FIFO芯片采用基于RAM陣列的結(jié)構(gòu)。大規(guī)模集成電路中常采用有兩套數(shù)據(jù)線的雙端口RAM存儲(chǔ)器,兩套數(shù)據(jù)線分別作為輸入和輸出端口,F(xiàn)IFO芯片內(nèi)部存儲(chǔ)單元采用雙端口RAM。讀寫時(shí)鐘控制FIFO的讀寫地址指針,有順序地從存儲(chǔ)單元讀寫數(shù)據(jù),從初地址開始到最后一個(gè)存儲(chǔ)單元,最后回到第一個(gè)存儲(chǔ)單元。還可以通過讀寫地址來產(chǎn)生空滿的標(biāo)志。采用RAM結(jié)構(gòu),數(shù)據(jù)從輸入到輸出的延遲縮小,深度指能緩存數(shù)</p><p&

28、gt;  在國內(nèi)單獨(dú)做FIFO的很少。國內(nèi)也有公司開發(fā)FIFO電路,但目前還遠(yuǎn)遠(yuǎn)不能滿足軍事需求。通常國內(nèi)外在設(shè)計(jì)FIFO時(shí)有兩種方法,一種是利用可編程邏輯器件構(gòu)造FIFO,在這方面Xilinx公司開發(fā)的器件占領(lǐng)了較大的市場,并且質(zhì)量上也占據(jù)了一定的優(yōu)勢。另一種就是利用Verilog等描述語言對FIFO的功能結(jié)構(gòu)描述,構(gòu)建一種虛擬的FIFO存儲(chǔ),但是這種虛擬存儲(chǔ)可以構(gòu)成緩存,對于實(shí)存細(xì)節(jié)上的問題可以忽略。但多數(shù)EDA軟件中,EDA和其他

29、硬件語言編輯器是借助綜合器來完成的,綜合器可以將Verilog語言轉(zhuǎn)變成的物理格式的電路,F(xiàn)IFO是RAM存儲(chǔ)器的一種,現(xiàn)在對FIFO的描述是體現(xiàn)在它對數(shù)據(jù)有著存取的功能。但是現(xiàn)在的綜合器對數(shù)組的綜合通常是轉(zhuǎn)變成寄存器的結(jié)構(gòu)。綜合后的FIFO結(jié)構(gòu)龐大,一旦設(shè)計(jì)大容量的FIFO時(shí),會(huì)浪費(fèi)大量的面積,加上SRAM本身集成度低,成功實(shí)現(xiàn)設(shè)計(jì)的可能性將變得很低。</p><p>  1.3 本論文所做的主要工作<

30、/p><p>  所謂同步是指的是讀和寫都在一個(gè)時(shí)鐘下工作的。讀地址和空標(biāo)志是由讀時(shí)鐘產(chǎn)生的,而寫地址和和滿標(biāo)志則由寫時(shí)鐘產(chǎn)生,當(dāng)FIFO產(chǎn)生空或滿標(biāo)志時(shí),就要進(jìn)行讀寫地址的比較,但是直接比較會(huì)存在問題,我們知道,存儲(chǔ)器在數(shù)據(jù)的讀取上存在時(shí)延,存儲(chǔ)容量越大,時(shí)延會(huì)越大,讀寫地址直接比較,讓讀寫地址的每一位在讀寫時(shí)鐘的作用下,輸出端結(jié)果一開始不一致,要過一段時(shí)間才能穩(wěn)定。因此FIFO設(shè)計(jì)要求如下:</p>

31、<p> ?。?)學(xué)習(xí)和研究了不同方式實(shí)現(xiàn)同步FIFO的設(shè)計(jì)方法,對其的原理性了進(jìn)行了重點(diǎn)解析。</p><p>  (2)用硬件描述語言VerilogHDL來實(shí)現(xiàn)同步FIFO,并對其進(jìn)行仿真。</p><p>  (3)建立讀寫指針。</p><p>  第2章 常用存儲(chǔ)器及其原理</p><p><b>  2.1

32、 存儲(chǔ)器</b></p><p>  存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的重要組成部分之一,有主存儲(chǔ)器和輔助存儲(chǔ)器之分。本文中討論的主存儲(chǔ)器,又可稱為內(nèi)存儲(chǔ)器。主存儲(chǔ)器用來存放程序和數(shù)據(jù),CPU在工作過程中要頻繁地與主存儲(chǔ)器交換信息,因此主存儲(chǔ)器的性能在很大程度上影響著整個(gè)計(jì)算機(jī)系統(tǒng)的性能。</p><p>  目前廣泛采用按地址訪問的主存儲(chǔ)器,它由許許多多的存儲(chǔ)元構(gòu)成,存儲(chǔ)元是存儲(chǔ)器的最小存

33、儲(chǔ)單位,一個(gè)存儲(chǔ)元可以存放一位二進(jìn)制信息。若干個(gè)存儲(chǔ)元構(gòu)成一個(gè)存儲(chǔ)字,每個(gè)存儲(chǔ)字有一個(gè)相對應(yīng)的惟一的地址且存儲(chǔ)字長與機(jī)器字長相同。</p><p>  存儲(chǔ)器作為計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來存放程序和數(shù)據(jù),已被越來越多的運(yùn)到各種超大規(guī)模電路中,尤其在多處理機(jī)的系統(tǒng)中,各處理機(jī)本身都需與其主存交換信息,而且各處理機(jī)在互相通信中,也都需共享存放在存儲(chǔ)器中的數(shù)據(jù)。因此,存儲(chǔ)器的地位更為重要。從某種意義上講,存儲(chǔ)器的性能

34、已成為一些系統(tǒng)的核心[17]。</p><p>  2.1.1 存儲(chǔ)器的基本結(jié)構(gòu)</p><p>  CPU 執(zhí)行指令的過程實(shí)際上分為兩個(gè)步驟:一是取指令,二是執(zhí)行指令。CPU 與存儲(chǔ)器之間是通過總線連接的,當(dāng)CPU 執(zhí)行一條指令時(shí),首先必須從存儲(chǔ)器中將指令讀出到總線上,再通過總線將指令傳送到CPU 內(nèi)部,這一過程稱為取指令;然后對指令進(jìn)行譯碼分析,最后執(zhí)行該指令,這一過程稱為執(zhí)行指令,如

35、圖2.1所示。</p><p>  假設(shè)指令從存儲(chǔ)器中讀出的時(shí)間為,指令在總線上傳輸?shù)臅r(shí)間為,指令在CPU 中執(zhí)行的時(shí)間為tE。這樣,一條指令的執(zhí)行時(shí)間為++,稱為指令周期。的大小取決于總線傳輸速度,而的大小取決于所配置的存儲(chǔ)器的存取速度,這一時(shí)間實(shí)際上就是存儲(chǔ)器的讀周期時(shí)間,對某一存儲(chǔ)器而言,這一時(shí)間是固定的。由此我們可以看出,計(jì)算機(jī)的性能是由組成它的各個(gè)功能部件的綜合性能來體現(xiàn)的,光有高速的CPU 還不夠,還

36、要有高速的存儲(chǔ)器和高速的總線傳輸?shù)取?lt;/p><p>  任何計(jì)算機(jī)系統(tǒng)對存儲(chǔ)器要求具有大容量、高速度以及低價(jià)格等特點(diǎn)。然而,這三者之間是互相矛盾的,存儲(chǔ)器速度增大,存儲(chǔ)容量就不可能變得很大,價(jià)格也不可能很低;如果要求存儲(chǔ)器容量很大,存儲(chǔ)速度就不可能很高,成本也不可能很低。為了解決這些矛盾,除了不斷研制新的存儲(chǔ)器,提高存儲(chǔ)器的性能外,還需要從存儲(chǔ)器的系統(tǒng)結(jié)構(gòu)上較好地解決存儲(chǔ)器大容量、高速度與低價(jià)格之間的矛盾。目前

37、在計(jì)算機(jī)系統(tǒng)中,通常采用多級存儲(chǔ)器體系結(jié)構(gòu),即使用寄存器組、高速緩沖存儲(chǔ)器、主存儲(chǔ)器和外存儲(chǔ)器,它們的存取速度依次遞減,存儲(chǔ)容量依次遞增,位價(jià)格依次降低,圖2.2所示。</p><p>  最簡單的二級存儲(chǔ)器層次如圖2.3所示。整個(gè)存儲(chǔ)系統(tǒng)由主存儲(chǔ)器和輔助存儲(chǔ)器兩級構(gòu)成。主存儲(chǔ)器一般由半導(dǎo)體存儲(chǔ)器構(gòu)成,它速度快,但容量小,成本較高,通常用來存放程序的“活躍部分”,直接與CPU交換信息;輔助存儲(chǔ)器一般由磁表面存儲(chǔ)器

38、構(gòu)成,它速度慢、但容量大、成本低,通常用來存放程序的“不活躍部分”,即暫時(shí)不執(zhí)行的程序或者暫時(shí)不用的數(shù)據(jù),需要時(shí),將程序或數(shù)據(jù)以信息塊為單位從輔助存儲(chǔ)器調(diào)入主存儲(chǔ)器中。因此,何時(shí)將輔存中的信息塊調(diào)入主存,何時(shí)將主存中已用完的信息塊調(diào)入輔存,所有操作由輔助軟硬件來完成,主、輔存構(gòu)成的兩級存儲(chǔ)層次才成為一個(gè)完整的存儲(chǔ)系統(tǒng),對CPU來說,訪問存儲(chǔ)器的速度是主存儲(chǔ)器的,而存儲(chǔ)器的容量和成本是輔助存儲(chǔ)器的,滿足了上述三方面的要求。</p&g

39、t;<p>  但是由半導(dǎo)體存儲(chǔ)器構(gòu)成的主存儲(chǔ)器的訪問速度與CPU相比還是有一定差距,為了進(jìn)一步提高存儲(chǔ)系統(tǒng)的速度,最有效的方法是在CPU與主存之間增設(shè)一個(gè)一級的高速緩沖存儲(chǔ)器(cache)。</p><p>  在三級存儲(chǔ)層次中(圖2.4所示),高速緩沖存儲(chǔ)器的訪問速度可與CPU相匹配,但是其容量比主存儲(chǔ)器更小,任何時(shí)候cache中的信息是主存儲(chǔ)器中一部分信息的副本。當(dāng)CPU需要訪問主存儲(chǔ)器時(shí),根

40、據(jù)給定的主存儲(chǔ)器地址迅速判定該地址中的信息是否已進(jìn)入了cache中,如果已進(jìn)入cache中,則地址變換后立即訪問cache,如果cache不命中,則直接訪問主存儲(chǔ)器,顯然,cache命中率越高越好。為提高訪問cache的速度,需要在cache與主存儲(chǔ)器之間設(shè)置一塊輔助硬件。由它來完成主存與cache之間的地址變換功能。這樣就構(gòu)成了“cache—主存—輔存”三級存儲(chǔ)層次。在理想情況下,訪問主存儲(chǔ)器的速度決定于cache,而其容量和成本決定

41、了輔存。主存儲(chǔ)器的速度更好地滿足“高速度、大容量、低成本”三方面的要求[17]。</p><p>  2.1.2 存儲(chǔ)器的基本指標(biāo)</p><p><b> ?。?)存儲(chǔ)容量</b></p><p>  存儲(chǔ)容量是指整個(gè)存儲(chǔ)器所能存放的二進(jìn)制信息的總位數(shù),公式如下:</p><p>  =W×L(位或字節(jié))&l

42、t;/p><p>  假設(shè)存儲(chǔ)芯片的存儲(chǔ)單元數(shù)是W, 一個(gè)存儲(chǔ)單元所存儲(chǔ)的信息的位數(shù)是L,則其存儲(chǔ)容量為W×L。</p><p>  例如:某存儲(chǔ)器字長16位,共有1024個(gè)存儲(chǔ)字,求其存儲(chǔ)容量?</p><p>  1024×16=16384(位)=2048(字節(jié))=2K字節(jié)</p><p><b>  (2)存儲(chǔ)

43、速度</b></p><p>  存儲(chǔ)器的存取速度是影響計(jì)算機(jī)運(yùn)算速度的主要因素,主存儲(chǔ)的速度可用訪問時(shí)間TA、訪問周期和存儲(chǔ)器頻寬等三個(gè)參數(shù)來描述。</p><p><b> ?。?)訪問時(shí)間</b></p><p>  “訪問時(shí)間”是指從向存儲(chǔ)器發(fā)出指令開始,到完成該操作所經(jīng)歷的時(shí)間,TA越小,存儲(chǔ)器速度越快。</p>

44、;<p><b> ?。?)訪問周期</b></p><p>  “訪問周期”是指啟動(dòng)兩次讀(或?qū)懀┐鎯?chǔ)器操作之間所需的最小時(shí)間間隔。一般情況下,≥,對于破壞性讀出的存儲(chǔ)器。 (2-1)</p><p><b>  (3)存儲(chǔ)器頻寬</b></p><p>  對于具

45、有多個(gè)存儲(chǔ)體并進(jìn)行工作的大容量存儲(chǔ)器,常采用Bm來描述存儲(chǔ)器的速度。</p><p>  “存儲(chǔ)器頻寬”是指連續(xù)訪問存儲(chǔ)器時(shí),存儲(chǔ)器所能提供的數(shù)據(jù)傳送速率。</p><p>  由m個(gè)并行工作的存儲(chǔ)體構(gòu)成的主存儲(chǔ)器頻寬應(yīng)為:</p><p>  (位/秒,字節(jié)/秒) (2-2)</p>

46、<p>  因此,越小,越大,存儲(chǔ)器速度越快。</p><p><b> ?。?)可靠性</b></p><p>  可靠性是指存儲(chǔ)器對電磁場及溫度等變化的抗干擾性。半導(dǎo)體存儲(chǔ)器由于采用大規(guī)模集成電路結(jié)構(gòu),因此可靠性高,平均無故障時(shí)間為幾千小時(shí)以上。</p><p><b> ?。?)功耗</b></p&

47、gt;<p>  使用功耗低的存儲(chǔ)器,不僅可以減少對電源容量的要求,而且還可以提高存儲(chǔ)系統(tǒng)的可靠性。</p><p><b>  (6)集成度</b></p><p>  集成度是指在一片數(shù)平方毫米的芯片上能集成多少個(gè)存儲(chǔ)元,常表示為位/片。集成度關(guān)系到存儲(chǔ)器的容量,所以也是一個(gè)重要的指標(biāo)。</p><p><b>  

48、(7)性能價(jià)格比</b></p><p>  存儲(chǔ)器的性能包括前面幾項(xiàng)指標(biāo),存儲(chǔ)器成本在計(jì)算機(jī)成本中占有很大比重。因此,降低存儲(chǔ)器成本,可降低計(jì)算機(jī)造價(jià)。性能價(jià)格比是一個(gè)綜合性指標(biāo),它反映了存儲(chǔ)器選擇方案的優(yōu)劣[17]。</p><p>  2.2常用的存儲(chǔ)器的分類</p><p>  隨著計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)的發(fā)展和微電子技術(shù)的進(jìn)步,存儲(chǔ)器的種類越來越多,可

49、以按照多種方法對其進(jìn)行分類(圖2.5所示)。</p><p> ?。?)按存儲(chǔ)介質(zhì)分類</p><p>  用來制作存儲(chǔ)器的物質(zhì)稱為介質(zhì)。根據(jù)存儲(chǔ)介質(zhì)的不同,可以將存儲(chǔ)器分為半導(dǎo)體存儲(chǔ)器和磁性存儲(chǔ)器。計(jì)算機(jī)的主存使用的大多數(shù)是半導(dǎo)體存儲(chǔ)器,外存一般為磁表面存儲(chǔ)器和光盤存儲(chǔ)器。</p><p> ?。?)按讀寫方式分類</p><p>  按照

50、存儲(chǔ)器的讀寫方式可分為隨機(jī)存取(讀寫)存儲(chǔ)器、只讀存儲(chǔ)器、順序存取存儲(chǔ)器和直接存取存儲(chǔ)器等。隨機(jī)存取存儲(chǔ)器RAM的任意一個(gè)存儲(chǔ)單元都可以隨機(jī)讀寫,且存取時(shí)間與存儲(chǔ)單元的物理位置無關(guān)。它一般由半導(dǎo)體材料制成,速度較快,用于內(nèi)存。斷電后,RAM芯片內(nèi)的內(nèi)容將丟失。只讀存儲(chǔ)器ROM的內(nèi)容可隨機(jī)讀出,但不能被一般的CPU寫操作隨機(jī)刷新。斷電后,ROM芯片內(nèi)的內(nèi)容依然保持。</p><p>  順序存取存儲(chǔ)器只能按照某種次

51、序存取,即存取時(shí)間與存儲(chǔ)單元的物理位置有關(guān)。磁帶是一種典型的順序存儲(chǔ)器。</p><p>  直接存取存儲(chǔ)器存取數(shù)據(jù)時(shí)不必對存儲(chǔ)介質(zhì)作完整的順序搜索而直接存取。磁盤和光盤都是典型的直接存取存儲(chǔ)器。</p><p> ?。?)按信息的可保存性分類</p><p>  根據(jù)存儲(chǔ)器信息的可保存性,可將存儲(chǔ)器分為易失性存儲(chǔ)器和非易失性存儲(chǔ)器。</p><

52、p>  斷電后信息將消失的存儲(chǔ)器為易失性存儲(chǔ)器,如RAM。斷電后仍保持信息的存儲(chǔ)器為非易失性存儲(chǔ)器,如半導(dǎo)體介質(zhì)的ROM、磁盤、光盤存儲(chǔ)器等。</p><p>  (4)按對信息的訪問方式分類</p><p>  根據(jù)對信息的訪問方式可分為按地址訪問存儲(chǔ)器和按內(nèi)容訪問存儲(chǔ)器,訪問前著需要給出信息的在存儲(chǔ)器中的地址碼,訪問后者需要給出的是信息本身,即“關(guān)鍵字”。</p>

53、<p> ?。?)按讀出方式分類</p><p>  根據(jù)讀出方式可分為破壞性讀出存儲(chǔ)器和非破壞性讀出存儲(chǔ)器,對于前者每讀出一次就會(huì)破壞被讀出的信息,必須立即將被讀出的信息寫回去,所以每個(gè)存儲(chǔ)周期包含一次讀出和一次寫入操作,即(2-3);對于非破壞性讀出的存儲(chǔ)器,不管讀出多少次,所存信息一直能保持不變,即約等于。</p><p>  2.2.1 RAM </p>

54、<p>  隨機(jī)存取存儲(chǔ)器按其存儲(chǔ)信息的原理不同,可分為靜態(tài)RAM和動(dòng)態(tài)RAM兩大類</p><p>  隨機(jī)存儲(chǔ)器(Random Access Memory) ——RAM是一種重要的時(shí)序邏輯存儲(chǔ)電路,它的邏輯功能是在地址信號的選擇下對指定的存儲(chǔ)單元進(jìn)行相應(yīng)的讀寫操作。數(shù)據(jù)讀入后,存儲(chǔ)器內(nèi)的原數(shù)據(jù)不變;而新數(shù)據(jù)寫入后,原數(shù)據(jù)自然消失,并為新數(shù)據(jù)代替。</p><p>  RAM有

55、雙極型和MOS型兩種。前者是用雙極型晶體管構(gòu)成存儲(chǔ)元,后者是用MOS管構(gòu)成存儲(chǔ)元。雙極型速度較高,但集成度較低,功耗大,成本高,容量小,適宜用作CACHE存儲(chǔ)器。而MOS存儲(chǔ)器的存取速度較低,但存儲(chǔ)容量較大,適宜用作主存儲(chǔ)器。在MOS型RAM中又分為SRAM和DRAM兩類。SRAM的基本存儲(chǔ)電路是六管MOS觸發(fā)器,而DRAM一般由單管組成,需定時(shí)刷新[17]。 </p>

56、<p>  圖2.6是SRAM的引腳圖,其中wr為寫地址,rd為讀控制線,cs為片選控制線。當(dāng)cs=1、wr信號由低變高(上升沿)時(shí),din上的數(shù)據(jù)將寫入adr所指示的單元;當(dāng)cs=1、rd=0時(shí),由adr所指定單元的內(nèi)容將從dout的數(shù)據(jù)線上輸出[2]。</p><p><b>  2.2.2 ROM</b></p><p>  ROM通常用來存放固定不變

57、的程序,如微程序、監(jiān)控程序、固定程序、漢字符號點(diǎn)陣等系統(tǒng)級信息。根據(jù)ROM存儲(chǔ)信息的原理不同,又可細(xì)分為掩模型只讀存儲(chǔ)器、可擦除可編程只讀存儲(chǔ)器EPROM、電可擦除可編程只讀存儲(chǔ)器EEPROM等。</p><p>  EPROM指的是“可擦寫可編程只讀存儲(chǔ)器”,即Erasable Programmable Read-Only Memory。它的特點(diǎn)是具有擦除功能,擦除后需立刻進(jìn)行再編程,為設(shè)計(jì)者提供了好的靈活性,

58、在實(shí)際中得到廣泛的應(yīng)用。當(dāng)需要重新寫入放入新的信息時(shí),首先用紫外線光線照射芯片上的窗口,迫使浮柵上的電子獲得足夠的能量越過絕緣層形成光電流流入基片,使浮柵上的電荷被泄放掉,管子重新恢復(fù)成截止?fàn)顟B(tài),成為全“1”片,于是可以重新寫入新的信息,從原理上這種芯片可以進(jìn)行無數(shù)次的重寫。這種芯片外觀上很容易識別,它的封裝中有圓形玻璃窗口,這個(gè)窗口是讓紫外線進(jìn)行照射,編程后芯片的用黑色不干膠紙蓋住。  EEPROM指的是“電可擦除可編

59、程只讀存儲(chǔ)器”,即Electrically Erasable Programmable Read-Only Memory。它的特點(diǎn)是可直接用電信號擦除或?qū)懭?,并且在功能與EPROM類似,只是擦出方式不同。EEPROM在改寫信息時(shí),需要將原來信息擦除,然后才能寫入新的信息,但是擦除和寫入操作可在線進(jìn)行EEPROM優(yōu)于EPROM的地方,也是區(qū)別所在,并隨著電子器件水平的提高</p><p>  ROM指的是“只讀存儲(chǔ)

60、器”,即Read-Only Memory。這種簡單半導(dǎo)體電路,只需通過掩模工藝, 一次性制造后不進(jìn)行修改其中的代碼與數(shù)據(jù),可以永久保存,除非報(bào)廢。ROM是在生產(chǎn)線上生產(chǎn)的,由于成本高,一般只用在大批量應(yīng)用的場合。  由于ROM制造和升級的不便,后來人們發(fā)明了PROM(Programmable ROM,可編程ROM)。最初從工廠中制作完成的PROM內(nèi)部并沒有資料,用戶可以用專用的編程器將自己的資料寫入,但是這種機(jī)會(huì)只有一次

61、,一旦寫入后也無法修改,若是出了錯(cuò)誤,已寫入的芯片只能報(bào)廢。一般只適用于少量需求的場合或是ROM量產(chǎn)前的驗(yàn)證。</p><p>  圖2.7中的ROM有8位地址線adr(0)~adr(7)、4位數(shù)據(jù)輸出線dout(0)~dout(3)及兩位選擇控制輸入G1、G2。當(dāng)G1=1,G2=1時(shí),由adr(0)~adr(7)選中某一ROM單元,該單元中的4位數(shù)據(jù)就從dout(0)~dout(3)輸出,否則dout(0)~d

62、out(3)將呈現(xiàn)高阻狀態(tài)[2]。</p><p>  2.2.3 FIFO</p><p>  FIFO是英文First In First Out 的縮寫,是一種先進(jìn)先出的數(shù)據(jù)緩存器。FIFO的數(shù)據(jù)讀寫操作與SRAM的數(shù)據(jù)讀寫操作是相似的,唯一的區(qū)別是FIFO沒有外部讀寫地址線。這樣優(yōu)點(diǎn)在于使用起來非常簡單,但缺點(diǎn)就是只能順序?qū)懭霐?shù)據(jù),在編程的同時(shí)還需要判斷地址讀寫是否正確。FIFO數(shù)據(jù)

63、地址由內(nèi)部讀寫指針自動(dòng)加1完成,只有在順序的讀出數(shù)據(jù)的情況下,這種情況不存在普通存儲(chǔ)器那中。</p><p>  根據(jù)FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時(shí)鐘和寫時(shí)鐘為同一個(gè)時(shí)鐘。同步FIFO的。同步FIFO的對外接口包括時(shí)鐘、清零、讀請求、寫請求、數(shù)據(jù)輸入總線、空以及滿信號。圖2.8和2.9是容量為8*4位的FIFO引腳框圖和原理框圖。</p>&

64、lt;p>  圖2.8可以看出FIFO有4條數(shù)據(jù)輸入線DIN、4條數(shù)據(jù)輸出線DOUT、1條讀控制線RD、1條寫控制線WR、1條時(shí)鐘輸入線CLK及2條狀態(tài)信號線,即滿信號線(FULL)和空信號線(EMPTY)。</p><p>  圖2.9中FIFO由6個(gè)功能塊組成,他們是存儲(chǔ)體、寫計(jì)數(shù)器(WP)、讀計(jì)數(shù)器(RP)、滿邏輯IN_FULL、空邏輯IN_EMPTY和選擇邏輯SELECT。這是一個(gè)同步的FIFO。在

65、時(shí)鐘脈沖的上升沿作用下,當(dāng)WR=0且FULL=0時(shí),DIN的數(shù)據(jù)將壓入FIFO堆棧。在通常情況下, RP所指出的單元內(nèi)容總是放于DOUT的輸出數(shù)據(jù)線上。只是在 RD=0且EMPTY=0時(shí),RP的內(nèi)容才改變而指向FIFO的下一個(gè)單元,下一個(gè)單元的內(nèi)容替換當(dāng)前內(nèi)容并從DOUT輸出[2]。</p><p>  2.3軟件實(shí)現(xiàn)虛擬存儲(chǔ)器功能</p><p>  虛擬存儲(chǔ)器(Virtual Memo

66、ry)的問世基于計(jì)算機(jī)系統(tǒng)中主存儲(chǔ)器容量不夠大的事實(shí)。在沒有虛擬存儲(chǔ)器的系統(tǒng)中,主存儲(chǔ)器的容量限制了機(jī)內(nèi)可運(yùn)行的程序的大小,如果需要運(yùn)行的程序比主存儲(chǔ)器的容量大,那么該程序?qū)o法在機(jī)內(nèi)運(yùn)行。隨著技術(shù)的不斷發(fā)展,人們越來越追求大容量的程序。虛擬存儲(chǔ)器的誕生更是順應(yīng)了市場的需求。 本論文的題目是基于FPGA的同步FIFO設(shè)計(jì)與仿真,根據(jù)文獻(xiàn)資料可知道FPGA是由可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源

67、、底層嵌入功能單元和內(nèi)嵌專用硬核6部分組成。從FPGA的組成部分可看出,F(xiàn)PGA本身不帶任何存儲(chǔ)功能,若要實(shí)現(xiàn)結(jié)果,必須要有存儲(chǔ)器存儲(chǔ)數(shù)據(jù)并輸出,尤其是較大規(guī)模電路的實(shí)現(xiàn)上。</p><p>  FPGA常采用嵌入式塊RAM進(jìn)行存儲(chǔ),但是FIFO作為數(shù)據(jù)緩沖器,通常其數(shù)據(jù)存放結(jié)構(gòu)和RAM完全一致,在存儲(chǔ)上又有先進(jìn)先出的特點(diǎn),不容易出現(xiàn)存儲(chǔ)不足的現(xiàn)象,因此,在編程中常用FIFO代替RAM進(jìn)行存儲(chǔ),只是FIFO沒有地

68、址,需要建立一個(gè)虛擬地址,又稱為邏輯地址,通過輔助部件判定該虛地址中的信息是否裝入實(shí)存。若在實(shí)存中,稱做“主存命中”,可將虛地址變換成實(shí)地址去訪問主存;若未被裝入,將該虛地址變換成實(shí)地址去訪問主存。虛存空間的大小取決于所能提供的虛擬地址的長度,它與實(shí)存和輔存空間的容量無關(guān),因此可以理解為,虛擬地址碼長越長,虛擬空間容量越大。例如,碼長48的虛擬地址,可提供的虛存空間為2的48次=256TB。圖2.10是虛地址與輔實(shí)地址變換過程。<

69、/p><p>  虛擬存儲(chǔ)器的地址結(jié)構(gòu)與存儲(chǔ)管理方式相關(guān),常用的有頁式、段式和段頁式,其中頁式管理方式是最常用的。</p><p><b>  (1)頁式管理方式</b></p><p>  將實(shí)存和虛存空間機(jī)械地分成同等大小的頁。(頁面大小隨機(jī)器而定,一般為4KB到4MB),按頁順序編號,用相應(yīng)的映像表機(jī)構(gòu)來指明該程序的某頁是否已經(jīng)裝入主存。如果

70、主記憶被加載,您必須指定的位置上主存儲(chǔ)器;如果不進(jìn)主存,以輔助存儲(chǔ)在分頁,以及建立程序之間的存儲(chǔ)空間,真正的地址空間形象。以這種方式,執(zhí)行程序程序通過檢查圖像表地址(虛擬地址)轉(zhuǎn)化為實(shí)際的內(nèi)存地址(物理地址),然后訪問主記憶體。 在頁式虛擬存儲(chǔ)器中通過把主存空間和程序空間都機(jī)械等分成固定大小的頁</p><p>  此存儲(chǔ)系統(tǒng)具有主存的速度和輔存的容量,提高了存儲(chǔ)器系統(tǒng)的性能價(jià)格比。CPU直接訪問主存,

71、主存與輔存之間的信息交換由操作系統(tǒng)和硬件來完成,這種把輔存看作是主存的一部分,以擴(kuò)大主存容量的技術(shù),稱之為虛擬技術(shù)。用虛擬技術(shù)設(shè)計(jì)的存儲(chǔ)器,稱為虛擬存儲(chǔ)器。</p><p>  虛擬存儲(chǔ)器只是一個(gè)容量非常大的存儲(chǔ)器的邏輯模型,不是任何實(shí)際的物理存儲(chǔ)器.它借助于磁盤等輔助存儲(chǔ)器來擴(kuò)大主存容量,使之為更大或更多的程序所使用。</p><p><b>  (2)段式管理方式</b

72、></p><p>  在頁式管理方式中,頁面是機(jī)械劃分的,不完全反映程序的邏輯結(jié)構(gòu)。當(dāng)一個(gè)程序分配在一個(gè)固定的頁面中,程序本身的存儲(chǔ)超過了該頁面的存儲(chǔ),該程序?qū)⒆詣?dòng)分配在兩個(gè)頁面中,這就會(huì)出現(xiàn)頁內(nèi)的空白區(qū)域,而段式管理方式把主存按段分配的存儲(chǔ)管理方式,它是一種模塊化的存儲(chǔ)管理方式,每個(gè)用戶程序模塊可分到一個(gè)段,該程序模塊只能訪問分配給該模塊的段所對應(yīng)的主存空間。段長可以任意設(shè)定,并可放大和縮小,從而消除了

73、段內(nèi)的內(nèi)存空隙。</p><p>  段式管理方式中任何一個(gè)段都可以從零地址開始編址。訪問權(quán)是指該段所允許的訪問方式,由于各個(gè)段在邏輯上是獨(dú)立的,便于以段為單位實(shí)現(xiàn)存儲(chǔ)保護(hù),任何段被訪問時(shí),要檢查是否符合訪問權(quán)要求,對于信息的保密性很強(qiáng),也是頁式管理中無法做到的。</p><p>  (3)段頁式管理方式</p><p>  段頁式管理方式是將虛存和實(shí)存機(jī)械劃分成同

74、樣大小的頁,程序按邏輯結(jié)構(gòu)分成許多大小不同的段,每個(gè)段由多個(gè)頁面構(gòu)成,給每個(gè)用戶建立一個(gè)段表,每個(gè)段表建立一個(gè)頁表,段表中設(shè)置一個(gè)指針指向該段的頁表在實(shí)存中的起始地址,由頁表指向該頁在實(shí)存中的頁號,保證各個(gè)段在實(shí)存中的起始地址是頁得整數(shù)邊界。</p><p>  以頁式管理方式為例,虛擬存儲(chǔ)器工作的全過程</p><p>  在虛擬存儲(chǔ)器中,CPU用到虛地址訪問存儲(chǔ)器,首先查內(nèi)頁表判斷實(shí)存

75、是否命中,若命中,則從內(nèi)頁表中得到實(shí)存頁號與頁內(nèi)地址拼接起來構(gòu)成訪問實(shí)存的實(shí)地址,用該實(shí)地址可直接去訪問,若不命中,則完成三項(xiàng)任務(wù):</p><p> ?。?)向CPU發(fā)出缺頁中斷;</p><p> ?。?)查外頁表得到該頁的輔存實(shí)頁號,并用該頁號去訪問輔存;將該頁調(diào)入實(shí)存中去;并填寫好外頁表;</p><p> ?。?)查實(shí)存頁面分配表,若實(shí)存中還有空閑頁面,從

76、輔存取出的頁面直接寫入實(shí)存的空閑頁中,并填寫好內(nèi)頁表,若實(shí)存空間已滿,則需根據(jù)所采用的替換算法確定當(dāng)前的被替換頁面。</p><p>  從圖2.11中可以看出,虛擬存儲(chǔ)系統(tǒng)中存在三個(gè)存儲(chǔ)空間:一個(gè)是實(shí)存空間,它取決于系統(tǒng)中實(shí)際使用的主存容量;一個(gè)是虛存空間,它取決于虛地址的長度;一個(gè)是輔存空間,它取決于實(shí)際使用的輔助存儲(chǔ)器的總?cè)萘縖17]。</p><p>  第3章 基于FPGA的同

77、步FIFO</p><p><b>  3.1 各器件介紹</b></p><p>  3.1.1 可編程邏輯器件</p><p>  PLD是可編程邏輯器件(Programmable Logic Device)的簡稱,F(xiàn)PGA是現(xiàn)場可編程門陣列(Field Programmable Gate Array)的簡稱,兩者的功能基本相同,只是實(shí)現(xiàn)原

78、理略有不同,所以我們有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或PLD/FPGA。</p><p>  早期的可編程邏輯器件只有PROM、EPROM、EEPROM三種。結(jié)構(gòu)簡單,只能完成簡單的數(shù)字邏輯功能。其后,研發(fā)可編程邏輯器件(PLD)可以運(yùn)行各種數(shù)字邏輯功能,在結(jié)構(gòu)上也比較復(fù)雜。典型的PLD由一個(gè)“與”門和一個(gè)“或”門陣列組成,而任意一個(gè)組合邏輯都可以用“與一或”表達(dá)式來描述,所以, PLD能以乘積和的

79、形式完成大量的組合邏輯功能。</p><p>  這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。 PAL由一個(gè)可編程的“與”平面和一個(gè)固定的“或”平面構(gòu)成,或門的輸出可以通過觸發(fā)器有選擇地被置為寄存狀態(tài)。 PAL器件是現(xiàn)場可編程的,它的實(shí)現(xiàn)工藝有反熔絲技術(shù)、EPROM技術(shù)和EEPROM技術(shù)。還有一類結(jié)構(gòu)更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個(gè)“與”平面和一個(gè)“或”平面構(gòu)成,

80、但是這兩個(gè)平面的連接關(guān)系是可編程的。 PLA器件既有現(xiàn)場可編程的,也有掩膜可編程的。 在PAL的基礎(chǔ)上,又發(fā)展了一種通用陣列邏輯GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工藝,實(shí)現(xiàn)了電可擦除、電可改寫,其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因而它的設(shè)計(jì)具有很強(qiáng)的靈活性,至今仍有許多人使用。 這些早期的PLD器件的一個(gè)共同特點(diǎn)是可以實(shí)現(xiàn)速度特性較好的邏輯功能,但其過于簡單的結(jié)

81、構(gòu)也使它們只能實(shí)現(xiàn)規(guī)模較小的電路。 </p><p>  為了彌補(bǔ)這一缺陷,20世紀(jì)80年代中期。 Altera和Xilinx分別推出了類似于PAL結(jié)構(gòu)的擴(kuò)展型 CPLD(Complex Programmab1e Logic Device)和與標(biāo)準(zhǔn)門陣列類似的FPGA(Field Programmable Gate Array),它們都具有體系結(jié)構(gòu)和邏輯單元靈活、集成度高以及適用范圍寬等特點(diǎn)。這兩種器件兼容了PL

82、D和通用門陣列的優(yōu)點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路,編程也很靈活 [5]。其中FPGA內(nèi)有自帶的RAM,根據(jù)RAM 的不同還可以為單口RAM和雙口RAM,和類似RAM的CAM、FIFO等存儲(chǔ)結(jié)構(gòu)。FPGA又有著豐富的布線資源,連接著FPGA所有內(nèi)部單元,信號在連線上的驅(qū)動(dòng)和傳輸能力取決于連線的長度和工藝。雖然FPGA與CPLD相比,只能完成簡單的時(shí)序邏輯,時(shí)序延遲也不可預(yù)測,但FPGA在編程上要比CPLD靈活得多,集成度也比CPLD高,因此人們

83、常將FPGA基于SRAM編程。</p><p>  3.1.2硬件描述語言VerilogHDL</p><p>  硬件描述語言HDL是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。HDL具有與具體硬件電路和設(shè)計(jì)平臺無關(guān)的特性,并具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化結(jié)構(gòu)化設(shè)計(jì)方面,表現(xiàn)了強(qiáng)大的生命力和應(yīng)用潛力。設(shè)計(jì)者利用這種語言有順序地描繪自己的思路,用一系列分層次

84、的模塊來表示及其復(fù)雜的數(shù)字系統(tǒng),無需考慮對功能影響與工藝有關(guān)的因素花費(fèi)過多的時(shí)間和精力。</p><p>  VerilogHDL(Verilog Hardware Description Language)是硬件描述語言的一種。設(shè)計(jì)者可用它進(jìn)行進(jìn)行數(shù)字邏輯系統(tǒng)的仿真驗(yàn)證、時(shí)序分析、邏輯綜合,應(yīng)用范圍廣,是目前最受歡迎的硬件描述性語言之一。目前在美國使用的VerilogHDL進(jìn)行設(shè)計(jì)的工程師大約有10萬多人,全美

85、國有200多所大學(xué)授用Verilog硬件描述語言的設(shè)計(jì)方法。在臺灣地區(qū)幾乎所有著名大學(xué)的電子和計(jì)算機(jī)工程系都在講授與Verilog有關(guān)的課程。</p><p>  VerilogHDL作為描述硬件電路設(shè)計(jì)的語言,能形式化地抽象表示電路的行為和結(jié)構(gòu);支持邏輯設(shè)計(jì)中層次與范圍的描述;可借用高級語言的結(jié)構(gòu)來抽象地描述電路行為;具有電路仿真與驗(yàn)證功能以保證設(shè)計(jì)的正確性;支持電路描述由高層到低層的轉(zhuǎn)換;硬件描述與實(shí)現(xiàn)工藝無

86、關(guān);便于文檔管理;易于理解和設(shè)計(jì)重用。</p><p>  Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀(jì)80年代中期開發(fā)出來的。前者由Gateway Design Automation公司開發(fā)但是相比VHDL,VerilogHDL被正式成為IEEE標(biāo)準(zhǔn)的時(shí)間是在1995年。但是VHDL是從美國軍方組織開發(fā)的,VerilogHDL是從普通的民間公司的私有財(cái)產(chǎn)轉(zhuǎn)化而來的,因此更

87、有生命力。VerilogHDL于1983年推出,已有20多年的歷史,因而VerilogHDL有更廣泛的設(shè)計(jì)群體,資源比VHDL豐富,更重要的是Verilog HDL語言易學(xué)易用,只要有C語言的編程經(jīng)驗(yàn),通過一段時(shí)間內(nèi)內(nèi)的學(xué)習(xí)就能很快的學(xué)習(xí)和掌握,因此Verilog HDL學(xué)習(xí)與ASIC設(shè)計(jì)緊密相關(guān),VerilogHDL在門級方面開關(guān)電路描述方面有著很強(qiáng)的優(yōu)勢,VerilogHDL對HDL設(shè)計(jì)方法的學(xué)習(xí)入門又基礎(chǔ),學(xué)習(xí)者可以邊學(xué)邊用中獲得

88、掌握VerilogHDL建模、仿真和綜合技術(shù),并為今后學(xué)習(xí)高級語言打下基礎(chǔ)。</p><p>  近年來,F(xiàn)PGA的設(shè)計(jì)在規(guī)模和復(fù)雜度方面不斷取得進(jìn)展,對系統(tǒng)的設(shè)計(jì)周期要求越來越短,這就要求技術(shù)人員采用高水平的設(shè)計(jì)工具。用硬件描述語言Verilog HDL來設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,同時(shí)可以再不同規(guī)模應(yīng)用時(shí)輕易地進(jìn)行修改,以適應(yīng)不同規(guī)模的應(yīng)用。VerilogHDL在輸入上

89、與工藝無關(guān),這就不需要在設(shè)計(jì)和驗(yàn)證的時(shí)候考慮門級和工藝實(shí)現(xiàn)的具體細(xì)節(jié),在這方面VerilogHDL占據(jù)很大的優(yōu)勢。由于VerilogHDL在輸入上與工藝無關(guān),這也提高了VerilogHDL模型的可重用性,設(shè)計(jì)出來的VerilogHDL模型在驗(yàn)證、仿真和可實(shí)現(xiàn)的并且門數(shù)在5000以上的被稱為“軟核”。 軟核和虛擬器件的結(jié)合可以縮短周期,加快復(fù)雜電路設(shè)計(jì),在靈活性上也比其他工藝設(shè)計(jì)高很多。Verilog目前較為適合系統(tǒng)級、算法級、寄存器傳輸

90、級、邏輯級和電路開關(guān)這種中小型的系統(tǒng)設(shè)計(jì),對于特大級的系統(tǒng)設(shè)計(jì),還需依賴VHDL。</p><p>  常用的Verilog HDL語言開發(fā)軟件有Altera公司的MAX+PLUS II,Quartus II和Xilinx公司的Foundation ISE,在本次畢業(yè)設(shè)計(jì)中我們將運(yùn)用Altera公司的Quartus II I作為設(shè)計(jì)的軟件。</p><p>  3.1.3 開發(fā)工具簡介

91、 </p><p>  Quartus II是ALtera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界最大可編程邏輯器件供應(yīng)商之一。使用Quartus II你可以盡快完成設(shè)計(jì)輸入、布線布局、仿真、HDL綜合和下載及硬件測試等流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)入設(shè)計(jì)輸入、快速處理和器件編程。</p><p>  Altera開發(fā)的Qua

92、rtus II軟件提供了完整的多平臺設(shè)計(jì)環(huán)境,能夠滿足各種不同設(shè)計(jì)的需要,更能支持百萬門級的FPGA設(shè)計(jì),為FPGA的開發(fā)提供了優(yōu)化的綜合和適配功能。Quartus II設(shè)計(jì)工具完全支持VHDL、VerilogHDL的設(shè)計(jì)流程、其內(nèi)部嵌有VHDL、VerilogHDL邏輯綜合器。該軟件除具備Quartus II仿真功能外,同時(shí)也支持第三方的仿真工具。Quartus II不僅可以與MATLAB和DS

93、P Builder結(jié)合進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA工具[16],Quartus II還可以與SOPC Builder結(jié)合,實(shí)現(xiàn)SOPC系統(tǒng)開發(fā)。Quartus II也是是業(yè)界唯一提供FPGA設(shè)計(jì)流程的設(shè)計(jì)工具。</p><p>  Quartus II通過增強(qiáng)層次模塊級設(shè)計(jì)方式,可將性能平均提高15%,設(shè)計(jì)者可以使用該軟件中最新提供的HDL測試模

94、板,快速開發(fā)HDL的仿真矢量。Quartus II可以自動(dòng)地從Quartus II仿真波形中創(chuàng)建完整的HDL測試平臺。Quartus II支持高速I/O設(shè)計(jì),IBIS模型根據(jù)每個(gè)引腳I/O標(biāo)準(zhǔn)設(shè)置來制定。Quartus II內(nèi)部包括模塊化的編譯器還可以進(jìn)行分析、綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊、EDA網(wǎng)表文件生成器等功能。目前使用的Quartus II9.1版本采用了高級

95、布線算法,可以多個(gè)處理機(jī)處理,編譯時(shí)間上大大縮短,而且這個(gè)版本的軟件特性能迅速達(dá)到時(shí)序逼近,滿足功耗預(yù)算。</p><p>  Quartus II軟件的使用者可以選擇運(yùn)行所有的編譯器模塊,也可以單獨(dú)運(yùn)行各個(gè)模塊。現(xiàn)在Altera已停止支持更新Maxplus II,Quartus II與其相比不僅支持相似設(shè)備和豐富的圖形界面。Altera在Quartus I還包括是許多SignalTap II,芯片設(shè)計(jì)

96、輔助編輯器和RTL Viewer設(shè)計(jì)輔助工具同時(shí)繼承了Maxplus II友好的圖形界面,使用方便的特點(diǎn)[5]。</p><p><b>  3.2整體設(shè)計(jì)方案</b></p><p>  3.2.1 EP1C3T144C8芯片介紹</p><p>  在QuartusⅡ軟件中運(yùn)行Verilog HDL語言時(shí),采用了Cyclone系列的EP1C

97、3T144C8芯片用于程序上的運(yùn)行。</p><p>  Altera Cyclone系列FPGA是Altera公司2003年9月份推出的, Cyclone是FPGA系列中的一款,具有很高的性價(jià)比。與Stratix結(jié)構(gòu)類似,是FPGA系列中的主流產(chǎn)品,內(nèi)部配置芯片也是全新的,它是Altera最成功的器件之一。其中EPIC3T144C8中共有2910邏輯單元,59904RAM bits,I個(gè)PLLs,高達(dá)104個(gè)用

98、戶本人I/O,這款FPGA的資源非常豐富,可以滿足較大型設(shè)計(jì)的需要,雖是低端芯片,但是性價(jià)比很高,這是因?yàn)樵撔酒茿ltera公司推出的低價(jià)格、大容量的FPGA,其低廉的價(jià)格、優(yōu)良特性及豐富的片上資源在實(shí)際中被廣泛的采用,也是同期芯片中性價(jià)比最好的。</p><p>  EPlC3T144C8芯片采用1.5V內(nèi)核電壓,O.33 umSRAM工藝,邏輯資源豐富,每個(gè)邏輯單位可以輸出2910個(gè)數(shù)量;多種電壓接口,支持

99、LVTTL、LVDS等I/O標(biāo)準(zhǔn);靈活的時(shí)鐘管理,還配有一個(gè)鎖相環(huán)(PLL)電路,可提供1 ~ 32次輸入時(shí)鐘頻率或分頻,156-417ps相移和可變的占空比時(shí)鐘輸出,可直接在Quartos II軟件開發(fā);芯片上有104個(gè)可用I/O引腳,根據(jù)需要可以調(diào)整驅(qū)動(dòng)能力控制I/O輸出;整個(gè)裝置的I/O,分為四個(gè)部分,每個(gè)部分可以獨(dú)立使用一個(gè)不同的輸入電壓,并能通過不同的電壓等級I/O輸出。鎖相環(huán)產(chǎn)生的內(nèi)部時(shí)鐘信號既可以作為其全局時(shí)鐘,也可以為輸

100、出到片外為其他電路使用;內(nèi)部有嵌入式邏輯分析器,方便了設(shè)計(jì)者對芯片內(nèi)部進(jìn)行檢查,同時(shí)不需要將內(nèi)部信號輸出到I/O管腳上[10]。</p><p>  表3.1 Cylone系列的芯片性能</p><p>  3.2.2 FIFO接口的設(shè)計(jì)</p><p>  對于同步FIFO,讀寫指針都指向一個(gè)內(nèi)存的初始位置,每進(jìn)行一次讀寫操作,相應(yīng)的指針就遞增一次,指向下一個(gè)內(nèi)存

101、位置。當(dāng)指針移動(dòng)到了內(nèi)存的最后一個(gè)位置時(shí),它又重新跳回初始位置。在FIFO非滿或非空的情況下,這個(gè)過程將隨著讀寫控制信號的變化一直進(jìn)行下去。另外需要設(shè)置滿和空兩個(gè)信號,對滿信號置位表示FIFO處于滿狀態(tài),對滿信號復(fù)位表示FIFO非滿,還有空間可以寫入數(shù)據(jù);對空信號置位表示FIFO處于空狀態(tài),對空信號復(fù)位表示FIFO非空,還有有效的數(shù)據(jù)可以讀出。當(dāng)讀指針和寫指針相等也就是指向同一個(gè)內(nèi)存位置的時(shí)候,FIFO可能處于滿或空兩種狀態(tài)??梢酝ㄟ^不

102、同的方法判斷或區(qū)分FIFO究竟是處于滿狀態(tài)還是空狀態(tài),也就是究竟是寫指針從后趕上了讀指針,還是讀指針從后趕上了寫指針。</p><p><b>  表3.2各信號定義</b></p><p> ?。?)程序中各信號定義</p><p>  module syncfifo(clk,nrst,wbtn,rbtn,full,empty,wren,rd

103、en,waddr,raddr);</p><p>  input clk,nrst; 設(shè)定CLK和NRST為輸入端</p><p>  input wbtn; </p><p>  input rbtn;</p><p>  output full; full為高電平時(shí)表示滿</p><p>  output e

104、mpty; empty為高電平時(shí)表示空</p><p>  output wren,rden;//write enable and read enable. enabled when a posedge of wbtn occurs!(button is pushed down)</p><p>  output[5:0] waddr; 寫地址為輸出端,并且位寬為6</p>

105、<p>  output[5:0] raddr; 讀地址為輸出端,并且位寬為6</p><p>  reg full,empty; 定義了兩個(gè)名為full和empty的寄存器。</p><p>  wire wren; 寫使能信號定義為wire型信號</p><p>  wire rden; 讀使能信號定義為wire型信號</p>

溫馨提示

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

最新文檔

評論

0/150

提交評論