色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于SDRAM控制器實現FPGA模塊化和通用性的解決方案設計

電子設計 ? 來源:電子產品世界 ? 作者:李剛,李智 ? 2020-07-07 08:00 ? 次閱讀

引言

同步動態隨機存儲器(SDRAM),在同一個CPU時鐘周期內即可完成數據的訪問和刷新,其數據傳輸速度遠遠大于傳統的數據存儲器(DRAM),被廣泛的應用于高速數據傳輸系統中。基于FPGA的SDRAM控制器,以其可靠性高、可移植性強、易于集成的特點,已逐漸取代了以往的專用控制器芯片而成為主流解決方案。然而,SDRAM復雜的控制邏輯和要求嚴格的時序,成為開發過程中困擾設計人員主要因素,進而降低了開發速度,而且大多數的基于FPGA的SDRAM控制器都是針對特定的SDRAM芯片進行設計,無法實現控制器的通用性。本文介紹一種通用SDRAM控制器的FPGA模塊化解決方案。

SDRAM及其控制過程

SDRAM控制邏輯復雜,命令種類多樣,需要周期性刷新操作、行列管理的等多重操作。

SDRAM首先要進行初始化操作。在上電后等待100ns,至少執行1條空操作,然后對所有頁執行預充電操作,接著向各頁發出兩條刷新操作指令,最后執行SDRAM工作模式的設定LMR命令用來配置SDRAM工作模式寄存器。SDRAM工作寄存器可以根據具體應用的需要進行設置。

初始后的SDRAM在得到了RAS、CAS、WE的值后開始執行相應的命令。在對SDRAM進行讀、寫過程中,必須要先進行頁激活ACT操作,保證存儲單元是打開的,以便從中讀取地址或者寫入地址,然后通過預充電PHC命令實現來關閉存儲單元。在進行寫操作時,內部的列地址和數據都會被寄存,而進行讀操作時,內部地址被寄存,數據的存儲則發生在CAS 延遲時間(通常為1~3個時鐘周期)后。最后,操作終止:當SDRAM順次的進行讀、寫操作后,當到達到突發長度或者突發終止指令BT出現時,SDRAM將終止其操作。

模塊化的SDRAM控制器設計

在SDRAM控制器的FPGA實現方案中,采用了FPGA的自底向上的模塊化設計思想,首先分析頂層模塊的功能,再將其功能分類細化,分配到不同的子模塊去實現,然后自底向上的先逐步完成各個子模塊的設計,最后將子模塊相互連接生成頂層模塊。經過分析,SDRAM控制器應實現的功能有:為SDRAM提供刷新控制以保持SDRAM中的數據;對主機的命令進行仲裁,將下一步要執行的命令翻譯成可與SDRAM連接的信號;為SDRAM的讀、寫生成數據路徑。因此,根據SDRAM的指令操作特點將SDRAM控制器劃分為接口控制模塊、命令生成模塊和數據路徑模塊三個主要模塊(圖1)。

基于SDRAM控制器實現FPGA模塊化和通用性的解決方案設計

圖1 SDRAM控制器的FPGA模塊化設計方案

下面,對其接口信號進行介紹,需要注意的是,為了實現該控制器的通用性,ADDR、DATAIN、DATAOUT、DQ、DOM信號設計成可根據SDRAM的容量改變的形式。

與主機接口信號:CLK(系統時鐘);RESET(系統復位);CMD[2:0](譯碼指令);CMDACK(指令應答信號);ADDR[ASIZE-1:0](地址線);DATAIN/DATAOU[DSIZE-1:0](輸入、輸出數據總線);DM[(DSIZE/8)-1:0](數據掩碼)。

與SDRAM接口信號:SA(地址線);BA(頁地址);CS_N(片選信號);CKE(時鐘使能信號);RAS、CAS、WE(命令控制信號);DQM[(DSIZE/8)-1:0](SDRAM數據掩碼);DQ[DSIZE-1:0](雙向數據線)。

各個模塊的設計與實現

接口控制模塊

接口控制模塊主要實現的功能是將CMD[2:0]翻譯成接口指令和對刷新計數器的控制指令。接口模塊在工作過程中首先通過要通過狀態機來完成對CMD[2:0]的翻譯。在VHDL程序中聲明一個用戶自定義類型states,根據CMD[2:0]輸入來決定狀態的轉移,完成對CMD[2:0]的解碼,部分代碼如下:

type states is(nop,reada,writea,refresh,

precharge,load_mode);

signal state : states ;

………………

case cmd is

when “011” =》 state《=refresh;

when “111” =》 state《=nop;

………………

另外,SDRAM需要周期性刷新操作以保持數據。在模塊的程序設計中,刷新周期的控制通過一個計數器來完成,到達規定的計數周期數時,接口模塊通過REF_REQ信號向SDRAM發出刷新請求。直到SDRAM完成刷新操作,發出REF_ACK刷新應答信號,計數器才重新賦值,開始下一次的計數。

