PDMA在測試SDRAM控制器中的應用
4 RTL仿真
完成RTL級的設計后,我們利用Cadence公司的仿真工具VerilogXL對設計進行了功能仿真。仿真的環境是基于PCI的,所以其仿真順序如下:
(1)配置PCI配置空間的IO Base 及 Mem o ry Base寄存器;
(2)寫PCI配置空間54H,58H等寄存器,配置SDRAM 控制器及SDRAM芯片的參數;
(3)寫PCI配置空間的命令寄存器(offset==04h),使能該設備;
(4)訪問PCI IO空間中的PDMA配置寄存器,設定各個PDMA通道的配置參數;
(5)寫入相應的命令,啟動PDMA訪問內新路子SDRAM控制器;
(6)檢測PDMA的狀態寄存器,根據設定的條件(正常結束或者發生錯誤)退出仿真程序;
(7)打開波形文件,檢查是否有錯誤發生。
圖5是由PCI發起的一次寫IO寄存器訪問的仿真波形,PDMA的配置數據就是通過若干這樣的操作完成的。
相對而言,我們更關注PDMA是如何訪問Memory的。圖6是由一個PDMA發起的寫讀模式下的訪問時序。GROUP1的信號是由PDMA發起的內部Memory總線信號組,而GROUP2的信號是 Memory控制器和內存芯片間的符合jedec標準的總線協議。從圖中我們可以清楚地看到總線協議的轉換過程,及時發現是否有違反協議的情況發生。
5 上板測試的方法和過程
在完成功能仿真后,使用Synopsys綜合工具 FPGA compiler對設計進行綜合,并選用XILINX公司的VERTEX1600E系列為目標器件,生成相應的網表文件,下載到FPGA上進行測試。綜合的結果如表3所示。測試平臺是一臺PC機,帶有PCI標準接口的測試卡和PCI讀寫軟件。上板測試過程如下:
(1)下載bit文件到FPGA中;
(2)配置SDRAM控制器;
(3)置PDMA寄存器;
(4)啟動PDMA訪問;
(5)讀回PDMA的狀態位。
測試時需要輸入相應的測試向量,一個好的軟件界面可以大大減輕硬件工程師編寫、輸入測試向量的工作量。表4是一個測試向量的內容和結果,像這樣的測試要進行多次以提高故障覆蓋率并統瞥IP的性能。
6 實驗結論
經過不斷調試和改進,PDMA能夠按照功能寄存器的配置準確發起Memory訪問,并能夠及時報告SDRAM控制器的操作錯誤。該測試平臺不僅適用于驗證SDRAM控制器的設計,而且在經過很小的改動后可以配置成支持對性能更好的DDR存儲控制器的測試驗證。靈活的配置方式使之成為一個通用的測試平臺,對不同的Memory控制器的測試只需用軟件對相應的配置寄存器進行配置即可,硬件基本不用進行改動,大大節約了設計時間,提高了設計的成功率和效益。
評論