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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PDMA在測試SDRAM控制器中的應(yīng)用

          PDMA在測試SDRAM控制器中的應(yīng)用

          作者: 時間:2011-12-28 來源:網(wǎng)絡(luò) 收藏

          我們設(shè)計了一個(Programmable Direct Mem o ry Access)用于的性能。在SoC中,往往跟多個IP模塊(圖形處理單元,音頻處理單元等)交換數(shù)據(jù),采用多個通道同時訪問Memory可以真實模擬在SoC環(huán)境中被多個IP隨機訪問的情形。

          2 的結(jié)構(gòu)及工作原理

          PDMA是可編程直接存儲器存取的簡稱。圖1 虛中框內(nèi)是PDMA的內(nèi)部模塊結(jié)構(gòu),它主要由寄存器組和控制器兩大部分構(gòu)成,寄存器組用于保存配置參數(shù)和PDMA對SDRMA控制器訪問后的狀態(tài)信息及接收、啟動、停止等控制信息。圖2是 PDMA寄存器組的內(nèi)部結(jié)構(gòu)。

          本文引用地址:http://www.ex-cimer.com/article/149930.htm


          寄存器組模塊里包含了一個同步模塊、控制寄存器、狀態(tài)寄存器和各通道的寄存器組。每一個子通道的寄存器組又包含訪問基址寄存器、訪問模式寄存器、周期計數(shù)器等三個寄存器。各寄存器的功能描述如表1所示。


          PDMA的控制器主要由:產(chǎn)生寫數(shù)據(jù)的狀態(tài)機、地址譯碼模塊、FIFO以及讀數(shù)據(jù)校驗?zāi)K四部分構(gòu)成。各模塊的功能由表2描述。


          PDMA控制器的結(jié)構(gòu)如圖3所示,其核心邏輯是一個狀態(tài)機,我們采用一個兩層嵌套的狀態(tài)機來實現(xiàn)控制功能,如圖4所示。


          3 系統(tǒng)的結(jié)構(gòu)和工作原理

          在本設(shè)計中,PDMA用于仿真多個IP核對SDRAM控制器進行讀寫訪問以驗證SDRAM控制器的設(shè)計是否高效合理,性能是否穩(wěn)定等指標(biāo)。
          PDMA整個系統(tǒng)由PCI接口模塊、PDMA 以及SDRAM控制器三大部分構(gòu)成(見圖1)。PCI接口模塊與PDMA之間以內(nèi)部IO總線相連接。 PDMA與SDRAM控制器之間以內(nèi)部Memory總線連接。PCI接口模塊連接外部PCI總線與內(nèi)部的 PDMA,轉(zhuǎn)換由外部發(fā)起的PCI IO訪問對PDMA進行參數(shù)配置以及對命令、狀態(tài)等寄存器進行讀寫。PDMA在得到了配置參數(shù)及啟動訪問的命令信息后啟動對SDRAM控制器的訪問(寫然后讀),并把測試的結(jié)果反映到PDMA的狀態(tài)寄存里。

          測試用PDMA的具體工作過程如下:

          (1)PCI接口模塊對PDMA各通道進行參數(shù)配置(如訪問長度、訪問基址、訪問方式等);
          (2)PCI接口模塊寫PDMA的控制寄存器,啟動對SDRAM的讀寫;
          (3)PCI接口模塊讀PDMA的狀態(tài)寄存器,探測訪問是否完成,如完成,則讀取完成后的狀態(tài)信息(如錯誤位,發(fā)生錯誤的地址)。

          上一頁 1 2 下一頁

          關(guān)鍵詞: 應(yīng)用 控制器 SDRAM 測試 PDMA

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();