畢業(yè)設(shè)計---基于fpga的sdram控制器的實現(xiàn)_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  畢 業(yè) 設(shè) 計 (論 文)</p><p>  機械與電氣工程 學(xué)院 電氣工程及其自動化 專業(yè)</p><p>  畢業(yè)設(shè)計(論文)題目 基于FPGA的SDRAM控制器的實現(xiàn)</p><p><b> ?。ㄜ浖糠郑?lt;/b></p><p>  學(xué)生姓名

2、 </p><p>  班 級 電氣工程及其自動化</p><p>  學(xué) 號 </p><p>  指導(dǎo)教師 </p><p>  完成日期 2012 年 6 月 6 日</p><p>  基于FPGA的SDR

3、AM控制器的實現(xiàn)(軟件部分)</p><p>  The realization of SDRAM controller based on FPGA (software)</p><p>  總計 畢業(yè)設(shè)計(論文) 41 頁</p><p>  表 格 6 個</p><p>  插

4、 圖 21 幅</p><p><b>  摘要</b></p><p>  文中介紹了FPGA的開發(fā)流程、硬件開發(fā)語言及其開發(fā)環(huán)境QuartusII和SDRAM的結(jié)構(gòu)特點和工作原理,根據(jù)SDRAM的工作原理、控制時序和指令特點,設(shè)計一種基于FPGA的SDRAM控制器的方案。SDRAM控制器的設(shè)計主要由主控制模塊、信號產(chǎn)生模塊、數(shù)據(jù)路徑模塊和參

5、數(shù)模塊組成。本設(shè)計解決SDRAM控制復(fù)雜、不方便的問題,并用Verilog給予仿真結(jié)果。仿真結(jié)果表明使用該方法設(shè)計實現(xiàn)的控制器能夠使系統(tǒng)方便,可靠的對SDRAM進行操作。</p><p>  關(guān)鍵字:SDRAM控制器 FPGA 控制模塊 軟件仿真</p><p><b>  Abstract</b></p><p>  This pape

6、r introduces the development process and FPGA hardware development language and the development environment of SDRAM QuartusII and structural characteristics and working principle, according to the working principle of S

7、DRAM, sequence control and instruction characteristics, a scheme based on FPGA SDRAM controller is designed. SDRAM controller design mainly by the master control module, signal module, data path module and parameter modu

8、le composition. This design solved a problem about </p><p>  Key words: SDRAM controller FPGA Control module Software simulation</p><p><b>  目錄</b></p><p><b> 

9、 摘要I</b></p><p>  AbstractII</p><p><b>  第一章 緒論1</b></p><p>  1.1 課題背景1</p><p>  1.2 課題研究的意義1</p><p>  第二章 FPGA與Quartus II軟件簡介2<

10、;/p><p>  2.1 FPGA簡介2</p><p>  2.1.1 FPGA背景2</p><p>  2.1.2 FGPA結(jié)構(gòu)原理2</p><p>  2.2 Quartus II軟件簡介3</p><p>  2.3 硬件描述語言Verilog4</p><p>  2.4

11、FPGA開發(fā)過程5</p><p>  第三章 SDRAM的技術(shù)介紹6</p><p>  3.1存儲器概況6</p><p>  3.2 SDRAM簡介6</p><p>  3.2.1 SRAM和DRAM6</p><p>  3.2.2 SDRAM發(fā)展過程7</p><p> 

12、 3.3 SDRAM工作原理和基本操作8</p><p>  3.3.1 SDRAM存儲的工作原理9</p><p>  3.3.2 SDRAM 的引腳信號9</p><p>  3.3.3 SDRAM基本命令10</p><p>  3.3.4 SDRAM初始化10</p><p>  3.3.5 SDRA

13、M讀、寫操作11</p><p>  3.3.6 終止操作12</p><p>  第四章 SDRAM控制器設(shè)計13</p><p>  4.1 SDRAM控制器13</p><p>  4.2 主控制模塊14</p><p>  4.3 信號產(chǎn)生模塊16</p><p>  4.4

14、 參數(shù)模塊18</p><p>  4.5 數(shù)據(jù)通路模塊19</p><p>  第五章 SDRAM的讀、寫仿真20</p><p>  5.1 SDRAM控制器時序仿真20</p><p>  5.1.1 Quartus II 8.0時序仿真20</p><p>  5.1.2 讀仿真時序21</p

15、><p>  5.1.3 寫仿真時序21</p><p>  5.2 仿真結(jié)果分析22</p><p><b>  結(jié)論24</b></p><p><b>  參考文獻25</b></p><p><b>  致謝26</b></p>

16、<p><b>  附錄27</b></p><p><b>  第一章 緒論</b></p><p><b>  1.1 課題背景</b></p><p>  伴隨著電子信息技術(shù)的飛速發(fā)展和其在通訊、工業(yè)、商業(yè)、醫(yī)療等方面的廣泛應(yīng)用,人們對信息的需求逐漸向著更快、更多、更準確發(fā)展。

17、一般的傳統(tǒng)單片機電子器件已經(jīng)難以滿足這種高速數(shù)據(jù)傳輸?shù)囊?。因此,現(xiàn)場可編程門陣列FPGA(Field-Programmable Gate Array)以它的集成度高,可完成極其復(fù)雜的時序與組合邏輯電路功能,更適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計領(lǐng)域等眾多優(yōu)點成為了現(xiàn)今以致未來的數(shù)字系統(tǒng)現(xiàn)場集成技術(shù)的領(lǐng)軍代表。與之相同,由于單片機,DSP(Digital Signal Processing)等微處理器的內(nèi)部RAM(Random ac

18、cess memory)有限,所以在處理器外部擴展儲存器成了有效的手段。同步動態(tài)隨機存取存儲器SDRAM(Synchronous Dynamic RAM)有著密度高、數(shù)據(jù)讀寫速度快、價格低廉的優(yōu)勢,從而成為數(shù)據(jù)緩存的首選存儲器,在數(shù)據(jù)采集與分析系統(tǒng)和圖像處理系統(tǒng)中有著重要和廣泛的應(yīng)用。</p><p>  本設(shè)計就是在這兩者的突出優(yōu)勢下,根據(jù)SDRAM的工作原理、控制時序和指令特點,設(shè)計一種基于FPGA的SDRA

19、M控制器的方案并利用QuartusII對FPGA訪問SDRAM的讀/寫過程進行功能仿真驗證。</p><p>  1.2 課題研究的意義</p><p>  數(shù)據(jù)采集處理技術(shù)是現(xiàn)代信號處理技術(shù)的基礎(chǔ),廣泛應(yīng)用于聲納,雷達,瞬態(tài)信號測試,軟件無線電等領(lǐng)域。伴隨信息科技的飛速發(fā)展,人們面臨的信號處理任務(wù)越來越繁重,對數(shù)據(jù)采集處理系統(tǒng)水平的要求也越來越高。隨著內(nèi)存SDRAM的技術(shù)廣泛應(yīng)用,如何更

