推薦文檔列表

DDR SDRAM控制器的FPGA實(shí)現(xiàn)

時間:2021-09-30 19:27:08 電子通信論文 我要投稿

DDR SDRAM控制器的FPGA實(shí)現(xiàn)

摘要:DDR SDRAM高容量和快速度的優(yōu)點(diǎn)使它獲得了廣泛的應(yīng)用,但是其接口與目前廣泛應(yīng)用的微處理器不兼容。介紹了一種通用的DDR SDRAM控制器的設(shè)計(jì),從而使得DDR SDRAM能應(yīng)用到微處理器中去。

    關(guān)鍵詞:DDR SDRAM控制器 延時鎖定回路 FPGA

DDR SDRAM是建立在SDRAM的基礎(chǔ)上的,但是速度和容量卻有了提高。首先,它使用了更多的先進(jìn)的同步電路。其次,它使用延時鎖定回路提供一個數(shù)據(jù)濾波信號。當(dāng)數(shù)據(jù)有效時,存儲器控制器可使用這個數(shù)據(jù)濾波信號精確地定位數(shù)據(jù),每16位輸出一次,并且同步來自不同的雙存儲器模塊的數(shù)據(jù)。

DDR SDRAM不需要提高時鐘頻率就能加倍提高SDRAM的速度,因?yàn)樗试S在時鐘脈沖的上升沿和下降沿讀寫數(shù)據(jù)。至于地址和控制信號,還是跟傳統(tǒng)的SDRAM一樣,在時鐘的上升沿進(jìn)行傳輸。

由于微處理器、DSP等不能直接使用DDR SDRAM,所以本文介紹一種基于FPGA的DDR SDRAM控制電路。

圖1 DDR SDRAM控制器邏輯圖

1 DDR SDRAM控制器的設(shè)計(jì)

1.1總體邏輯圖

DDR SDRAM控制器的總體邏輯圖如圖1所示。主要由DDR控制模塊(Controller)、DDR接口模塊?ddr_interface?以及延時鎖定回路模塊(DLL)三部分組成。下面詳細(xì)介紹各個模塊的設(shè)計(jì)。

1.2 DDR控制模塊的設(shè)計(jì)

DDR控制模塊包含了主要的狀態(tài)轉(zhuǎn)換。處理器通過sys_cmd對DDR控制模塊寫入命令,完成總線仲裁、解釋命令、時序分配等任務(wù)。當(dāng)DDR接口模塊對DDR SDRAR數(shù)據(jù)讀寫時便進(jìn)行控制。

控制器的狀態(tài)機(jī)如圖2所示?刂破鏖_始設(shè)置在空閑(Idle)狀態(tài),接下去的狀態(tài)根據(jù)控制命令的不同可以是預(yù)充電?Precharge?、導(dǎo)入模式寄存器?Load Mode Register?、刷新?Refresh?、有效?Active?等狀態(tài)。要進(jìn)入讀寫數(shù)據(jù)狀態(tài),必須先經(jīng)過有效狀態(tài)。讀數(shù)據(jù)時,狀態(tài)機(jī)由有效狀態(tài)轉(zhuǎn)換為讀準(zhǔn)備狀態(tài)? 然后根據(jù)指令進(jìn)入讀狀態(tài)?刂颇K保持在讀狀態(tài)直到脈沖終止命令觸發(fā)或者數(shù)據(jù)讀完。寫的過程與讀類似,在后面的接口模塊中將詳細(xì)介紹。

1.3 DDR接口模塊

DDR接口模塊負(fù)責(zé)維持外部信號、DDR控制器與DDR SDRAM之間的雙向數(shù)據(jù)總線信號,保證數(shù)據(jù)和命令能送達(dá)DDR SDRAM。

圖3給出了讀寫操作的數(shù)據(jù)流框圖。對寫周期而言,128位的sys_data_i被fpga_clk2x分頻為64位的數(shù)據(jù),通過lac_clk選擇高低位。為了減小輸入輸出的延遲,數(shù)據(jù)在進(jìn)出模塊時都將被保存在輸入輸出寄存器中。ddr_write_en產(chǎn)生ddr_dq所需的三態(tài)信號。

對于寫周期而言,64位的ddr_dq信號在輸入輸出寄存器被fpga_clk2x觸發(fā)裝配成128位的信號,其中低位信號在下降沿時被裝配,高位信號在上升沿時被裝配。

圖4給出了一個典型的寫操作的波形圖。在T1期間,寫命令、地址和第一個1

[1] [2]