你的位置:首頁(yè) > EMC安規(guī) > 正文

測(cè)試SDRAM控制器的PDMA

發(fā)布時(shí)間:2012-01-06

中心議題:
  • 測(cè)試SDRAM控制器的PDMA
  • PDMA的結(jié)構(gòu)及工作原理
解決方案:
  • 仿真多個(gè)IP核
  • SDRAM控制器的設(shè)計(jì)

1引言

現(xiàn)代電子信息設(shè)備往往需要保存和處理大量的數(shù)字信息,一個(gè)高性能的Memory控制器可以大大提高系統(tǒng)的性能。在進(jìn)行SDRAM控制器的設(shè)計(jì)時(shí),需要考慮很多因素,設(shè)計(jì)完成以后還要進(jìn)行多項(xiàng)測(cè)試看是否完全滿足所要求的各項(xiàng)性能,為此我們?cè)O(shè)計(jì)了一個(gè)PDMA(Programmable Direct Mem o ry Access)用于測(cè)試SDRAM控制器的性能。在SoC中,SDRAM控制器往往跟多個(gè)IP模塊(圖形處理單元,音頻處理單元等)交換數(shù)據(jù),采用多個(gè)PDMA通道同時(shí)訪問(wèn)Memory可以真實(shí)模擬SDRAM控制器在SoC環(huán)境中被多個(gè)IP隨機(jī)訪問(wèn)的情形。

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

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

寄存器組模塊里包含了一個(gè)同步模塊、控制寄存器、狀態(tài)寄存器和各通道的寄存器組。每一個(gè)子通道的寄存器組又包含訪問(wèn)基址寄存器、訪問(wèn)模式寄存器、周期計(jì)數(shù)器等三個(gè)寄存器。各寄存器的功能描述如表1所示。
\"\"
[page]
PDMA的控制器主要由:產(chǎn)生寫(xiě)數(shù)據(jù)的狀態(tài)機(jī)、地址譯碼模塊、FIFO以及讀數(shù)據(jù)校驗(yàn)?zāi)K四部分構(gòu)成。各PDMA控制器的結(jié)構(gòu)如圖3所示,其核心邏輯是一個(gè)狀態(tài)機(jī),我們采用一個(gè)兩層嵌套的狀態(tài)機(jī)來(lái)實(shí)現(xiàn)控制功能,如圖4所示。
\"\"
 
\"\"

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

在本設(shè)計(jì)中,PDMA用于仿真多個(gè)IP核對(duì)SDRAM控制器進(jìn)行讀寫(xiě)訪問(wèn)以驗(yàn)證SDRAM控制器的設(shè)計(jì)是否高效合理,性能是否穩(wěn)定等指標(biāo)。

PDMA整個(gè)測(cè)試系統(tǒng)由PCI接口模塊、PDMA 以及SDRAM控制器三大部分構(gòu)成(見(jiàn)圖1)。PCI接口模塊與PDMA之間以內(nèi)部IO總線相連接。 PDMA與SDRAM控制器之間以內(nèi)部Memory總線連接。PCI接口模塊連接外部PCI總線與內(nèi)部的 PDMA,轉(zhuǎn)換由外部發(fā)起的PCI IO訪問(wèn)對(duì)PDMA進(jìn)行參數(shù)配置以及對(duì)命令、狀態(tài)等寄存器進(jìn)行讀寫(xiě)。PDMA在得到了配置參數(shù)及啟動(dòng)訪問(wèn)的命令信息后啟動(dòng)對(duì)SDRAM控制器的訪問(wèn)(寫(xiě)然后讀),并把測(cè)試的結(jié)果反映到PDMA的狀態(tài)寄存里。

測(cè)試用PDMA的具體工作過(guò)程如下:

(1)PCI接口模塊對(duì)PDMA各通道進(jìn)行參數(shù)配置(如訪問(wèn)長(zhǎng)度、訪問(wèn)基址、訪問(wèn)方式等);

(2)PCI接口模塊寫(xiě)PDMA的控制寄存器,啟動(dòng)對(duì)SDRAM的讀寫(xiě);

(3)PCI接口模塊讀PDMA的狀態(tài)寄存器,探測(cè)訪問(wèn)是否完成,如完成,則讀取完成后的狀態(tài)信息(如錯(cuò)誤位,發(fā)生錯(cuò)誤的地址)。

4 RTL仿真

