在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

SDRAM控制器設計之control_interface.v代碼解析

友晶FPGA ? 來源:友晶FPGA ? 2025-02-19 15:31 ? 次閱讀

前言

control_interface.v文件里已經寫了非常詳盡的代碼備注。本文繼續對該文件代碼進行講解,并給出SignalTap波形輔助讀者理解。

下圖是本案例的功能框圖。

4da4e62c-ee93-11ef-9310-92fbcf53809c.png

control_interface.v文件對應圖中SDRAM接口控制模塊,該模塊主要控制SDRAM命令的產生,包括空操作命令、預充電命令、自動刷新命令、加載模式寄存器命令和讀寫命令等。如下是該模塊的RTL視圖:

4dbd60da-ee93-11ef-9310-92fbcf53809c.png

根據IS42R16320D 的時序圖可知該SDRAM上電后約經過 200us 才進入穩定期,在這段時間不可以對 SDRAM 做任何的操作(除了發送NOP命令), 200us 之后要對所有的區塊進行預充電,接著再給SDRAM發送 8次自動刷新命令,最后才進行SDRAM模式寄存器的設定。完成了初始化過程之后,SDRAM 才能進行正常的讀寫操作。整個過程可簡化為下圖所示:

4ddceb80-ee93-11ef-9310-92fbcf53809c.png

control_interface.v模塊工作時鐘100MHz,由Sdram_Control.v的PLL模塊提供。以100MHz時鐘周期計算,200us需要經歷20000個周期。另外,參考IS42R16320D的datasheet或者參考02-SDRAM控制器的設計——解讀IS42R16320D的數據手冊可知預充電最少要2個時鐘周期,自動刷新命令完成需要至少8個時鐘周期,模式寄存器的設定至少也要2個時鐘周期。為了保險起見,將預充電、自動刷新和模式寄存器設定等操作的等待周期都設定為20個時鐘周期(也就是0.2us)。

4df9b45e-ee93-11ef-9310-92fbcf53809c.png

代碼里面首先設計兩個計數器,第一個計數器是初始化動作的計時器。為了保險起見,初始化先等待24000個時鐘周期:

4e1d45b8-ee93-11ef-9310-92fbcf53809c.png

從SignalTap波形圖可以看到INIT_REQ在init_timer從0計數到24000以后拉低了。INIT_REQ拉高(綠色部分)指示了SDRAM開機后的輸入穩定期。

4e3e5cc6-ee93-11ef-9310-92fbcf53809c.png

把INIT_REQ和init_timer局部放大如下:

4e53622e-ee93-11ef-9310-92fbcf53809c.png

代碼里面實現預充電操作等待20個時鐘周期:

4e6c6cf6-ee93-11ef-9310-92fbcf53809c.png

4e878180-ee93-11ef-9310-92fbcf53809c.png

代碼里面實現每次自動刷新都等待20個時鐘周期(總共8次):

4ea6e958-ee93-11ef-9310-92fbcf53809c.png

4ec40e84-ee93-11ef-9310-92fbcf53809c.png

第二個計數器是正常讀寫時的自動刷新間隔計時器,因為SDRAM必須要不斷進行刷新才能保留數據 ,由IS42R16320D數據手冊可知每一行刷新的循環周期最多為64ms。DE10-Standard開發板上的SDRAM有13位的行地址,共有8192行,而每一次的刷新命令只能對一行有效,所以在最長 64ms / 8192 = 7.8125us 的時間間隔內,就必須發一次刷新的命令。在工作時鐘100M下,這里刷新周期設置為768。

4ede362e-ee93-11ef-9310-92fbcf53809c.png

從SignalTap波形圖可以看到timer的值在輸入穩定等待期(INIT_REQ為高)一直是968:

4f05d4c2-ee93-11ef-9310-92fbcf53809c.png

INIT_REQ拉低以后timer開始倒數計數:

4f21bdae-ee93-11ef-9310-92fbcf53809c.png

