新聞中心

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

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

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

        3.2 各模塊結構圖

        系統的頂層文件DATA_SAMPLE 的結構如圖5 所示, 內置的主要有前端緩存模塊DATATO_RAM、后端緩存模塊TO_LD 和 的控制模塊。從數據流程上看,前端緩存將雙路AD 采集到的數據合并成64 位,當緩存中的數據達到設定的存儲深度時,控制模塊在100MHz 的時鐘下將數據讀出,并將64 位數據拆分成32 位分別存儲到兩片 SDRAM 中。進入到讀狀態時,控制模塊同時從兩片DDR SDRAM 中讀出32位的數據,根據用戶所選擇的數據通道,控制邏輯將相應的數據送入后端緩存中,后端緩存再將數據拆分成16 位,通過PCI 局部總線傳送到上位機中。從控制流程上看,DATATO_RAM和TO_LD 中都設置了數據計數器,當DATATO_RAM 中存儲的數據量超過設定值時,讀使能RDEN 有效,控制模塊從緩存中一次讀走4 個數據。后端緩存的控制方式與此類似。

        控制模塊SDRAM 由兩部分組成,其結構如圖6 所示。其中ADDR 為地址產生模塊,給控制核ddr_sdram 提供數據操作的行地址和列地址。控制核ddr_sdram 完成的功能包括將內部狀態轉換產生的CMD 控制命令譯碼成DDR SDRAM 所能實現的各種操作并實現以雙倍的速率與DDR SDRAM 進行數據交換的接口。ddr_sdram 的結構框圖如圖7 所示。

        控制核ddr_sdram 采用自頂而下模塊化的設計方法,由4 個模塊構成:ddr_sdram 頂層模塊、控制接口模塊、命令模塊和數據路徑模塊。ddr_sdram 頂層模塊初始化并把其余三個模塊有機地結合起來;控制接口模塊接收CMD 命令和相關存儲器地址,對命令進行譯碼并將請求發送給命令模塊;命令模塊接收從控制接口模塊譯碼后的命令和地址,產生相應的命令給DDR SDRAM;數據路徑模塊在讀命令READA 和寫命令WRITEA 期間處理數據交換??刂平涌谀K包含1 個命令譯碼器和1 個16 位的刷新減計數器及相應的控制電路。 命令譯碼器譯碼并將譯碼后的命令及相應的地址轉送給命令模塊。減計數器和相應的控制電路用來產生刷新命令給命令模塊。其值就是由LOAD_REG2 命令寫入到REG2 中的值。當計數器減到0 時,控制接口模塊就向命令模塊發Request 并一直保持到命令模塊發Ack 來響應該請求。一旦控制接口模塊接收到Ack,減計數器就會重新寫入REG2 中的值。命令模塊由1 個簡單的仲裁器、命令發生器及命令時序器組成。它接收從控制接口模塊來的譯碼后的命令,同時接收刷新控制邏輯發來的刷新請求命令并產生正確的命令給DDR SDRAM。仲裁器在控制接口發來的命令和刷新控制邏輯發來的刷新請求命令之間進行仲裁。刷新請求命令的優先級高于控制接口來的命令。

        在仲裁器收到命令譯碼器發來的命令后,該命令就傳送到命令發生器,命令時序器即用3 個移位寄存器產生正確的命令時序后發給DDR SDRAM。1 個移位寄存器用來控制激活命令時序,1 個用來控制READA 和WRITEA命令,1 個用來計時操作命令的持續時間,為仲裁器確定最后的請求操作是否完成。數據路徑模塊提供了DDR SDRAM 到 的數據通道。在和DDR SDRAM 接口的一方,數據路徑模塊將從DDR SDRAM 過來的數據總線寬度翻倍,并在200MHz 的時鐘頻率接收DDR SDRAM 在100MHz 時鐘的上下沿送出的數據。在和 接口的一方,數據路徑模塊將從FPGA 送來的數據寬度減半并以2 倍的速率送給DDR SDRAM。4 系統實現的功能及結果分析邏輯分析儀SignalTap II 是Quartus II 軟件中集成的一個內部邏輯分析軟件,使用它可以觀察本設計的內部信號波形。在系統的軟件設計和仿真完成之后,將編譯后的文件下載到系統的硬件中,對DDR SDRAM 的狀態轉移和讀寫流程中各個信號進行了實時的采集與顯示。

        如圖8 所示,是讀數據時嵌入式邏輯分析儀采集到的波形圖。第9 行到第15行的信號顯示的是讀流程中各狀態之間的切換過程。讀命令發出之后,經過CAS 潛伏期,DDR SDRAM 突發傳輸8 個數據,并產生選通信號DQS??刂破髟谧x到數據線DQ 上的數據后,將數據寬度加倍,傳送到后端緩存中。



        關鍵詞: SDRAM FPGA DDR 控制器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 景宁| 新邵县| 桦甸市| 五莲县| 库伦旗| 濮阳市| 浦县| 炉霍县| 四川省| 蕉岭县| 泰宁县| 阿拉善盟| 苏尼特右旗| 成都市| 福清市| 杭锦后旗| 玉屏| 揭阳市| 宁国市| 遂宁市| 昌图县| 衡南县| 景宁| 武义县| 红安县| 曲麻莱县| 宁安市| 黔西县| 咸阳市| 河曲县| 磐石市| 宣城市| 渑池县| 南雄市| 梅州市| 湖口县| 张家口市| 闽侯县| 卢龙县| 榆中县| 宜章县|