完成RTL級(jí)的設(shè)計(jì)后,我們利用Cadence公司的仿真工具VerilogXL對(duì)設(shè)計(jì)進(jìn)行了功能仿真。仿真的環(huán)境是基于PCI的,所以其仿真順序如下:

(1)配置PCI配置空間的IO Base 及 Mem o ry Base寄存器;

(2)寫(xiě)PCI配置空間54H,58H等寄存器,配置SDRAM 控制器及SDRAM芯片的參數(shù);

(3)寫(xiě)PCI配置空間的命令寄存器(offset==04h),使能該設(shè)備;

(4)訪問(wèn)PCI IO空間中的PDMA配置寄存器,設(shè)定各個(gè)PDMA通道的配置參數(shù);

(5)寫(xiě)入相應(yīng)的命令,啟動(dòng)PDMA訪問(wèn)內(nèi)新路子SDRAM控制器;

(6)檢測(cè)PDMA的狀態(tài)寄存器,根據(jù)設(shè)定的條件(正常結(jié)束或者發(fā)生錯(cuò)誤)退出仿真程序;

(7)打開(kāi)波形文件,檢查是否有錯(cuò)誤發(fā)生。

圖5是由PCI發(fā)起的一次寫(xiě)IO寄存器訪問(wèn)的仿真波形,PDMA的配置數(shù)據(jù)就是通過(guò)若干這樣的操作完成的。
\"\"

相對(duì)而言,我們更關(guān)注PDMA是如何訪問(wèn)Memory的。圖6是由一個(gè)PDMA發(fā)起的寫(xiě)讀模式下的訪問(wèn)時(shí)序。GROUP1的信號(hào)是由PDMA發(fā)起的內(nèi)部Memory總線信號(hào)組,而GROUP2的信號(hào)是 Memory控制器和內(nèi)存芯片間的符合jedec標(biāo)準(zhǔn)的總線協(xié)議。從圖中我們可以清楚地看到總線協(xié)議的轉(zhuǎn)換過(guò)程,及時(shí)發(fā)現(xiàn)是否有違反協(xié)議的情況發(fā)生。
\"\"
[page]
5 上板測(cè)試的方法和過(guò)程

在完成功能仿真后,使用Synopsys綜合工具 FPGA compiler對(duì)設(shè)計(jì)進(jìn)行綜合,并選用XILINX公司的VERTEX1600E系列為目標(biāo)器件,生成相應(yīng)的網(wǎng)表文件,下載到FPGA上進(jìn)行測(cè)試。綜合的結(jié)果如表3所示。測(cè)試平臺(tái)是一臺(tái)PC機(jī),帶有PCI標(biāo)準(zhǔn)接口的測(cè)試卡和PCI讀寫(xiě)軟件。上板測(cè)試過(guò)程如下:
\"\"

(1)下載bit文件到FPGA中;

(2)配置SDRAM控制器;

(3)置PDMA寄存器;

(4)啟動(dòng)PDMA訪問(wèn);

(5)讀回PDMA的狀態(tài)位。

測(cè)試時(shí)需要輸入相應(yīng)的測(cè)試向量,一個(gè)好的軟件界面可以大大減輕硬件工程師編寫(xiě)、輸入測(cè)試向量的工作量。表4是一個(gè)測(cè)試向量的內(nèi)容和結(jié)果,像這樣的測(cè)試要進(jìn)行多次以提高故障覆蓋率并統(tǒng)瞥鯥P的性能。
\"\"

6 實(shí)驗(yàn)結(jié)論

經(jīng)過(guò)不斷調(diào)試和改進(jìn),PDMA能夠按照功能寄存器的配置準(zhǔn)確發(fā)起Memory訪問(wèn),并能夠及時(shí)報(bào)告SDRAM控制器的操作錯(cuò)誤。該測(cè)試平臺(tái)不僅適用于驗(yàn)證SDRAM控制器的設(shè)計(jì),而且在經(jīng)過(guò)很小的改動(dòng)后可以配置成支持對(duì)性能更好的DDR存儲(chǔ)控制器的測(cè)試驗(yàn)證。靈活的配置方式使之成為一個(gè)通用的測(cè)試平臺(tái),對(duì)不同的Memory控制器的測(cè)試只需用軟件對(duì)相應(yīng)的配置寄存器進(jìn)行配置即可,硬件基本不用進(jìn)行改動(dòng),大大節(jié)約了設(shè)計(jì)時(shí)間,提高了設(shè)計(jì)的成功率和效益。
要采購(gòu)工具么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