使用Verilog實(shí)現(xiàn)基于FPGA的SDRAM控制器
發(fā)布時(shí)間:2008/5/26 0:00:00 訪問次數(shù):2140
    
    作者:電子科技大學(xué)電子工程學(xué)院曹華鄧彬
    
    摘要:介紹了sdram的特點(diǎn)和工作原理,提出了一種基于fpga的sdram控制器的設(shè)計(jì)方法,使用該方法實(shí)現(xiàn)的控制器可非常方便地對(duì)sdram進(jìn)行控制。
    
    關(guān)鍵詞:sdram;控制器;verilog;狀態(tài)機(jī)
    
    引言
    
    在基于fpga的圖象采集顯示系統(tǒng)中,常常需要用到大容量、高速度的存儲(chǔ)器。而在各種隨機(jī)存儲(chǔ)器件中,sdram的價(jià)格低、體積小、速度快、容量大,是比較理想的器件。但sdram的控制邏輯比較復(fù)雜,對(duì)時(shí)序要求也十分嚴(yán)格,使用很不方便,這就要求有一個(gè)專門的控制器,使系統(tǒng)用戶能很方便地操作sdram。為此,本文提出了一種基于fpga的sdram控制器的設(shè)計(jì)方法,并用verilog給于實(shí)現(xiàn),仿真結(jié)果表明通過該方法設(shè)計(jì)實(shí)現(xiàn)的控制器可以在fpga芯片內(nèi)組成如圖1所示的sdram接口,從而使得系統(tǒng)用戶對(duì)sdram的操作非常方便。
    
    sdram簡(jiǎn)介
    
    sdram器件的管腳分為控制信號(hào)、地址和數(shù)據(jù)三類。通常一個(gè)sdram中包含幾個(gè)bank,每個(gè)bank的存儲(chǔ)單元是按行和列尋址的。由于這種特殊的存儲(chǔ)結(jié)構(gòu),sdram有以下幾個(gè)工作特性。
    
    ●sdram的初始化
    
    sdram在上電100~200μs后,必須由一個(gè)初始化進(jìn)程來配置sdram的模式寄存器,模式寄存器的值決定著sdram的工作模式。
    
    ●訪問存儲(chǔ)單元
    
    為減少i/o引腳數(shù)量,sdram復(fù)用地址線,所以在讀寫sdram時(shí),先由active命令激活要讀寫的bank,并鎖存行地址,然后在讀寫指令有效時(shí)鎖存列地址。一旦bank被激活后只有執(zhí)行一次預(yù)充命令后才能再次激活同一bank。
    
    ●刷新和預(yù)充
    
    sdram的存儲(chǔ)單元可以理解為一個(gè)電容,總是傾向于放電,因此必須有定時(shí)的刷新周期以避免數(shù)據(jù)丟失。刷新周期可由(最小刷新周期÷時(shí)鐘周期)計(jì)算獲得。對(duì)bank預(yù)充電或者關(guān)閉已激活的bank,可預(yù)充特定bank也可同時(shí)作用于所有bank,a10、ba0和ba1用于選擇bank。
    
    ●操作控制
    
    sdram的具體控制命令由一些專用控制引腳和地址線輔助完成。cs、ras、cas和wr在時(shí)鐘上升沿的狀態(tài)決定具體操作動(dòng)作,地址線和bank選擇控制線在部分操作動(dòng)作中作為輔助參數(shù)輸入。由于特殊的存儲(chǔ)結(jié)構(gòu),sdram操作指令比較多,不像sram一樣只有簡(jiǎn)單的讀寫。
    
    sdram控制器的設(shè)計(jì)實(shí)現(xiàn)
    
    ●總體設(shè)計(jì)框圖和外部接口信號(hào)
    
    
    
    此主題相關(guān)圖片如下:
    
    sdram控制器與外部的接口示意圖由圖1給出,控制器右端接口信號(hào)均為直接與sdram對(duì)應(yīng)管腳相連的信號(hào),此處不做介紹?刂破髯蠖说慕涌谛盘(hào)為與fpga相連的系統(tǒng)控制接口信號(hào),其中,clk133為系統(tǒng)時(shí)鐘信號(hào),reset_n為復(fù)位信號(hào),addr為系統(tǒng)給出的sdram地址信號(hào),dain是系統(tǒng)用于寫入sdram的數(shù)據(jù)信號(hào),fpga_rd和fpga_wr為系統(tǒng)讀、寫請(qǐng)求信號(hào)(1為有效,0為無效),sdram_free是sdram的空閑狀態(tài)標(biāo)示信號(hào)(0為空閑,1為忙碌),fdata_enable是控制器給系統(tǒng)的數(shù)據(jù)收發(fā)指示信號(hào)(為0時(shí),無法對(duì)sdram進(jìn)行數(shù)據(jù)收發(fā);為1時(shí),若是系統(tǒng)讀操作,則系統(tǒng)此時(shí)可從daout接收sdram的數(shù)據(jù),若是寫操作,則系統(tǒng)此時(shí)可以通過dain發(fā)送數(shù)據(jù)給sdram)。
    
    此主題相關(guān)圖片如下:
    
    
    
    sdram控制器的結(jié)構(gòu)組成如圖2所示,包括系統(tǒng)控制接口模塊、cmd命令解析模塊、命令響應(yīng)模塊、數(shù)據(jù)通路模塊共四個(gè)模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號(hào),進(jìn)而產(chǎn)生不同的cmd命令組合;cmd命令解析模塊用于接收cmd命令并解碼成
    
    作者:電子科技大學(xué)電子工程學(xué)院曹華鄧彬
    
    摘要:介紹了sdram的特點(diǎn)和工作原理,提出了一種基于fpga的sdram控制器的設(shè)計(jì)方法,使用該方法實(shí)現(xiàn)的控制器可非常方便地對(duì)sdram進(jìn)行控制。
    
    關(guān)鍵詞:sdram;控制器;verilog;狀態(tài)機(jī)
    
    引言
    
    在基于fpga的圖象采集顯示系統(tǒng)中,常常需要用到大容量、高速度的存儲(chǔ)器。而在各種隨機(jī)存儲(chǔ)器件中,sdram的價(jià)格低、體積小、速度快、容量大,是比較理想的器件。但sdram的控制邏輯比較復(fù)雜,對(duì)時(shí)序要求也十分嚴(yán)格,使用很不方便,這就要求有一個(gè)專門的控制器,使系統(tǒng)用戶能很方便地操作sdram。為此,本文提出了一種基于fpga的sdram控制器的設(shè)計(jì)方法,并用verilog給于實(shí)現(xiàn),仿真結(jié)果表明通過該方法設(shè)計(jì)實(shí)現(xiàn)的控制器可以在fpga芯片內(nèi)組成如圖1所示的sdram接口,從而使得系統(tǒng)用戶對(duì)sdram的操作非常方便。
    
    sdram簡(jiǎn)介
    
    sdram器件的管腳分為控制信號(hào)、地址和數(shù)據(jù)三類。通常一個(gè)sdram中包含幾個(gè)bank,每個(gè)bank的存儲(chǔ)單元是按行和列尋址的。由于這種特殊的存儲(chǔ)結(jié)構(gòu),sdram有以下幾個(gè)工作特性。
    
    ●sdram的初始化
    
    sdram在上電100~200μs后,必須由一個(gè)初始化進(jìn)程來配置sdram的模式寄存器,模式寄存器的值決定著sdram的工作模式。
    
    ●訪問存儲(chǔ)單元
    
    為減少i/o引腳數(shù)量,sdram復(fù)用地址線,所以在讀寫sdram時(shí),先由active命令激活要讀寫的bank,并鎖存行地址,然后在讀寫指令有效時(shí)鎖存列地址。一旦bank被激活后只有執(zhí)行一次預(yù)充命令后才能再次激活同一bank。
    
    ●刷新和預(yù)充
    
    sdram的存儲(chǔ)單元可以理解為一個(gè)電容,總是傾向于放電,因此必須有定時(shí)的刷新周期以避免數(shù)據(jù)丟失。刷新周期可由(最小刷新周期÷時(shí)鐘周期)計(jì)算獲得。對(duì)bank預(yù)充電或者關(guān)閉已激活的bank,可預(yù)充特定bank也可同時(shí)作用于所有bank,a10、ba0和ba1用于選擇bank。
    
    ●操作控制
    
    sdram的具體控制命令由一些專用控制引腳和地址線輔助完成。cs、ras、cas和wr在時(shí)鐘上升沿的狀態(tài)決定具體操作動(dòng)作,地址線和bank選擇控制線在部分操作動(dòng)作中作為輔助參數(shù)輸入。由于特殊的存儲(chǔ)結(jié)構(gòu),sdram操作指令比較多,不像sram一樣只有簡(jiǎn)單的讀寫。
    
    sdram控制器的設(shè)計(jì)實(shí)現(xiàn)
    
    ●總體設(shè)計(jì)框圖和外部接口信號(hào)
    
    
    
    此主題相關(guān)圖片如下:
    
    sdram控制器與外部的接口示意圖由圖1給出,控制器右端接口信號(hào)均為直接與sdram對(duì)應(yīng)管腳相連的信號(hào),此處不做介紹?刂破髯蠖说慕涌谛盘(hào)為與fpga相連的系統(tǒng)控制接口信號(hào),其中,clk133為系統(tǒng)時(shí)鐘信號(hào),reset_n為復(fù)位信號(hào),addr為系統(tǒng)給出的sdram地址信號(hào),dain是系統(tǒng)用于寫入sdram的數(shù)據(jù)信號(hào),fpga_rd和fpga_wr為系統(tǒng)讀、寫請(qǐng)求信號(hào)(1為有效,0為無效),sdram_free是sdram的空閑狀態(tài)標(biāo)示信號(hào)(0為空閑,1為忙碌),fdata_enable是控制器給系統(tǒng)的數(shù)據(jù)收發(fā)指示信號(hào)(為0時(shí),無法對(duì)sdram進(jìn)行數(shù)據(jù)收發(fā);為1時(shí),若是系統(tǒng)讀操作,則系統(tǒng)此時(shí)可從daout接收sdram的數(shù)據(jù),若是寫操作,則系統(tǒng)此時(shí)可以通過dain發(fā)送數(shù)據(jù)給sdram)。
    
    此主題相關(guān)圖片如下:
    
    
    
    sdram控制器的結(jié)構(gòu)組成如圖2所示,包括系統(tǒng)控制接口模塊、cmd命令解析模塊、命令響應(yīng)模塊、數(shù)據(jù)通路模塊共四個(gè)模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號(hào),進(jìn)而產(chǎn)生不同的cmd命令組合;cmd命令解析模塊用于接收cmd命令并解碼成
熱門點(diǎn)擊
- OrCAD/PSpice9偏壓點(diǎn)和直流掃描分
- 16位Σ-ΔA/D轉(zhuǎn)換器AD7705與微控制
- 有限帶寬信號(hào)的采樣和混疊分析
- 一種增大放大器增益的方法
- LTC6910系列數(shù)字控制可編程增益放大器原
- 可編程多路A/D轉(zhuǎn)換芯片THS1206的原理
- 四通道四象限模擬乘法器MLT04
- 使用Verilog實(shí)現(xiàn)基于FPGA的SDRA
- 基于FCHIP2指紋芯片的應(yīng)用方案
- PCB線路板抄板方法及步驟
推薦技術(shù)資料
- 泰克新發(fā)布的DSA830
- 泰克新發(fā)布的DSA8300在一臺(tái)儀器中同時(shí)實(shí)現(xiàn)時(shí)域和頻域分析,DS... [詳細(xì)]
- CV/CC InnoSwitch3-AQ 開
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究