衡阳派盒市场营销有限公司

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

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

3天內不再提示

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

FPGA設計論壇 ? 來源:西安郵電學院學報 ? 作者:劉宇,陳文藝,李新 ? 2021-06-30 09:16 ? 次閱讀

目前,在很多通信芯片及系統的開發中,常常需要用到存儲容量大、讀寫速度高的存儲器。在各種隨機存儲器件中,SDRAM 的價格低、體積小、速度快、容量大,是比較理想的器件。但是,與SRAM相比較,SDRAM的控制邏輯復雜,使用很不方便。

為了解決這個矛盾,需要設計專用的SDRAM控制器,使系統用戶象使用SRAM一樣方便的使用SDRAM是十分必要的。考慮到控制器的通用性,本文提出了一種通用的SDRAM控制器的 Verilog設計,并給出了實現結果。

1 SDRAM的工作原理

通常一個SDRAM中包含2個或4個BANK,每個BANK的存儲單元是按行和列尋址的。由于這種特殊的存儲結構,與SRAM比較而言,SDRAM在工作的原理上有以下幾個特點:

第一,SDRAM在上電100us-200us 后,必須由一個初始化過程來配置SDRAM的工作模式。初始化過程是由啟動指令流完成:首先由一個Precharge all bank指令完成對所有BANK的預充,然后是兩個或多個Auto Refresh指令,最后在模式配置指令下完成SDRAM內部模式設置寄存器的配置。模式寄存器的值控制著SDRAM的工作方式,詳細描述如表1所示。

SDRAM模式寄存器:

第二,SDRAM行列地址采用復用的方式減少了地址總線的密度。這樣以來,SDRAM在每次讀寫操作時,行列地址要鎖存。具體的,由ACTIVE命令激活要讀寫BANK,并鎖存行地址,然后在讀寫指令有效時鎖存列地址。

第三,SDRAM的操作是通過0aaff49e-d919-11eb-9e57-12bb97331649.png AP信號的組合指令字完成的。由于特殊的存儲結構,SDRAM操作指令比較多,不像SRAM一樣只有簡單的讀寫,其主要的指令字見表2。

2 通用SDRAM控制器的設計

2.1 總體設計框圖

SDRAM控制器的內部結構,包括控制寄存器、初始化請求產生、刷新請求產生、指令仲裁器、指令譯碼、數據通路六個模塊。控制寄存器控制SDRAM的各種工作模式,其值可以通過MCU接口配置。

指令仲裁器對系統的讀寫請求信號sdram*rd*n、sdram*wr*n及初始化請求和刷新請求進行仲裁。仲裁的結果由指令譯碼器譯碼產生 SDRAM的操作指令字。用Sdram*busy信號指示SDRAM總線的閑忙,sdramready為SDRAM控制器對系統讀寫請求的響應指示,指示對數據有效的讀寫操作。

2.2 各模塊的設計

2.2.1 控制寄存器模塊

包含控制工作模式的各種寄存器。系統用戶可以根據實際需要配置SDRA的工作模式。可以通過MCU接口來配置,也可以省去MCU接口而通過預設參數來配置。寄存器主要包括兩類:一是初始化模式控制寄存器,用于控制SDRAM初始化指令流的產生方式;二是SDRAM模式控制寄存器,用于SDRAM的刷新及其它操作指令參數的控制。

2.2.2 初始化請求產生模塊

上電后初始化請求信號的產生延遲控制。由于系統上電100us-200us 后時鐘才能穩定,之后,SDRAM才可以開始初始化操作。為防止譯碼毛刺的出現,采用格雷碼計數器來實現這一延遲的控制。系統復位結束后,啟動計數器,當計數器計到設定的值后計數值保持,同時譯碼產生初始化的請求信號,在SDRAM初始化完成后請求變為無效。

2.2.3 刷新請求產生模塊

根據模式寄存器的配置的頻率產生SDRAM的刷新請求信號。這部分電路也是采用格雷碼計數器實現的。計數器計到設定的值后產生刷新請求信號,同時返回到初值繼續計數。

2.2.4 指令仲裁器模塊

對初始化請求、刷新請求和系統的讀寫請求進行優先級仲裁,產生初始化響應initial*hold、刷新響應ref*hold和讀寫響應sdram*wr*hold。初始化操作只在上電時進行一次,它是SDRAM正常工作的基礎,所以它的優先級最高。刷新請求的優先級次高,讀寫請求的優先級最低。當某一種操作正在執行時不會響應后來的請求。

