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

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

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

采用Stratix系列FPGA器件實現(xiàn)可訪問三口RAM操作的SDRAM控制器設(shè)計

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-04-26 08:06 ? 次閱讀

引言

SDRAM 具有存儲容量大、速度快、成本低的特點,因此廣泛應(yīng)用于雷達(dá)信號處理等需 要海量高速存儲的場合,但是SDRAM 的操作相對復(fù)雜,需要有專門的控制器配合處理器 工作完成數(shù)據(jù)的存取操作。隨著FPGA 技術(shù)的快速發(fā)展及其應(yīng)用的普及,用FPGA 實現(xiàn) SDRAM 控制器是目前最流行的技術(shù)手段。雖然現(xiàn)在FPGA 的生產(chǎn)商提供了一些通用的 SDRAM 控制器,但是在雷達(dá)信號處理等一些專用領(lǐng)域內(nèi)這些通用的SDRAM 控制器難以滿 足需要,需要開發(fā)適合的專用的SDRAM 控制器。

本文以一個典型的雷達(dá)信號存儲與預(yù)處理系統(tǒng)為應(yīng)用背景,用 Altera 公司的Stratix 系 列FPGA 實現(xiàn)了一個三端口非透明型的SDRAM 控制器,該控制器內(nèi)部具有靈活準(zhǔn)確的優(yōu) 先級仲裁功能,在保證多個端口平均分配SDRAM 帶寬的同時不影響數(shù)據(jù)傳輸?shù)膸?,?用乒乓的DMA 傳輸機(jī)制大大提高了數(shù)據(jù)傳輸?shù)膸捄托省?/p>

2 SDRAM 的特點及其基本操作

SDRAM 是在現(xiàn)有的標(biāo)準(zhǔn)動態(tài)存儲器中加入同步控制邏輯(一個狀態(tài)機(jī)),利用一個單一的系統(tǒng)時鐘同步所有的地址數(shù)據(jù)和控制信號,它具有如下一些特點:

結(jié)構(gòu)特點:存儲容量大,受輸出管腳數(shù)量限制,其存儲單元設(shè)計成矩陣形存儲結(jié)構(gòu),因此地址分為行地址和列地址,首先給出行地址選通一行(或一頁),然后給出列地址選中要訪問的地址單元;

采用電容存儲信息,因此需要定時充電(刷新);

同步訪問:所有信號都在時鐘上升沿采樣有效才認(rèn)為有效;

基于猝發(fā)(Burst)方式訪問:在發(fā)出一次讀寫命令之后,SDRAM 自動訪問長度為猝發(fā) 長度的地址空間,非Burst 訪問的效率很低;

速度快:只要 SDRAM 控制器合理設(shè)計時序,可以實現(xiàn)單周期訪問一個地址單元。 SDRAM 的基本操作包括:初始化、激活、預(yù)充電、刷新等等。

初始化:SDRAM 上電之后必須按照確定的程式進(jìn)行初始化之后才能正常工作,最主要 的操作是模式寄存器的設(shè)置;

激活:選中所要訪問的行列地址單元;

刷新:SDRAM 存儲單元載體為容量很小的電容并存在漏電流。需要定時讀取回填各 個單元才能保證數(shù)據(jù)不丟。在片內(nèi)有自動刷新控制器,記錄了刷新行地址,每執(zhí)行一次自 動刷新命令,刷新一行;

預(yù)充電:每次讀寫操作是通過傳感放大器對存儲單元電容的充放電過程,在讀操作時對 選中整行單元的原始數(shù)據(jù)可能產(chǎn)生破壞。這就需要在每次讀取操作后立即對該行原內(nèi)容 與閾值比較再回寫,并且對傳感放大器參考閾值電壓復(fù)位準(zhǔn)備下一次做讀寫操作。所以 總是在執(zhí)行換行讀寫或刷新之前執(zhí)行預(yù)充電操作。

3 SDRAM 控制器的基本功能

三端口非透明型 SDRAM 控制器是指控制器面向用戶端有三個端口而不是通常情況下 的一個端口,三個端口的功能完全一致,依靠仲裁控制切換端口與SDRAM 之間交換數(shù)據(jù), 數(shù)據(jù)交換采用DMA 的方式,流經(jīng)SDRAM 的數(shù)據(jù)流如圖1 所示。數(shù)據(jù)由C 端口輸入,A 端 口輸出,B 端口作為與DSP 的數(shù)傳通道。