20、好地控制SDRAM的讀與寫,使其達到最大的帶寬利用率,如何更好地降低讀寫數(shù)據(jù)的延遲時間,已經(jīng)成為各大芯片廠家和FPGA供應(yīng)商研究的熱點項目。</p><p>  本課題采用FPGA來進行系統(tǒng)設(shè)計。因為使用傳統(tǒng)的單片機編程方式來實現(xiàn)算法雖然靈活性較高,但是在復(fù)雜的工作面前處理的速度遠遠達不到要求,而且單片機的時序性也較差。為了改善這一問題,F(xiàn)PGA就成了很好的選擇??删幊踢壿嬈骷﨔PGA憑借其強大的功能,開發(fā)過程投

21、資少、周期短,開發(fā)工具智能化,可反復(fù)編程修改等特點,成為了當(dāng)今硬件設(shè)計的潮流。選擇FPGA是借助它集成度高,可完成極其復(fù)雜的時序和邏輯組合電路功能,更適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計的特點。</p><p>  由此可見,采用FPGA來完成SDRAM控制器的實現(xiàn)可將其內(nèi)存上升到一個新級別。這對SDRAM控制器的設(shè)計和研究有著重要的意義。</p><p>  第二章 FPGA與Qua

22、rtus II軟件簡介</p><p>  2.1 FPGA簡介</p><p>  2.1.1 FPGA背景</p><p>  FPGA,即現(xiàn)場可編程門陣列。它是現(xiàn)代IC設(shè)計驗證的技術(shù)主流,通過硬件描述語言Verilog設(shè)計的電路都可以在它之上進行測試。FPGA可編程元件是在以前的PAL(Programmable Array Logic)、GAL(Generic

23、 Array Logic)、CPLD(Complex Programmable Logic Device)等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC,Application Specific Integrated Circuit)領(lǐng)域中的一種半定制電路而出現(xiàn)的,一般來說,F(xiàn)PGA比ASIC的速度要慢,無法完成復(fù)雜的設(shè)計,且對電能的消耗也大。但它擁有著能快速成品,編輯程序可修改利用和造價低廉等優(yōu)點。因此,F(xiàn)PGA

24、普遍成為了設(shè)計開發(fā)者的選擇。圖2.1為幾款FPGA芯片。</p><p>  圖2.1 FGPA芯片</p><p>  2.1.2 FGPA結(jié)構(gòu)原理</p><p>  現(xiàn)場可編程門陣列(FPGA)是可編程器件。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,其主要包括可配置邏輯模塊CLB(Configurable Logic B

25、lock)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分,F(xiàn)PGA芯片主要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時鐘管理、嵌入塊式RAM、豐富的布線資源、內(nèi)嵌的底層功能單元和內(nèi)嵌專用硬件模塊。與傳統(tǒng)的邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA的可編程邏輯單元是利用小型查找表(16×1RAM)和

26、觸發(fā)器來實現(xiàn)組合邏輯。查找表(Look-Up-Table)簡稱為LUT,其本質(zhì)上就是一個靜態(tài)存儲器SRAM。查找表實現(xiàn)方法是先計算邏輯電路的所有可能結(jié)果,然后把結(jié)果寫入查找表中,當(dāng)FPGA工作時,信號的邏輯運算就等同于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容后輸出,也就實現(xiàn)了邏輯功能。如果是時序電路的話,需要的觸發(fā)器會配置在查找表后面,實現(xiàn)邏輯時觸發(fā)器旁路掉。FPGA允許</p><p>  圖2.2 FPGA芯

27、片邏輯單元構(gòu)成圖</p><p>  2.2 Quartus II軟件簡介</p><p>  Quartus II 是Altera公司繼Max+plus II之后開發(fā)的一種針對其公司生產(chǎn)的系列PLD/PGFA綜合性開發(fā)軟件,其支持原理圖編輯、VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)以及AH

28、DL(Altera Hardware Description Language)等多種設(shè)計形式,能夠完整的完成數(shù)據(jù)輸入到硬件配置的設(shè)計流程。</p><p>  Quartus II軟件的優(yōu)點顯著,主要有以下幾點:</p><p>  一、該軟件有良好的界面,功能強大,是一個完全集成化的可編程邏輯設(shè)計環(huán)境,是先進的EDA工具軟件。該軟件具有開放性、與結(jié)構(gòu)無關(guān)、多平臺、完全集成化、豐富的設(shè)計

29、庫、模塊化工具等特點,支持編輯原理圖、VerilogHDL以及AHDL等多種設(shè)計輸入形式。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點。</p><p>  二、Quartus II擁有多方面的支持功能,對Altera公司的MAX 3000A系列、MAX 7000系列、MAX

30、 9000系列、ACEX 1K系列、APEX 20K系列、APEX II系列、FLEX 6000系列、FLEX 10K系列,MAX7000/MAX3000等乘積項器件,MAX II 的CPLD系列、Cyclone系列、Cyclone II、Stratix II系列、Stratix GX系列等。它還支持IP核,包含了LPM/MegaFunction宏功能模塊庫,簡化了設(shè)計的復(fù)雜性、加快了設(shè)計速度,用戶可以充分利用成熟的模塊。此外,Quar

31、tus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng),支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。</p><p>  三、Quartus II也支持第三方EDA(Electronic Design Automation)工具,使用戶可以在設(shè)計流程的各個階段使用熟悉的

32、第三放EDA工具。</p><p>  本設(shè)計采用Quartus II軟件作為FPGA的開發(fā)環(huán)境。</p><p>  圖2.3 Quartus II軟件</p><p>  2.3 硬件描述語言Verilog</p><p>  Verilog HDL(HDL:Hardware Discription Language)是一種硬件描述語言,

33、它具有描述硬件的結(jié)構(gòu)和邏輯行為的功能。當(dāng)今世界上,Verilog HDL和VHDL是最流行的兩種硬件描述語言。</p><p>  Verilog HDL 語言最初是于1983 年由Gateway Design Automation 公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。那時它只是一種專用語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,Verilog HDL作為一種便于使用且實用的語言逐漸為眾多設(shè)計者所接受。在一次努

34、力增加語言普及性的活動中,Verilog HDL 語言于1990 年被推向公眾領(lǐng)域。Open Verilog International(OVI)是促進Verilog 發(fā)展的國際性組織。1992 年,OVI 決定致力于推廣Verilog OVI 標(biāo)準成為IEEE 標(biāo)準。這一努力最后獲得成功,Verilog 語言于1995 年成為IEEE 標(biāo)準,稱為IEEE Std1364-1995 。完整的標(biāo)準在Verilog 硬件描述語言參考手冊中有

