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

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

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

3天內不再提示

使用SDRAM控制器IP核對SDRAM進行讀寫操作

NXAf_fpg ? 來源:CSDN博客 ? 作者:CSDN博客 ? 2020-09-01 10:40 ? 次閱讀

SDRAM是一種RAM類型的易失性存儲器件,因其具有較大的容量和相對較低的價格在嵌入式系統中應用廣泛。然而應用SDRAM需要實現刷新操作、行列管理、不同延遲和命令序列等邏輯,控制復雜,而Qsys提供的SDRAM控制器IP核接口極大的方便了SDRAM的使用,本文我們實現使用SDRAM控制器IP核對SDRAM進行讀寫操作。

理論部分簡介

SDRAM控制器IP核能夠處理所有的SDRAM協議要求,包括上電初始化、地址復用、刷新、讀寫時序等,極大的方便了SDRAM的使用。下面我們先來看看SDRAM控制器IP核和SDRAM芯片的連接框圖,如下所示:

從上面的這個結構框圖中,我們可以看到SDRAM控制器IP核產生于FPGA內部,它帶有接口引腳、控制邏輯、以及Avalon從機接口。接口引腳用來連接外部SDRAM芯片管腳,這些接口引腳通過Altera FPGA上的I/O引腳連接到SDRAM芯片管腳上。控制邏輯用來實現SDRAM的操作,比如,SDRAM初始化,自刷新,突發讀寫等,這些全都是控制邏輯來完成的,控制邏輯不需要我們編寫,當我們生成SDRAM控制器IP核之后,它會自動生成。

Avalon從機接口用來連接我們的CPU,Avalon從機接口是SDRAM控制器IP核中僅為用戶可見的部分。從控制器端口提供一個如SDRAM芯片一樣大的平滑、線性存儲器空間。當訪問從控制器端口時,SDRAM協議的細節完全透明。Avalon接口作為一個簡單的存儲器接口操作,沒有存儲器映射的配置寄存器。這里我們需要注意的是:SDRAM芯片必須和Avalone接口一樣以相同的時鐘來驅動。

我們可以看到圖中的片內鎖相環(PLL),它就是用來調整SDRAM控制器與SDRAM芯片之間的時鐘相位差。在較低的時鐘頻率下,可能不需要PLL。在較高的時鐘頻率下,當信號在引腳上有效時,需要PLL來調整SDRAM時鐘。PLL并沒有包括在SDRAM控制器內。如果需要PLL,設計者必須在生成Qsys系統模塊以外手動添加PLL。Altera FPGA和SDRAM芯片的不同組合將要求不同PLL的設置。

還有一點我們需要說明的是fmax性能取決于整個硬件設計。Qsys系統模塊的主控制器時鐘驅動SDRAM控制器和SDRAM芯片。因此,整個系統模塊的性能決定SDRAM控制器的性能。例如,為了實現100MHz的fmax性能,系統模塊必須設計為100MHz時鐘率,且QuartusII軟件的時序分析必須檢驗硬件設計是否能夠進行100MHz的操作。說完了SDRAM的綜述之后下面我們就總結給出SDRAM控制器IP核的功能特性:

(1)SDRAM控制器IP核具有不同數據寬度(8、16、32或64位)、不同內存容量和多片選擇等設置。

(2)SDRAM控制器IP核可以全面支持符合PC100標準的SDRAM芯片。 (PC100,表明時鐘信號為100,數據讀寫速率也為100)

(3)SDRAM控制器IP核可選擇與其他的片外Avalon三態器件共用地址和數據總線,該特性在I/O引腳資源緊張的系統中很有用。我們可以在Qsys中使用SDRAM IP核的配置向導來指定硬件特性和仿真特性。SDRAMIP核配置向導有兩個選項卡:Memory Profile和Timing,如下圖所示。

為了使用方便,Presets列表提供幾個預定義的SDRAM配置。如果實際使用的SDRAM芯片型號與列表中的一致,可直接選用而不用設置其他選項。選擇不同的預配置,SDRAM IP核將自動改變Memory Profile和Timing選項卡上的值來匹配指定的配置。如果實際使用的SDRAM芯片與列表中的不相同,則需要設計者根據SDRAM芯片數據手冊的參數來設置Memory Profile和Timing標簽上的值,改變任何選項卡上的配置設置轉變Preset值為custom。

當然我們也可以將我們配置好的SDRAM參數添加到預定義的SDRAM配置,在今后的使用過程中我們就直接選擇我們添加的預定義的SDRAM配置。接下來我們就來簡單的介紹一下Memory Profile和Timing。