采用Stratix系列FPGA器件實現(xiàn)可訪問三口RAM操作的SDRAM控制器設(shè)計

圖 1 三端口SDRAM 控制器的數(shù)據(jù)流向

這里透明型是指外部設(shè)備訪問 SDRAM 時,只需簡單讀寫而不需要進(jìn)行其它復(fù)雜的管 理操作,外部設(shè)備可以通過SDRAM 控制器將SDRAM 空間視為一個普通的同步三口RAM 操作。但是這種結(jié)構(gòu)不能靈活的實現(xiàn)地址跳變的訪問,隨機(jī)訪問的帶寬很低,三個端口再次 平均分配SDRAM 的帶寬會進(jìn)一步降低吞吐性能。所以,系統(tǒng)設(shè)計中采用了非透明型的設(shè) 計,非透明的意思是指:外部設(shè)備為了訪問SDRAM 的數(shù)據(jù),不但要進(jìn)行數(shù)據(jù)的讀寫操作,而且需要進(jìn)行寄存器設(shè)置、控制信號調(diào)整等其它操作。非透明型設(shè)計的靈活性較差,但是可 以根據(jù)具體的使用環(huán)境對功能進(jìn)行簡化,并且將一部分控制操作轉(zhuǎn)交給軟件完成,所以實現(xiàn) 相對比較簡單,而且更加穩(wěn)定可靠。

4 SDRAM 控制器的基本結(jié)構(gòu)及工作原理

三端口非透明型 SDRAM 控制器的結(jié)構(gòu)框圖如圖2 所示。A、B、C 三個端口的內(nèi)部結(jié) 構(gòu)完全相同,都包含一個雙口RAM(作為數(shù)據(jù)乒乓緩存),一個DMA 控制器。外部設(shè)備可以 通過端口讀寫DPRAM 中的數(shù)據(jù),也可以寫DMA 控制寄存器。DMA 控制器的功能是根據(jù) DMA 控制寄存器內(nèi)的設(shè)置在DPRAM 和SDRAM 之間交換數(shù)據(jù),當(dāng)DSP 或者其它外部設(shè)備 設(shè)置了寄存器后,DMA 控制器向仲裁和數(shù)據(jù)分配器發(fā)出訪問SDRAM 的請求,然后開始一 次DMA 操作。仲裁和數(shù)據(jù)分配器的功能是決定當(dāng)前哪一個端口具有訪問SDRAM 的權(quán)利。 SDRAM 時序控制器則負(fù)責(zé)產(chǎn)生操作SDRAM 必須的命令碼,并且傳遞數(shù)據(jù)。

采用Stratix系列FPGA器件實現(xiàn)可訪問三口RAM操作的SDRAM控制器設(shè)計

圖 2 三端口非透明型SDRAM 控制器的結(jié)構(gòu)

外部設(shè)備與 SDRAM 之間通過一個雙口RAM(DPRAM)進(jìn)行隔離。外部設(shè)備可以直 接讀寫DPRAM 的右側(cè)端口,也可以通過設(shè)置DMA 寄存器來啟動DPRAM 左側(cè)端口與 SDRAM 之間的DMA 操作。SDRAM 控制器的基本工作原理如下:

(1)寫操作:當(dāng)外部設(shè)備需要向SDRAM 寫數(shù)據(jù)時,首先將數(shù)據(jù)存入DPRAM,然后 啟動一個從DPRAM 到SDRAM 的DMA。

(2)讀操作:當(dāng)外部設(shè)備需要讀SDRAM 時,首先啟動一個從SDRAM 到DPRAM 的 DMA,等DMA 結(jié)束以后再從DPRAM 讀取數(shù)據(jù)。

(3)基于扇區(qū)的長度和地址控制:為了簡化DMA 控制器以及其它的控制邏輯,DPRAM 和SDRAM 之間的DMA 傳輸不是任意長度任意地址的DMA 傳輸,而是以扇區(qū)為基本數(shù)傳 單位。這里定義一個扇區(qū)的長度為SDRAM 中的一行(或者叫一個page)。每個DPRAM 則 順序劃分為2 個扇區(qū)。每次DMA 操作完成一個完整扇區(qū)數(shù)據(jù)的搬移。