35、詳細描述。</p><p>  Verilog HDL就是在用途最廣泛的C語言的基礎(chǔ)上發(fā)展起來的一種硬件描述語言。Verilog HDL以其簡單易學(xué)的特點已成為業(yè)界標(biāo)準,一個復(fù)雜電路系統(tǒng)的完整Verilog HDL模型是由若干個Verilog HDL模塊構(gòu)成的,每一個模塊又可以由若干個子模塊構(gòu)成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設(shè)計的模塊交互的現(xiàn)存電路或激勵信號源。Verilog HDL它支

36、持多級建模方式:算法、行為級建模;寄存器傳輸(RTL)級建模;門級建模;開關(guān)級建模和支持多種建模方式:行為功能建模方式;結(jié)構(gòu)建模方式;數(shù)據(jù)流建模方式。</p><p>  作為集成電路設(shè)計的初學(xué)者的我,比起使用更專業(yè)、更復(fù)雜難學(xué)的VHDL,使用Verilog HDL只要有C語言的編程基礎(chǔ),通過二十學(xué)時的學(xué)習(xí),再加上一段時間的實際操作,可在二~三個月內(nèi)掌握這種設(shè)計技術(shù)。而掌握VHDL設(shè)計技術(shù)就比較困難。這是因為VH

37、DL不很直觀,還需要有Ada編程基礎(chǔ)。</p><p>  2.4 FPGA開發(fā)過程</p><p>  FPGA的開發(fā)過程主要有兩部分組成,分別是模塊原理圖和硬件描述語言編程HDL(Hardware Description Language)。本次設(shè)計是從軟件方面進行FPGA的開發(fā),所以采用硬件描述語言Verilog HDL設(shè)計法。</p><p>  HDL可以

38、描述數(shù)字電路或系統(tǒng),并通過仿真的手段來驗證設(shè)計的正確性,大大的減少設(shè)計的設(shè)計失敗可能,縮短設(shè)計時間。HDL的設(shè)計過程見圖2.4。</p><p>  圖2.4 HDL的設(shè)計過程圖</p><p>  基于HDL的FPGA的設(shè)計流程主要在于用Verilog HDL描述集成電路,具體可以分成以下幾個過程步驟:1、設(shè)計定義與HDL實現(xiàn);2、功能仿真;3、邏輯綜合;4、前仿真;5、布局布線;6、后

39、仿真;7、系統(tǒng)測試。</p><p>  第三章 SDRAM的技術(shù)介紹</p><p><b>  3.1存儲器概況</b></p><p>  存儲器是擁有記憶功能的能力,用來保存信息,比如數(shù)據(jù)、指令與運行結(jié)果等并能根據(jù)需要存取的電氣器件。為了實現(xiàn)自動計算,各種信息必須預(yù)先存放在計算機內(nèi)的某個地方,這個地方就是存儲器。構(gòu)成存儲器的存儲介質(zhì),目

40、前主要采用半導(dǎo)體器件和磁性材料。如今,存儲器在這信息世界的影響力是舉足輕重的,按用途分類它主要可以分為外存儲器和內(nèi)存儲器兩類。</p><p><b>  1) 外存儲器</b></p><p>  外存儲器是在外部用于擴充存儲容量的存儲器。它的特點是儲存容量大、價格低,但儲存速度慢,一般用來存放大量暫時不用的程序、數(shù)據(jù)和中間結(jié)果,并可成批的與內(nèi)存進行信息交換。外存只

41、能與內(nèi)存交換信息,不能被計算機系統(tǒng)的其他部件直接訪問。外存儲器分為很多種類,例如硬盤(Hard drive)、軟盤(Floppy disk)CD光盤、CD-R可拷貝光盤、CD-ROM只讀光盤、CD-RW讀寫光盤、有些大型計算機會用讀寫磁帶來儲存網(wǎng)絡(luò)進程的龐大數(shù)據(jù)。</p><p><b>  2) 內(nèi)存儲器</b></p><p>  內(nèi)存儲器,即RAM是能直接與CP

42、U聯(lián)系的使用二進制數(shù)據(jù)儲存單元。他的特點是大大減少了讀取數(shù)據(jù)的時間,但RAM上所存數(shù)據(jù)在關(guān)機斷電時或計算機異常時是會自動清除,所以人們才需要將數(shù)據(jù)保存在硬盤等外存儲器上。</p><p>  構(gòu)成存儲器的主要存儲介質(zhì),目前主要采用半導(dǎo)體器件和磁性材料。它是由多個存儲單元組成起來的,每個存儲單元由若干個存儲元,每個存儲元可以存儲一個二進制代碼,然而存儲單元的位置都由一個編號標(biāo)示,這既是地址,一般為十六進制。存儲器中

43、的全部存儲單元可存放的數(shù)據(jù)大小稱之為存儲容量。假設(shè)一個存儲器的地址碼由20位二進制數(shù)(即5位十六進制數(shù))組成,則可表示2的20次方,即1K個存儲單元地址。每個存儲單元存放一個字節(jié),則該存儲器的存儲容量為1KB。</p><p>  隨著信息量的逐漸增加,存儲器的存儲容量也隨之增大,用戶對RAM的系統(tǒng)性能的提高的要求也愈演愈烈。本設(shè)計課題涉及儲存器SDRAM和其FPGA方式的控制實現(xiàn),能較好的解決這一問題,就讓我們

44、先來了解一下SDRAM控制器情況。</p><p>  3.2 SDRAM簡介</p><p>  了解SDRAM之前,我們先看看SRAM存儲器和DRAM存儲器的差別。</p><p>  3.2.1 SRAM和DRAM</p><p>  SRAM(Static RAM)即靜態(tài)隨機存儲器。它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保

45、存它內(nèi)部存儲的數(shù)據(jù),而且也不是行列地址復(fù)用的,但集成度比較低是它的缺點,不適合做容量大的內(nèi)存。一般情況下SRAM是用在處理器的緩存里面。</p><p><b>  。</b></p><p>  SRAM是一種非常重要的存儲器,它的用途廣泛,主要用于二級高速緩存(Level2 C ache)。它利用晶體管來存儲數(shù)據(jù)。與DRAM相比,SRAM的速度快,但在相同面積中S

46、RAM的容量要比其他類型的內(nèi)存小。SRAM內(nèi)部采用的是雙穩(wěn)態(tài)電路的形式來存儲數(shù)據(jù)。所以SRAM的電路結(jié)構(gòu)非常復(fù)雜,制造相同容量的SRAM比DRAM的成本高的多。正因為如此,才使得其發(fā)展受到了限制。</p><p>  DRAM(Dynamic RAM)即動態(tài)隨機存取存儲器。DRAM 只能將數(shù)據(jù)保持很短的時間,為了保持數(shù)據(jù),DRAM使用電容存儲,所以 必須隔一段時間刷新一次,如果存儲單元沒有被刷新,存儲的信息就會丟

