加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 7.6  典型實(shí)例13:SDRAM讀寫控制的實(shí)現(xiàn)與Modelsim仿真
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

FPGA系統(tǒng)設(shè)計(jì)的仿真驗(yàn)證之:SDRAM讀寫控制的實(shí)現(xiàn)與Modelsim仿真

2013/08/26
1
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

?

7.6??典型實(shí)例13:SDRAM讀寫控制的實(shí)現(xiàn)與Modelsim仿真

7.6.1??實(shí)例的內(nèi)容及目標(biāo)

1.實(shí)例的主要內(nèi)容

本節(jié)旨在通過分析SDRAM控制器,介紹了SDRAM的基本工作模式。最后使用Modelsim對(duì)讀寫控制器進(jìn)行仿真,幫助讀者進(jìn)一步了解一個(gè)真實(shí)的器件模塊是如何進(jìn)行Modelsim仿真的。

2.實(shí)例目標(biāo)

通過本實(shí)例,讀者應(yīng)達(dá)到下面的目標(biāo)。

·??了解SDRAM存儲(chǔ)器的工作模式。

·??熟悉Modelsim仿真的基本流程。

·??可獨(dú)立使用Modelsim仿真新工程。

7.6.2??SDRAM簡(jiǎn)介

在高速實(shí)時(shí)或者非實(shí)時(shí)信號(hào)處理系統(tǒng)當(dāng)中,常常使用大容量存儲(chǔ)器實(shí)現(xiàn)數(shù)據(jù)緩存。而大容量存儲(chǔ)器的控制與使用是整個(gè)系統(tǒng)實(shí)現(xiàn)過程中的重點(diǎn)和難點(diǎn)之一。

SDRAM(同步動(dòng)態(tài)隨即訪問存儲(chǔ)器)具有價(jià)格低廉、精密度高、讀寫速度快等優(yōu)點(diǎn),從而成為數(shù)據(jù)緩存器的首選存儲(chǔ)介質(zhì)。但是SDRAM的結(jié)構(gòu)與SRAM有很大的差異,其控制時(shí)序和機(jī)制也比較復(fù)雜,這就限制了SDRAM的使用范圍。

下面我們首先對(duì)SDRAM進(jìn)行簡(jiǎn)單介紹。

1.SDRAM信號(hào)

SDRAM器件的信號(hào)可以分為控制、地址和數(shù)據(jù)信號(hào)3類,具體定義如表7.2所示。

表7.2 SDRAM信號(hào)

信??號(hào)??名

信?號(hào)?類?型

信?號(hào)?描?述

CS

輸入

Chip?Enable,使能

CLK

輸入

Clock,時(shí)鐘

CKE

輸入

Clock?Enable,時(shí)鐘使能

RAS

輸入

Row?Address?Strobe,行地址選通

續(xù)表

信??號(hào)??名

信?號(hào)?類?型

信?號(hào)?描?述

CAS

輸入

Column?Address?Strobe,列地址選通

WE

輸入

Write?Enable,寫使能

DQML、DQMH

輸入

Data?Mask?for?Lower,Upper?Bytes,高低字節(jié)屏蔽

BA

輸入

Bank?Address,Bank地址

A[0:10]

輸入

Address,地址

DQ[0:15]

雙向

Data,數(shù)據(jù)

2.SDRAM工作特性

通常一個(gè)SDRAM?中包含幾個(gè)Bank,每個(gè)Bank的存儲(chǔ)單元是按行和列尋址的。由于這種特殊的存儲(chǔ)結(jié)構(gòu),SDRAM有以下幾個(gè)工作特性。

(1)SDRAM?的初始化。

SDRAM?在上電100~200μs?后,必須由一個(gè)初始化進(jìn)程來(lái)配置SDRAM的模式寄存器,模式寄存器的值決定著SDRAM?的工作模式。

(2)訪問存儲(chǔ)單元。

為減少I/O?引腳數(shù)量,SDRAM?復(fù)用了地址線。所以在讀寫SDRAM?時(shí),先由ACTIVE?命令激活要讀寫的Bank,并鎖存行地址,然后在讀寫指令有效時(shí)鎖存列地址。一旦Bank被激活后只有執(zhí)行一次預(yù)充命令后才能再次激活同一Bank。

(3)刷新和預(yù)充。

為了提高存儲(chǔ)密度,?SDRAM?采用硅片電容存儲(chǔ)數(shù)據(jù),電容總是傾向于放電,因此必須有定時(shí)的刷新周期以避免數(shù)據(jù)丟失。刷新周期可由(最小刷新周期÷時(shí)鐘周期)計(jì)算獲得。對(duì)Bank預(yù)充電或者關(guān)閉已激活的Bank,可預(yù)充特定Bank?也可同時(shí)作用于所有Bank,A10、BA0和BA1用于選擇Bank。