(4)仲裁控制:當(dāng)兩個或是三個DMA 控制器同時請求訪問SDRAM 時,由仲裁控制 器根據(jù)優(yōu)先級規(guī)則進(jìn)行控制。設(shè)計中采用了輪換優(yōu)先級的方式,即:剛剛完成了一次DMA 操作的端口具有比較低的優(yōu)先級,當(dāng)前具有最高優(yōu)先級的端口有權(quán)占用SDRAM 直至本次 DMA 結(jié)束,這樣,就可以三個端口分時占用DMA 通道,保證三個端口之間平均的分配 SDRAM 的帶寬。

5 仲裁器的設(shè)計

仲裁及數(shù)據(jù)分配器的設(shè)計的核心問題是輪換優(yōu)先級的設(shè)計。必須保證三個端口分時占用 DMA 通道,保證平均分配帶寬。采用有限狀態(tài)機(jī)作為仲裁器的控制邏輯,這樣既可以保證 優(yōu)先級設(shè)計的穩(wěn)定性,又可以確保仲裁器判決的實時性,有限狀態(tài)機(jī)的設(shè)計如圖3 所示。

采用Stratix系列FPGA器件實現(xiàn)可訪問三口RAM操作的SDRAM控制器設(shè)計

圖 3 仲裁器的有限狀態(tài)機(jī)設(shè)計

設(shè)計中最復(fù)雜的情況是:一個通道訪問SDRAM 的同時(如A 通道),另外兩個通道同時 申請下一次訪問SDRAM(如B、C 通道),這樣就需要有一個標(biāo)志位,用它來記錄上一次訪 問過SDRAM 的通道,在下一次仲裁時把它排除在外,直到再下一次仲裁時才予以考慮。

每次DMA 結(jié)束后,都自動返回到IDLE 的狀態(tài),通過request 標(biāo)志位,上次DMA 通道記錄 位來判斷此次訪問SDRAM 的通道。具體設(shè)計如下:

設(shè)初始狀態(tài)下,默認(rèn)A 端口具有最高優(yōu)先級,然后A、B、C 三個端口具有輪換優(yōu)先級;

設(shè)置一個標(biāo)志位 old_request,表示上一次響應(yīng)的端口,“100”A 端口響應(yīng),“010”B 端 口響應(yīng),“001”C 端口響應(yīng);

利用一個標(biāo)志位 request[2:0]作為狀態(tài)翻轉(zhuǎn)的標(biāo)志;

利用標(biāo)志位 two_request,three_request 作為進(jìn)入兩個或三個端口同時請求狀態(tài)的標(biāo)志, two_request = ABC + ABC + ABC,three_request = ABC。

6 結(jié)論

本文利用 FPGA 設(shè)計并實現(xiàn)了一個相對專用的三端口非透明型SDRAM 控制器。本文 作者創(chuàng)新點在于:通過設(shè)計一個帶輪換優(yōu)先級設(shè)置的多端口SDRAM 控制器,采用乒乓的 DMA 傳輸機(jī)制,將復(fù)雜的SDRAM 訪問虛擬成一個簡單的三口RAM 的訪問,具有訪問簡 單、控制靈活、傳輸帶寬大等特點。已在某雷達(dá)信號存儲與預(yù)處理系統(tǒng)中成功應(yīng)用。

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

    關(guān)注

    1629

    文章

    21736

    瀏覽量

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

    關(guān)注

    112

    文章

    16361

    瀏覽量

    178072
  • 雷達(dá)
    +關(guān)注

    關(guān)注

    50

    文章

    2936

    瀏覽量

    117533
