2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩37頁(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、<p>  本 科 畢 業(yè) 設(shè) 計(jì)</p><p>  基于FPGA的同步fifo設(shè)計(jì)與仿真</p><p>  所在學(xué)院 </p><p>  專業(yè)班級(jí) 電子與信息工程 </p><p>  學(xué)生姓名 學(xué)號(hào)

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

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

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

5、但體現(xiàn)了設(shè)計(jì)的靈活性。</p><p>  關(guān)鍵詞:同步;fifo;可編程邏輯器件;FPGA;Verilog語(yǔ)言</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 國(guó)內(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硬件描述語(yǔ)言Verilog

14、HDL16</p><p>  3.1.3 開(kāi)發(fā)工具簡(jiǎn)介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滿信號(hào)顯示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ò)誤!未定義書(shū)簽。&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)體廠商來(lái)獨(dú)立承擔(dān)。在社會(huì)需求下,數(shù)字電路系統(tǒng)的設(shè)計(jì)正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。</p><p>  早期的可編程邏輯器件(PLD),能夠完成各種數(shù)字邏輯功能,并且延續(xù)了EEPROM工藝,實(shí)現(xiàn)了電可擦除、電可改寫(xiě),其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因此具有很強(qiáng)的靈活性,但

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

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

20、方法, 并給出了其Verilog語(yǔ)言實(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 國(guó)內(nèi)外研究現(xiàn)狀</p><p><b>  (1)研究意義&

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

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

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

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

25、增多,F(xiàn)IFO市場(chǎng)的發(fā)展研究增大,這么做的目的一方面為了防止國(guó)外廠商對(duì)我國(guó)的封鎖和禁運(yùn),另一方面研發(fā)出國(guó)產(chǎn)的高性能同步FIFO,這對(duì)加強(qiáng)國(guó)防建設(shè),發(fā)展空間技術(shù)有著重大意義。</p><p>  (2)國(guó)內(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ù)從寫(xiě)入到讀出要經(jīng)過(guò)N個(gè)周期的延遲。如果這種FIFO芯片的容量N很大,那么這種延遲也將很長(zhǎng)。我們可以得出FIFO芯片中的緩存器可以對(duì)間斷性瞬間高速外部數(shù)據(jù)進(jìn)行緩存。但從長(zhǎng)時(shí)間來(lái)看,平均速率卻不高。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。讀寫(xiě)時(shí)鐘控制FIFO的讀寫(xiě)地址指針,有順序地從存儲(chǔ)單元讀寫(xiě)數(shù)據(jù),從初地址開(kāi)始到最后一個(gè)存儲(chǔ)單元,最后回到第一個(gè)存儲(chǔ)單元。還可以通過(guò)讀寫(xiě)地址來(lái)產(chǎn)生空滿的標(biāo)志。采用RAM結(jié)構(gòu),數(shù)據(jù)從輸入到輸出的延遲縮小,深度指能緩存數(shù)</p><p&

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

29、硬件語(yǔ)言編輯器是借助綜合器來(lái)完成的,綜合器可以將Verilog語(yǔ)言轉(zhuǎn)變成的物理格式的電路,F(xiàn)IFO是RAM存儲(chǔ)器的一種,現(xiàn)在對(duì)FIFO的描述是體現(xiàn)在它對(duì)數(shù)據(jù)有著存取的功能。但是現(xiàn)在的綜合器對(duì)數(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>  所謂同步是指的是讀和寫(xiě)都在一個(gè)時(shí)鐘下工作的。讀地址和空標(biāo)志是由讀時(shí)鐘產(chǎn)生的,而寫(xiě)地址和和滿標(biāo)志則由寫(xiě)時(shí)鐘產(chǎn)生,當(dāng)FIFO產(chǎn)生空或滿標(biāo)志時(shí),就要進(jìn)行讀寫(xiě)地址的比較,但是直接比較會(huì)存在問(wèn)題,我們知道,存儲(chǔ)器在數(shù)據(jù)的讀取上存在時(shí)延,存儲(chǔ)容量越大,時(shí)延會(huì)越大,讀寫(xiě)地址直接比較,讓讀寫(xiě)地址的每一位在讀寫(xiě)時(shí)鐘的作用下,輸出端結(jié)果一開(kāi)始不一致,要過(guò)一段時(shí)間才能穩(wěn)定。因此FIFO設(shè)計(jì)要求如下:</p>

31、<p>  (1)學(xué)習(xí)和研究了不同方式實(shí)現(xiàn)同步FIFO的設(shè)計(jì)方法,對(duì)其的原理性了進(jìn)行了重點(diǎn)解析。</p><p> ?。?)用硬件描述語(yǔ)言VerilogHDL來(lái)實(shí)現(xiàn)同步FIFO,并對(duì)其進(jìn)行仿真。</p><p>  (3)建立讀寫(xiě)指針。</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ǔ)器用來(lái)存放程序和數(shù)據(jù),CPU在工作過(guò)程中要頻繁地與主存儲(chǔ)器交換信息,因此主存儲(chǔ)器的性能在很大程度上影響著整個(gè)計(jì)算機(jī)系統(tǒng)的性能。</p><p>  目前廣泛采用按地址訪問(wèn)的主存儲(chǔ)器,它由許許多多的存儲(chǔ)元構(gòu)成,存儲(chǔ)元是存儲(chǔ)器的最小存