?

(4)操作控制。

SDRAM?的具體控制命令由一些專用控制引腳和地址線輔助完成。CS、RAS、CAS?和WR?在時(shí)鐘上升沿的狀態(tài)決定具體操作動(dòng)作,地址線和Bank選擇控制線在部分操作動(dòng)作中作為輔助參數(shù)輸入。

由于特殊的存儲(chǔ)結(jié)構(gòu),SDRAM?操作指令比較多,不像SRAM?一樣只有簡(jiǎn)單的讀寫,具體操作指令如表7.3所示。

表7.3 SDRAM命令真值表

功????能

命??令??字

CS

RAS

CAS

WE

BA

A10

A[0:9]

取消器件選擇

DSEL

H

X

X

X

X

X

X

無(wú)操作

NOP

L

H

H

H

X

X

X

讀操作

READ

L

H

L

H

V

L

V

讀等待/自動(dòng)預(yù)充電

READAP

L

H

L

H

V

H

V

續(xù)表

功????能

命??令??字

CS

RAS

CAS

WE

BA

A10

A[0:9]

寫操作

WRITE

L

H

L

L

V

L

V

寫等待/自動(dòng)預(yù)充電

WRITEAP

L

H

L

L

V

H

V

Bank激活

ACT

L

L

H

H

V

V

V

對(duì)指定Bank預(yù)充電

PRE

L

L

H

L

V

L

X

對(duì)所有Bank預(yù)充電

PALL

L

L

H

L

X

H

X

自動(dòng)刷新

CBR

L

L

L

H

X

X

X

加載模式寄存器

MRS

L

L

L

L

V

V

V

由表7.3可以看到,雖然SDRAM的容量大、速度快,但是存在存儲(chǔ)操作困難的問題。一般的解決方案有兩種,一是直接控制SDRAM的讀寫時(shí)序?qū)崿F(xiàn)數(shù)據(jù)的存儲(chǔ)和讀取,二是編寫一個(gè)SDRAM的讀寫控制器,將SDRAM的讀寫簡(jiǎn)化成SRAM形式,通過幾個(gè)命令完成SDRAM的讀寫。

3.SDRAM讀寫控制器

Xilinx、Altera、Lattice等較大的FPGA制造廠商都編寫了自己的SDRAM接口控制器。讀者可以到官方網(wǎng)站去申請(qǐng)相關(guān)的控制器源代碼。下面簡(jiǎn)單介紹其中一種,如圖7.33所示是該SDRAM控制器總體設(shè)計(jì)框圖和外部接口信號(hào)。

?

在圖7.33中,控制器右端接口信號(hào)均為直接與SDRAM?對(duì)應(yīng)管腳相連的信號(hào),在表7.2中已做介紹,不再重復(fù)。

控制器左端的接口信號(hào)為與FPGA?相連的系統(tǒng)控制接口信號(hào),定義如下。

·??CLK:系統(tǒng)時(shí)鐘信號(hào)。

·??ADDR:系統(tǒng)給出的SDRAM?地址信號(hào)。

·??DATAIN:系統(tǒng)用于寫入SDRAM?的數(shù)據(jù)信號(hào)。

·??DATAOUT:系統(tǒng)用于從SDRAM讀出的數(shù)據(jù)信號(hào)。

·??CMD[1:0]、CMDACK:系統(tǒng)和控制器的命令交互信號(hào),參見表7.3。

·??DM:數(shù)據(jù)Mask信號(hào)。

一般來(lái)說,SDRAM的讀寫控制時(shí)序可以分為初始化、寫寄存器、自動(dòng)刷新、突發(fā)模式讀、突發(fā)模式寫、整頁(yè)讀以及整頁(yè)寫等主要操作。具體的時(shí)序圖可以查閱相關(guān)的器件數(shù)據(jù)手冊(cè),這里不再列出。

SDRAM的讀寫控制也可以由如圖7.34所示的讀寫狀態(tài)機(jī)表示。

在FPGA中,實(shí)現(xiàn)如圖7.34所示的狀態(tài)機(jī),再利用已有的SDR?SDRAM控制器即可實(shí)現(xiàn)對(duì)SDRAM器件的控制。

圖7.34??SDRAM讀寫狀態(tài)機(jī)

?

7.6.3??SDRAM控制器的Modelsim仿真

(1)打開ModelSim軟件。