2.2.5 指令譯碼器模塊

根據指令仲裁器的結果和SDRAM控制器模式寄存器對工作模式參數的設置,分別對初始化指令、刷新指令、讀寫指令進行譯碼。譯碼的結果就是輸出的控制指令字。當initial*hold=1時,譯碼產生SDRAM的初始化指令流;

當ref*hold=1時,譯碼產生刷新指令;當sdram*wr*hold=1并且讀有效(Sdram*rd*n=0)或寫有效 (Sdram*wr*n=0)時,根據寄存器設置的指令參數譯碼輸出BANK激活指令、讀指令及預充指令。

此外,在SDRAM執行任何一種操作時,都用 sdram*busy=1來指示SDRAM忙;用sdram*busy=0來指示SDRAM空閑。用sdram*ready=1指示系統對SDRAM數據有效的讀寫操作。譯碼模塊采用Verilog結合狀態機的設計方法,直觀清晰,提高了電路的設計周期。

SDRAM控制器軟核設計的狀態機實現原理如圖2所示,包含了10個狀態,其中從Power on到Mode reg set為上電后SDRAM的初始化過程。其余狀態為SDRAM的正常讀寫及刷新操作過程。

2.2.6 數據通路模塊

是根據寄存器的設置及指令譯碼的結果對把系統非復用的地址處理為SDRAM復用的地址,使得SDRAM的地址及數據和相應的操作指令在時序上同步。

3接口時序

3.1寫時序(Burst=1)

3.2 讀時序(CAS=3,Burst=1)

4 實現及應用

本設計用Candence公司的 Ncverilog仿真工具進行了功能仿真。在仿真過程中,外部的SDRAM采用了Micron公司網上提供的1M×16、2M×2、4M×2的仿真模型,結果正確。

最后,該控制器軟核作為SDRAM的接口電路嵌在了西安深亞公司EOS0121芯片設計中,采用Actel公司的Designer R1-2002工具進行了綜合布線,在ProASIC A500K180 208Pin的FPGA上得到了實現。目前該芯片已被多家公司采用,反映良好。從而也說明了該SDRAM控制器軟核性能可靠,工作穩定。

由于采用了IP核的設計思想,只要修改少量的參數配置就可以支持多個廠家多種型號的SDRAM器件。對特定容量的SDRAM的特定工作模式而言,只要根據其器件參數進行設定,控制器就可以適用特定SDRAM的特定工作模式。

5 結束語

Verilog硬件描述語言已越來越廣泛地應用于EDA領域,大多數EDA設計工程師都用它來進行ASIC設計和FPGA開發。用高級語言進行電路設計,可以靈活的修改參數,增加了電路設計的通用性和可移植性。

最后,需要指出的是采用IP核的方法設計電路,既可以單獨使用,也可以嵌入到ASIC或FPGA的電路設計中去,大大縮短了產品開發周期,應該大力推廣。

編輯:jq

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

    關注

    112

    文章

    16448

    瀏覽量

    179462
  • SDRAM
    +關注

    關注

    7

    文章

    430

    瀏覽量

    55370
  • 寄存器
    +關注

    關注

    31

    文章

    5363

    瀏覽量

    121178
  • AP
    AP
    +關注

    關注

    0

    文章

    106

    瀏覽量

    48991

原文標題:SDRAM控制器軟核的Verilog設計