33、儲(chǔ)單位,一個(gè)存儲(chǔ)元可以存放一位二進(jìn)制信息。若干個(gè)存儲(chǔ)元構(gòu)成一個(gè)存儲(chǔ)字,每個(gè)存儲(chǔ)字有一個(gè)相對(duì)應(yīng)的惟一的地址且存儲(chǔ)字長(zhǎng)與機(jī)器字長(zhǎng)相同。</p><p>  存儲(chǔ)器作為計(jì)算機(jī)系統(tǒng)中的記憶設(shè)備,用來(lái)存放程序和數(shù)據(jù),已被越來(lái)越多的運(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í)行指令的過(guò)程實(shí)際上分為兩個(gè)步驟:一是取指令,二是執(zhí)行指令。CPU 與存儲(chǔ)器之間是通過(guò)總線連接的,當(dāng)CPU 執(zhí)行一條指令時(shí),首先必須從存儲(chǔ)器中將指令讀出到總線上,再通過(guò)總線將指令傳送到CPU 內(nèi)部,這一過(guò)程稱為取指令;然后對(duì)指令進(jìn)行譯碼分析,最后執(zhí)行該指令,這一過(guò)程稱為執(zhí)行指令,如

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

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

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

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

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

40、據(jù)給定的主存儲(chǔ)器地址迅速判定該地址中的信息是否已進(jìn)入了cache中,如果已進(jìn)入cache中,則地址變換后立即訪問(wèn)cache,如果cache不命中,則直接訪問(wèn)主存儲(chǔ)器,顯然,cache命中率越高越好。為提高訪問(wèn)cache的速度,需要在cache與主存儲(chǔ)器之間設(shè)置一塊輔助硬件。由它來(lái)完成主存與cache之間的地址變換功能。這樣就構(gòu)成了“cache—主存—輔存”三級(jí)存儲(chǔ)層次。在理想情況下,訪問(wèn)主存儲(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ǔ)器字長(zhǎng)16位,共有1024個(gè)存儲(chǔ)字,求其存儲(chǔ)容量?</p><p>  1024×16=16384(位)=2048(字節(jié))=2K字節(jié)</p><p><b> ?。?)存儲(chǔ)

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

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

45、有多個(gè)存儲(chǔ)體并進(jìn)行工作的大容量存儲(chǔ)器,常采用Bm來(lái)描述存儲(chǔ)器的速度。</p><p>  “存儲(chǔ)器頻寬”是指連續(xù)訪問(wèn)存儲(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ǔ)器對(duì)電磁場(chǎng)及溫度等變化的抗干擾性。半導(dǎo)體存儲(chǔ)器由于采用大規(guī)模集成電路結(jié)構(gòu),因此可靠性高,平均無(wú)故障時(shí)間為幾千小時(shí)以上。</p><p><b>  (5)功耗</b></p&

