chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

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

友晶FPGA ? 來源:友晶FPGA ? 2025-03-04 10:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

SDRAM控制器里面包含5個主要的模塊,分別是PLL模塊,異步FIFO 寫模塊,異步FIFO讀模塊,SDRAM接口控制模塊,SDRAM指令執(zhí)行模塊。

4fe50166-f897-11ef-9310-92fbcf53809c.png

其中異步FIFO模塊解讀參考:05-SDRAM控制器的設(shè)計——異步FIFO的調(diào)用;

http://www.brongaenegriffin.com/d/6468023.html

SDRAM接口控制模塊解讀參考:03-SDRAM控制器的設(shè)計——control_interface.v代碼解析;
http://www.brongaenegriffin.com/d/6458523.html

SDRAM指令執(zhí)行模塊解讀參考:04-SDRAM控制器的設(shè)計——command.v代碼解析

http://www.brongaenegriffin.com/d/6466276.html

PLL時鐘模塊

SDRAM控制器模塊里面的PLL將27MHz時鐘倍頻出2個100MHz時鐘,其中一個100MHz時鐘給SDRAM里面的模塊使用;另外一個100MHz時鐘相移-109.8°以后輸出給SDRAM器件。(相移-109.8°是這個SDRAM器件在DE10-Standard開發(fā)板上的時序約束經(jīng)驗值)

502118b8-f897-11ef-9310-92fbcf53809c.png

PLL參數(shù)設(shè)置如下:

5038e718-f897-11ef-9310-92fbcf53809c.png

關(guān)于Sdram_Control.v模塊時鐘分布請參考下圖的藍色走線:

504ee306-f897-11ef-9310-92fbcf53809c.png

其實也可以直接從FPGA 的50MHz時鐘經(jīng)過PLL得到100M時鐘傳遞給工程里其他模塊工作,這里設(shè)置27M是為了讓大家看看FIFO跨時鐘域的一個工作情況。

數(shù)據(jù)路徑控制

SDRAM的數(shù)據(jù)口是一個inout接口,要做成三態(tài)門控制,控制電路代碼如下:

50901d12-f897-11ef-9310-92fbcf53809c.png

從command.v傳過來的oe信號為高時,將數(shù)據(jù)送到DQ端口,此為SDRAM的寫入操作;當(dāng)oe信號為低時,DQ輸入為高阻,三態(tài)門截止,DQ端口的數(shù)據(jù)送出給讀fifo模塊進行緩存,此為SDRAM的讀操作。(關(guān)于oe信號的控制請參考04-SDRAM控制器的設(shè)計——command.v代碼解析)

自動且連續(xù)的讀寫操作

接下來是設(shè)置完成連續(xù)讀寫(64個數(shù)據(jù))以及進行突發(fā)中斷的操作。

command.v模塊里面已經(jīng)設(shè)置突發(fā)長度為整頁(整頁可讀寫數(shù)據(jù)量為1024),所以每次讀寫64個數(shù)據(jù)后需要提前中斷突發(fā)操作。根據(jù)IS42R16320D手冊可知下發(fā)突發(fā)中斷命令或者預(yù)充電命令可提前結(jié)束突發(fā)操作。

50cb2042-f897-11ef-9310-92fbcf53809c.png

該案例選擇預(yù)充電命令來結(jié)束突發(fā)操作。參考前面的章節(jié)可知預(yù)充電命令是RAS_N, CAS_N,WE_N組合為010。

50df1d2c-f897-11ef-9310-92fbcf53809c.png

為了拉出相關(guān)信號查看其波形,先要暫時把這些信號輸出,不然這些信號會被Quartus在綜合操作時優(yōu)化掉。

50f57f4a-f897-11ef-9310-92fbcf53809c.png

從波形圖可以看到,確實在每次讀或者寫64個數(shù)據(jù)后,都會跟著出現(xiàn)一個預(yù)充電命令來結(jié)束全頁突發(fā)操作。

5120268c-f897-11ef-9310-92fbcf53809c.png

如果上面總體的圖縮小看不清,可以參考下面放大的圖:

51376838-f897-11ef-9310-92fbcf53809c.png

可能大家會疑惑為什么不直接寫256個數(shù)據(jù),然后讀256個數(shù)據(jù)?這里設(shè)置64個數(shù)據(jù)長度是為了讓大家看到多次讀和寫是如何進行的。

如果想設(shè)置256個數(shù)據(jù)也是可以的,這時就把自動讀設(shè)計成寫完256個數(shù)據(jù)后自動進行。

5162007a-f897-11ef-9310-92fbcf53809c.png