初始化操作結束后timer的計數周期就變成了768:

4f44b1c4-ee93-11ef-9310-92fbcf53809c.png

可能讀者疑惑這里為什么中間有三個周期timer的值是65535、65534、65533,而不是馬上變為768呢?

其實可以結合這個圖看:

4f65ef88-ee93-11ef-9310-92fbcf53809c.png

1. timer 為0;

2. timer為0 的下個時鐘周期REFRESH_cycle為1,timer值繼續減一,為65535;

3. 繼而下個時鐘周期 do_refresh 為1,timer值繼續減一,為65534;

4. 繼而下個時鐘周期 REF_ACK 為1,timer值繼續減一,為65533;
5. 繼而在下個時鐘周期的時候 timer 賦值為768。

注意本文件當中REFRESH_init和REFRESH_cycle都是指示自動刷新操作的命令,都會控制SDRAM控制器去發送RASCASWE組合是001的命令,它們只是指示的是不同狀態下的自動刷新。

4f838912-ee93-11ef-9310-92fbcf53809c.png

讀寫指令譯碼的代碼部分如下,當CMD值為000時,對應NOP指令,當CMD值為001對應讀指令,當CMD值為010時對應寫指令:

4f9eb6f6-ee93-11ef-9310-92fbcf53809c.png

再來看CM_ACK和CMD_ACK信號。大家可能會疑惑為什么要弄CM_ACK和CMD_ACK這兩個變量呢?

4fba8d90-ee93-11ef-9310-92fbcf53809c.png

首先看輸入信號CM_ACK。由command.v文件可知當do_refresh || do_reada || do_writea || do_precharge || do_load_mode有效時,CM_ACK=1:

4fd4890c-ee93-11ef-9310-92fbcf53809c.png

而只有接收到WRITEA、READA、PRECHARGE、LOAD_MODE等命令時do_refresh 、 do_reada 、 do_writea 、do_precharge 、 do_load_mode這些信號會拉高:

4ff96006-ee93-11ef-9310-92fbcf53809c.png

500c6ba6-ee93-11ef-9310-92fbcf53809c.png

所以CM_ACK信號用于接收指令。它主要指示預充電指令、初始化狀態下的自動更新命令、加載模式寄存器指令和讀寫指令的接收。

因為接收指令不一定會執行,CMD_ACK用于判斷接收到的指令是否執行。所以當CM_ACK有效(接收到了指令),CMD_ACK無效(無效說明當前沒有別的指令在執行)時,才令CMD_ACK有效。

CM_ACK與CMD_ACK信號波形參考下圖:

5033c5fc-ee93-11ef-9310-92fbcf53809c.png

PS:本文的波形圖來自文件~sdramcontroloutput_filesinterface.stp

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

    關注

    113

    文章

    16506

    瀏覽量

    179928
  • SDRAM
    +關注

    關注

    7

    文章

    434

    瀏覽量

    55441
  • 接口
    +關注

    關注

    33

    文章

    8746

    瀏覽量

    152168
  • 代碼
    +關注

    關注

    30

    文章

    4846

    瀏覽量

    69258

原文標題:04-SDRAM控制器的設計——control_interface.v代碼解析

