摘要:使用Xilinx公司的Spartan-6 FPGA系列芯片所提供的MCB,在生成控制模塊時設置不同參數,可以輕而易舉的實現對不同型號的DDR存儲芯片的測試,數據率可高達800Mb/s以上。由于時間利用率比使用計算機主板測試DDP,芯片高得多,所以可以極大地節約測試時間。
關鍵詞:FPGA;DDR存儲器;功能測試
DOI:10.3969/j.issn.1005-5517.2011.08.017
目前廣泛使用的計算機內存芯片是DDR(雙倍數據率同步動態隨機存儲器)。它的最新品種DDR3單片容量已經可以達到2Gb以上,數據率可以達到1.6Gb/s以上,因此如何快速準確判定DDR芯片的好壞(功能測試)就很必要。
由于DDR這類芯片的設置和讀寫時序相當復雜,要在其性能所達到的高速條件下對其進行測試,許多人選用的技術方法是:直接把它們放到計算機的內存專用插座上,編一個相應的程序去進行測試。這不失為一種最簡單的選擇。但由于在測試過程中,計算機讀取相應的指令還要花費不少時間,所以在芯片容量越來越大的情況下,這并不是一個好方法。

使用FPGA,將測試軟件變成硬件,做成DDR用測試工具,是提高測試效率的較好的選擇。一開始設計的DDR專用測試工具是使用Xilinx公司的Spartan-3E來實現的,但是很快發現:無論如何進行設計約束,諸多的地址信號、控制信號和數據信號很難做到同步送出,信號時延的離散范圍很難達到0.2ns以下。對于數據率在200Mb/s以下的早期DDR產品,這勉強可以接受。但目前DDR2的數據率已經可以高達800Mb/s,也就是說,按相位角算,離散范圍已達60°。為了保證上述有關信號的同步,不得不在FPGA與DDR豐目連接的所有信號線之間,增加了用CPLD器件做成的同步接口,利用CPLD器件端口到端口具有一致的延時特性來保證所有信號時間上的一致性。
對于Xilinx公司的Spartan-6系列,由于它有專為各類DDR內存設計的存儲器控制模塊(MCB),用戶可以利用提供的存儲器控制模塊,直接驅動DDR芯片。大大方便了與DDR的接口。
在我們新的DDR專用測試工具“DDR存儲芯片測試儀”中,使用Spartan-6系列的XC6SLX16芯片,按照該公司的ug416.pdf文件的指引,用CORE Generator軟件中的MIG3.4分別產生了DDR2和DDR3兩種類型的應用文件,包括DDR的基層MCB控制模塊的應用文件,和它們的高層次使用舉例文件example top。后者本身就是一個DDR的測試程序,它向你顯示如何實現與基層MCB控制模塊接口。我們在它的基礎上增加了一些測試模式,并增加了測試設置寄存器和測試結果狀態寄存器,用一個宏晶公司的STC12C5408單片機作為整個DDR芯片測試設備的管理器,經串行口與主機通信,很順利地實現了對DDR2、DDR3芯片的測試。
DDR存儲芯片測試儀硬件框圖如圖1所示。

在“DDR存儲芯片測試儀”中,主機經管理器對測試方式設置寄存器進行設置,并能啟動和終止測試過程。在對存儲芯片的寫入過程中,根據預設的方式,測試數據產生器產生不同的數據圖案和存儲地址送到存儲器控制模塊MCB,由它轉換為DDR聽需要的時序寫入被測芯片。在測試的讀出校對過程中,讀出的數據由MCB送到讀寫數據比較器,把它和測試數據產生器按相同規律產生的數據進行比較。出過錯誤的數據位被記錄到出錯位圖,并對出錯次數進行計數。測試結束后,主機可經管理器讀取出錯位圖和出錯計數。測試過程中,DDP的工作電壓和時鐘頻率也可經管理器進行設置。
MIG3.4產生的文件中包括有仿真文件和DDR的仿真模型,附圖給出DDR 2的仿真結果。實測波形與仿真結果十分一致。
如上所述,利用Spartan-6系列芯片,已經輕而易舉地實現了800Mb/s以上的數據率。由于時間利用率比使用計算機主板測試DDR芯片高得多,所以可以極大地節約測試時間。如果在生成MCB控制模塊時設置不同參數,就能應用于不同型號DDR存儲芯片的測試(但DDR2和DDR3本身的引腿不兼容)。不過,要注意的是:MIG3.4自動產生的約束文件(.ucf文件)中,DDR接口的信號電平設置為SSTL18(DDR2)或SSTL15(DDR3)。此時必須根據ug385_package pinout.pdf文件,由外部通過相應的VREF端,給相應的塊加入邏輯參考電平。約束文件并不會自動給出這些腿號。但如果在ucf文件中把這些接口電平改為相應的LVCMOS18或LVCMOS15,則不需外加參考電平(可參見ug38l_select10.pdf文件)。