此時的波形圖如圖所示(一次性寫完256個數(shù)據(jù),一次性讀完256個數(shù)據(jù)):

5176bc22-f897-11ef-9310-92fbcf53809c.png

指令的產(chǎn)生

讀過程通過Pre_RD和mRD信號的組合標(biāo)志出連續(xù)讀的起始時間,通過Read信號標(biāo)志出連續(xù)讀的過程。

寫過程通過Pre_WR和mWR信號的組合標(biāo)志出連續(xù)寫的起始時間,通過Write信號標(biāo)志出連續(xù)寫的過程。

當(dāng)FIFO讀模塊中的數(shù)據(jù)量低于一次需要讀取的數(shù)據(jù)量時,mRD置1;直到連續(xù)讀完成時,mRD才會清零。即mRD保持為0或1的狀態(tài)都會持續(xù)多個周期,因此我們無法通過電平狀態(tài)來判斷是否產(chǎn)生開始讀信號Read,所以這里采取用寄存器保存mRD的前一狀態(tài),并與當(dāng)前狀態(tài)進行比較,當(dāng)前一狀態(tài)為0,當(dāng)前狀態(tài)為1,即產(chǎn)生上升沿時,開始讀信號Read信號置1。寫信號同理。

51b458c0-f897-11ef-9310-92fbcf53809c.png

提前一個時鐘送出異步FIFO寫模塊的讀出使能信號是因為寫數(shù)據(jù)沒有延遲,寫命令發(fā)出的當(dāng)拍要準(zhǔn)備好數(shù)據(jù),所以讀使能信號提前一拍給出。

51cb8662-f897-11ef-9310-92fbcf53809c.png

51e8774a-f897-11ef-9310-92fbcf53809c.png

52026e52-f897-11ef-9310-92fbcf53809c.png

寫入地址和讀出地址

256個數(shù)據(jù)寫入節(jié)奏是這樣的:

當(dāng)KEY1被按下,觸發(fā)了counter產(chǎn)生數(shù)據(jù)0~255,這個數(shù)據(jù)同步傳遞給異步FIFO寫模塊進行緩存。當(dāng)系統(tǒng)檢測到write_side_fifo_rusedw1值大于64時,異步FIFO寫模塊的讀出端口會把FIFO里面的數(shù)據(jù)讀出,傳遞給SDRAM器件進行儲存。FIFO一次讀出64個數(shù)據(jù)??偣矔x出4次。

52410504-f897-11ef-9310-92fbcf53809c.png

從top文件傳遞過來的地址0開始寫SDRAM,一次寫64個數(shù)據(jù),寫第二筆64個數(shù)據(jù)時初始地址是0+64,寫第三筆64個數(shù)據(jù)時初始地址是64+64=128,寫第四筆64個數(shù)據(jù)時初始地址是128+64=192。

5255a900-f897-11ef-9310-92fbcf53809c.png

526e0414-f897-11ef-9310-92fbcf53809c.png

256個數(shù)據(jù)讀出節(jié)奏是這樣的:

異步FIFO讀模塊從離開初始化狀態(tài)且離開復(fù)位狀態(tài)且檢測到read_side_fifo_wusedw1小于64時開始讀取SDRAM器件的數(shù)據(jù)。

5284a462-f897-11ef-9310-92fbcf53809c.png

其復(fù)位狀態(tài)的離開主要看KEY0信號和wr_latch信號:

52972024-f897-11ef-9310-92fbcf53809c.png

第一筆64個數(shù)據(jù)(0~63)是等異步FIFO寫模塊已經(jīng)完成256個字節(jié)的緩存操作(其中的192個數(shù)據(jù)已寫入到SDRAM器件了)以后讀出。此時讀SDRAM的地址送出是0。

第二筆64個數(shù)據(jù)(64~127)是等異步FIFO讀模塊讀出第一個數(shù)據(jù)0的下一個時鐘節(jié)拍讀出,因為此時read_side_fifo_wusedw1的值64-1等于63又小于64。此時讀SDRAM的地址送出是64。

第三筆64個數(shù)據(jù)(128~191)是等到異步FIFO讀模塊數(shù)據(jù)又只剩63個數(shù)據(jù)時讀出,此時地址送出是128。

第四筆64個數(shù)據(jù)(192~255)同樣是等到異步FIFO讀模塊數(shù)據(jù)又只剩63個數(shù)據(jù)時讀出,此時地址送出是192。

52ab620a-f897-11ef-9310-92fbcf53809c.png

無論是SDRAM寫操作還是讀操作,在讀寫完256個數(shù)據(jù)后又會從地址0開始重復(fù)讀寫:

52d63e08-f897-11ef-9310-92fbcf53809c.png

拿SDRAM讀操作來說,當(dāng)讀完256個數(shù)據(jù)還繼續(xù)觸發(fā)讀操作時抓取波形圖可以看到:

52ed8f68-f897-11ef-9310-92fbcf53809c.png

可能讀者會有疑惑,當(dāng)異步FIFO寫模塊第四次累計了64個數(shù)據(jù)時,為什么沒有馬上寫入SDRAM器件,而是先從SDRAM器件里面讀出64個數(shù)據(jù)緩存到異步FIFO讀模塊,等這64個數(shù)據(jù)讀完以后再繼續(xù)往SDRAM里面寫最后的64個數(shù)據(jù)(192~255)。這里是因為if語句存在優(yōu)先級,電路是先判斷有沒有讀指令,當(dāng)有讀命令時就先處理讀操作。當(dāng)異步FIFO寫模塊寫入了第四個64個數(shù)據(jù)后,異步FIFO讀模塊就離開了復(fù)位狀態(tài),系統(tǒng)會自動發(fā)送讀命令,此時就開始SDRAM器件數(shù)據(jù)的讀取操作。

530fc63c-f897-11ef-9310-92fbcf53809c.png

PS

本文的Signaltap波形圖文件對應(yīng):~sdramcontroloutput_filesSdram_Control.stp

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

    關(guān)注

    3

    文章

    402

    瀏覽量

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

    關(guān)注

    30

    文章

    4921

    瀏覽量

    72204
  • SDRAM控制器
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8498

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    【開源騷客】《輕松設(shè)計SDRAM控制器》第九講—解密讀寫FIFO

    終于到第九講了,第九講是這套《輕松設(shè)計SDRAM控制器》的最后一講。相信大家也是非常的期待這套教程的終結(jié),在前面的8講內(nèi)容,我們已經(jīng)介紹完了SDRAM控制器、串口部分和命令
    發(fā)表于 05-08 22:38

    多路讀寫SDRAM接口設(shè)計

    摘要:介紹SDRAM的主要控制信號和基本命令時序,提出一種應(yīng)用于解復(fù)用的支持多路讀寫SDRAM接口設(shè)計,為需要大容量存儲的電路設(shè)計提供了
    發(fā)表于 12-03 15:20

    【每周FPGA案例】至簡設(shè)計系列- SDRAM讀寫控制器

    第1節(jié) SDRAM讀寫控制器--作者:小黑同學(xué)本文為明德?lián)P原創(chuàng)及錄用文章,轉(zhuǎn)載請注明出處!1.1 總體設(shè)計1.1.1 概述同步動態(tài)隨機存取內(nèi)存(synchronousdynamic
    發(fā)表于 10-15 15:16

    具有時間隱藏特性的數(shù)據(jù)塊讀寫SDRAM控制器

    針對SDRAM 控制器讀寫數(shù)據(jù)塊訪問延時長、速度慢的問題,提出時間隱藏技術(shù),將其應(yīng)用于SDRAM 控制器的設(shè)計,采用FPGA實現(xiàn)。實驗結(jié)果表
    發(fā)表于 03-25 09:00 ?15次下載

    基于FPGA的高速SDRAM控制器的視頻應(yīng)用

    基于FPGA的高速SDRAM控制器的視頻應(yīng)用 0 引言    SDRAM(同步動態(tài)存儲)是一種應(yīng)用廣泛的存儲
    發(fā)表于 11-04 09:56 ?1031次閱讀

    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è)計

    NiosII的奇幻漂流-Chap09-SDRAM-v1.0

    介紹在 Nios II 中利用 SDRAM 控制模塊實現(xiàn)對 SDRAM 存儲芯片—— K4M561633G 的讀寫,通過本章,你能學(xué)到
    發(fā)表于 12-14 15:40 ?0次下載

    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次下載

    華清遠見FPGA代碼-SDRAM讀寫控制的實現(xiàn)與Modelsim

    華清遠見FPGA代碼-SDRAM讀寫控制的實現(xiàn)與Modelsim仿真
    發(fā)表于 10-27 18:07 ?26次下載

    SDRAM控制器的設(shè)計

    在很多通信芯片及系統(tǒng)的開發(fā)中,常常需要用到存儲容量大、讀寫速度快的存儲。在各種隨機存儲器件中,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)容詳細介紹的是FPGA讀寫SDRAM的實例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計論文主要包括了:FPGA
    發(fā)表于 12-25 08:00 ?57次下載
    FPGA<b class='flag-5'>讀寫</b><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 ?3143次閱讀
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>軟核的Verilog設(shè)計

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

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