收藏 人收藏

    評論

    相關(guān)推薦

    SDRAM與雙RAM數(shù)據(jù)轉(zhuǎn)移接口控制電路

    和后仿真。以上介紹了一種應(yīng)用于通用微處理系統(tǒng)中的SDRAM與雙RAM之間的數(shù)據(jù)轉(zhuǎn)移接口控制電路,由VHDL語言設(shè)計,用Xilinx公司4
    發(fā)表于 06-10 05:00

    如何使用Verilog實現(xiàn)基于FPGASDRAM控制器?

    本文提出了一種基于FPGASDRAM控制器的設(shè)計方法,并用Verilog給于實現(xiàn),仿真結(jié)果表明通過該方法設(shè)計實現(xiàn)
    發(fā)表于 04-15 06:46

    基于FPGA端口非透明型SDRAM控制器

    本文采用Altera 公司的Stratix 系列FPGA 實現(xiàn)了一個端口非透明型
    發(fā)表于 03-03 14:37 ?11次下載

    SDRAM控制器的設(shè)備與VHDL實現(xiàn)

    摘要: 介紹了SDRAM的存儲體結(jié)構(gòu)、主要控制時序和基本操作命令,并且結(jié)合實際系統(tǒng),給出了一種用FPGA實現(xiàn)的通用
    發(fā)表于 06-20 12:51 ?921次閱讀
    <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)備與VHDL<b class='flag-5'>實現(xiàn)</b>

    使用Verilog實現(xiàn)基于FPGASDRAM控制器

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

    采用FPGA與IP來實現(xiàn)DDR RAM控制和驗證的方法

    DDR SDRAM的接口特性:其輸入輸出引腳與SSTL-Ⅱ電氣特性兼容,內(nèi)部提供了DDR觸發(fā)、鎖相環(huán)等硬件資源。使用這些特性,可以比較容易地設(shè)計性能可靠的高速DDR RAM控制器。本
    發(fā)表于 11-24 16:00 ?3987次閱讀
    <b class='flag-5'>采用</b><b class='flag-5'>FPGA</b>與IP來<b class='flag-5'>實現(xiàn)</b>DDR <b class='flag-5'>RAM</b><b class='flag-5'>控制</b>和驗證的方法

    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器件實現(xiàn)對DDR SDRAM控制

    實現(xiàn)數(shù)據(jù)的高速大容量存儲是數(shù)據(jù)采集系統(tǒng)中的一項關(guān)鍵技術(shù)。本設(shè)計采用Altera 公司Cyclone系列FPGA 完成了對DDR SDRAM
    的頭像 發(fā)表于 08-14 08:00 ?3753次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>器件</b><b class='flag-5'>實現(xiàn)</b>對DDR <b class='flag-5'>SDRAM</b>的<b class='flag-5'>控制</b>

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

    本文檔的主要內(nèi)容詳細(xì)介紹的是FPGA讀寫SDRAM的實例和SDRAM的相關(guān)文章及一些SDRAM控制器設(shè)計論文主要包括了:
    發(fā)表于 12-25 08:00 ?56次下載
    <b class='flag-5'>FPGA</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ā)式操作進(jìn)行研究的基礎(chǔ)上,提出一種簡易SD
    發(fā)表于 12-18 16:13 ?6次下載
    如何使用<b class='flag-5'>FPGA</b>設(shè)計<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>

    基于FPGA的DDR3SDRAM控制器設(shè)計及實現(xiàn)簡介

    基于FPGA的DDR3SDRAM控制器設(shè)計及實現(xiàn)簡介(arm嵌入式開發(fā)平臺PB)-該文檔為基于FPGA的DDR3
    發(fā)表于 07-30 09:05 ?7次下載
    基于<b class='flag-5'>FPGA</b>的DDR3<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設(shè)計及<b class='flag-5'>實現(xiàn)</b>簡介

    基于FPGASDRAM控制器的設(shè)計與實現(xiàn)簡介

    基于FPGASDRAM控制器的設(shè)計與實現(xiàn)簡介(嵌入式開發(fā)工程師和基層公務(wù)員)-該文檔為基于FPGAS
    發(fā)表于 07-30 09:34 ?11次下載
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>的設(shè)計與<b class='flag-5'>實現(xiàn)</b>簡介

    基于FPGA的DDR3SDRAM控制器設(shè)計及實現(xiàn)

    基于FPGA的DDR3SDRAM控制器設(shè)計及實現(xiàn)(嵌入式開發(fā)式入門)-該文檔為基于FPGA的DDR3SD
    發(fā)表于 07-30 13:07 ?37次下載
    基于<b class='flag-5'>FPGA</b>的DDR3<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>設(shè)計及<b class='flag-5'>實現(xiàn)</b>

    實時視頻SDRAM控制器FPGA設(shè)計與實現(xiàn).zip

    實時視頻SDRAM控制器FPGA設(shè)計與實現(xiàn)
    發(fā)表于 12-30 09:21 ?3次下載

    fpgaram的使用

    FPGARAM的使用主要涉及配置和使用雙端口RAM模塊。雙端口RAM的特點是有兩組獨立的端口,可以對同一存儲塊進(jìn)行讀寫
    的頭像 發(fā)表于 03-15 13:58 ?1010次閱讀