47、失,也就是所謂的關(guān)機就會丟失數(shù)據(jù)。</p><p>  3.2.2 SDRAM發(fā)展過程</p><p>  SDRAM(Synchronous DRAM)即同步動態(tài)隨機存儲器,屬于DRAM中的一種。同步動態(tài)隨機存儲器的意思是其內(nèi)存工作需要同步時鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準,其存儲陣列需要不斷的刷新來保證數(shù)據(jù)不丟失其,其數(shù)據(jù)不是線性依次存儲,而是自由指定地址進行數(shù)據(jù)讀寫。DR

48、AM和SDRAM由于實現(xiàn)工藝問題,容量較SRAM大。但是讀寫速度不如SRAM。</p><p>  一般的嵌入式產(chǎn)品里面的內(nèi)存和電腦的內(nèi)存都是用的SDRAM,其集成度非常高,因為是動態(tài)的,所以必須有刷新電路,每隔一段時間必須得刷新數(shù)據(jù)。同步動態(tài)隨機存取存儲器芯片為168腳,帶寬為64位,其中RAM和CPU由于鎖在同一個時鐘內(nèi),因此共享著一個時鐘的周期,以相同的速度進行同步工作,在3.3v工作電壓下其運行速度高出E

49、DO內(nèi)存一半。在一段不短的時間內(nèi),SDRAM曾經(jīng)是市場的主流內(nèi)存,不管事430TX芯片組還是845芯片組都支持SDRAM的使用。但伴隨著新推出的DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM,SDRAM也漸漸退出了人們的視線范圍。</p><p>  第一代SDRAM 內(nèi)存為PC66 規(guī)范,但很快由于Intel 和AMD的頻率之爭將CPU外頻提升到了100MHz,所以PC66內(nèi)存很快就被PC100

50、內(nèi)存取代,接著133MHz 外頻的PIII以及K7時代的來臨,PC133規(guī)范也以相同的方式進一步提升SDRAM 的整體性能,帶寬提高到1GB/sec以上。由于SDRAM 的帶寬為64位,正好對應(yīng)CPU 的64位數(shù)據(jù)總線寬度,因此它只需要一條內(nèi)存便可工作,便捷性進一步提高。在性能方面,由于其輸入輸出信號保持與系統(tǒng)外頻同步,因此速度明顯超越EDO(Extended Data Out DRAM) 內(nèi)存。</p><p>

51、;  新一代DDR SDRAM(Double Data Rate SDRAM)簡稱DDR,也就是“雙倍速率SDRAM”的意思。DDR可以說是SDRAM的升級版本, DDR在時鐘信號上升沿與下降沿各傳輸一次數(shù)據(jù),這使得DDR的數(shù)據(jù)傳輸速度為傳統(tǒng)SDRAM的兩倍。由于僅多采用了下降緣信號,因此并不會造成能耗增加。至于定址與控制信號則與傳統(tǒng)SDRAM相同,僅在時鐘上升緣傳輸。</p><p>  伴隨著信息量的增加,D

52、DR2 SDRAM的出現(xiàn)也無可厚非,與DDR相比,DDR2最主要的改進是在內(nèi)存模塊速度相同的情況下,可以提供相當(dāng)于DDR內(nèi)存兩倍的帶寬。這主要是通過在每個設(shè)備上高效率使用兩個DRAM核心來實現(xiàn)的。作為對比,在每個設(shè)備上DDR內(nèi)存只能夠使用一個DRAM核心。技術(shù)上講,DDR2內(nèi)存上仍然只有一個DRAM核心,但是它可以并行存取,在每次存取中處理4個數(shù)據(jù)而不是兩個數(shù)據(jù)。</p><p>  DDR3 SDRAM也是現(xiàn)時

53、流行的內(nèi)存產(chǎn)品,相比DDR2有著更低的工作電壓,從DDR2的1.8V降落到1.5V,性能更好更為省電;DDR2的4位預(yù)讀升級為8位預(yù)讀。DDR3目前最高能夠達到2000Mhz的速度,盡管目前最為快速的DDR2內(nèi)存速度已經(jīng)提升到800Mhz/1066Mhz的速度,但是DDR3內(nèi)存模組仍會從1066Mhz起跳。</p><p>  3.3 SDRAM工作原理和基本操作</p><p>  SD

54、RAM是DRAM的一種,和DRAM一樣它需要周期性的刷新操作,訪問之前必須要依序給出行列地址,不同的是SDRAM的輸入信號都用系統(tǒng)時鐘的上升沿鎖存,必須在外部同步時鐘控制下才可完成數(shù)據(jù)的讀入和寫出。SDRAM中內(nèi)嵌有一個同步控制邏輯電路,它使得SDRAM支持突發(fā)方式進行連續(xù)讀寫,能夠達到數(shù)倍于傳統(tǒng)DRAM的傳輸速度,而且只要有首地址就可以對存儲器進行訪問。再加上它具有可編程同步時序模式和突發(fā)長度更加使其使用方法靈活多變。</p&g

55、t;<p>  3.3.1 SDRAM存儲的工作原理</p><p>  SDRAM的工作原理是以電荷的形式,把信息存儲在MOS管柵極和源極之間的極間電容或?qū)iT集成的電容上。如圖3.3為單管式動態(tài)存儲元。</p><p>  圖3.3單管動態(tài)存儲元</p><p>  單管動態(tài)存儲元中電荷存儲在電容Cs上,行選通三極管T的導(dǎo)通條件為高電平,當(dāng)T導(dǎo)通時,

56、數(shù)據(jù)線上的信號才能通過T進入Cs或從Cs上讀出。讀出操作時,根據(jù)讀出電壓在數(shù)據(jù)線上的增量決定讀出的數(shù)據(jù)是0還是1,再通過高靈敏的讀出放大器輸出數(shù)據(jù)。讀出結(jié)束后,必須進行重寫,三極管T信號為低電平截止,Cs上電荷不斷流出,一段時間后電荷消失,動態(tài)存儲器就刷新了一次,一般在2ms左右。</p><p>  3.3.2 SDRAM 的引腳信號</p><p>  SDRAM讀寫操作的引腳信號分為

57、控制信號、地址選擇信號、數(shù)據(jù)信號等,其中控制信號包括片選信號、同步時針信號、時鐘使能信號、讀寫使能信號,地址信號包括行地址選通信號、列地址選通信號、行列地址線、Bank地址線,數(shù)據(jù)信號包括雙向數(shù)據(jù)端口和接收數(shù)據(jù)有效信號。</p><p>  SDRAM是多個邏輯存儲庫(Bank)結(jié)構(gòu),在一個具有兩個邏輯存儲庫的SDRAM的模組中,其中一個邏輯存儲庫在進行預(yù)充電期間,另一個邏輯存儲庫卻馬上可以被讀取,這樣當(dāng)進行一次

