• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式系統中DRAM控制器的CPLD解決方案

    嵌入式系統中DRAM控制器的CPLD解決方案

    作者: 時間:2010-01-25 來源:網絡 收藏
    二、80C186XL 的設計與運行

    本文引用地址:http://www.czjhyjcfj.com/article/152121.htm

      存在著大量、復雜的時序要求,其中訪問時間的選擇、等待狀態以及刷新方法是至關重要的。必須正確響應80C186XL的所有總線周期,必須能將DRAM的部周期和其它訪問周期分辨出來,其訪問速度必須足夠快,以避免不必要的等待周期。

      在設計時,我們采用XC95C36-15 [2]以及4Mbits的V53C8258[3]DRAM作范例。15ns的,速度相對較高,價格比較便宜。用它設計成的DRAM允許80C186XL的工作速度高達20MHz,并且XC95C36有異步時鐘選擇項。這種特性對本設計有很大的好處。

      圖3是80C186XL DRAM控制器和存儲器的功能框圖。

    嵌入式系統中DRAM控制器的CPLD解決方案

      DRAM控制器由80C186XL狀態信號S2、S1和S0的解碼來檢測總線的開始、類型和結束。這些狀態線是在CLKOUT的上升沿開始有效,在CLKOUT的下降沿失效的。DRAM控制器發出的RAS和CAS信號應該在CLKOUT的下降沿同時有效,行列地址應該在CLKOUT上升沿附近提供。

      DRAM控制器應該在CLKOUT的兩個沿都應能正常操作。通過啟用XC95C36的異步時鐘選擇項,每個XC95C36宏單元可以從可編程與陣列獲得時鐘。DRAM控制器使用80C186XL的CLKOUT信號作時鐘輸入。

      DRAM控制器主要由兩個相互聯的狀態機構成。這兩個狀態機,使得DRAM的控制與80C186XL是否進行等待狀態無關。狀態機A和地址多路控制信號(MUX)在CLKOUT的上升沿鎖存。狀態機B和RAS及CAS的邏輯在CLKOUT的下降沿鎖存。DRAM控制器完整的VHDL語言的源代碼可Email給cnhsx@sina.com索取。

      DRAM控制器的狀態圖如圖4所示,狀態機A和B的起始條件分別是A0和B0。狀態機A初始化DRAM控制器的序列,狀態機B終止該序列。

      在T2的下降沿,RAS邏輯采樣狀態機A的狀態,鎖存的地址線和總經狀態信號。如果狀態機A在A1狀態(存儲器讀、寫或刷新周期)并且總線周期為DRAM使用,則XC95C36插入RAS信號。

      在T2的上升沿,狀態機A也采樣鎖存的地址線。如果總線周期被DRAM占用,狀態機A將從狀態A1轉移到A2,否則狀態機A轉換到A3。至此控制轉移到狀態機B。MUX邏輯采樣RAS和BHE引腳的狀態。如果RAS有效(指示DRAM在訪問),并且總線周期下是刷新周期,XC95C36將插入MUX。MUX在行列地址之間切換,以便進行DRAM的讀寫操作。

      在T3的下降沿,狀態機B采樣狀態機A。如果狀態機A處于狀態A2(DRAM訪問)或狀態A3(存儲器讀或寫,但不是DRAM訪問),狀態機B從狀態B0轉到B1。如果總線周期是一個DRAM訪問周期,XC95C36繼續保持RAS有效。CAS邏輯采樣MUX的狀態、鎖存地址A0、BHE和總線周期狀態。如果MUX有效(指示DRAM讀或寫),并且訪問低字節,則XC95C36插入LCAS;如果MUX有效,并且微處理器訪問高字節,XC95C36插入UCAS。DRAM讀訪問和DRAM刷新訪問不同之處在于:對刷新來說,不需要MUX、UCAS和LCAS。

      在T3的上升沿,狀態機A等待狀態機B中斷此序列。如果MUX有效(DRAM讀或寫),它將保持有效。

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


    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 准格尔旗| 甘德县| 鹿邑县| 西丰县| 闽清县| 汽车| 鹤峰县| 常熟市| 疏勒县| 仁寿县| 靖州| 错那县| 贵德县| 伊宁县| 体育| 天长市| 调兵山市| 内乡县| 贵定县| 黄浦区| 商城县| 辽中县| 界首市| 鄂托克旗| 南投县| 长丰县| 洪泽县| 长宁县| 东莞市| 富源县| 九江县| 通河县| 建水县| 宁国市| 通渭县| 南宫市| 普宁市| 东乡族自治县| 肥乡县| 邛崃市| 武隆县|