關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > SDRAM通用控制器的FPGA模塊化設計

        SDRAM通用控制器的FPGA模塊化設計

        ——
        作者:天津大學精密儀器與光電子工程學院生物醫學工程系 李剛 李智 時間:2007-09-10 來源:中電網 收藏
        引言

              
        同步動態隨機存儲器(),在同一個CPU時鐘周期內即可完成數據的訪問和刷新,其數據傳輸速度遠遠大于傳統的數據存儲器(DRAM),被廣泛的應用于高速數據傳輸系統中。基于控制器,以其可靠性高、可移植性強、易于集成的特點,已逐漸取代了以往的專用控制器芯片而成為主流解決方案。然而,復雜的控制邏輯和要求嚴格的時序,成為開發過程中困擾設計人員主要因素,進而降低了開發速度,而且大多數的基于的SDRAM控制器都是針對特定的SDRAM芯片進行設計,無法實現控制器的通用性。本文介紹一種通用SDRAM控制器的模塊化解決方案。

               SDRAM控制邏輯復雜,命令種類多樣,需要周期性刷新操作、行列管理的等多重操作。

               SDRAM首先要進行初始化操作。在上電后等待100ns, 至少執行1條空操作,然后對所有頁執行預充電操作,接著向各頁發出兩條刷新操作指令,最后執行SDRAM工作模式的設定LMR命令用來配置SDRAM工作模式寄存器。SDRAM工作寄存器可以根據具體應用的需要進行設置。

               初始后的SDRAM在得到了RAS、CAS、WE的值后開始執行相應的命令。在對SDRAM進行讀、寫過程中,必須要先進行頁激活ACT操作,保證存儲單元是打開的,以便從中讀取地址或者寫入地址,然后通過預充電PHC命令實現來關閉存儲單元。在進行寫操作時,內部的列地址和數據都會被寄存,而進行讀操作時,內部地址被寄存,數據的存儲則發生在CAS延遲時間(通常為1~3個時鐘周期)后。最后,操作終止:當SDRAM順次的進行讀、寫操作后,當到達到突發長度或者突發終止指令BT出現時,SDRAM將終止其操作。

               模塊化的SDRAM控制器設計

              
        在SDRAM控制器的FPGA實現方案中,采用了:FPGA的自底向上的模塊化設計思想,首先分析頂層模塊的功能,再將其功能分類細化,分配到不同的子模塊去實現,然后自底向上的先逐步完成各個子模塊的設計,最后將子模塊相互連接生成頂層模塊。經過分析,SDRAM控制器應實現的功能有:為SDRAM提供刷新控制以保持SDRAM中的數據;對主機的命令進行仲裁,將下一步要執行的命令翻譯成可與SDRAM連接的信號;為SDRAM的讀、寫生成數據路徑。因此,根據SDRAM的指令操作特點將SDRAM控制器劃分為接口控制模塊、命令生成模塊和數據路徑模塊三個主要模塊(圖1)。

        SDRM控制器的FPGA模塊化設計

               下面,對其接口信號進行介紹,需要注意的是,為了實現該控制器的通用性,ADDR、DATAIN、DATAOUT、DQ、DOM信號設計成可根據SDRAM的容量改變的形式。

               與主機接口信號:CLK(系統時鐘);RESET(系統復位);CMD[2:0](譯碼指令);CMDACK(指令應答信號);ADDR[ASIZE-1:0】(地址線);DATAIN/DATAOU[DSIZE-1:0](輸入、輸出數據總線);DM[(DSIZE/8)-1:0】(數據掩碼)。

               與SDRAM接口信號:SA(地址線);BA(頁地址);CS-N(片選信號);CKE(時鐘使能信號);RAS、CAS、WE(命令控制信號);DQM[(DSIZE/8)-1:0](SDRAM數據掩碼);DQ[DSIZE-1:0】(雙向數據線)。

            各個模塊的設計與實現

               接口控制模塊

              
        接口控制模塊主要實現的功能是將CMD[2:0]翻譯成接口指令和對刷新計數器的控制指令。接口模塊在工作過程中首先通過要通過狀態機來完成對CMD[2:0]的翻譯。在VHDL程序中聲明一個用戶自定義類型states,根據CMD[2:0】輸入來決定狀態的轉移,完成對CMD[2:0】的解碼,部分代碼如下:
                

               另外,SDRAM需要周期性刷新操作以保持數據。在模塊的程序設計中,刷新周期的控制通過一個計數器來完成,到達規定的計數周期數時,接口模塊通過REF_REQ信號向SDRAM發出刷新請求。直到SDRAM完成刷新操作,發出REF_AcK刷新應答信號,計數器才重新賦值,開始下一次的計數。

               命令生成模塊

              
        命令生成模塊實現對輸入的SDRAM指令請求進行仲裁判斷的功能,并將仲裁后要執行的指令解碼成sDRAM需要的RAS、CAS等信號,從而實現指令對SDRAM的控制。仲裁機制是SDRAM控制器設計不可或缺的一個環節。仲裁機制實現要遵循如下規則:

              

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 临湘市| 台山市| 青田县| 当阳市| 依安县| 阿城市| 汕头市| 遂川县| 新泰市| 内黄县| 汝阳县| 广元市| 通海县| 永泰县| 西青区| 宁安市| 乌兰察布市| 来安县| 广水市| 邹城市| 蛟河市| 龙陵县| 平安县| 安徽省| 化州市| 平乡县| 德庆县| 聂荣县| 涿州市| 汽车| 潍坊市| 铜梁县| 工布江达县| 札达县| 抚松县| 昌江| 岚皋县| 岐山县| 嘉禾县| 平谷区| 保靖县|