58、讀取后,又馬上去讀取已經(jīng)預(yù)充電邏輯存儲庫的數(shù)據(jù)時,就無需等待而是可以直接讀取了,這也就大大提高了存儲器的訪問速度。為了實現(xiàn)這個功能,SDRAM需要增加對多個邏輯存儲庫的管理,實現(xiàn)控制其中的邏輯存儲庫進行預(yù)充電。在一個具有2個以上邏輯存儲庫的SDRAM中,一般會多一根叫做BAn的引腳,用來實現(xiàn)在多個邏輯存儲庫之間的選擇。</p><p>  SDRAM信號引腳接口功能如表3.1。</p><p&

59、gt;  表3.1 引腳信號表</p><p>  3.3.3 SDRAM基本命令</p><p>  對SDRAM的操作要通過指令命令來執(zhí)行,指令命令到達控制RAS、CAS、WE實現(xiàn)操作。具體見表3.2。</p><p>  表3.2 SDRAM操作命令</p><p>  3.3.4 SDRAM初始化</p><p&g

60、t;  如同大多數(shù)電子器件一樣,SDRAM在通電后要進行初始化操作才可以用于工作。初始化操作可分為四步:首先,在加上不超過標(biāo)稱值0.3V的電壓后要等待一下,大約100-200 us,之后至少執(zhí)行一個空操作;然后對所以頁執(zhí)行預(yù)充電命令,并接著執(zhí)行一個空操作,使所有陣列中器件處于待機狀態(tài);待機后SDRAM要執(zhí)行兩條自刷新命令并每條后執(zhí)行一個空操作,使芯片內(nèi)部刷新且讓計數(shù)器進入正常運行狀態(tài);之后執(zhí)行加載模式寄存器(LOAD MODE REGI

61、STER)命令,完成對SDRAM 工作模式寄存器的設(shè)定。</p><p>  模式設(shè)置命令使用地址線A10~A0作為模式數(shù)據(jù)輸入線。其中A2~A0作為突發(fā)長度,A3為突發(fā)類型,A6~A4為CAS延遲,A8~A7為操作模式,A9為寫突發(fā)模式。模式寄存器的設(shè)置值必須與器件的延遲參數(shù)以及讀寫操作的控制時序一致。模式寄存器的設(shè)置值如下表所示。完成以上步驟后,SDRAM 就可進入正常工作狀態(tài)。SDRAM初始化過程圖如圖3.

62、4。</p><p>  表3.3 SDRAM工作模式寄存器 </p><p>  表3.4 模式設(shè)置值</p><p>  圖3.4 SDRAM初始化</p><p>  3.3.5 SDRAM讀、寫操作</p><p>  SDRAM的讀寫操作是在控制線路和地址線路配合發(fā)出的一系列命令完成的,分為突發(fā)模式和非突發(fā)式

63、模式兩種。SDRAM的讀操作只有突發(fā)模式,而寫操作則有突發(fā)和非突發(fā)兩種模式,其中帶有預(yù)充電的突發(fā)讀、寫模式一次能夠訪問的列地址最大數(shù)據(jù)周期數(shù)為1,2,4,8,并且突發(fā)模式可配置為順序或間隔型,不帶充電的讀寫模式可任意控制一次訪問的列地址的最大數(shù)。對于SDRAM的訪問操作,最主要的是讀、寫操作。SDRAM在進行讀、寫操作前,必須先進行頁激活A(yù)CT操作是存儲單元打開。當(dāng)SDRAM進行讀操作時,內(nèi)部的地址被寄存,等到大約1-3個時鐘周期的延遲

64、后,讀出的數(shù)據(jù)就會進入數(shù)據(jù)總線上;當(dāng)SDRAM進行寫操作時,其內(nèi)部的列地址和數(shù)據(jù)都會被記錄到寄存器中等待下一次的寫出操作。</p><p>  3.3.6 終止操作</p><p>  SDRAM的操作終止?jié)M足兩個條件就可以觸發(fā)。首先,當(dāng)SDRAM接收到讀、寫操作指令后,開始進行順次的讀寫操作,直到操作指令達到突發(fā)長度時終止操作;其次,當(dāng)SDRAM接收到突發(fā)終止指令BT時,操作終止。<

65、;/p><p>  第四章 SDRAM控制器設(shè)計</p><p>  4.1 SDRAM控制器</p><p>  通過上述介紹可知,同步動態(tài)隨機存儲器SDRAM是一個具有存儲容量大、速度快、價格低廉、體積小等優(yōu)點的理想型存儲器。但相對其他存儲器,SDRAM的控制邏輯復(fù)雜,使用起來很不方便。為了解決這個問題,通常采用的方法是設(shè)計SDRAM控制器,然而這使得很多人不得不放

66、棄SDRAM選擇更昂貴的SRAM。為此,本設(shè)計采用FPGA來控制數(shù)據(jù)的時序和指令實現(xiàn)對SDRAM的讀、寫操作的控制器。</p><p>  由于SDRAM的控制時序很復(fù)雜,為了完成對SDRAM的讀、寫操作且減少開發(fā)難度,筆者設(shè)計的SDRAM控制器必須要有初始化、自動刷新、讀寫操作和其優(yōu)先級仲裁機制和轉(zhuǎn)換機制等功能。SDRAM控制器接口原理圖如下圖4.1。</p><p>  圖4.1 SD

67、RAM控制器接口原理圖</p><p>  控制器接口信號由兩部分組成,分別為主機對SDRAM控制器信號和控制器對SDRAM信號。1、主機對SDRAM信號</p><p>  系統(tǒng)時鐘信號(CLK),系統(tǒng)復(fù)位信號(RESET)。</p><p>  CMD[2:0]:譯碼指令,詳見表3.4 模式設(shè)置值。</p><p>  CMDACK:指令

68、應(yīng)答信號,回饋主機SDRAM命令已執(zhí)行。</p><p>  ADDR:地址線,A0-A7為列地址, A8-A19 為行地址,A20-A22為頁地址。</p><p>  DARAIN/DARAOUT:輸入/輸出數(shù)據(jù)總線。</p><p><b>  DM:數(shù)據(jù)掩碼。</b></p><p>  控制器對SDRAM信號&

69、lt;/p><p>  CLK:系統(tǒng)時鐘信號。</p><p>  SADDR:12位地址線,在讀、寫操作時,地址線為行、列地址分時復(fù)用。</p><p><b>  BA:頁地址。</b></p><p><b>  CS:片選信號。</b></p><p>  CKE:時鐘使

70、能信號。</p><p>  RAS/CAS/WE:命令控制信號。</p><p><b>  DQM:數(shù)據(jù)掩碼。</b></p><p><b>  DQ:雙向數(shù)據(jù)線。</b></p><p>  綜上所述,本設(shè)計中SDRAM控制器主要分成四個模塊設(shè)計。四個模塊分別為:主控制模塊、信號產(chǎn)生模塊、數(shù)

