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

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

3天內不再提示

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

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

引言

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

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

2 SDRAM 的特點及其基本操作

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

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

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

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

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

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

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

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

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

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

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控制器設計

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

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

4 SDRAM 控制器的基本結構及工作原理

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

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

圖 2 三端口非透明型SDRAM 控制器的結構

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

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

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

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

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

5 仲裁器的設計

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

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

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

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

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

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

設置一個標志位 old_request,表示上一次響應的端口,“100”A 端口響應,“010”B 端 口響應,“001”C 端口響應;

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

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

6 結論

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

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

    關注

    1625

    文章

    21620

    瀏覽量

    601239
  • 控制器
    +關注

    關注

    112

    文章

    16103

    瀏覽量

    177078
  • 雷達
    +關注

    關注

    50

    文章

    2872

    瀏覽量

    117166
收藏 人收藏

    評論

    相關推薦

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

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

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

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

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

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

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

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

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

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

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

    DDR SDRAM的接口特性:其輸入輸出引腳與SSTL-Ⅱ電氣特性兼容,內部提供了DDR觸發(fā)、鎖相環(huán)等硬件資源。使用這些特性,可以比較容易地設計性能可靠的高速DDR RAM控制器。本
    發(fā)表于 11-24 16:00 ?3947次閱讀
    <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控制器的設計

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

    基于FPGA器件實現(xiàn)對DDR SDRAM控制

    實現(xiàn)數(shù)據(jù)的高速大容量存儲是數(shù)據(jù)采集系統(tǒng)中的一項關鍵技術。本設計采用Altera 公司Cyclone系列FPGA 完成了對DDR SDRAM
    的頭像 發(fā)表于 08-14 08:00 ?3698次閱讀
    基于<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的相關文章及一些SDRAM控制器設計論文

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

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

    基于FPGA的DDR3SDRAM控制器設計及實現(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>設計及<b class='flag-5'>實現(xiàn)</b>簡介

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

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

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

    基于FPGA的DDR3SDRAM控制器設計及實現(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>設計及<b class='flag-5'>實現(xiàn)</b>

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

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

    fpgaram的使用

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