命令生成模塊

命令生成模塊實現對輸入的SDRAM指令請求進行仲裁判斷的功能,并將仲裁后要執行的指令解碼成SDRAM需要的RAS、CAS等信號,從而實現指令對SDRAM的控制。仲裁機制是SDRAM控制器設計不可或缺的一個環節。仲裁機制實現要遵循如下規則:

*SDRAM在每一刻只有一個指令在執行;

*先到的指令先執行,如果刷新請求到來時,其它命令正在執行中,要等到當前命令執行完成后,才能執行刷新指令;

*其它指令和刷新請求同時到來時刷新操作先執行。

經過仲裁判斷后,指令將傳入命令生成器。命令生成器不僅要把指令解碼成SDRAM需要的RAS、CAS等信號,同時還要對命令執行的時間進行控制。下面的例程僅供參考。

if (do_state=refresh or do_state=reada or

do_state=writea

or do_state=precharge or

do_state=load_mode)then

command_delay(7 downto

0)《=“11111111”;

------移位寄存器初值

command_done《=‘1’;

………………

else

command_done《=command_delay(0);

移位操作

command_delay(6 downto 0)《=

command_delay(7 downto 1);

command_delay(7)《=‘0’;

end if;

下面介紹輸入的指令為writea和reada指令時模塊所進行的操作。當SDRAM的writea和reada指令到來時,將引發一系列指令的執行,和其它指令相比需要更多的附加時間。所以,在這種情況下需要聲明第二個移位寄存器rw_shift來完成這兩個指令的附加時間的實現。rw_shift的工作原理和第一個移位寄存器command_delay是一樣的,需根據讀、寫的時間決定rw_shift的位數。

最后一個移位寄存器oe_shift用來為數據通道生成數據輸入、輸出使能信號oe。對于非頁模式的讀寫來說,oe保持有效的時間取決于突發長度,需要注意的是,讀操作時,oe有效的起始時間取決于CAS延時時間,而對于寫操作,則在寫指令開始時oe就是有效的。

數據路徑模塊

數據路徑模塊的作用是在writea和reada命令期間生成數據的路徑。在用VHDL語言程序中,用簡單的賦值語句就可以實現數據路徑模塊。

通用性的實現

根據SDRAM控制器的FPGA模塊化設計方案生成的FPGA控制器易于修改和擴展,具有可通用的特性。在具體的應用中,針對不同的SDRAM,并不需要更改SDRAM控制器結構,只要根據datasheet中的SDRAM的容量將地址線數和數據的位數做相應修改,再依據SDRAM的時序和讀、寫速度更改接口控制模塊中的時間信號的周期,如刷新周期、命令生成模塊中移位寄存器的位數和初值等,這樣就可以對不同的SDRAM進行控制。最后,生成的SDRAM控制器頂層模塊如圖2所示。為了證明該控制器設計方案的可行性和通用性,在Altera公司的Cyclone系列FPGA——EP1C6Q240C8中生成SDRAM控制器,根據數據手冊中SDRAM的參數對控制器各模塊的VHDL語言程序做相應的改動,實現了對三星公司的8MByte SDRAM K4S641632E和2MByte SDRAM K4S161622D的控制,均達到了100MHz的讀、寫速度。

圖2 SDRAM控制器接口

結語

本方案采用的模塊化思想為SDRAM控制器的開發提供了一種層次分明、易于擴展的設計思路。實驗結果表明,該控制器設計緊湊,維護升級方便,易于實現對SDRAM的通用化控制,這無疑將極大的提高SDRAM應用的開發速度。

責任編輯:gt


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16346

    瀏覽量

    177898
  • SDRAM
    +關注

    關注

    7

    文章

    423

    瀏覽量

    55209
  • FPG
    FPG
    +關注

    關注

    1

    文章

    54

    瀏覽量

    79969
