PDMA在測試SDRAM控制器中的應用
我們設計了一個(gè)PDMA(Programmable Direct Mem o ry Access)用于測試SDRAM控制器的性能。在SoC中,SDRAM控制器往往跟多個(gè)IP模塊(圖形處理單元,音頻處理單元等)交換數據,采用多個(gè)PDMA通道同時(shí)訪(fǎng)問(wèn)Memory可以真實(shí)模擬SDRAM控制器在SoC環(huán)境中被多個(gè)IP隨機訪(fǎng)問(wèn)的情形。
2 PDMA的結構及工作原理
PDMA是可編程直接存儲器存取的簡(jiǎn)稱(chēng)。圖1 虛中框內是PDMA的內部模塊結構,它主要由寄存器組和控制器兩大部分構成,寄存器組用于保存配置參數和PDMA對SDRMA控制器訪(fǎng)問(wèn)后的狀態(tài)信息及接收、啟動(dòng)、停止等控制信息。圖2是 PDMA寄存器組的內部結構。
寄存器組模塊里包含了一個(gè)同步模塊、控制寄存器、狀態(tài)寄存器和各通道的寄存器組。每一個(gè)子通道的寄存器組又包含訪(fǎng)問(wèn)基址寄存器、訪(fǎng)問(wèn)模式寄存器、周期計數器等三個(gè)寄存器。各寄存器的功能描述如表1所示。
PDMA的控制器主要由:產(chǎn)生寫(xiě)數據的狀態(tài)機、地址譯碼模塊、FIFO以及讀數據校驗模塊四部分構成。各模塊的功能由表2描述。
PDMA控制器的結構如圖3所示,其核心邏輯是一個(gè)狀態(tài)機,我們采用一個(gè)兩層嵌套的狀態(tài)機來(lái)實(shí)現控制功能,如圖4所示。
3 測試系統的結構和工作原理
在本設計中,PDMA用于仿真多個(gè)IP核對SDRAM控制器進(jìn)行讀寫(xiě)訪(fǎng)問(wèn)以驗證SDRAM控制器的設計是否高效合理,性能是否穩定等指標。
PDMA整個(gè)測試系統由PCI接口模塊、PDMA 以及SDRAM控制器三大部分構成(見(jiàn)圖1)。PCI接口模塊與PDMA之間以?xún)炔縄O總線(xiàn)相連接。 PDMA與SDRAM控制器之間以?xún)炔縈emory總線(xiàn)連接。PCI接口模塊連接外部PCI總線(xiàn)與內部的 PDMA,轉換由外部發(fā)起的PCI IO訪(fǎng)問(wèn)對PDMA進(jìn)行參數配置以及對命令、狀態(tài)等寄存器進(jìn)行讀寫(xiě)。PDMA在得到了配置參數及啟動(dòng)訪(fǎng)問(wèn)的命令信息后啟動(dòng)對SDRAM控制器的訪(fǎng)問(wèn)(寫(xiě)然后讀),并把測試的結果反映到PDMA的狀態(tài)寄存里。
測試用PDMA的具體工作過(guò)程如下:
(1)PCI接口模塊對PDMA各通道進(jìn)行參數配置(如訪(fǎng)問(wèn)長(cháng)度、訪(fǎng)問(wèn)基址、訪(fǎng)問(wèn)方式等);
(2)PCI接口模塊寫(xiě)PDMA的控制寄存器,啟動(dòng)對SDRAM的讀寫(xiě);
(3)PCI接口模塊讀PDMA的狀態(tài)寄存器,探測訪(fǎng)問(wèn)是否完成,如完成,則讀取完成后的狀態(tài)信息(如錯誤位,發(fā)生錯誤的地址)。
評論