如今,在FPGA系統的設計中,系統的復雜度越來越高,對內存的要求也是越來越高。通常,綜合體積、容量等考慮,DDR2已成為FPGA系統的首選。這里,就針對Cyclone IV系列FPGA的DDR2設計作一小結,對於其它系列的FPGA和DDR設計類似。
根據Cyclone IV的手冊,在進行DDR2設計時,FPGA的管腳分配是要有所考慮的,而不能隨意分配。
首先,對DDR2的信號引腳做一下說明。這里以MT47H128M8(16Meg×8bit×8banks)為例說明。
它的信號線(共34根)包括:
時鍾及控制線:CLK+/-,CKE,RASn,CASn,CSn,WEn;
數據控制線:BA0~BA2,DQS,DQM;
地址線:A0~A13;
數據線:D0~D7;
在FPGA中,為了更好的發揮出DDR的性能,其會對DDR引腳的分配做相關的約束。
這里以EP4CE75F23C8N為例,F484封裝。
它在進行8位DDR2設計時,就指定了相關的DQ、DQS和DQM引腳,我們設計時應該遵從這些引腳約束。
在該FPGA的上、下、左、右區域分別都指定有這些引腳:
每個方向又都分有4個區,若是選擇8位的DDR,則每個區有9個DQ引腳和相應的DQS、DQM:
(1)左:DQ0L、DQ1L、DQ2L、DQ3L,以及DQSL和DML;
(2)下:DQ2B、DQ3B、DQ4B、DQ5B,以及DQSB和DMB;
(3)右:DQ0R、DQ1R、DQ2R、DQ3R,以及DQSR和DMR;
(4)上:DQ2T、DQ3T、DQ4T、DQ5T,以及DQST和DMT;
比如:在DQ5B中,這9個DQ引腳為:Y10,W10,V11,AA8,AA9,AB8,U10,Y8,AB7,以及AB9(DQS)、AA7(DQM)。
因此,在硬件設計時,應該將這些相應的引腳(8位數據DQ和DQS、DQM)正確分配,至於這8位DQ數據的位置則可以根據布線的方便而相互對調,保證它們在同一區即可(如DQ5B區);而對於其它的DDR2引腳(地址線、控制線等),則可以根據布線的方便而隨意分配,但必須保證所有DDR2的引腳都在FPGA的同一個或兩個Bank區(如Bank3和Bank4,因為有時一個Bank區放不了所有這些引腳),這樣做的目的就是為了便於對它們進行統一的VCCIO電壓的指定,以及考慮后續PCB布線的方便性,注意該Bank區的VCCIO電壓必須指定為1.8V。
在Quartus II中,同樣也要進行正確的引腳分配,並且還要注意這些電平標准為1.8V。
如果硬件設計時不按照這些約束進行相關的引腳分配,在Quartus II編譯時,則可能就會報錯,而導致DDR2無法正常使用。
以上為個人在設計中的一點心得,在此與各位分享。