(2)創(chuàng)建工程。

如圖7.35所示,在Modelsim中創(chuàng)建新工程,并設(shè)置工程的相關(guān)屬性。

圖7.35??創(chuàng)建工程

?

(3)添加設(shè)計(jì)輸入。

若要?jiǎng)?chuàng)建新的文件就選擇【Create?New?File】圖標(biāo),若要添加已經(jīng)存在的文件就選擇【Add?Existing?File】圖標(biāo),如圖7.36所示。本實(shí)例中使用已經(jīng)存在的SDRAM控制器源文件作為設(shè)計(jì)輸入,添加后,在Workspace瀏覽器中可以看到如圖7.37的設(shè)計(jì)輸入列表。

??????????????

圖7.36??添加設(shè)計(jì)輸入????????????? 圖7.37??SDRAM設(shè)計(jì)輸入列表

?

(4)編譯設(shè)計(jì)輸入。

如圖7.38所示,在任意一個(gè)源文件上單擊右鍵,選擇“Compile”/“Compile?All”,對(duì)所有的源文件進(jìn)行編譯。

編譯后,若有錯(cuò)誤,Modelsim會(huì)在信息欄中顯示出來(lái)。這時(shí)只要雙擊該錯(cuò)誤,ModelSim就會(huì)自動(dòng)打開該錯(cuò)誤所在的文件,并定位到出現(xiàn)錯(cuò)誤所在的位置附近。若編譯正確通過,源文件后面的藍(lán)色問號(hào)就替換成為綠色的對(duì)號(hào),如圖7.39所示。

?

(5)仿真。

在Workspace瀏覽器中選擇“Library”復(fù)選頁(yè),單擊Work左邊的小加號(hào)。在彈出的子菜單里面找到仿真模塊“sdram_test_tb”。雙擊或右鍵選擇“Simulate”選項(xiàng),ModelSim就會(huì)自動(dòng)運(yùn)行仿真,如圖7.40所示。

?????????????????

圖7.39??編譯正確通過??????????????????? 圖7.40??仿真

?

(6)觀察波形。

在Workspace瀏覽器中選擇“Sim”復(fù)選頁(yè),可以看到仿真模塊的實(shí)例列表,如圖7.41所示。

圖7.41??仿真模塊實(shí)例列表

?

如圖7.42所示,右鍵單擊頂層測(cè)試模塊,選擇“Add”/“Add?to?Wave”選項(xiàng),將該仿真模塊的所有實(shí)例添加至波形觀察器中。

添加后,ModelSim將會(huì)自動(dòng)打開一個(gè)波形觀察器,并將頂層測(cè)試模塊的所有寄存器和接口添加進(jìn)去。回到ModelSim的界面,在命令輸入窗口中鍵入“run?20us”,開始執(zhí)行仿真,如圖7.43所示。

??????????????

圖7.42??添加實(shí)例至波形觀察器????????????? 圖7.43??執(zhí)行仿真

執(zhí)行仿真后,經(jīng)過相應(yīng)的仿真時(shí)間,就可以在波形觀察器中看見如圖7.44所示的仿真結(jié)果。這個(gè)就是通過利用已有的SDRAM控制器及SDRAM器件模型,由用戶編寫對(duì)SDRAM控制器的狀態(tài)機(jī)控制后得到的仿真結(jié)果。

圖7.44??SDRAM控制器仿真結(jié)果

7.6.4??小結(jié)

本節(jié)對(duì)數(shù)字系統(tǒng)中常用的存儲(chǔ)器SDRAM做了初步的介紹,并在Modelsim中實(shí)現(xiàn)了對(duì)SDRAM控制器的仿真。通過這個(gè)實(shí)例,讀者能夠掌握分立器件是如何與FPGA邏輯實(shí)現(xiàn)Modelsim聯(lián)合仿真的。

在大型的系統(tǒng)設(shè)計(jì)中,在系統(tǒng)硬件實(shí)現(xiàn)前對(duì)系統(tǒng)進(jìn)行仿真是非常必要的。而這個(gè)仿真又不僅僅局限在FPGA等可編程邏輯器件內(nèi)部,與之相關(guān)的分立器件也是系統(tǒng)仿真的重要組成部分。因此掌握分立器件的聯(lián)合仿真是一個(gè)非常重要的技能。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

華清遠(yuǎn)見(www.farsight.com.cn)是國(guó)內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊(cè)于中國(guó)北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營(yíng)分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長(zhǎng)期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺(tái)的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動(dòng)開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識(shí)源于遠(yuǎn)見。企業(yè)價(jià)值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。