收藏 人收藏

    評論

    相關推薦

    SDRAM控制器實現FPGA模塊化通用性的設計方案

    基于SDRAM控制器實現FPGA模塊化通用性解決方案設計
    發表于 12-22 07:58

    分享一種不錯的通用SDRAM控制器FPGA模塊化解決方案

    求大佬介紹一種通用SDRAM控制器FPGA模塊化解決方案
    發表于 04-08 06:40

    如何使用Verilog實現基于FPGASDRAM控制器

    本文提出了一種基于FPGASDRAM控制器的設計方法,并用Verilog給于實現,仿真結果表明通過該方法設計實現
    發表于 04-15 06:46

    分享一款不錯的SDRAM通用控制器FPGA模塊化設計方案

    本文介紹一種通用SDRAM控制器FPGA模塊化解決方案
    發表于 05-07 06:42

    SDRAM控制器的設備與VHDL實現

    摘要: 介紹了SDRAM的存儲體結構、主要控制時序和基本操作命令,并且結合實際系統,給出了一種用FPGA實現通用
    發表于 06-20 12:51 ?920次閱讀
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設備與VHDL<b class='flag-5'>實現</b>

    使用Verilog實現基于FPGASDRAM控制器

    摘 要:介紹了SDRAM的特點和工作原理,提出了一種基于FPGASDRAM控制器的設計方法,使用該方法實現
    發表于 06-20 13:04 ?2188次閱讀

    基于FPGA的FIFO設計和應用

    ,介紹 FPGASDRAM 控制器的組成和工作流 程 ,給出應用中讀 SDRAM 的時序圖。FPGA 采用
    發表于 10-29 14:05 ?2次下載

    SDRAM控制器的設計

    邏輯復雜,接口方式與普通的存儲差異很大。為了解決這個矛盾,需要設計專用的SDRAM控制器,使用戶像使用SRAM -樣方便的使用SDRAM。考慮到
    發表于 11-28 19:51 ?5次下載
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設計

    FPGA讀寫SDRAM的實例和SDRAM的相關文章及一些SDRAM控制器設計論文

    SDRAM的原理和時序,SDRAM控制器,動態隨即存儲SDRAM模塊功能簡介,基于
    發表于 12-25 08:00 ?56次下載
    <b class='flag-5'>FPGA</b>讀寫<b class='flag-5'>SDRAM</b>的實例和<b class='flag-5'>SDRAM</b>的相關文章及一些<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設計論文

    DDR SDRAM控制器的設計與實現

    本文首先分析了DDR SDRAM的基本特征,并提出了相應的解決方案詳細介紹了基于J EDEC DDR SDRAM規范的DDR SDRAM控制器
    發表于 03-28 10:57 ?19次下載

    基于SDRAM控制器軟核的Verilog設計

    SDRAM控制邏輯復雜,使用很不方便。 為了解決這個矛盾,需要設計專用的SDRAM控制器,使系統用戶象使用SRAM一樣方便的使用SDRAM
    的頭像 發表于 06-30 09:16 ?2700次閱讀
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>軟核的Verilog設計

    基于FPGA的DDR3SDRAM控制器設計及實現簡介

    基于FPGA的DDR3SDRAM控制器設計及實現簡介(arm嵌入式開發平臺PB)-該文檔為基于FPGA的DDR3
    發表于 07-30 09:05 ?7次下載
    基于<b class='flag-5'>FPGA</b>的DDR3<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設計及<b class='flag-5'>實現</b>簡介

    基于FPGASDRAM控制器的設計與實現簡介

    基于FPGASDRAM控制器的設計與實現簡介(嵌入式開發工程師和基層公務員)-該文檔為基于FPGAS
    發表于 07-30 09:34 ?11次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設計與<b class='flag-5'>實現</b>簡介

    基于FPGA的DDR3SDRAM控制器設計及實現

    基于FPGA的DDR3SDRAM控制器設計及實現(嵌入式開發式入門)-該文檔為基于FPGA的DDR3SD
    發表于 07-30 13:07 ?37次下載
    基于<b class='flag-5'>FPGA</b>的DDR3<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設計及<b class='flag-5'>實現</b>

    實時視頻SDRAM控制器FPGA設計與實現.zip

    實時視頻SDRAM控制器FPGA設計與實現
    發表于 12-30 09:21 ?3次下載
    主站蜘蛛池模板: 在线免费观看成年人视频| 一本色道久久综合亚洲精品蜜桃冫| 日本人69xxx| 少妇第一次交换| 性夜影院午夜看片| 亚洲一区免费在线观看| 中文字幕高清在线观看| 99久热这里精品免费| 国产 亚洲 中文字幕 在线| 国产色情短视频在线网站| 久久精选视频| 欧美最猛12teevideos| 无码AV免费精品一区二区三区| 亚洲欧美综合中文| 99福利影院| 国产精品观看视频免费完整版 | 伊人热| BL文库好大粗黑强强肉NP| 国产精品久久人妻无码网站一区无| 狠狠色色综合网站| 男人边吃奶边摸边做刺激情话| 日日色在线影院| 夜夜狂射影院欧美极品| www黄色大片| 簧片高清在线观看| 强奷乱码欧妇女中文字幕熟女| 亚洲AV 中文字幕 国产 欧美| 97超碰免费人妻中文| 国产精品久久久久久AV免费不卡| 久久久精品国产免费A片胖妇女| 日本老人oldmantv乱| 一本道久在线综合色色| 成人影片迅雷下载| 久草热8精品视频在线观看| 清冷受被CAO的合不拢| 亚洲性无码AV久久成人| 吃奶摸下的激烈免费视频| 久久精品动漫99精品动漫| 色婷婷国产麻豆AV| 777EY_卡通动漫_1页| 国产欧美一区二区三区在线看|