版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 本 科 畢 業(yè) 設 計</p><p> 基于FPGA的同步fifo設計與仿真</p><p> 所在學院 </p><p> 專業(yè)班級 電子與信息工程 </p><p> 學生姓名 學號
2、 </p><p> 指導教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘要</b></p><p> RAM是一種重要的時序邏輯存儲電路,它的邏輯功能是在地址信號的選擇下對指定的存儲單元進
3、行相應的讀寫操作。數(shù)據(jù)讀入后,存儲器內(nèi)的原數(shù)據(jù)不變;而新數(shù)據(jù)寫入后,原數(shù)據(jù)自然消失,并為新數(shù)據(jù)代替。FIFO作為RAM下面的一種存儲器,本身的性能和RAM十分地相似。本論文中的同步FIFO是指讀和寫都在一個時鐘下工作的存儲器。FIFO作為一種先進先出的存儲器,應用范圍廣泛,加之現(xiàn)代電子技術的不斷發(fā)展,信息量越來越大,人們需要對數(shù)據(jù)進行快速存儲和讀取,尤其體現(xiàn)在大規(guī)模的電路設計中,需要較大的存儲,實存存儲已經(jīng)無法滿足需求,這就需要建立可存
4、儲大量數(shù)據(jù)的虛擬存儲空間,而FIFO這種先進先出的結構特點很好地適應了這些要求。</p><p> 本文中同步FIFO的對外接口包括時鐘,清零,讀請求,寫請求,數(shù)據(jù)輸入總線,數(shù)據(jù)輸出總線,空以及滿信號。采用VerilogHDL描述語言進行編程,運行成功后在QuartusⅡ開發(fā)平臺上進行設計仿真。仿真結果顯示,本論文設計的同步FIFO雖然虛擬存儲空間較小,但是程序上可以無限擴展,空滿狀態(tài)的檢測方便,雖然程序簡單,
5、但體現(xiàn)了設計的靈活性。</p><p> 關鍵詞:同步;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章 常用存儲器及其原理4</p>
12、<p> 2.1 存儲器4</p><p> 2.1.1 存儲器的基本結構4</p><p> 2.1.2 存儲器的基本指標6</p><p> 2.2常用的存儲器的分類7</p><p> 2.2.1 RAM9</p><p> 2.2.2 ROM9</p><
13、;p> 2.2.3 FIFO10</p><p> 2.3軟件實現(xiàn)虛擬存儲器功能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整體設計方案19</p><p> 3.2.1 EP1C3T144C8芯片介紹19</p><p> 3.2.2 FIFO接口的設計19</p><p> 3.3各種功能模塊結果圖24</p><
15、;p> 3.3.1滿信號顯示24</p><p> 3.3.2 NRST低電平時的情況25</p><p> 3.4結果仿真圖25</p><p> 第4章 調(diào)試中錯誤的解決27</p><p><b> 小結28</b></p><p> 致謝錯誤!未定義書簽。&l
16、t;/p><p><b> 參考文獻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ī)模集成電路所取代。但是,隨著電子技術的發(fā)展,,設計與制造集成電路的任務已不完全由半導體廠商來獨立承擔。在社會需求下,數(shù)字電路系統(tǒng)的設計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。</p><p> 早期的可編程邏輯器件(PLD),能夠完成各種數(shù)字邏輯功能,并且延續(xù)了EEPROM工藝,實現(xiàn)了電可擦除、電可改寫,其輸出結構是可編程的邏輯宏單元,因此具有很強的靈活性,但
18、是過于簡單,無法滿足較大規(guī)模的電路。但是20世紀80年代,Xilinx推出的FPGA具有體系結構和邏輯單元靈活、集成度高以及適用范圍寬等特點。同時又滿足了設計者要求的設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質量穩(wěn)定以及可實現(xiàn)在線檢驗等優(yōu)點,立刻占據(jù)了市場。</p><p> 由于用FPGA廣泛應用于門陣列、PLD和中小規(guī)模通用數(shù)字集成電路,使整個設計更加緊湊、更小巧、靈活、穩(wěn)定、可靠。把
19、FIFO器件集成到其中是替代專用芯片的最有效的實現(xiàn)方式。常用的FIFO是雙端口的存儲器,其中一個端口用于寫入數(shù)據(jù),而另一個端口用于讀出數(shù)據(jù),同時對存儲器的字存儲單元進行寫入和讀出操作。FIFO型的存儲器由另外的信號線(或標志)來指明存儲器的內(nèi)容狀態(tài),不通過地址來存取數(shù)據(jù)。</p><p> 本文提出了一種用FPGA 芯片實現(xiàn)同步FIFO 的設計方案, 重點強調(diào)了設計有效、可靠的握手信號EMPTY 與FULL 的
20、方法, 并給出了其Verilog語言實現(xiàn),同時根據(jù)程序給出不同情況下的仿真圖。FIFO(First IN First Out)先進先出電路是一種實現(xiàn)數(shù)據(jù)先進先出的存儲器件,普遍用作數(shù)據(jù)緩沖器。FIFO的基本單元是寄存器,作為存儲器件,F(xiàn)IFO的存儲能力是由其內(nèi)部定義的存儲寄存器的數(shù)量決定。</p><p> 1.2 國內(nèi)外研究現(xiàn)狀</p><p><b> (1)研究意義&
21、lt;/b></p><p> 近代信息技術在不斷地發(fā)展,尤其是在本世紀在九十年代早期美國在南斯拉夫戰(zhàn)爭和兩次海灣戰(zhàn)爭中運用了大量的電子戰(zhàn)、信息戰(zhàn),其強大的軍事力量讓全世界震驚,持此以外也獲得了眾多國家的關注和學習,再結合本世紀70年代初我國在航天航空事業(yè)方面的快速發(fā)展,使得我國開始重視和發(fā)展信息技術,同樣的,技術越是發(fā)展,對信息的存儲容量就提出了要求,對高速、大容量、高可靠性的靜態(tài)存儲器提出了更高的要求
22、。軍隊也對數(shù)據(jù)存儲器提出了更高的要求。從現(xiàn)有的資料中了解到軍用計算機對數(shù)據(jù)傳輸速率最大也只在5Mb/s,目前采用的最快的數(shù)據(jù)傳輸方式—DMA(直接存儲器存取模式)已經(jīng)無法滿足幾十Mb/s的超高速采樣速率,直接導致數(shù)據(jù)在采集過程就結束時還沒被計算機讀取。所以傳統(tǒng)的計算機傳輸方法和處理數(shù)據(jù)的方法已經(jīng)難以滿足當前的信息技術上的需求,同時,采樣速率達不到要求可能造成數(shù)據(jù)的丟失與混亂。在這里,提出了本論文的主要意義——對于快速采集,慢速處理的系統(tǒng)
23、能做到緩存。</p><p> 同步FIFO是一種先進先出電路,它能以普通速度匹配數(shù)據(jù)緩沖器,能在快速的處理器和、外設之間實現(xiàn)匹配。而且在遠程通信、數(shù)字信號處理、圖像處理、大容量存儲系統(tǒng)和周邊系統(tǒng)有著廣泛的應用前景。當FIFO芯片在容量、寬度和速度上的提高,芯片也會越來越廣闊的應用前景。</p><p> 近年來,隨著存儲器在容量以及表現(xiàn)在存儲設備的進一步發(fā)展,F(xiàn)IFO存儲方式得到了越
24、來越廣泛的應用。但是國內(nèi)保密性要求嚴格的存儲器卻幾乎依賴進口。雖然國內(nèi)有有名的研究所和廠商也開發(fā)了FIFO電路,在這方面,臺灣企業(yè)的技術比國內(nèi)的有很大的優(yōu)勢。但是存儲器目前還沒有形成系列化,遠不能滿足軍事需求,即使是我國引以為傲的航天技術中運用的武器和裝備也是依賴國外進口,我國對進口設備的過分依賴對未來的軍事建設危害巨大。近年來我國FIFO市場發(fā)展迅速,產(chǎn)品產(chǎn)出持續(xù)擴張,國家鼓勵FIFO產(chǎn)業(yè)向高技術產(chǎn)品發(fā)展,國內(nèi)企業(yè)新增投資項目投資逐漸
25、增多,F(xiàn)IFO市場的發(fā)展研究增大,這么做的目的一方面為了防止國外廠商對我國的封鎖和禁運,另一方面研發(fā)出國產(chǎn)的高性能同步FIFO,這對加強國防建設,發(fā)展空間技術有著重大意義。</p><p> (2)國內(nèi)外發(fā)展概況</p><p> 早在上世紀80年代處資訊并不發(fā)達,F(xiàn)IFO存儲器容量和速度的要求很低。FIFO芯片是基于中規(guī)模邏輯器件的移位寄存器中,串行的移位寄存器作為存儲單元,組合邏輯
26、電路構成輸入輸出端。在這種FIFO芯片中數(shù)據(jù)在時鐘的作用下從第一個寄存器到第N個寄存器(N是FIFO芯片的容量)在輸入和輸出的情況下,最后被讀出,從結構的角度看,數(shù)據(jù)從寫入到讀出要經(jīng)過N個周期的延遲。如果這種FIFO芯片的容量N很大,那么這種延遲也將很長。我們可以得出FIFO芯片中的緩存器可以對間斷性瞬間高速外部數(shù)據(jù)進行緩存。但從長時間來看,平均速率卻不高。FIFO緩存器有兩種組合,一種就是先進先出,后進后出;第二種時基于RAM陣列的結
27、構,目前市面上常用的FIFO芯片采用基于RAM陣列的結構。大規(guī)模集成電路中常采用有兩套數(shù)據(jù)線的雙端口RAM存儲器,兩套數(shù)據(jù)線分別作為輸入和輸出端口,F(xiàn)IFO芯片內(nèi)部存儲單元采用雙端口RAM。讀寫時鐘控制FIFO的讀寫地址指針,有順序地從存儲單元讀寫數(shù)據(jù),從初地址開始到最后一個存儲單元,最后回到第一個存儲單元。還可以通過讀寫地址來產(chǎn)生空滿的標志。采用RAM結構,數(shù)據(jù)從輸入到輸出的延遲縮小,深度指能緩存數(shù)</p><p&
28、gt; 在國內(nèi)單獨做FIFO的很少。國內(nèi)也有公司開發(fā)FIFO電路,但目前還遠遠不能滿足軍事需求。通常國內(nèi)外在設計FIFO時有兩種方法,一種是利用可編程邏輯器件構造FIFO,在這方面Xilinx公司開發(fā)的器件占領了較大的市場,并且質量上也占據(jù)了一定的優(yōu)勢。另一種就是利用Verilog等描述語言對FIFO的功能結構描述,構建一種虛擬的FIFO存儲,但是這種虛擬存儲可以構成緩存,對于實存細節(jié)上的問題可以忽略。但多數(shù)EDA軟件中,EDA和其他
29、硬件語言編輯器是借助綜合器來完成的,綜合器可以將Verilog語言轉變成的物理格式的電路,F(xiàn)IFO是RAM存儲器的一種,現(xiàn)在對FIFO的描述是體現(xiàn)在它對數(shù)據(jù)有著存取的功能。但是現(xiàn)在的綜合器對數(shù)組的綜合通常是轉變成寄存器的結構。綜合后的FIFO結構龐大,一旦設計大容量的FIFO時,會浪費大量的面積,加上SRAM本身集成度低,成功實現(xiàn)設計的可能性將變得很低。</p><p> 1.3 本論文所做的主要工作<
30、/p><p> 所謂同步是指的是讀和寫都在一個時鐘下工作的。讀地址和空標志是由讀時鐘產(chǎn)生的,而寫地址和和滿標志則由寫時鐘產(chǎn)生,當FIFO產(chǎn)生空或滿標志時,就要進行讀寫地址的比較,但是直接比較會存在問題,我們知道,存儲器在數(shù)據(jù)的讀取上存在時延,存儲容量越大,時延會越大,讀寫地址直接比較,讓讀寫地址的每一位在讀寫時鐘的作用下,輸出端結果一開始不一致,要過一段時間才能穩(wěn)定。因此FIFO設計要求如下:</p>
31、<p> ?。?)學習和研究了不同方式實現(xiàn)同步FIFO的設計方法,對其的原理性了進行了重點解析。</p><p> ?。?)用硬件描述語言VerilogHDL來實現(xiàn)同步FIFO,并對其進行仿真。</p><p> ?。?)建立讀寫指針。</p><p> 第2章 常用存儲器及其原理</p><p><b> 2.1
32、 存儲器</b></p><p> 存儲器是計算機系統(tǒng)的重要組成部分之一,有主存儲器和輔助存儲器之分。本文中討論的主存儲器,又可稱為內(nèi)存儲器。主存儲器用來存放程序和數(shù)據(jù),CPU在工作過程中要頻繁地與主存儲器交換信息,因此主存儲器的性能在很大程度上影響著整個計算機系統(tǒng)的性能。</p><p> 目前廣泛采用按地址訪問的主存儲器,它由許許多多的存儲元構成,存儲元是存儲器的最小存
33、儲單位,一個存儲元可以存放一位二進制信息。若干個存儲元構成一個存儲字,每個存儲字有一個相對應的惟一的地址且存儲字長與機器字長相同。</p><p> 存儲器作為計算機系統(tǒng)中的記憶設備,用來存放程序和數(shù)據(jù),已被越來越多的運到各種超大規(guī)模電路中,尤其在多處理機的系統(tǒng)中,各處理機本身都需與其主存交換信息,而且各處理機在互相通信中,也都需共享存放在存儲器中的數(shù)據(jù)。因此,存儲器的地位更為重要。從某種意義上講,存儲器的性能
34、已成為一些系統(tǒng)的核心[17]。</p><p> 2.1.1 存儲器的基本結構</p><p> CPU 執(zhí)行指令的過程實際上分為兩個步驟:一是取指令,二是執(zhí)行指令。CPU 與存儲器之間是通過總線連接的,當CPU 執(zhí)行一條指令時,首先必須從存儲器中將指令讀出到總線上,再通過總線將指令傳送到CPU 內(nèi)部,這一過程稱為取指令;然后對指令進行譯碼分析,最后執(zhí)行該指令,這一過程稱為執(zhí)行指令,如
35、圖2.1所示。</p><p> 假設指令從存儲器中讀出的時間為,指令在總線上傳輸?shù)臅r間為,指令在CPU 中執(zhí)行的時間為tE。這樣,一條指令的執(zhí)行時間為++,稱為指令周期。的大小取決于總線傳輸速度,而的大小取決于所配置的存儲器的存取速度,這一時間實際上就是存儲器的讀周期時間,對某一存儲器而言,這一時間是固定的。由此我們可以看出,計算機的性能是由組成它的各個功能部件的綜合性能來體現(xiàn)的,光有高速的CPU 還不夠,還
36、要有高速的存儲器和高速的總線傳輸?shù)取?lt;/p><p> 任何計算機系統(tǒng)對存儲器要求具有大容量、高速度以及低價格等特點。然而,這三者之間是互相矛盾的,存儲器速度增大,存儲容量就不可能變得很大,價格也不可能很低;如果要求存儲器容量很大,存儲速度就不可能很高,成本也不可能很低。為了解決這些矛盾,除了不斷研制新的存儲器,提高存儲器的性能外,還需要從存儲器的系統(tǒng)結構上較好地解決存儲器大容量、高速度與低價格之間的矛盾。目前
37、在計算機系統(tǒng)中,通常采用多級存儲器體系結構,即使用寄存器組、高速緩沖存儲器、主存儲器和外存儲器,它們的存取速度依次遞減,存儲容量依次遞增,位價格依次降低,圖2.2所示。</p><p> 最簡單的二級存儲器層次如圖2.3所示。整個存儲系統(tǒng)由主存儲器和輔助存儲器兩級構成。主存儲器一般由半導體存儲器構成,它速度快,但容量小,成本較高,通常用來存放程序的“活躍部分”,直接與CPU交換信息;輔助存儲器一般由磁表面存儲器
38、構成,它速度慢、但容量大、成本低,通常用來存放程序的“不活躍部分”,即暫時不執(zhí)行的程序或者暫時不用的數(shù)據(jù),需要時,將程序或數(shù)據(jù)以信息塊為單位從輔助存儲器調(diào)入主存儲器中。因此,何時將輔存中的信息塊調(diào)入主存,何時將主存中已用完的信息塊調(diào)入輔存,所有操作由輔助軟硬件來完成,主、輔存構成的兩級存儲層次才成為一個完整的存儲系統(tǒng),對CPU來說,訪問存儲器的速度是主存儲器的,而存儲器的容量和成本是輔助存儲器的,滿足了上述三方面的要求。</p&g
39、t;<p> 但是由半導體存儲器構成的主存儲器的訪問速度與CPU相比還是有一定差距,為了進一步提高存儲系統(tǒng)的速度,最有效的方法是在CPU與主存之間增設一個一級的高速緩沖存儲器(cache)。</p><p> 在三級存儲層次中(圖2.4所示),高速緩沖存儲器的訪問速度可與CPU相匹配,但是其容量比主存儲器更小,任何時候cache中的信息是主存儲器中一部分信息的副本。當CPU需要訪問主存儲器時,根
40、據(jù)給定的主存儲器地址迅速判定該地址中的信息是否已進入了cache中,如果已進入cache中,則地址變換后立即訪問cache,如果cache不命中,則直接訪問主存儲器,顯然,cache命中率越高越好。為提高訪問cache的速度,需要在cache與主存儲器之間設置一塊輔助硬件。由它來完成主存與cache之間的地址變換功能。這樣就構成了“cache—主存—輔存”三級存儲層次。在理想情況下,訪問主存儲器的速度決定于cache,而其容量和成本決定
41、了輔存。主存儲器的速度更好地滿足“高速度、大容量、低成本”三方面的要求[17]。</p><p> 2.1.2 存儲器的基本指標</p><p><b> ?。?)存儲容量</b></p><p> 存儲容量是指整個存儲器所能存放的二進制信息的總位數(shù),公式如下:</p><p> =W×L(位或字節(jié))&l
42、t;/p><p> 假設存儲芯片的存儲單元數(shù)是W, 一個存儲單元所存儲的信息的位數(shù)是L,則其存儲容量為W×L。</p><p> 例如:某存儲器字長16位,共有1024個存儲字,求其存儲容量?</p><p> 1024×16=16384(位)=2048(字節(jié))=2K字節(jié)</p><p><b> ?。?)存儲
43、速度</b></p><p> 存儲器的存取速度是影響計算機運算速度的主要因素,主存儲的速度可用訪問時間TA、訪問周期和存儲器頻寬等三個參數(shù)來描述。</p><p><b> (1)訪問時間</b></p><p> “訪問時間”是指從向存儲器發(fā)出指令開始,到完成該操作所經(jīng)歷的時間,TA越小,存儲器速度越快。</p>
44、;<p><b> (2)訪問周期</b></p><p> “訪問周期”是指啟動兩次讀(或寫)存儲器操作之間所需的最小時間間隔。一般情況下,≥,對于破壞性讀出的存儲器。 (2-1)</p><p><b> ?。?)存儲器頻寬</b></p><p> 對于具
45、有多個存儲體并進行工作的大容量存儲器,常采用Bm來描述存儲器的速度。</p><p> “存儲器頻寬”是指連續(xù)訪問存儲器時,存儲器所能提供的數(shù)據(jù)傳送速率。</p><p> 由m個并行工作的存儲體構成的主存儲器頻寬應為:</p><p> (位/秒,字節(jié)/秒) (2-2)</p>
46、<p> 因此,越小,越大,存儲器速度越快。</p><p><b> (4)可靠性</b></p><p> 可靠性是指存儲器對電磁場及溫度等變化的抗干擾性。半導體存儲器由于采用大規(guī)模集成電路結構,因此可靠性高,平均無故障時間為幾千小時以上。</p><p><b> ?。?)功耗</b></p&
47、gt;<p> 使用功耗低的存儲器,不僅可以減少對電源容量的要求,而且還可以提高存儲系統(tǒng)的可靠性。</p><p><b> ?。?)集成度</b></p><p> 集成度是指在一片數(shù)平方毫米的芯片上能集成多少個存儲元,常表示為位/片。集成度關系到存儲器的容量,所以也是一個重要的指標。</p><p><b>
48、(7)性能價格比</b></p><p> 存儲器的性能包括前面幾項指標,存儲器成本在計算機成本中占有很大比重。因此,降低存儲器成本,可降低計算機造價。性能價格比是一個綜合性指標,它反映了存儲器選擇方案的優(yōu)劣[17]。</p><p> 2.2常用的存儲器的分類</p><p> 隨著計算機系統(tǒng)結構的發(fā)展和微電子技術的進步,存儲器的種類越來越多,可
49、以按照多種方法對其進行分類(圖2.5所示)。</p><p> (1)按存儲介質分類</p><p> 用來制作存儲器的物質稱為介質。根據(jù)存儲介質的不同,可以將存儲器分為半導體存儲器和磁性存儲器。計算機的主存使用的大多數(shù)是半導體存儲器,外存一般為磁表面存儲器和光盤存儲器。</p><p> (2)按讀寫方式分類</p><p> 按照
50、存儲器的讀寫方式可分為隨機存取(讀寫)存儲器、只讀存儲器、順序存取存儲器和直接存取存儲器等。隨機存取存儲器RAM的任意一個存儲單元都可以隨機讀寫,且存取時間與存儲單元的物理位置無關。它一般由半導體材料制成,速度較快,用于內(nèi)存。斷電后,RAM芯片內(nèi)的內(nèi)容將丟失。只讀存儲器ROM的內(nèi)容可隨機讀出,但不能被一般的CPU寫操作隨機刷新。斷電后,ROM芯片內(nèi)的內(nèi)容依然保持。</p><p> 順序存取存儲器只能按照某種次
51、序存取,即存取時間與存儲單元的物理位置有關。磁帶是一種典型的順序存儲器。</p><p> 直接存取存儲器存取數(shù)據(jù)時不必對存儲介質作完整的順序搜索而直接存取。磁盤和光盤都是典型的直接存取存儲器。</p><p> ?。?)按信息的可保存性分類</p><p> 根據(jù)存儲器信息的可保存性,可將存儲器分為易失性存儲器和非易失性存儲器。</p><
52、p> 斷電后信息將消失的存儲器為易失性存儲器,如RAM。斷電后仍保持信息的存儲器為非易失性存儲器,如半導體介質的ROM、磁盤、光盤存儲器等。</p><p> ?。?)按對信息的訪問方式分類</p><p> 根據(jù)對信息的訪問方式可分為按地址訪問存儲器和按內(nèi)容訪問存儲器,訪問前著需要給出信息的在存儲器中的地址碼,訪問后者需要給出的是信息本身,即“關鍵字”。</p>
53、<p> ?。?)按讀出方式分類</p><p> 根據(jù)讀出方式可分為破壞性讀出存儲器和非破壞性讀出存儲器,對于前者每讀出一次就會破壞被讀出的信息,必須立即將被讀出的信息寫回去,所以每個存儲周期包含一次讀出和一次寫入操作,即(2-3);對于非破壞性讀出的存儲器,不管讀出多少次,所存信息一直能保持不變,即約等于。</p><p> 2.2.1 RAM </p>
54、<p> 隨機存取存儲器按其存儲信息的原理不同,可分為靜態(tài)RAM和動態(tài)RAM兩大類</p><p> 隨機存儲器(Random Access Memory) ——RAM是一種重要的時序邏輯存儲電路,它的邏輯功能是在地址信號的選擇下對指定的存儲單元進行相應的讀寫操作。數(shù)據(jù)讀入后,存儲器內(nèi)的原數(shù)據(jù)不變;而新數(shù)據(jù)寫入后,原數(shù)據(jù)自然消失,并為新數(shù)據(jù)代替。</p><p> RAM有
55、雙極型和MOS型兩種。前者是用雙極型晶體管構成存儲元,后者是用MOS管構成存儲元。雙極型速度較高,但集成度較低,功耗大,成本高,容量小,適宜用作CACHE存儲器。而MOS存儲器的存取速度較低,但存儲容量較大,適宜用作主存儲器。在MOS型RAM中又分為SRAM和DRAM兩類。SRAM的基本存儲電路是六管MOS觸發(fā)器,而DRAM一般由單管組成,需定時刷新[17]。 </p>
56、<p> 圖2.6是SRAM的引腳圖,其中wr為寫地址,rd為讀控制線,cs為片選控制線。當cs=1、wr信號由低變高(上升沿)時,din上的數(shù)據(jù)將寫入adr所指示的單元;當cs=1、rd=0時,由adr所指定單元的內(nèi)容將從dout的數(shù)據(jù)線上輸出[2]。</p><p><b> 2.2.2 ROM</b></p><p> ROM通常用來存放固定不變
57、的程序,如微程序、監(jiān)控程序、固定程序、漢字符號點陣等系統(tǒng)級信息。根據(jù)ROM存儲信息的原理不同,又可細分為掩模型只讀存儲器、可擦除可編程只讀存儲器EPROM、電可擦除可編程只讀存儲器EEPROM等。</p><p> EPROM指的是“可擦寫可編程只讀存儲器”,即Erasable Programmable Read-Only Memory。它的特點是具有擦除功能,擦除后需立刻進行再編程,為設計者提供了好的靈活性,
58、在實際中得到廣泛的應用。當需要重新寫入放入新的信息時,首先用紫外線光線照射芯片上的窗口,迫使浮柵上的電子獲得足夠的能量越過絕緣層形成光電流流入基片,使浮柵上的電荷被泄放掉,管子重新恢復成截止狀態(tài),成為全“1”片,于是可以重新寫入新的信息,從原理上這種芯片可以進行無數(shù)次的重寫。這種芯片外觀上很容易識別,它的封裝中有圓形玻璃窗口,這個窗口是讓紫外線進行照射,編程后芯片的用黑色不干膠紙蓋住。 EEPROM指的是“電可擦除可編
59、程只讀存儲器”,即Electrically Erasable Programmable Read-Only Memory。它的特點是可直接用電信號擦除或寫入,并且在功能與EPROM類似,只是擦出方式不同。EEPROM在改寫信息時,需要將原來信息擦除,然后才能寫入新的信息,但是擦除和寫入操作可在線進行EEPROM優(yōu)于EPROM的地方,也是區(qū)別所在,并隨著電子器件水平的提高</p><p> ROM指的是“只讀存儲
60、器”,即Read-Only Memory。這種簡單半導體電路,只需通過掩模工藝, 一次性制造后不進行修改其中的代碼與數(shù)據(jù),可以永久保存,除非報廢。ROM是在生產(chǎn)線上生產(chǎn)的,由于成本高,一般只用在大批量應用的場合。 由于ROM制造和升級的不便,后來人們發(fā)明了PROM(Programmable ROM,可編程ROM)。最初從工廠中制作完成的PROM內(nèi)部并沒有資料,用戶可以用專用的編程器將自己的資料寫入,但是這種機會只有一次
61、,一旦寫入后也無法修改,若是出了錯誤,已寫入的芯片只能報廢。一般只適用于少量需求的場合或是ROM量產(chǎn)前的驗證。</p><p> 圖2.7中的ROM有8位地址線adr(0)~adr(7)、4位數(shù)據(jù)輸出線dout(0)~dout(3)及兩位選擇控制輸入G1、G2。當G1=1,G2=1時,由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 的縮寫,是一種先進先出的數(shù)據(jù)緩存器。FIFO的數(shù)據(jù)讀寫操作與SRAM的數(shù)據(jù)讀寫操作是相似的,唯一的區(qū)別是FIFO沒有外部讀寫地址線。這樣優(yōu)點在于使用起來非常簡單,但缺點就是只能順序寫入數(shù)據(jù),在編程的同時還需要判斷地址讀寫是否正確。FIFO數(shù)據(jù)
63、地址由內(nèi)部讀寫指針自動加1完成,只有在順序的讀出數(shù)據(jù)的情況下,這種情況不存在普通存儲器那中。</p><p> 根據(jù)FIFO工作的時鐘域,可以將FIFO分為同步FIFO和異步FIFO。同步FIFO是指讀時鐘和寫時鐘為同一個時鐘。同步FIFO的。同步FIFO的對外接口包括時鐘、清零、讀請求、寫請求、數(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條時鐘輸入線CLK及2條狀態(tài)信號線,即滿信號線(FULL)和空信號線(EMPTY)。</p><p> 圖2.9中FIFO由6個功能塊組成,他們是存儲體、寫計數(shù)器(WP)、讀計數(shù)器(RP)、滿邏輯IN_FULL、空邏輯IN_EMPTY和選擇邏輯SELECT。這是一個同步的FIFO。在
65、時鐘脈沖的上升沿作用下,當WR=0且FULL=0時,DIN的數(shù)據(jù)將壓入FIFO堆棧。在通常情況下, RP所指出的單元內(nèi)容總是放于DOUT的輸出數(shù)據(jù)線上。只是在 RD=0且EMPTY=0時,RP的內(nèi)容才改變而指向FIFO的下一個單元,下一個單元的內(nèi)容替換當前內(nèi)容并從DOUT輸出[2]。</p><p> 2.3軟件實現(xiàn)虛擬存儲器功能</p><p> 虛擬存儲器(Virtual Memo
66、ry)的問世基于計算機系統(tǒng)中主存儲器容量不夠大的事實。在沒有虛擬存儲器的系統(tǒng)中,主存儲器的容量限制了機內(nèi)可運行的程序的大小,如果需要運行的程序比主存儲器的容量大,那么該程序將無法在機內(nèi)運行。隨著技術的不斷發(fā)展,人們越來越追求大容量的程序。虛擬存儲器的誕生更是順應了市場的需求。 本論文的題目是基于FPGA的同步FIFO設計與仿真,根據(jù)文獻資料可知道FPGA是由可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式塊RAM、豐富的布線資源
67、、底層嵌入功能單元和內(nèi)嵌專用硬核6部分組成。從FPGA的組成部分可看出,F(xiàn)PGA本身不帶任何存儲功能,若要實現(xiàn)結果,必須要有存儲器存儲數(shù)據(jù)并輸出,尤其是較大規(guī)模電路的實現(xiàn)上。</p><p> FPGA常采用嵌入式塊RAM進行存儲,但是FIFO作為數(shù)據(jù)緩沖器,通常其數(shù)據(jù)存放結構和RAM完全一致,在存儲上又有先進先出的特點,不容易出現(xiàn)存儲不足的現(xiàn)象,因此,在編程中常用FIFO代替RAM進行存儲,只是FIFO沒有地
68、址,需要建立一個虛擬地址,又稱為邏輯地址,通過輔助部件判定該虛地址中的信息是否裝入實存。若在實存中,稱做“主存命中”,可將虛地址變換成實地址去訪問主存;若未被裝入,將該虛地址變換成實地址去訪問主存。虛存空間的大小取決于所能提供的虛擬地址的長度,它與實存和輔存空間的容量無關,因此可以理解為,虛擬地址碼長越長,虛擬空間容量越大。例如,碼長48的虛擬地址,可提供的虛存空間為2的48次=256TB。圖2.10是虛地址與輔實地址變換過程。<
69、/p><p> 虛擬存儲器的地址結構與存儲管理方式相關,常用的有頁式、段式和段頁式,其中頁式管理方式是最常用的。</p><p><b> ?。?)頁式管理方式</b></p><p> 將實存和虛存空間機械地分成同等大小的頁。(頁面大小隨機器而定,一般為4KB到4MB),按頁順序編號,用相應的映像表機構來指明該程序的某頁是否已經(jīng)裝入主存。如果
70、主記憶被加載,您必須指定的位置上主存儲器;如果不進主存,以輔助存儲在分頁,以及建立程序之間的存儲空間,真正的地址空間形象。以這種方式,執(zhí)行程序程序通過檢查圖像表地址(虛擬地址)轉化為實際的內(nèi)存地址(物理地址),然后訪問主記憶體。 在頁式虛擬存儲器中通過把主存空間和程序空間都機械等分成固定大小的頁</p><p> 此存儲系統(tǒng)具有主存的速度和輔存的容量,提高了存儲器系統(tǒng)的性能價格比。CPU直接訪問主存,
71、主存與輔存之間的信息交換由操作系統(tǒng)和硬件來完成,這種把輔存看作是主存的一部分,以擴大主存容量的技術,稱之為虛擬技術。用虛擬技術設計的存儲器,稱為虛擬存儲器。</p><p> 虛擬存儲器只是一個容量非常大的存儲器的邏輯模型,不是任何實際的物理存儲器.它借助于磁盤等輔助存儲器來擴大主存容量,使之為更大或更多的程序所使用。</p><p><b> ?。?)段式管理方式</b
72、></p><p> 在頁式管理方式中,頁面是機械劃分的,不完全反映程序的邏輯結構。當一個程序分配在一個固定的頁面中,程序本身的存儲超過了該頁面的存儲,該程序將自動分配在兩個頁面中,這就會出現(xiàn)頁內(nèi)的空白區(qū)域,而段式管理方式把主存按段分配的存儲管理方式,它是一種模塊化的存儲管理方式,每個用戶程序模塊可分到一個段,該程序模塊只能訪問分配給該模塊的段所對應的主存空間。段長可以任意設定,并可放大和縮小,從而消除了
73、段內(nèi)的內(nèi)存空隙。</p><p> 段式管理方式中任何一個段都可以從零地址開始編址。訪問權是指該段所允許的訪問方式,由于各個段在邏輯上是獨立的,便于以段為單位實現(xiàn)存儲保護,任何段被訪問時,要檢查是否符合訪問權要求,對于信息的保密性很強,也是頁式管理中無法做到的。</p><p> ?。?)段頁式管理方式</p><p> 段頁式管理方式是將虛存和實存機械劃分成同
74、樣大小的頁,程序按邏輯結構分成許多大小不同的段,每個段由多個頁面構成,給每個用戶建立一個段表,每個段表建立一個頁表,段表中設置一個指針指向該段的頁表在實存中的起始地址,由頁表指向該頁在實存中的頁號,保證各個段在實存中的起始地址是頁得整數(shù)邊界。</p><p> 以頁式管理方式為例,虛擬存儲器工作的全過程</p><p> 在虛擬存儲器中,CPU用到虛地址訪問存儲器,首先查內(nèi)頁表判斷實存
75、是否命中,若命中,則從內(nèi)頁表中得到實存頁號與頁內(nèi)地址拼接起來構成訪問實存的實地址,用該實地址可直接去訪問,若不命中,則完成三項任務:</p><p> (1)向CPU發(fā)出缺頁中斷;</p><p> (2)查外頁表得到該頁的輔存實頁號,并用該頁號去訪問輔存;將該頁調(diào)入實存中去;并填寫好外頁表;</p><p> ?。?)查實存頁面分配表,若實存中還有空閑頁面,從
76、輔存取出的頁面直接寫入實存的空閑頁中,并填寫好內(nèi)頁表,若實存空間已滿,則需根據(jù)所采用的替換算法確定當前的被替換頁面。</p><p> 從圖2.11中可以看出,虛擬存儲系統(tǒng)中存在三個存儲空間:一個是實存空間,它取決于系統(tǒng)中實際使用的主存容量;一個是虛存空間,它取決于虛地址的長度;一個是輔存空間,它取決于實際使用的輔助存儲器的總容量[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)的簡稱,兩者的功能基本相同,只是實現(xiàn)原
78、理略有不同,所以我們有時可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或PLD/FPGA。</p><p> 早期的可編程邏輯器件只有PROM、EPROM、EEPROM三種。結構簡單,只能完成簡單的數(shù)字邏輯功能。其后,研發(fā)可編程邏輯器件(PLD)可以運行各種數(shù)字邏輯功能,在結構上也比較復雜。典型的PLD由一個“與”門和一個“或”門陣列組成,而任意一個組合邏輯都可以用“與一或”表達式來描述,所以, PLD能以乘積和的
79、形式完成大量的組合邏輯功能。</p><p> 這一階段的產(chǎn)品主要有PAL(可編程陣列邏輯)和GAL(通用陣列邏輯)。 PAL由一個可編程的“與”平面和一個固定的“或”平面構成,或門的輸出可以通過觸發(fā)器有選擇地被置為寄存狀態(tài)。 PAL器件是現(xiàn)場可編程的,它的實現(xiàn)工藝有反熔絲技術、EPROM技術和EEPROM技術。還有一類結構更為靈活的邏輯器件是可編程邏輯陣列(PLA),它也由一個“與”平面和一個“或”平面構成,
80、但是這兩個平面的連接關系是可編程的。 PLA器件既有現(xiàn)場可編程的,也有掩膜可編程的。 在PAL的基礎上,又發(fā)展了一種通用陣列邏輯GAL (Generic Array Logic),如GAL16V8,GAL22V10 等。它采用了EEPROM工藝,實現(xiàn)了電可擦除、電可改寫,其輸出結構是可編程的邏輯宏單元,因而它的設計具有很強的靈活性,至今仍有許多人使用。 這些早期的PLD器件的一個共同特點是可以實現(xiàn)速度特性較好的邏輯功能,但其過于簡單的結
81、構也使它們只能實現(xiàn)規(guī)模較小的電路。 </p><p> 為了彌補這一缺陷,20世紀80年代中期。 Altera和Xilinx分別推出了類似于PAL結構的擴展型 CPLD(Complex Programmab1e Logic Device)和與標準門陣列類似的FPGA(Field Programmable Gate Array),它們都具有體系結構和邏輯單元靈活、集成度高以及適用范圍寬等特點。這兩種器件兼容了PL
82、D和通用門陣列的優(yōu)點,可實現(xiàn)較大規(guī)模的電路,編程也很靈活 [5]。其中FPGA內(nèi)有自帶的RAM,根據(jù)RAM 的不同還可以為單口RAM和雙口RAM,和類似RAM的CAM、FIFO等存儲結構。FPGA又有著豐富的布線資源,連接著FPGA所有內(nèi)部單元,信號在連線上的驅動和傳輸能力取決于連線的長度和工藝。雖然FPGA與CPLD相比,只能完成簡單的時序邏輯,時序延遲也不可預測,但FPGA在編程上要比CPLD靈活得多,集成度也比CPLD高,因此人們
83、常將FPGA基于SRAM編程。</p><p> 3.1.2硬件描述語言VerilogHDL</p><p> 硬件描述語言HDL是一種用形式化方法來描述數(shù)字電路和系統(tǒng)的語言。HDL具有與具體硬件電路和設計平臺無關的特性,并具有良好的電路行為描述和系統(tǒng)描述的能力,并在語言易讀性和層次化結構化設計方面,表現(xiàn)了強大的生命力和應用潛力。設計者利用這種語言有順序地描繪自己的思路,用一系列分層次
84、的模塊來表示及其復雜的數(shù)字系統(tǒng),無需考慮對功能影響與工藝有關的因素花費過多的時間和精力。</p><p> VerilogHDL(Verilog Hardware Description Language)是硬件描述語言的一種。設計者可用它進行進行數(shù)字邏輯系統(tǒng)的仿真驗證、時序分析、邏輯綜合,應用范圍廣,是目前最受歡迎的硬件描述性語言之一。目前在美國使用的VerilogHDL進行設計的工程師大約有10萬多人,全美
85、國有200多所大學授用Verilog硬件描述語言的設計方法。在臺灣地區(qū)幾乎所有著名大學的電子和計算機工程系都在講授與Verilog有關的課程。</p><p> VerilogHDL作為描述硬件電路設計的語言,能形式化地抽象表示電路的行為和結構;支持邏輯設計中層次與范圍的描述;可借用高級語言的結構來抽象地描述電路行為;具有電路仿真與驗證功能以保證設計的正確性;支持電路描述由高層到低層的轉換;硬件描述與實現(xiàn)工藝無
86、關;便于文檔管理;易于理解和設計重用。</p><p> Verilog HDL和VHDL是目前世界上最流行的兩種硬件描述語言,都是在20世紀80年代中期開發(fā)出來的。前者由Gateway Design Automation公司開發(fā)但是相比VHDL,VerilogHDL被正式成為IEEE標準的時間是在1995年。但是VHDL是從美國軍方組織開發(fā)的,VerilogHDL是從普通的民間公司的私有財產(chǎn)轉化而來的,因此更
87、有生命力。VerilogHDL于1983年推出,已有20多年的歷史,因而VerilogHDL有更廣泛的設計群體,資源比VHDL豐富,更重要的是Verilog HDL語言易學易用,只要有C語言的編程經(jīng)驗,通過一段時間內(nèi)內(nèi)的學習就能很快的學習和掌握,因此Verilog HDL學習與ASIC設計緊密相關,VerilogHDL在門級方面開關電路描述方面有著很強的優(yōu)勢,VerilogHDL對HDL設計方法的學習入門又基礎,學習者可以邊學邊用中獲得
88、掌握VerilogHDL建模、仿真和綜合技術,并為今后學習高級語言打下基礎。</p><p> 近年來,F(xiàn)PGA的設計在規(guī)模和復雜度方面不斷取得進展,對系統(tǒng)的設計周期要求越來越短,這就要求技術人員采用高水平的設計工具。用硬件描述語言Verilog HDL來設計,可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進行測試,同時可以再不同規(guī)模應用時輕易地進行修改,以適應不同規(guī)模的應用。VerilogHDL在輸入上
89、與工藝無關,這就不需要在設計和驗證的時候考慮門級和工藝實現(xiàn)的具體細節(jié),在這方面VerilogHDL占據(jù)很大的優(yōu)勢。由于VerilogHDL在輸入上與工藝無關,這也提高了VerilogHDL模型的可重用性,設計出來的VerilogHDL模型在驗證、仿真和可實現(xiàn)的并且門數(shù)在5000以上的被稱為“軟核”。 軟核和虛擬器件的結合可以縮短周期,加快復雜電路設計,在靈活性上也比其他工藝設計高很多。Verilog目前較為適合系統(tǒng)級、算法級、寄存器傳輸
90、級、邏輯級和電路開關這種中小型的系統(tǒng)設計,對于特大級的系統(tǒng)設計,還需依賴VHDL。</p><p> 常用的Verilog HDL語言開發(fā)軟件有Altera公司的MAX+PLUS II,Quartus II和Xilinx公司的Foundation ISE,在本次畢業(yè)設計中我們將運用Altera公司的Quartus II I作為設計的軟件。</p><p> 3.1.3 開發(fā)工具簡介
91、 </p><p> Quartus II是ALtera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界最大可編程邏輯器件供應商之一。使用Quartus II你可以盡快完成設計輸入、布線布局、仿真、HDL綜合和下載及硬件測試等流程,它提供了一種與結構無關的設計環(huán)境,使設計者能方便地進入設計輸入、快速處理和器件編程。</p><p> Altera開發(fā)的Qua
92、rtus II軟件提供了完整的多平臺設計環(huán)境,能夠滿足各種不同設計的需要,更能支持百萬門級的FPGA設計,為FPGA的開發(fā)提供了優(yōu)化的綜合和適配功能。Quartus II設計工具完全支持VHDL、VerilogHDL的設計流程、其內(nèi)部嵌有VHDL、VerilogHDL邏輯綜合器。該軟件除具備Quartus II仿真功能外,同時也支持第三方的仿真工具。Quartus II不僅可以與MATLAB和DS
93、P Builder結合進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關鍵EDA工具[16],Quartus II還可以與SOPC Builder結合,實現(xiàn)SOPC系統(tǒng)開發(fā)。Quartus II也是是業(yè)界唯一提供FPGA設計流程的設計工具。</p><p> Quartus II通過增強層次模塊級設計方式,可將性能平均提高15%,設計者可以使用該軟件中最新提供的HDL測試模
94、板,快速開發(fā)HDL的仿真矢量。Quartus II可以自動地從Quartus II仿真波形中創(chuàng)建完整的HDL測試平臺。Quartus II支持高速I/O設計,IBIS模型根據(jù)每個引腳I/O標準設置來制定。Quartus II內(nèi)部包括模塊化的編譯器還可以進行分析、綜合器、適配器、裝配器、時序分析器、設計輔助模塊、EDA網(wǎng)表文件生成器等功能。目前使用的Quartus II9.1版本采用了高級
95、布線算法,可以多個處理機處理,編譯時間上大大縮短,而且這個版本的軟件特性能迅速達到時序逼近,滿足功耗預算。</p><p> Quartus II軟件的使用者可以選擇運行所有的編譯器模塊,也可以單獨運行各個模塊?,F(xiàn)在Altera已停止支持更新Maxplus II,Quartus II與其相比不僅支持相似設備和豐富的圖形界面。Altera在Quartus I還包括是許多SignalTap II,芯片設計
96、輔助編輯器和RTL Viewer設計輔助工具同時繼承了Maxplus II友好的圖形界面,使用方便的特點[5]。</p><p><b> 3.2整體設計方案</b></p><p> 3.2.1 EP1C3T144C8芯片介紹</p><p> 在QuartusⅡ軟件中運行Verilog HDL語言時,采用了Cyclone系列的EP1C
97、3T144C8芯片用于程序上的運行。</p><p> Altera Cyclone系列FPGA是Altera公司2003年9月份推出的, Cyclone是FPGA系列中的一款,具有很高的性價比。與Stratix結構類似,是FPGA系列中的主流產(chǎn)品,內(nèi)部配置芯片也是全新的,它是Altera最成功的器件之一。其中EPIC3T144C8中共有2910邏輯單元,59904RAM bits,I個PLLs,高達104個用
98、戶本人I/O,這款FPGA的資源非常豐富,可以滿足較大型設計的需要,雖是低端芯片,但是性價比很高,這是因為該芯片是Altera公司推出的低價格、大容量的FPGA,其低廉的價格、優(yōu)良特性及豐富的片上資源在實際中被廣泛的采用,也是同期芯片中性價比最好的。</p><p> EPlC3T144C8芯片采用1.5V內(nèi)核電壓,O.33 umSRAM工藝,邏輯資源豐富,每個邏輯單位可以輸出2910個數(shù)量;多種電壓接口,支持
99、LVTTL、LVDS等I/O標準;靈活的時鐘管理,還配有一個鎖相環(huán)(PLL)電路,可提供1 ~ 32次輸入時鐘頻率或分頻,156-417ps相移和可變的占空比時鐘輸出,可直接在Quartos II軟件開發(fā);芯片上有104個可用I/O引腳,根據(jù)需要可以調(diào)整驅動能力控制I/O輸出;整個裝置的I/O,分為四個部分,每個部分可以獨立使用一個不同的輸入電壓,并能通過不同的電壓等級I/O輸出。鎖相環(huán)產(chǎn)生的內(nèi)部時鐘信號既可以作為其全局時鐘,也可以為輸
100、出到片外為其他電路使用;內(nèi)部有嵌入式邏輯分析器,方便了設計者對芯片內(nèi)部進行檢查,同時不需要將內(nèi)部信號輸出到I/O管腳上[10]。</p><p> 表3.1 Cylone系列的芯片性能</p><p> 3.2.2 FIFO接口的設計</p><p> 對于同步FIFO,讀寫指針都指向一個內(nèi)存的初始位置,每進行一次讀寫操作,相應的指針就遞增一次,指向下一個內(nèi)存
101、位置。當指針移動到了內(nèi)存的最后一個位置時,它又重新跳回初始位置。在FIFO非滿或非空的情況下,這個過程將隨著讀寫控制信號的變化一直進行下去。另外需要設置滿和空兩個信號,對滿信號置位表示FIFO處于滿狀態(tài),對滿信號復位表示FIFO非滿,還有空間可以寫入數(shù)據(jù);對空信號置位表示FIFO處于空狀態(tài),對空信號復位表示FIFO非空,還有有效的數(shù)據(jù)可以讀出。當讀指針和寫指針相等也就是指向同一個內(nèi)存位置的時候,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; 設定CLK和NRST為輸入端</p><p> input wbtn; </p><p> input rbtn;</p><p> output full; full為高電平時表示滿</p><p> output e
104、mpty; empty為高電平時表示空</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; 定義了兩個名為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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于fpga的同步fifo的設計與仿真【開題報告】
- 基于fpga的同步fifo的設計與仿真【文獻綜述】
- 電子與信息工程畢業(yè)論文基于fpga的cic濾波器的設計與仿真
- 電子與信息工程畢業(yè)論文基于fpga的數(shù)據(jù)緩存與轉發(fā)系統(tǒng)設計
- 基于proteus的數(shù)字溫度計設計與仿真【電子信息工程畢業(yè)論文】
- 【電子信息工程論文】基于fpga的cdma信號源設計與仿真【論文+代碼+仿真全套】
- 電子與信息工程畢業(yè)論文基于verilog的fir成型濾波器的設計與仿真
- 電子與信息工程畢業(yè)論文無線“叮咚”電子門鈴的設計
- 電子與信息工程畢業(yè)論文數(shù)字調(diào)制算法的仿真平臺設計
- 電子與信息工程畢業(yè)論文基于arm的壓力監(jiān)測系統(tǒng)設計
- 電子與信息工程畢業(yè)論文基于電力線的電子時鐘設計
- 電子與信息工程畢業(yè)論文基于arm的濕度監(jiān)測系統(tǒng)設計
- 電子與信息工程畢業(yè)論文簡易車載gps的設計
- 電子與信息工程畢業(yè)論文渦流檢測電路的設計
- 機械電子工程畢業(yè)論文-卷板機的設計與運動仿真
- 電子與信息工程畢業(yè)論文基于gprs的遠程信息采集系統(tǒng)
- 電子與信息工程畢業(yè)論文多路溫度檢測電路的設計
- 電子與信息工程畢業(yè)論文中頻變頻電源的設計
- 電子與信息工程畢業(yè)論文氧氣測定儀的設計
- 電子與信息工程畢業(yè)論文vhf射頻調(diào)制電路的設計
評論
0/150
提交評論