文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    DDR_SDRAM控制器的VHDL代碼已經測試

    DDR_SDRAM控制器的VHDL代碼已經測試
    發表于 08-24 16:49

    【開源騷客】《輕松設計SDRAM控制器》第八講—命令解析模塊講解

    的哦,哈哈,大家先別急。在這一講中,我們就來完成讀模塊,然后對這個SDRAM控制器稍加完善就可以應用到項目中了。本講主要內容如下:命令解析模塊的作用詳細介紹;命令解析模塊時序設計;命令
    發表于 05-08 22:31

    SDRAM控制器參考設計,Lattice提供的VHDL源代碼

    SDRAM控制器參考設計,Lattice提供的VHDL源代碼 -- Permission: --   Lattice Semiconductor grants
    發表于 06-14 08:54 ?93次下載

    標準SDR SDRAM控制器參考設計,Lattice提供Vr

    標準SDR SDRAM控制器參考設計 Lattice提供Vrilog代碼 // Permission:////   Lattice Semiconductor grants
    發表于 06-14 09:23 ?76次下載

    使用Verilog實現基于FPGA的SDRAM控制器

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

    SDRAM控制器簡易化設計

    SDRAM存儲芯片擁有快速讀寫的性能,可以應用以回波模擬系統作為數據高速緩存SDRAM芯片是由SDRAM控制器
    發表于 10-24 15:08 ?0次下載
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>簡易化設計

    DDR SDRAM控制器參考設計VHDL代碼

    Xilinx FPGA工程例子源碼:DDR SDRAM控制器參考設計VHDL代碼
    發表于 06-07 11:44 ?19次下載

    DDR SDRAM控制器verilog代碼

    Xilinx FPGA工程例子源碼:DDR SDRAM控制器verilog代碼
    發表于 06-07 14:13 ?38次下載

    基于VHDL的SDRAM控制器的實現

    基于VHDL的SDRAM控制器的實現
    發表于 01-22 13:43 ?12次下載

    EPM1240的SDRAM控制器的設計

    EPM1240的SDRAM控制器的設計
    發表于 10-31 08:24 ?21次下載
    EPM1240的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設計

    SDRAM控制器的設計

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

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

    本文檔的主要內容詳細介紹的是FPGA讀寫SDRAM的實例和SDRAM的相關文章及一些SDRAM控制器設計論文主要包括了:FPGA讀寫SDRAM
    發表于 12-25 08:00 ?56次下載
    FPGA讀寫<b class='flag-5'>SDRAM</b>的實例和<b class='flag-5'>SDRAM</b>的相關文章及一些<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設計論文

    如何使用FPGA設計SDRAM控制器

    針對SDRAM 操作繁瑣的問題,在對SDRAM 存儲和全頁突發式操作進行研究的基礎上,提出一種簡易SDRAM 控制器的設計方法。該設計方法
    發表于 12-18 16:13 ?6次下載
    如何使用FPGA設計<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

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

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

    PIC32系列參考手冊DDR SDRAM控制器

    電子發燒友網站提供《PIC32系列參考手冊DDR SDRAM控制器.pdf》資料免費下載
    發表于 09-25 11:39 ?0次下載
    PIC32系列參考手冊<b class='flag-5'>之</b>DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>
    主站蜘蛛池模板: 美女被免费视频的网站 | 一区二区中文字幕在线观看 | 欧美日韩国产在线一区 | 韩国免费人成在线观看网站 | 欧美色图888| 天天操视频 夜夜 | 综合免费一区二区三区 | 欧美性色xo影院永久禁欲 | 五月婷婷丁香 | 奇米影视欧美 | 欲香欲色天天综合和网 | 色综合久久88 | 精品三级在线 | 91色在线播放 | 欧美色综合高清免费 | 国产综合在线视频 | 欧美一级片网站 | 久久国内精品视频 | 美女免费视频黄 | 一级毛片一级毛片 | 狠狠色婷婷丁香综合久久韩国 | 在线亚洲日产一区二区 | 四虎影永久在线观看网址 | 午夜免费网址 | 特黄特色大片免费视频大全 | 色成年激情久久综合 | 午夜免费视频 | 欧美性猛交xxx嘿人猛交 | 日本在线观看一区 | 女人被两根一起进3p在线观看 | 久久精品国产清自在天天线 | 2019天天干天天操 | 亚洲区视频在线观看 | 成人永久免费视频网站在线观看 | 在线观看日本亚洲一区 | 午夜久久免费视频 | 久色国产 | 天天艹天天艹 | 国产一级片免费看 | 毛片免费看网站 | 欧美另类图片亚洲偷 |