71、據(jù)路徑模塊和參數(shù)模塊。圖4.2為SDRAM控制器總體結(jié)構(gòu)框圖。</p><p>  圖4.2 SDRAM控制器結(jié)構(gòu)框圖</p><p><b>  4.2 主控制模塊</b></p><p>  主控制模塊是SDRAM控制器的主體,包含控制工作模式的各種寄存器,如圖4.2中的控制寄存器就是主控制模塊??刂萍拇嫫髦饕▋深悾阂皇浅跏蓟J娇刂萍?/p>

72、存器,作用于控制SDRAM初始化指令的產(chǎn)生方式;二是SDRAM模式控制寄存器,用于SDRAM的刷新及其它操作指令參數(shù)的控制。主控制模塊包含兩個狀態(tài)機和一個時鐘計數(shù)器,它的功能是依據(jù)系統(tǒng)接口控制信號,產(chǎn)生正確的初始化狀態(tài)和命令狀態(tài)輸出。</p><p>  如圖4.3所示的命令狀態(tài)機(INIT_FSM)是用于描述SDRAM在初始化過程涉及的初始化狀態(tài)。SDRAM上電后必須初始化才能正常工作, 復(fù)位時, SDRAM工

73、作在空閑狀態(tài)(i_NOP);復(fù)位后, 在瑣相環(huán)時鐘周期的上升沿采樣信號(sys_100μs), 判斷電源和時鐘穩(wěn)定所需的100μs延遲是否完成。在電源和時鐘穩(wěn)定后,SDRAM初始化時序開始,這段時間實際是個自檢過程。接著,INIT_FSM由空閑狀態(tài)(i_NOP)進入預(yù)充電狀態(tài)(i_PRE),執(zhí)行預(yù)充電命令(PRECHARGE),然后,兩次進入刷新狀態(tài)(i_AR1),執(zhí)行自刷新命令(AUTO REFRESH),最后,執(zhí)行裝載模式寄存器命令

74、(LOAD MODE REGISTER),完成對SDRAM工作模式的設(shè)定,INIT_FSM進入初始化的準備狀態(tài)(i_ready )。信號(sys_INIT_DONE)此時為高電平,表示初始化完成,SDRAM進入正常工作狀態(tài),等待控制器對其進行讀、寫和刷新等操作。狀態(tài)i_tRP、i_tRFC1、i_tRFC2、i_tMRD是等待各命令響應(yīng)的延遲態(tài)。</p><p>  圖4.3初始化狀態(tài)機</p>&

75、lt;p>  如圖4.4所示命令狀態(tài)機(CMD_FSM)是用于描述SDRAM在讀、寫、刷新過程涉及的命令狀態(tài)。本次設(shè)計中,SDRAM的讀寫操作采用的突發(fā)模式是連續(xù)型(sequential)的全頁模式,因此,在讀寫操作中,必須用突發(fā)中斷命令(Burst Terminate)結(jié)束。 命令狀態(tài)機(CMD_FSM)中涉及的命令狀態(tài)有空閑狀態(tài)(c_idle) 、激活狀態(tài)(c_ACTIVE) 、讀地址狀態(tài)(c_READA) 、讀數(shù)據(jù)狀態(tài)(c_

76、rdata) 、寫地址狀態(tài) (c_WRITEA) 、寫數(shù)據(jù)狀態(tài)(c_wdata)、突發(fā)中斷狀態(tài)(c_BT)和自動刷新狀態(tài)(c_AR)。狀態(tài) c_tRCD、 c_cl 、c_tBT和c_tRFC為等待各命令響應(yīng)的延遲態(tài)。</p><p>  時鐘計數(shù)器原理:當(dāng)計數(shù)器復(fù)位控制 syncResetClkCNT為1時,立刻復(fù)位計數(shù),否則計數(shù)等待設(shè)置的時間。具體代碼如下:</p><p>  alw

77、ays @(posedge sys_CLK)</p><p>  if (syncResetClkCNT) clkCNT <= #tDLY 0;</p><p>  else begin</p><p>  clkCNT <= #tDLY clkCNT + 1'b1;</p><p><b>  end</

78、b></p><p>  圖4.4 命令狀態(tài)機</p><p>  4.3 信號產(chǎn)生模塊</p><p>  信號產(chǎn)生模塊是產(chǎn)生請求信號的計數(shù)器,由如圖4.2中的初始化請求產(chǎn)生模塊和刷新請求產(chǎn)生模塊兩部分組成。信號產(chǎn)生模塊根據(jù)命令真值表對實際引腳信號進行操作,產(chǎn)生初始化狀態(tài)和命令狀態(tài)中各狀態(tài)對應(yīng)的命令信號。狀態(tài)機中的各狀態(tài)的命令信號見表4.1,各命令真值表見表

79、4.2。</p><p>  初始化請求產(chǎn)生模塊是上電后初始化請求信號的產(chǎn)生延遲控制,由于控制器系統(tǒng)上電100us以后時鐘才能穩(wěn)定,這之后SDRAM才可以開始初始化操作,為防止譯碼出錯,采用計數(shù)器實現(xiàn)了延遲的控制,系統(tǒng)復(fù)位結(jié)束后才啟動計數(shù)器,當(dāng)計數(shù)器計到設(shè)定的值后計數(shù)值保持,同時譯碼產(chǎn)生初始化的請求信號,在SDRAM初始化完成后請求信號變?yōu)闊o效。刷新請求產(chǎn)生模塊是根據(jù)模式寄存器的配置的頻率產(chǎn)生SDRAM的刷新請求

80、信號。這部分電路是采用計數(shù)器實現(xiàn)的。計數(shù)器計到設(shè)定的值后產(chǎn)生刷新請求信號,同時返回到初值繼續(xù)計數(shù)。圖4.5為信號產(chǎn)生模塊。</p><p>  圖4.5 信號產(chǎn)生模塊</p><p>  表4.1 各狀態(tài)的命令信號表</p><p>  表4.2 各命令真值表</p><p><b>  表4.2標(biāo)注:</b></

81、p><p><b>  a.各命令的含義</b></p><p>  LOAD_MODE_REGISTER:裝載模式寄存器,AUTO_REFRESH:自動刷新,PRECHARGE:預(yù)充電,ACTIVE:激活,WRITE WITH AUTOPRECHARGE:帶自動刷新功能的寫,READ WITH AUTOPRECHARGE:帶自動刷新功能的讀,BURST_TERMINAT

82、E:突發(fā)中斷,NOP:空操作,INHIBIT:禁止操作。</p><p><b>  b.引腳的功能</b></p><p>  CSn:芯片選擇(Chip Select),除了CLK,CKE,UDQM 和LDQM引腳外,能使所有的輸入引腳有效或無效;RASn:行地址脈沖選通器,該引腳控制的行地址門閂線路;CASn:列地址脈沖選通器,該引腳控制的列地址門閂線路;WEn