(1) Memory Profile選項卡

Memory Profile選項卡允許設計者指定SDRAM的結構,例如地址和數據總線寬度、片選信號的數目和區的數目等。Memory Profile選項卡設置項如下表所示。

這些參數值可參照使用的SDRAM手冊來設置。通過Memory Profile選項卡上的設置后,消息框以兆字節、兆bit位以及可尋址的字長顯示SDRAM預期的內存容量。將這些預期值與選擇的SDRAM的實際大小相比較可以檢驗設置是否正確。說完了Memory Profile選項卡,接下來我們看看Timing選項卡。

(2) Timing選項卡

Timing選項卡允許設計者設置SDRAM芯片的時序規范。正確值在SDRAM芯片數據手冊中提供。Timing選項卡上可用的設置如下表所示。

我們需要注意的是無論我們輸入的精確時序值如何,每個參數實現的實際時序將為Avalon時鐘的整數倍。對于每隔一段時間執行一個刷新命令的參數,實際時序將不超出目標值,而其他所有參數,實際時序將大于或等于目標值。

操作任務

利用官方SDRAM ControllerIP核實現對SDRAM的讀寫操作。

硬件設計

實驗的硬件框架如下圖所示:

圖中,我們要把clk IP 核的時鐘頻率設置為 100MHz。

另外需要注意的是,Nios II IP 核需要將復位向量 Reset Vector 和異常向量 Exception Vector 都設置為 SDRAM,如下圖所示:

現在我們主要來介紹一下新添加的SDRAM IP 核,按照使用的 SDRAM 型號為

W9825G6KH的datasheet,配置如下圖所示。

為了方便大家以后的使用,下面我們就簡單為大家講解一下如何將自己的SDRAM配置添加至Library中。當我們配置好SDRAM以后,我們可以在窗口的右下方找到【New】按鈕并點擊,彈出如下圖所示頁面。

在該頁面中,我們將Preset name和Preset description填寫好以后,我們就可以點擊【Save】按鈕,彈出如下圖所示提示窗口。

在該提示窗口中我們選擇是,這時我們就可以在Library中看到我們添加的SDRAM配置了。然后我們重新打開Qsys軟件,這時,我們就可以在SDRAM的Library中看到我們添加的W9825G6KH。最后我們再補充說明一點,SDRAM為動態存儲器對時序要求比較高,由于FPGA內部有延遲,所以PLL輸出100Mhz時鐘頻率給SDRAM_SCLK時,PLL時鐘需要設置相位偏移,

相位偏移我們設置為-75deg。

頂層代碼如下:

從頂層代碼可以看到,我們主要例化PLL和SDRAM控制器,PLL生成兩個100MHz的時鐘,其中一個偏移-75度用于驅動SDRAM芯片。

軟件設計

本實驗的軟件工程代碼如下:

在代碼中,首先定義了一個aut_u8型的指針ram指向SDRAM的基地址+0x10000,之后我們改變或讀取指針指向的地址(SDRAM基地址+偏移地址)的值,就改變了SDRAM相應地址(偏移地址/2)的值。在主函數中,我們通過memset函數將從ram指向地址開始的100個地址的值全部清0,再通過一個for循環向從ram指向地址開始的100個地址的賦相應的值,最后再將這100個值逆向讀取打印出來,這樣就完成了SDRAM的讀寫操作。可以看出,通過SDRAM控制器的使用,對SDRAM的讀寫操作變得非常簡單。

之所以對SDRAM的讀寫要偏移0x10000,是因為CPU程序的運行占用了從SDRAM基地址開始的部分內存,如果我們不做偏移直接從基地址開始讀寫,則很有可能破壞程序正常運行,0x10000這個值并不固定,只要別占用程序運行的內存就可以了。

下載驗證

首先我們需要在Quartus II軟件中將qsys_sdram.sof文件下載到開發板中;然后在Eclipse軟件中將qsys_sdram_rw.elf文件下載進去。

qsys_sdram_rw.elf下載完成以后,我們的C程序會自動運行,同時在Nios II Console界面會顯示程序的打印信息。圖中可以看到從SDRAM中讀出的數據為99到0,與我們寫入的數據一致,說明本次實驗下載驗證成功。

如果大家在下載elf文件的過程中工具提示錯誤,如下圖所示:

我們留意到在下載過程中,Console 會提示如下圖所示的信息,說地址“0x2000020”到 “0x200D757”之間驗證錯誤。

錯誤的這段地址并不固定,但它們在Qsys 系統中剛好處于 SDRAM 的地址范圍內。此時,我們可以通過以下方式解決下載報錯的問題。

在Eclipse 中右擊應用工程“qsys_sdram_rw”,在彈出的菜單中選擇“Run As”

—>“Run Configurations”,會彈出“Run Configurations”配置頁面,如下圖所示:

在上圖所示頁面中的“Target Connection”標簽頁最下方,勾選“Reset the selected

target system”。在上圖中,我們同時勾選了“Ignore mismatched system ID”以及“Ignore mismatched system timestamp”。設置完成后,點擊“Apply”,最后點擊“Run”來重新下載elf文件,這樣在下載的過程中就不會報錯了。

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

    關注

    7

    文章

    427

    瀏覽量

    55260
  • SDRAM控制器
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8166

原文標題:NIOS II處理器系統設計之SDRAM IP核應用

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

收藏 人收藏

    評論

    相關推薦

    基于FPGA的SDRAM控制器的設計_SDRAM設計源碼_明德揚資料

    純邏輯實現SDARM控制器工程說明本項目展示如何用“至簡設計法”設計SDARM,具體功能要求如下:1)讀寫仲裁機制:當同時出現讀寫請求時,如果上次執行了讀操作,則此次執行寫
    發表于 08-02 17:43

    SDRAM的基本工作原理是什么?怎么實現SDRAM控制器

    SDRAM的基本工作原理是什么SDRAM的基本讀寫操作步驟是什么一種簡單的通用SDRAM控制器
    發表于 05-10 06:26

    Gowin SDRAM控制器的參考設計

    本次發布三例 SDRAM 控制器參考設計及 IP Core Generator 支持調用SDRAM 控制器
    發表于 10-08 07:59

    具有時間隱藏特性的數據塊讀寫SDRAM控制器

    針對SDRAM 控制器讀寫數據塊訪問延時長、速度慢的問題,提出時間隱藏技術,將其應用于SDRAM 控制器的設計,采用FPGA實現。實驗結果表
    發表于 03-25 09:00 ?15次下載

    圖像處理系統中SDRAM控制器的FPGA實現

    簡要介紹了SDRAM工作原理并認真研究了Altera提供的SDRAM控制器,根據實際系統使用需要加以修改簡化,設計了對修改后控制器進行
    發表于 12-26 17:02 ?70次下載

    SDRAM控制器的設備與VHDL實現

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

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

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

    基于FPGA的高速SDRAM控制器的視頻應用

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

    SDRAM控制器簡易化設計

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

    DDR2SDRAM控制器IP功能測試與FPGA驗證_陳平

    DDR2SDRAM控制器IP功能測試與FPGA驗證_陳平
    發表于 01-07 21:45 ?3次下載

    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
    發表于 12-25 08:00 ?56次下載
    FPGA<b class='flag-5'>讀寫</b><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 存儲和全頁突發式操作進行研究的基礎上,提出一種
    發表于 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 ?2712次閱讀
    基于<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>軟核的Verilog設計
    主站蜘蛛池模板: 国产欧美亚洲精品第二区首页| 天天躁狠狠躁夜躁2021| 萌白酱香蕉白丝护士服喷浆| 亚洲第一色视频| 亚洲国产成人久久精品图片| 特黄特级毛片免费视| 九九久久久久午夜精选| 欧美三级黄色| 黄色特级录像| 亚洲国产成人久久午夜| 亚洲黄色网址大全| 日本黄色免费网址| 国产毛片毛片精品天天看| 神马午夜限制| 久久精品伊人波多野结| aa2424在线视频看片| 国产综合第一页在线视频| 荡女妇边被c边呻吟久久| 国产亚洲精品久久yy5099| 女性私密部位扒开的视频| 亚洲福利片| 日韩欧美色图| 色老头视频在线观看| 天堂网在线资源www最新版| 一级特黄毛片| 在线 色| 特黄特色| 久久国产三级| 国产无圣光高清一区二区| 99啪啪| 一级特黄aaa大片在| 永久免费在线观看| 老司机狠狠k免费毛片| 日本操穴| 国产黄视频在线观看| 国产成人无精品久久久久国语| 99精品热视频| 亚洲色图综合| 兔费看全黄三级| 免费人成在线观看网站品爱网日本| 国产欧美日韩综合精品无毒 |