47、gt;<p>  使用功耗低的存儲(chǔ)器,不僅可以減少對(duì)電源容量的要求,而且還可以提高存儲(chǔ)系統(tǒng)的可靠性。</p><p><b> ?。?)集成度</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ǔ)器的種類越來(lái)越多,可

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

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

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

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

53、<p> ?。?)按讀出方式分類</p><p>  根據(jù)讀出方式可分為破壞性讀出存儲(chǔ)器和非破壞性讀出存儲(chǔ)器,對(duì)于前者每讀出一次就會(huì)破壞被讀出的信息,必須立即將被讀出的信息寫(xiě)回去,所以每個(gè)存儲(chǔ)周期包含一次讀出和一次寫(xiě)入操作,即(2-3);對(duì)于非破壞性讀出的存儲(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ǔ)電路,它的邏輯功能是在地址信號(hào)的選擇下對(duì)指定的存儲(chǔ)單元進(jìn)行相應(yīng)的讀寫(xiě)操作。數(shù)據(jù)讀入后,存儲(chǔ)器內(nèi)的原數(shù)據(jù)不變;而新數(shù)據(jù)寫(xiě)入后,原數(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為寫(xiě)地址,rd為讀控制線,cs為片選控制線。當(dāng)cs=1、wr信號(hào)由低變高(上升沿)時(shí),din上的數(shù)據(jù)將寫(xiě)入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通常用來(lái)存放固定不變

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

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

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

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

61、,一旦寫(xiě)入后也無(wú)法修改,若是出了錯(cuò)誤,已寫(xiě)入的芯片只能報(bào)廢。一般只適用于少量需求的場(chǎng)合或是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 的縮寫(xiě),是一種先進(jìn)先出的數(shù)據(jù)緩存器。FIFO的數(shù)據(jù)讀寫(xiě)操作與SRAM的數(shù)據(jù)讀寫(xiě)操作是相似的,唯一的區(qū)別是FIFO沒(méi)有外部讀寫(xiě)地址線。這樣優(yōu)點(diǎn)在于使用起來(lái)非常簡(jiǎn)單,但缺點(diǎn)就是只能順序?qū)懭霐?shù)據(jù),在編程的同時(shí)還需要判斷地址讀寫(xiě)是否正確。FIFO數(shù)據(jù)

63、地址由內(nèi)部讀寫(xiě)指針自動(dòng)加1完成,只有在順序的讀出數(shù)據(jù)的情況下,這種情況不存在普通存儲(chǔ)器那中。</p><p>  根據(jù)FIFO工作的時(shí)鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時(shí)鐘和寫(xiě)時(shí)鐘為同一個(gè)時(shí)鐘。同步FIFO的。同步FIFO的對(duì)外接口包括時(shí)鐘、清零、讀請(qǐng)求、寫(xiě)請(qǐng)求、數(shù)據(jù)輸入總線、空以及滿信號(hào)。圖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條寫(xiě)控制線WR、1條時(shí)鐘輸入線CLK及2條狀態(tài)信號(hào)線,即滿信號(hào)線(FULL)和空信號(hào)線(EMPTY)。</p><p>  圖2.9中FIFO由6個(gè)功能塊組成,他們是存儲(chǔ)體、寫(xiě)計(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)的問(wèn)世基于計(jì)算機(jī)系統(tǒng)中主存儲(chǔ)器容量不夠大的事實(shí)。在沒(méi)有虛擬存儲(chǔ)器的系統(tǒng)中,主存儲(chǔ)器的容量限制了機(jī)內(nèi)可運(yùn)行的程序的大小,如果需要運(yùn)行的程序比主存儲(chǔ)器的容量大,那么該程序?qū)o(wú)法在機(jī)內(nèi)運(yùn)行。隨著技術(shù)的不斷發(fā)展,人們?cè)絹?lái)越追求大容量的程序。虛擬存儲(chǔ)器的誕生更是順應(yīng)了市場(chǎ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沒(méi)有地

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

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

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

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

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

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

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

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

76、輔存取出的頁(yè)面直接寫(xiě)入實(shí)存的空閑頁(yè)中,并填寫(xiě)好內(nèi)頁(yè)表,若實(shí)存空間已滿,則需根據(jù)所采用的替換算法確定當(dāng)前的被替換頁(yè)面。</p><p>  從圖2.11中可以看出,虛擬存儲(chǔ)系統(tǒng)中存在三個(gè)存儲(chǔ)空間:一個(gè)是實(shí)存空間,它取決于系統(tǒng)中實(shí)際使用的主存容量;一個(gè)是虛存空間,它取決于虛地址的長(zhǎng)度;一個(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)的簡(jiǎn)稱,F(xiàn)PGA是現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array)的簡(jiǎn)稱,兩者的功能基本相同,只是實(shí)現(xiàn)原

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

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

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