83、:寫使能;CKEn:時鐘使能;ADDR:行列地址復(fù)用,行地址(A0~A12),列地址(A0~A8);A10:自動—預(yù)充電標(biāo)志(Auto-precharge flag);BA:Bank地址,在 RASn有效期間,選擇的Bank將被激活。在CASn選通時,選擇的Bank將被讀/寫。</p><p>  c. 模式寄存器中操作代碼的設(shè)置</p><p>  A11~A10是用戶保留位;A9用來配

84、置寫突發(fā)模式;A8~A7是操作模式,通常為“00”,代表標(biāo)準操作模式;A6~A4設(shè)置CAS延遲時間(一般為2或3個時鐘周期);A3決定突發(fā)操作模式是順序還是間隔型;最后的三位A2~A0用來配置突發(fā)長度。</p><p><b>  4.4 參數(shù)模塊</b></p><p>  參數(shù)模塊是SDRAM控制器中指令翻譯和處理的模塊,包括指令譯碼器模塊和指令仲裁器模塊。圖4.

85、6為參數(shù)模塊。參數(shù)模塊的功能是實現(xiàn)各項參數(shù)的設(shè)置,其中包括總線寬度設(shè)置、SDRAM模式寄存器的定義和設(shè)置、SDRAM 交流特性說明、SDRAM AC時間的時鐘計數(shù)的定義、初始化狀態(tài)變量的編碼、命令狀態(tài)變量碼的編碼和SDRAM commands 的定義。</p><p><b>  圖4.6 參數(shù)模塊</b></p><p>  指令譯碼器模塊是根據(jù)指令仲裁器的結(jié)果和S

86、DRAM控制器模式寄存器對工作模式參數(shù)的設(shè)置,分別對初始化指令、刷新指令、讀寫指令進行譯碼。譯碼結(jié)果為SDRAM需要的RAS、CAS等信號,從而實現(xiàn)對SDRAM的控制;指令仲裁器模塊是對初始化請求、刷新請求和系統(tǒng)的讀寫請求等信號進行優(yōu)先級仲裁,從而判斷產(chǎn)生初始化響應(yīng)、刷新響應(yīng)和讀寫響應(yīng)的順序。因為初始化操作只在上電時進行一次,它是SDRAM正常工作的基礎(chǔ),所以它的優(yōu)先級最高。其次是刷新請求,讀寫請求的優(yōu)先級最低。當(dāng)某一種操作正在執(zhí)行時不

87、會響應(yīng)后來的請求。</p><p>  4.5 數(shù)據(jù)通路模塊</p><p>  數(shù)據(jù)通路模塊是根據(jù)寄存器的設(shè)置及指令譯碼的結(jié)果對把系統(tǒng)非復(fù)用的地址處理為SDRAM復(fù)用的地址,使得SDRAM的地址及數(shù)據(jù)和相應(yīng)的操作指令在時序上同步。數(shù)據(jù)路徑模塊如圖4.7。當(dāng)數(shù)據(jù)讀出或是寫入時,OE一直處于有效的高電平狀態(tài),DM中的主機輸出的數(shù)據(jù)掩碼,經(jīng)由DQM傳輸?shù)絊DRAM的LDQM與UDQM引腳上,達

88、到控制SDRAM存儲器上I/O緩沖的高、低字節(jié)表征。</p><p>  圖4.7 數(shù)據(jù)路徑模塊</p><p>  綜上所述,以上四個模塊的功能實現(xiàn)是本設(shè)計的重點。通過FPGA實現(xiàn)這四個模塊的運作要建立在Verilog HDL語言編程上,具體程序見附錄。</p><p>  第五章 SDRAM的讀、寫仿真</p><p>  5.1 SDR

89、AM控制器時序仿真</p><p>  通過以上對SDRAM控制器的四大模塊組織的硬件描述語言編程,能得到具有SDRAM控制器基本功能的編程代碼組合。為了驗證這些硬件描述語言編程代碼是否真能實現(xiàn)SDRAM控制器的功能,本設(shè)計采取計算機仿真軟件Quartus II 8.0來進行仿真和驗證。</p><p>  5.1.1 Quartus II 8.0時序仿真</p><p

90、>  為了進行仿真驗證,我們要借用Quartus II 8.0軟件的仿真功能實現(xiàn)。</p><p>  首先,進入Quartus II 8.0軟件,選擇File-New彈出對話框,選擇Verilog HDL并打開文本編輯器窗口。在Text Editor中輸入Verilog代碼后。點擊Processing-Statt Compilation對代碼進行編譯。編譯正確無誤后,通過使用Quartus II 8.0軟

91、件的時序仿真功能模擬仿真設(shè)計內(nèi)容。QuartusII自帶仿真功能(QuartusII Simulator),vwf文件全稱是矢量波形文件(Vector Waveform File),是Quartus II中仿真輸入、計算、輸出數(shù)據(jù)的載體。</p><p>  一般設(shè)計者建立波形文件時,需要自行建立復(fù)位、時鐘信號以及控制和輸入數(shù)據(jù)、輸出數(shù)據(jù)信號等。因此,完成一個時序仿真過程,首先需要新建一個vwf文件(Vector

92、 Waveform File),設(shè)定好輸入信號。圖5.1為Quartus II 8.0軟件編譯圖。</p><p>  圖5.1 Quartus II 8.0軟件編譯界面圖</p><p>  5.1.2 讀仿真時序</p><p>  通過Quartus II 8.0軟件時序仿真功能實現(xiàn)SDRAM控制器的讀仿真。時序仿真圖如圖5.2。當(dāng)激活命令命令發(fā)出后,控制器鎖

93、存相應(yīng)的BANK地址和行地址。等待一定時間后,控制器會發(fā)出讀命令字。CAS延遲值個工作時鐘后,讀出數(shù)據(jù)依次出現(xiàn)在數(shù)據(jù)總線上。最后,向SDRAM發(fā)出預(yù)充電命令,以關(guān)閉已經(jīng)激活的頁。之后,才可以開始下一次的讀、寫操作。</p><p>  圖5.2 讀操作時序圖</p><p>  5.1.3 寫仿真時序</p><p>  SDRAM控制器的寫操作與讀操作類似,在控制

94、線路和地址線路發(fā)出BANK激活命令后,鎖存相應(yīng)的BANK地址和行地址。BANK激活命令后必須等待超過tRCD(行選通周期)的時間,線路就會發(fā)出寫命令字。寫命令可以立即寫入,無需等待,寫入數(shù)據(jù)依次傳送到數(shù)據(jù)線上。在最后一個數(shù)據(jù)寫入后延遲一段時間后,會發(fā)出預(yù)充電命令,關(guān)閉已經(jīng)激活的頁。等待tRP(BANK轉(zhuǎn)換速度)時間后,可以展開下一次操作。寫操作有突發(fā)寫和非突發(fā)寫兩種。寫操作時序圖如圖5.3。</p><p>  

