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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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>  機(jī)械與電氣工程 學(xué)院 電氣工程及其自動(dòng)化 專業(yè)</p><p>  畢業(yè)設(shè)計(jì)(論文)題目 基于FPGA的SDRAM控制器的實(shí)現(xiàn)</p><p><b> ?。ㄜ浖糠郑?lt;/b></p><p>  學(xué)生姓名

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

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

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

5、數(shù)模塊組成。本設(shè)計(jì)解決SDRAM控制復(fù)雜、不方便的問題,并用Verilog給予仿真結(jié)果。仿真結(jié)果表明使用該方法設(shè)計(jì)實(shí)現(xiàn)的控制器能夠使系統(tǒng)方便,可靠的對(duì)SDRAM進(jìn)行操作。</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軟件簡(jiǎn)介2<

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

11、FPGA開發(fā)過程5</p><p>  第三章 SDRAM的技術(shù)介紹6</p><p>  3.1存儲(chǔ)器概況6</p><p>  3.2 SDRAM簡(jiǎn)介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存儲(chǔ)的工作原理9</p><p>  3.3.2 SDRAM 的引腳信號(hào)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è)計(jì)13</p><p>  4.1 SDRAM控制器13</p><p>  4.2 主控制模塊14</p><p>  4.3 信號(hào)產(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控制器時(shí)序仿真20</p><p>  5.1.1 Quartus II 8.0時(shí)序仿真20</p><p>  5.1.2 讀仿真時(shí)序21</p

15、><p>  5.1.3 寫仿真時(shí)序21</p><p>  5.2 仿真結(jié)果分析22</p><p><b>  結(jié)論24</b></p><p><b>  參考文獻(xiàn)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)用,人們對(duì)信息的需求逐漸向著更快、更多、更準(zhǔn)確發(fā)展。

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

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

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

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

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

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

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

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

25、lock)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分,F(xiàn)PGA芯片主要由7部分完成,分別為:可編程輸入輸出單元、基本可編程邏輯單元、完整的時(shí)鐘管理、嵌入塊式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ā)器來實(shí)現(xiàn)組合邏輯。查找表(Look-Up-Table)簡(jiǎn)稱為L(zhǎng)UT,其本質(zhì)上就是一個(gè)靜態(tài)存儲(chǔ)器SRAM。查找表實(shí)現(xiàn)方法是先計(jì)算邏輯電路的所有可能結(jié)果,然后把結(jié)果寫入查找表中,當(dāng)FPGA工作時(shí),信號(hào)的邏輯運(yùn)算就等同于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容后輸出,也就實(shí)現(xiàn)了邏輯功能。如果是時(shí)序電路的話,需要的觸發(fā)器會(huì)配置在查找表后面,實(shí)現(xiàn)邏輯時(shí)觸發(fā)器旁路掉。FPGA允許</p><p>  圖2.2 FPGA芯

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

61、STER)命令,完成對(duì)SDRAM 工作模式寄存器的設(shè)定。</p><p>  模式設(shè)置命令使用地址線A10~A0作為模式數(shù)據(jù)輸入線。其中A2~A0作為突發(fā)長(zhǎng)度,A3為突發(fā)類型,A6~A4為CAS延遲,A8~A7為操作模式,A9為寫突發(fā)模式。模式寄存器的設(shè)置值必須與器件的延遲參數(shù)以及讀寫操作的控制時(shí)序一致。模式寄存器的設(shè)置值如下表所示。完成以上步驟后,SDRAM 就可進(jìn)入正常工作狀態(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ù)。對(duì)于SDRAM的訪問操作,最主要的是讀、寫操作。SDRAM在進(jìn)行讀、寫操作前,必須先進(jìn)行頁(yè)激活A(yù)CT操作是存儲(chǔ)單元打開。當(dāng)SDRAM進(jìn)行讀操作時(shí),內(nèi)部的地址被寄存,等到大約1-3個(gè)時(shí)鐘周期的延遲

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

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

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

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

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

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

