新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA 的DDR SDRAM控制器在高速數據采集系統中

        基于FPGA 的DDR SDRAM控制器在高速數據采集系統中

        作者: 時間:2012-11-05 來源:網絡 收藏

        實現數據的高速大容量存儲是數據采集系統中的一項關鍵技術。本設計采用Altera 公司Cyclone系列的 完成了對 的控制,以狀態機來描述對 的各種時序操作,設計了 的數據與命令接口。用控制核來簡化對DDR SDRAM 的操作,并采用自頂至下模塊化的設計方法,將控制核嵌入到整個數據采集系統的控制模塊中,完成了數據的高速采集、存儲及上傳。使用開發軟件Quartus II 中內嵌的邏輯分析儀SignalTap II 對的工作流程進行了驗證和調試。最終采集到的數據波形表明,完成了對DDR SDRAM 的突發讀寫操作,達到了預期設計的目標。

        本文引用地址:http://www.104case.com/article/189786.htm

        DDR SDRAM 是Double Data Rate SDRAM 的縮寫,即雙倍速率同步動態隨機存儲器。

        DDR 內存是在SDRAM 內存基礎上發展而來的,能夠在時鐘的上升沿和下降沿各傳輸一次數據,可以在與SDRAM 相同的總線時鐘頻率下達到更高的數據傳輸率。本設計中采用Altera 公司Cyclone 系列型號為EP1C6Q240C8 的 實現,以Hynix 公司生產的型號為HY5DU121622B(L)TP 的DDR SDRAM 為存儲器,完成了對數據的高速大容量存儲。

        1 DDR SDRAM 的控制原理及存儲功能的實現

        DDR SDRAM 支持的常用命令有7 種:空操作(NOP)、激活操作(Active)、突發讀(BurstRead)、突發寫(Burst Write)、自動刷新(Autorefresh)、預充電(Precharge)、模式寄存器配置(Mode Register Set)。所有的操作命令都是通過信號線RAS_N、CAS_N、WE_N 共同控制來實現的。在對DDR SDRAM 進行存取數據操作之前,首先要對其初始化,即設置DDR SDRAM的普通模式寄存器和擴展模式寄存器,確定DDR SDRAM 的工作方式,這些設置包括突發長度、突發類型、CAS 潛伏期和工作模式以及擴展模式寄存器中的對DDR SDRAM 內部延遲鎖定回路(DLL)的使能與輸出驅動能力的設置。

        初始化完成之后,DDR SDRAM 便進入正常的工作狀態,此時便可對存儲器進行讀寫和刷新。DDR SDRAM 在一對差分時鐘的控制下工作。命令(地址和控制信號)在每個時鐘的上升沿被觸發。隨著數據DQ 一起傳送的還包括一個雙向的數據選通信號DQS,接收方通過該信號來接收數據。DQS 作為選通信號在讀周期中由DDR SDRAM 產生,在寫周期中由存儲器的產生。該選通信號與數據相關,其作用類似于一個獨立的時鐘,并滿足相應的時序要求。由于DDR SDRAM 的數據接口在時鐘的兩個沿的觸發下工作,其數據寬度是存儲器數據寬度的一半。為實現數據的大容量存儲,設計時采用的是一個控制核同時對兩片DDR SDRAM 進行操作,外接數據線的寬度由單片DDR SDRAM 的16 位擴展到32位。

        對DDR SDRAM 的讀和寫操作是基于突發的,即從一個選定的地址單元開始,連續存取已設置長度的地址單元,該長度就是所謂的突發長度。DDR SDRAM 提供的可編程的讀或寫的突發長度為2,4 或8。數據的存取以一個激活命令(Active)開始,接著便是讀(BurstRead)或寫(Burst Write)命令。與激活命令一起被觸發的地址位用來選擇將要存取的區和頁(或行),與讀或寫命令一起被觸發的地址位用來選擇突發存取的起始列單元。讀命令被觸發后,數據將在1.5~3 個時鐘周期之后出現在數據總線上。這個延遲就是所謂的CAS 潛伏期(CAS latency),即從DDR SDRAM 內核讀出數據到數據出現在數據總線上所需要的時間。CAS 潛伏期的大小與SDRAM 的速度和存儲器的時鐘頻率有關。當要存取一個不同行的地址單元時,需要通過一個預充電(Precharge)操作關閉當前行。

        自動刷新(Autorefresh)命令用來周期性地刷新DDR SDRAM,以保持其內部的數據不丟失。2 DDR SDRAM 控制器的設計DDR SDRAM 控制器的功能包括:

        (1)初始化DDR SDRAM;

        (2)簡化DDR SDRAM的讀寫時序;

        (3)將DDR SDRAM 接口的雙時鐘沿數據轉換為單時鐘沿數據,使得對DDR SDRAM 的操作類似于普通RAM;

        (4)控制器還要產生周期性的刷新命令來維持DDR SDRAM 內的數據而不丟失。其控制轉換圖如圖1 所示。

        在對DDR SDRAM 初始化完成之后,就可進行讀、寫或其他操作。在執行讀(寫)命令之前,先要激活將要讀(寫)的行,之后便可對該行進行突發讀(寫)。在控制器的設計中,所有的讀寫命令都是不帶預充電的,因此,某一行被激活之后將一直處于激活狀態,直到用戶發送突發終止命令,此時控制器將自動產生一個預充電命令來關閉當前行。這樣,某一行被激活之后用戶便可進行連續的突發讀(寫)操作,從而節省了每次突發讀寫所需要的激活時間,提高了系統的數據吞吐率。


        上一頁 1 2 3 4 下一頁

        關鍵詞: SDRAM FPGA DDR 控制器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 馆陶县| 通河县| 焦作市| 浑源县| 灵武市| 达州市| 静乐县| 新安县| 三原县| 鸡泽县| 山西省| 信宜市| 拜城县| 丰宁| 霍州市| 鸡泽县| 伊春市| 宜兴市| 客服| 马边| 临夏市| 广东省| 聊城市| 通榆县| 梅河口市| 平陆县| 山东| 雷州市| 仙居县| 高台县| 浦县| 环江| 澄迈县| 玛沁县| 内乡县| 惠水县| 三都| 柳河县| 田阳县| 宜川县| 延庆县|