<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于AMBA-AHB總線的SDRAM控制器的計方案

          基于AMBA-AHB總線的SDRAM控制器的計方案

          作者: 時間:2013-12-31 來源:網(wǎng)絡 收藏

            0 引言

            隨著大規(guī)模集成電路和高速、低功耗、高密度存儲技術的發(fā)展,SDRAM動態(tài)存儲器因容量大、速度快、價格低廉等優(yōu)點,現(xiàn)已成為PC內(nèi)存的主流。然而SDRAM存儲器內(nèi)部控制邏輯十分復雜,時序要求也非常嚴格,因此需要設計專門的SDRAM 控制器來實現(xiàn)系統(tǒng)對SDRAM的訪問。

            存儲控制器是嵌入式微處理器中與片外存儲設備之間的接口,完成總線主設備(CPU或DMA)與片外存儲設備(SDRAM或SRAM)的數(shù)據(jù)傳輸,其功能與性能決定著嵌入式微處理器所支持的外部存儲器的類型以及外部存儲器的訪問速度,進而決定著整個嵌入式系統(tǒng)的處理速度。AMBA總線規(guī)范成為嵌入了式微處理器內(nèi)片上總線的標準,設計基于AMBA總線標準,支持嵌入式系統(tǒng)常用存儲器類型的存儲控制器IP具有非常大的現(xiàn)實意義。

            1 AMBA 總線簡介

            典型的基于AMBA總線的微控制器架構(gòu)如圖1所示。

            

            它包含一個作為系統(tǒng)骨架的AHB(Advanced High-Performance Bus)或ASB總線,可實現(xiàn)CPU或DMA模塊與片外存儲器之間的大量數(shù)據(jù)通信,以獲得大的帶寬。

            另外,在這條高性能總線上還有一個橋接器以連接低帶寬的APB,而在APB上連接著大多數(shù)的系統(tǒng)外設。用戶可以各自獨立設計基于這個規(guī)范的微處理器以及外圍IP,提高了系統(tǒng)的開發(fā)效率及模塊的可重用型[6].

            其中,AHB 總線是一種支持多總線主機的高性能總線,用于高性能、高時鐘頻率的系統(tǒng),它保證了處理器與片外存儲器的有效連接。一個完整的AHB傳輸過程可以分為地址傳輸階段和數(shù)據(jù)傳輸階段,地址傳輸階段傳輸?shù)刂泛涂刂菩盘枺鴶?shù)據(jù)傳輸階段傳輸?shù)氖亲x寫數(shù)據(jù)和響應信號。AHB 總線支持流水線傳輸,也就是說在前一個數(shù)據(jù)傳輸階段可以同時進行下一個地址傳輸階段,前后不同的傳輸階段可以重疊起來以提高系統(tǒng)的數(shù)據(jù)處理速度。

            2 SDRAM 工作原理

            SDRAM 是一種高速高容量同步動態(tài)存儲器,相比于SRAM 等靜態(tài)存儲器具有容量大、速度快、價格低廉等優(yōu)點,成為圖像處理中常用的數(shù)據(jù)存儲器。但因SDRAM存儲結(jié)構(gòu)的特殊性,需要對SDRAM不斷進行預充電、刷新等操作以保持數(shù)據(jù)不丟失。SDRAM 內(nèi)部的操作是通過總線命令實現(xiàn)的,命令由RASN、CASN 和WEN信號聯(lián)合產(chǎn)生,如表1所示(H表示高電平,L表示低電平)。


          上一頁 1 2 3 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();