70、能信號(hào)。</p><p>  RAS/CAS/WE:命令控制信號(hào)。</p><p><b>  DQM:數(shù)據(jù)掩碼。</b></p><p><b>  DQ:雙向數(shù)據(jù)線。</b></p><p>  綜上所述,本設(shè)計(jì)中SDRAM控制器主要分成四個(gè)模塊設(shè)計(jì)。四個(gè)模塊分別為:主控制模塊、信號(hào)產(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ù)的控制。主控制模塊包含兩個(gè)狀態(tài)機(jī)和一個(gè)時(shí)鐘計(jì)數(shù)器,它的功能是依據(jù)系統(tǒng)接口控制信號(hào),產(chǎn)生正確的初始化狀態(tài)和命令狀態(tài)輸出。</p><p>  如圖4.3所示的命令狀態(tài)機(jī)(INIT_FSM)是用于描述SDRAM在初始化過程涉及的初始化狀態(tài)。SDRAM上電后必須初始化才能正常工作, 復(fù)位時(shí), SDRAM工

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

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

75、lt;p>  如圖4.4所示命令狀態(tài)機(jī)(CMD_FSM)是用于描述SDRAM在讀、寫、刷新過程涉及的命令狀態(tài)。本次設(shè)計(jì)中,SDRAM的讀寫操作采用的突發(fā)模式是連續(xù)型(sequential)的全頁(yè)模式,因此,在讀寫操作中,必須用突發(fā)中斷命令(Burst Terminate)結(jié)束。 命令狀態(tài)機(jī)(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)和自動(dòng)刷新狀態(tài)(c_AR)。狀態(tài) c_tRCD、 c_cl 、c_tBT和c_tRFC為等待各命令響應(yīng)的延遲態(tài)。</p><p>  時(shí)鐘計(jì)數(shù)器原理:當(dāng)計(jì)數(shù)器復(fù)位控制 syncResetClkCNT為1時(shí),立刻復(fù)位計(jì)數(shù),否則計(jì)數(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)機(jī)</p><p>  4.3 信號(hào)產(chǎn)生模塊</p><p>  信號(hào)產(chǎn)生模塊是產(chǎn)生請(qǐng)求信號(hào)的計(jì)數(shù)器,由如圖4.2中的初始化請(qǐng)求產(chǎn)生模塊和刷新請(qǐng)求產(chǎn)生模塊兩部分組成。信號(hào)產(chǎn)生模塊根據(jù)命令真值表對(duì)實(shí)際引腳信號(hào)進(jìn)行操作,產(chǎn)生初始化狀態(tài)和命令狀態(tài)中各狀態(tài)對(duì)應(yīng)的命令信號(hào)。狀態(tài)機(jī)中的各狀態(tài)的命令信號(hào)見表4.1,各命令真值表見表

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

80、信號(hào)。這部分電路是采用計(jì)數(shù)器實(shí)現(xiàn)的。計(jì)數(shù)器計(jì)到設(shè)定的值后產(chǎn)生刷新請(qǐng)求信號(hào),同時(shí)返回到初值繼續(xù)計(jì)數(shù)。圖4.5為信號(hào)產(chǎn)生模塊。</p><p>  圖4.5 信號(hào)產(chǎn)生模塊</p><p>  表4.1 各狀態(tài)的命令信號(hào)表</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:自動(dòng)刷新,PRECHARGE:預(yù)充電,ACTIVE:激活,WRITE WITH AUTOPRECHARGE:帶自動(dòng)刷新功能的寫,READ WITH AUTOPRECHARGE:帶自動(dòng)刷新功能的讀,BURST_TERMINAT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

103、靜,肖忠.高速嵌入式視頻系統(tǒng)中SDRAM時(shí)序控制分析.電子設(shè)計(jì)應(yīng)用,2007,10:105-106</p><p>  [9]褚振勇,齊亮,田紅心,高楷娟. FPGA設(shè)計(jì)及應(yīng)用.西安電子科技大學(xué)出版社, 2006,12</p><p>  [10]EDA先鋒工作室. Altera FPGA/CPLD設(shè)計(jì)基礎(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>  在這幾個(gè)月的論文撰寫過程中,我是在我的導(dǎo)師的指導(dǎo)與督促下,結(jié)合一些圖書和科技期刊度過的。我要感謝她的諒解與包

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

106、術(shù)前輩和科研者予以致謝!</p><p><b>  附錄</b></p><p>  以下是組成SDRAM控制器的四個(gè)模塊的程序代碼。首先是主控制模塊:主控制模塊由初始化狀態(tài)機(jī)、命令狀態(tài)機(jī)和時(shí)鐘計(jì)數(shù)器組成,所以這個(gè)模塊的代碼也由這三部分組成。</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. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論