文章出處:【微信號:gh_9d70b445f494,微信公眾號:FPGA設計論壇】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    EE-178:ADSP-TS101S TigerSHARC片上SDRAM控制器

    電子發燒友網站提供《EE-178:ADSP-TS101S TigerSHARC片上SDRAM控制器.pdf》資料免費下載
    發表于 01-14 15:00 ?0次下載
    EE-178:ADSP-TS101S TigerSHARC片上<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    EE-127:ADSP-21065L片內SDRAM控制器

    電子發燒友網站提供《EE-127:ADSP-21065L片內SDRAM控制器.pdf》資料免費下載
    發表于 01-06 15:45 ?0次下載
    EE-127:ADSP-21065L片內<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    ADSP-21161 SHARC片內SDRAM控制器

    電子發燒友網站提供《ADSP-21161 SHARC片內SDRAM控制器.pdf》資料免費下載
    發表于 01-03 15:04 ?0次下載
    ADSP-21161 SHARC片內<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    MicroBlaze V處理的功能特性

    本指南提供了有關 AMD Vivado Design Suite 中包含的 32 位和 64 位 MicroBlaze V 處理的信息。該文檔旨在用作為處理硬件架構的指南,隨附
    的頭像 發表于 10-16 09:17 ?575次閱讀
    MicroBlaze V<b class='flag-5'>軟</b><b class='flag-5'>核</b>處理<b class='flag-5'>器</b>的功能特性

    DDR4 SDRAM控制器的主要特點

    DDR4 SDRAM(Double Data Rate Fourth Synchronous Dynamic Random Access Memory)控制器作為現代計算系統中的重要組成部分,其
    的頭像 發表于 09-04 12:55 ?770次閱讀

    車載智能控制器 工程機械控制器 CAN總線控制器 碩博電子 #控制器 #can總線 #國產化替代

    控制器總線
    長沙碩博電子科技股份有限公司
    發布于 :2024年08月29日 10:43:57

    AI邊緣控制器

    運動控制器或者PLC強大的運動控制功能,可滿足運動控制領域高速高精的需求,具備自動化行業所必須的高速DI/DO、脈沖控制以及手輪控制等功能。
    的頭像 發表于 08-26 15:12 ?294次閱讀
    AI邊緣<b class='flag-5'>控制器</b>

    TMS320F28377D-EP雙Delfino?微控制器數據表

    電子發燒友網站提供《TMS320F28377D-EP雙Delfino?微控制器數據表.pdf》資料免費下載
    發表于 08-08 09:30 ?1次下載
    TMS320F28377D-EP雙<b class='flag-5'>核</b>Delfino?微<b class='flag-5'>控制器</b>數據表

    TMS320F2837xD雙控制器數據表

    電子發燒友網站提供《TMS320F2837xD雙控制器數據表.pdf》資料免費下載
    發表于 08-01 12:59 ?7次下載
    TMS320F2837xD雙<b class='flag-5'>核</b>微<b class='flag-5'>控制器</b>數據表

    移動機械控制器 車載智能控制器 CAN總線控制器

    控制器機械
    長沙碩博電子科技股份有限公司
    發布于 :2024年06月13日 17:02:51

    PID控制器與PWM控制器的區別

    在工業自動化和控制系統設計中,PID控制器(比例-積分-微分控制器)和PWM控制器(脈沖寬度調制控制器)是兩種常用的
    的頭像 發表于 06-05 18:25 ?3483次閱讀

    Windows實時運動控制MotionRT7 | VC6.0例程講解# 正運動技術#運動控制器

    運動控制器
    正運動技術
    發布于 :2024年05月29日 14:59:41

    FPGA的IP使用技巧

    的IP : 根據項目需求選擇合適的IP,如FIFO、RAM、FIR濾波SDRAM
    發表于 05-27 16:13
    大姚县| 百家乐官网赢多少该止赢| 三合四局24向黄泉| 好运来百家乐的玩法技巧和规则| 钻石娱乐城| 连环百家乐官网的玩法技巧和规则| 三星百家乐的玩法技巧和规则| 罗定市| 百家乐连黑记录| 百家乐超级市场| 渝北区| 申博百家乐官网下载| 百家乐大西洋| 陆河县| 百家乐官网智能系统| 悦榕庄百家乐的玩法技巧和规则| 澳门百家乐官网会出老千吗| 至尊百家乐官网20130301| 喜力百家乐的玩法技巧和规则| 温州市百家乐官网鞋业有限公司| 水果老虎机游戏| 百家乐官网玩法开户彩公司| 网络百家乐电脑| 百家乐官网平点| 大发888娱乐场漏洞| 百家乐官网双倍派彩的娱乐城| 破解百家乐视频游戏密码| 网站百家乐官网假| 大发888问题缺少组件| 百家乐官网扑克桌| 泰无聊棋牌游戏中心| 新澳门百家乐官网的玩法技巧和规则 | 百家乐官网游戏看路| 百家乐电投| 百家乐官网技巧和规律| 游戏机百家乐下载| 百家乐官网网上真钱麻将| 百家乐网上真钱赌场娱乐网规则 | 赌百家乐的方法| 河西区| 现金百家乐下载|