95、圖5.3 寫操作時序圖</p><p>  5.2 仿真結(jié)果分析</p><p>  通過對設(shè)計內(nèi)容的仿真時序驗證,我得到了以下結(jié)果圖5.4,由于數(shù)據(jù)的出錯,這并不是正確的仿真結(jié)果,但這讓我對時序動態(tài)變化有了更深的了解。</p><p>  圖 5.4 讀寫功能仿真圖一</p><p>  圖5.5為正確的讀、寫操作時序仿真圖,從圖上可以看出

96、,時鐘信號輸出81MHZ 時鐘后,該頻率由FPGA 內(nèi)部的瑣相環(huán)3 倍頻得到,提供了SDRAM 時鐘信號并啟動FPGA 內(nèi)部復(fù)位功能。由之前命令表可知SDRAM會處于禁止的工作狀態(tài),啟動讀SDRAM 操作命令發(fā)出后, SDRAM 被激活,輸出BANK 地址(Ba=00)和行地址(A=0100100011010)被正確鎖存, A 同樣輸出13 位地址0010000000000,低9 位的列地址為000000000,這是由于本設(shè)計選用突發(fā)訪

97、問SDRAM,所以之前分時輸入的低9 位列地址無效,此時,A 輸出的列地址為初始化的列地址,即頁的起始地址,13位地址中的A(001000000000)為自動充電的標(biāo)志位,該值為1 時,說明該次讀SDRAM 的操作為帶自動充電的讀操作。寫操作與之類似,不同的地方在于發(fā)出操作命令后,輸入的低9 位列地址為初始化列地址。</p><p>  圖5.5 讀和寫功能仿真圖二</p><p>  通

98、過仿真驗證時序圖的分析結(jié)果,和其原理沒有明顯差別,能得出正確的仿真結(jié)果。因此,本設(shè)計能實現(xiàn)FPGA的SDRAM控制器的讀、寫工作。</p><p><b>  結(jié)論</b></p><p>  本設(shè)計討論的課題是“基于FPGA的SDRAM控制器實現(xiàn)”,主要講解了SDRAM的功能、SDRAM控制器的模塊設(shè)計、基于Verilog的FPGA流程等設(shè)計問題,讓我對于可編程邏輯

99、器件FPGA、Quartus II開發(fā)軟件和硬件描述語言Verilog HDL有了一定了解。</p><p>  本設(shè)計根據(jù)SDRAM的工作原理、控制時序和指令特點,將SDRAM控制器分成四個模塊來設(shè)計。四個模塊分別為:主控制模塊、信號產(chǎn)生模塊、數(shù)據(jù)路徑模塊和參數(shù)模塊。在利用硬件描述語言Verilog HDL對其編程使之功能得以實現(xiàn)后,采用QuartusII對FPGA訪問SDRAM的讀/寫過程進行功能仿真驗證。通

100、過仿真實驗,初步證明了設(shè)計的正確性、可靠性,能夠結(jié)合集成電路芯片搭建硬件電路。</p><p><b>  參考文獻</b></p><p>  [1]王誠,吳華,范麗珍,等. Altera FPGA/CPLD設(shè)計(基礎(chǔ)篇). 人民郵電出版社,2005,7.</p><p>  [2]田豐,鄧建國,李巍,賈治華. SDRAM的設(shè)計與VHDL實現(xiàn)

101、. 電子技術(shù)應(yīng)用,2003,(31)2:74-77.</p><p>  [3]劉云清,佟首峰,姜會林. 利用FPGA實現(xiàn)SDRAM控制器的設(shè)計. 長春理工大學(xué)學(xué)報.2005,28(4):47-50.</p><p>  [4]宋一鳴,謝煜,李春茂. 基于FPGA的SDRAM控制器設(shè)計. 電子工程師, 2003,29(9):10-13.</p><p>  [5]周

102、正昆. 基于FPGA的SDRAM控制器設(shè)計. 現(xiàn)代電子技術(shù),2003,13:63-65,77.</p><p>  [6]周望瑋,史小軍.基于FPGA的SDRAM雙口控制器設(shè)計.電子器件,2006,2:582-584</p><p>  [7]周昆正,史小軍.基于FPGA的SDRAM控制器的設(shè)計.現(xiàn)代電子技術(shù),2003,2:63-66</p><p>  [8]王章

103、靜,肖忠.高速嵌入式視頻系統(tǒng)中SDRAM時序控制分析.電子設(shè)計應(yīng)用,2007,10:105-106</p><p>  [9]褚振勇,齊亮,田紅心,高楷娟. FPGA設(shè)計及應(yīng)用.西安電子科技大學(xué)出版社, 2006,12</p><p>  [10]EDA先鋒工作室. Altera FPGA/CPLD設(shè)計基礎(chǔ)篇 .人民郵電出版社, 2005,7</p><p>  [

104、11]SDR SDRAM controller white paper.,ALTERA corporation, 2002,8. http://www.altera.com/ literature.</p><p><b>  致謝</b></p><p>  在這幾個月的論文撰寫過程中,我是在我的導(dǎo)師的指導(dǎo)與督促下,結(jié)合一些圖書和科技期刊度過的。我要感謝她的諒解與包

105、容。沒有在我懶惰和散漫下失去對我的信心并對我諄諄教導(dǎo)。沒有老師的幫助也就沒有今天的這篇論文。還要感謝我的班主任老師,在這短短的相處中為我們?nèi)嗨龅囊磺?,她無私奉獻的教育精神很讓我敬佩。當(dāng)然,在大學(xué)中相伴的各位同學(xué)也值得感謝,他們是我在大學(xué)生活中的另一寶藏。在此,我要對以上諸位表示衷心感謝!</p><p>  本畢業(yè)設(shè)計論文參考了大量的文獻資料,和他人的研究知識,為我能更快的了解本設(shè)計提供了幫助,在此,對各位學(xué)

106、術(shù)前輩和科研者予以致謝!</p><p><b>  附錄</b></p><p>  以下是組成SDRAM控制器的四個模塊的程序代碼。首先是主控制模塊:主控制模塊由初始化狀態(tài)機、命令狀態(tài)機和時鐘計數(shù)器組成,所以這個模塊的代碼也由這三部分組成。</p><p>  module sdr_ctrl(</p><p><

107、;b>  sys_CLK,</b></p><p>  sys_RESET,</p><p><b>  sys_R_Wn,</b></p><p><b>  sys_ADSn,</b></p><p>  sys_DLY_100US,</p><p> 

108、 sys_REF_REQ,</p><p>  sys_REF_ACK,</p><p>  sys_CYC_END,</p><p>  sys_INIT_DONE,</p><p><b>  iState,</b></p><p><b>  cState,</b>&l

109、t;/p><p><b>  clkCNT</b></p><p><b>  );</b></p><p>  //---------------------------------------------------------------------</p><p><b>  // i

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論