女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SDRAM控制器設(shè)計之control_interface.v代碼解析

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

前言

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

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

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

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

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

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

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

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

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

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

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

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

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

把INIT_REQ和init_timer局部放大如下:

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

代碼里面實現(xiàn)預(yù)充電操作等待20個時鐘周期:

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

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

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

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

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

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

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

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

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

INIT_REQ拉低以后timer開始倒數(shù)計數(shù):

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

初始化操作結(jié)束后timer的計數(shù)周期就變成了768:

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

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

其實可以結(jié)合這個圖看:

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

1. timer 為0;

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

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

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

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

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

讀寫指令譯碼的代碼部分如下,當(dāng)CMD值為000時,對應(yīng)NOP指令,當(dāng)CMD值為001對應(yīng)讀指令,當(dāng)CMD值為010時對應(yīng)寫指令:

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

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

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

首先看輸入信號CM_ACK。由command.v文件可知當(dāng)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信號用于接收指令。它主要指示預(yù)充電指令、初始化狀態(tài)下的自動更新命令、加載模式寄存器指令和讀寫指令的接收。

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

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    16960

    瀏覽量

    182873
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    441

    瀏覽量

    56018
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8933

    瀏覽量

    153189
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70244

原文標(biāo)題:04-SDRAM控制器的設(shè)計——control_interface.v代碼解析

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

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    SDRAM控制器的設(shè)計——Sdram_Control.v代碼解析(異步FIFO讀寫模塊、讀寫SDRAM過程)

    的設(shè)計——control_interface.v代碼解析; http://www.asorrir.com/d/6458523.html ? SDRAM指令執(zhí)行模塊解讀參考:04-
    的頭像 發(fā)表于 03-04 10:49 ?1340次閱讀
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計——<b class='flag-5'>Sdram_Control.v</b><b class='flag-5'>代碼</b><b class='flag-5'>解析</b>(異步FIFO讀寫模塊、讀寫<b class='flag-5'>SDRAM</b>過程)

    DDR_SDRAM控制器的VHDL代碼已經(jīng)測試

    DDR_SDRAM控制器的VHDL代碼已經(jīng)測試
    發(fā)表于 08-24 16:49

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

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

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

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

    使用Verilog實現(xiàn)基于FPGA的SDRAM控制器

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

    SDRAM控制器簡易化設(shè)計

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

    DDR SDRAM控制器參考設(shè)計VHDL代碼

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

    DDR SDRAM控制器verilog代碼

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

    EPM1240的SDRAM控制器的設(shè)計

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

    SDRAM控制器的設(shè)計

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

    FPGA讀寫SDRAM的實例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計論文

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

    如何使用FPGA設(shè)計SDRAM控制器

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

    基于SDRAM控制器軟核的Verilog設(shè)計

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

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

    電子發(fā)燒友網(wǎng)站提供《PIC32系列參考手冊DDR SDRAM控制器.pdf》資料免費下載
    發(fā)表于 09-25 11:39 ?0次下載
    PIC32系列參考手冊<b class='flag-5'>之</b>DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    SDRAM控制器設(shè)計command.v代碼解析

    command.v文件對應(yīng)圖中SDRAM指令執(zhí)行模塊,它會從SDRAM接口控制模塊接收指令,然后產(chǎn)生控制信號直接輸出到
    的頭像 發(fā)表于 02-25 10:32 ?436次閱讀
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設(shè)計<b class='flag-5'>之</b>command.<b class='flag-5'>v</b><b class='flag-5'>代碼</b><b class='flag-5'>解析</b>