82、D和通用門(mén)陣列的優(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)部單元,信號(hào)在連線上的驅(qū)動(dòng)和傳輸能力取決于連線的長(zhǎng)度和工藝。雖然FPGA與CPLD相比,只能完成簡(jiǎn)單的時(shí)序邏輯,時(shí)序延遲也不可預(yù)測(cè),但FPGA在編程上要比CPLD靈活得多,集成度也比CPLD高,因此人們

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

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

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

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

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

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

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

90、級(jí)、邏輯級(jí)和電路開(kāi)關(guān)這種中小型的系統(tǒng)設(shè)計(jì),對(duì)于特大級(jí)的系統(tǒng)設(shè)計(jì),還需依賴VHDL。</p><p>  常用的Verilog HDL語(yǔ)言開(kāi)發(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 開(kāi)發(fā)工具簡(jiǎn)介

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

92、rtus II軟件提供了完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠滿足各種不同設(shè)計(jì)的需要,更能支持百萬(wàn)門(mén)級(jí)的FPGA設(shè)計(jì),為FPGA的開(kāi)發(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)開(kāi)發(fā),是DSP硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵EDA工具[16],Quartus II還可以與SOPC Builder結(jié)合,實(shí)現(xiàn)SOPC系統(tǒng)開(kāi)發(fā)。Quartus II也是是業(yè)界唯一提供FPGA設(shè)計(jì)流程的設(shè)計(jì)工具。</p><p>  Quartus II通過(guò)增強(qiáng)層次模塊級(jí)設(shè)計(jì)方式,可將性能平均提高15%,設(shè)計(jì)者可以使用該軟件中最新提供的HDL測(cè)試模

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

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語(yǔ)言時(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軟件開(kāi)發(fā);芯片上有104個(gè)可用I/O引腳,根據(jù)需要可以調(diào)整驅(qū)動(dòng)能力控制I/O輸出;整個(gè)裝置的I/O,分為四個(gè)部分,每個(gè)部分可以獨(dú)立使用一個(gè)不同的輸入電壓,并能通過(guò)不同的電壓等級(jí)I/O輸出。鎖相環(huán)產(chǎn)生的內(nèi)部時(shí)鐘信號(hào)既可以作為其全局時(shí)鐘,也可以為輸

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

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

102、同的方法判斷或區(qū)分FIFO究竟是處于滿狀態(tài)還是空狀態(tài),也就是究竟是寫(xiě)指針從后趕上了讀指針,還是讀指針從后趕上了寫(xiě)指針。</p><p><b>  表3.2各信號(hào)定義</b></p><p> ?。?)程序中各信號(hào)定義</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; 寫(xiě)地址為輸出端,并且位寬為6</p>

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

溫馨提示

  • 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ù)僅提供信息存儲(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)論