四倍速SRAM與Spartan3 FPGA的接口設計
1 QDR SRAM的介紹及其性能描述
1.1 QDR的先進(jìn)性
現有的大部分SRAM都是在PC時(shí)期針對高效傳輸PC型單精度輸入輸出數據而設計的。在大多數的網(wǎng)絡(luò )應用中,SRAM和記憶控制器之間的連續數據傳輸是必需的。在這些應用中,存儲器的讀和寫(xiě)操作之間要進(jìn)行連續不斷的變化。在這種情況下標準的同步管道SRAM等單一的輸入/輸出裝置就不能很好地滿(mǎn)足要求。零總線(xiàn)變換SRAM就是一種優(yōu)化了的SRAM類(lèi)型。它在讀周期與寫(xiě)周期切換時(shí)不需要變換周期,從而使得總線(xiàn)利用率達到了100%。而對大多數的網(wǎng)絡(luò )應用來(lái)說(shuō),零總線(xiàn)變換SRAM在數據吞吐量方面的提高還遠遠不夠。QDR的出現則進(jìn)一步改進(jìn)了SRAM結構。
QDR就是指四倍數據速率SRAM,它是靜態(tài)存儲器的一種,是專(zhuān)為應付帶寬需求極大的應用而設計的體系結構。它在一個(gè)時(shí)鐘周期內可以高效地傳輸4個(gè)字節的數據。QDR提供了讀和寫(xiě)兩個(gè)分別獨立的接口,從而滿(mǎn)足了諸如ATM轉換和路由器的性能需求。由于QDR SRAM的結構在數據訪(fǎng)問(wèn)時(shí)不需要變換周期且數據吞吐量大幅提高,所以保證了可以對同一地址進(jìn)行同時(shí)訪(fǎng)問(wèn)。
QDR又分為兩字突發(fā)結構(CY7C1302)和四字突發(fā)結構(CY7C1304)兩種。這兩種結構的不同就在于每次讀或寫(xiě)請求的傳輸字數不同。下面就以CY7C1302為例來(lái)詳細介紹QDR的工作原理及其與Spartan3系列FPGA的接口設計。CY7C1302是賽普拉斯公司生產(chǎn)的一種QDR SRAM。圖1示出了CY7C1302的結構圖。圖中雖然CY7C1302有了分別獨立的讀寫(xiě)端口,但是地址總線(xiàn)還是為讀寫(xiě)端口共用。地址總線(xiàn)的數據傳輸采用了DDR的傳輸方式,即:地址總線(xiàn)的前半個(gè)時(shí)鐘周期提供讀操作地址,而后半個(gè)時(shí)鐘周期提供寫(xiě)操作地址。也就是在每個(gè)時(shí)鐘周期可以完成4字的傳輸量。
1.2 QDR SRAM的輸入狀態(tài)描述
QDR SRAM有四個(gè)時(shí)鐘:K,Kn,C和Cn。K和Kn是用來(lái)控制輸入數據采樣的,C和Cn則是用來(lái)控制SRAM數據輸出的。所有的數據操作都是在K的上升沿進(jìn)行的。QDR SRAM有一個(gè)簡(jiǎn)單的控制結構。兩個(gè)控制信號:讀控制信號(RPSn)和寫(xiě)控制信號(WPSn)分別用來(lái)控制SRAM的讀和寫(xiě)操作的進(jìn)行。這兩種信號在K的上升沿時(shí)刻被采樣。對QDR來(lái)說(shuō),地址的輸入是讀端口和寫(xiě)端口所共用的。對于CY7C1302來(lái)說(shuō),讀操作是在K的上升沿時(shí)刻開(kāi)始進(jìn)行的,寫(xiě)操作是在Kn的上升沿時(shí)刻開(kāi)始進(jìn)行的。即地址總線(xiàn)的前半個(gè)時(shí)鐘周期提供讀操作的地址,后半個(gè)時(shí)鐘周期提供寫(xiě)操作的地址。其數據線(xiàn)是單向的,在每個(gè)循環(huán)周期內可以傳輸兩個(gè)字的數據。
一個(gè)時(shí)鐘的上升沿可以使QDR SRAM在同一個(gè)時(shí)鐘周期內實(shí)現對同一地址的讀、寫(xiě)訪(fǎng)問(wèn)。這樣QDR就會(huì )把寫(xiě)數據傳輸到讀端口以確保把有效的數據輸出至數據總線(xiàn)。這樣就保證了數據的一致性。
2 低成本解決方案
2.1 用Spartan3作為QDR的存儲控制器
Spartan3系列FPGA是由Xilinx公司基于成功的Virtex-II FPGA架構而研發(fā)的性?xún)r(jià)比較高的一種產(chǎn)品。Spartan3器件有如下特點(diǎn):嵌入式18×18乘法器支持高性能DSP應用;片上數字時(shí)鐘管理(DCM),無(wú)需外部時(shí)鐘管理器件;分布式的存儲器和SRL16移位寄存器邏輯能夠更高效執行DSP功能;18KB 塊RAM,可以用作緩存或是高速緩存;數字片上終端能夠消除對多個(gè)外部電阻器的需求;8個(gè)獨立的I/O陣列支持24種不同的I/O標準;Spartan3系列的FPGA獨有的特性可以簡(jiǎn)化存儲控制器的設計。圖2是用Spartan3系列FPGA實(shí)現的存儲控制器結構圖。
該存儲控制器的設計可以在深度擴展模式下實(shí)現對四個(gè)SRAM的控制。每個(gè)QDR SRAM會(huì )收到對各自的讀寫(xiě)端口進(jìn)行控制的相互獨立的控制信號,而對所有的SRAM來(lái)說(shuō),地址和數據端口是共用的。
存儲控制器是以QDR SRAM工作在單時(shí)鐘模式下對其進(jìn)行控制的,從而可以簡(jiǎn)化存儲器接口??刂破鞴ぷ髟?00MHz的時(shí)鐘頻率下,允許7.2Gbps的帶寬。存儲控制器有獨立的讀寫(xiě)狀態(tài)機,存儲控制器的控制是基于兩位指令輸入的形式來(lái)實(shí)現的。
2.2 QDR SRAM和Xilinx Spartan3系列FPGA的接口連接
Spartan3系列的FPGA獨有的特性可以簡(jiǎn)化存儲控制器的設計。Spartan3系列產(chǎn)品是業(yè)界成本最低的可編程邏輯電路。在Spartan3系列FPGA中,有DCM(數字時(shí)鐘管理)模塊,可以用來(lái)消除內部全局時(shí)鐘網(wǎng)絡(luò )的時(shí)鐘歪斜,或者消除為片外其他系統組成部分提供時(shí)鐘的過(guò)程中所出現的時(shí)鐘歪斜。DCM中的DLL能夠使控制器完成FPGA的片上時(shí)鐘和QDR SRAM之間的零時(shí)鐘歪斜。除此之外,DCM還提供其他的功能,如相位調解,分頻和倍頻。圖3所示為DCM在存儲控制器設計中的應用。
評論