Cyclone II實(shí)現DDR SDRAM接口的方法
在不增加電路板復雜度的情況下要想增強系統性能,改善數據位寬是一個(gè)有效的手段。通常來(lái)說(shuō),可以把系統頻率擴大一倍或者把數據I/O管腳增加一倍來(lái)實(shí)現雙倍的數據位寬。這兩種方法都是我們不希望用到的,因為它們會(huì )增加整個(gè)設計系統的復雜度。在總的數據I/O管腳不變的情況下,使用雙數據率(DDR)I/O管腳來(lái)傳輸和接收數據也能夠實(shí)現雙倍數據位寬的要求。DDR器件使用時(shí)鐘的兩個(gè)沿來(lái)傳輸數據,在時(shí)鐘頻率和數據I/O管腳不變的前提下,比單沿數據傳輸(SDR)器件快了一倍。DDR數據傳輸廣泛應用于有快速數據傳輸需求的場(chǎng)合,如網(wǎng)絡(luò )、通信、存儲和圖像處理等領(lǐng)域。
本文引用地址:http://dyxdggzs.com/article/149374.htm Cyclone II器件支持如SDR SDRAM,DDR SDRAM,DDR2 SDRAM以及QDRII RAM等外部存儲器接口。下面將著(zhù)重討論Cyclone II器件如何實(shí)現DDR SDRAM接口控制的。
Cyclone II器件有專(zhuān)用的與DDR SDRAM接口的data(DQ),data strobe(DQS),clock管腳。一般是8個(gè)DQ信號對應與1個(gè)DQS信號,DQS信號和DQ信號從DDR SDRAM輸出時(shí)是沿對齊的。進(jìn)入FPGA后要想實(shí)現中心對齊,即DQS的變化沿與DQ的中心對齊,那么必須在FPGA內部對DQS做延時(shí)處理,如Figure 9-1所示。
DDR輸入接口實(shí)現如Figure 9-11所示。這也是一個(gè)涉及到異步時(shí)鐘域數據通信的問(wèn)題,且看它是如何進(jìn)行同步的。resynch_clk是FPGA內部使用的時(shí)鐘,DQS相對與和DQ同步的時(shí)鐘。這兩個(gè)時(shí)鐘其實(shí)是同頻不同相,相位偏移肯定是要滿(mǎn)足FPGA的采樣時(shí)鐘和數據信號中心對齊,這涉及到DDR SDRAM的輸出時(shí)鐘信號的相位調整。
輸入信號DQS經(jīng)過(guò)反向延時(shí)后與DQ信號中心對齊,然后分別使用方向延時(shí)后的DQS信號的下降沿和上升沿鎖存DQ信號前后輸入的數據Q0和Q1,同時(shí)在上升沿時(shí)會(huì )對前一級采樣的Q0信號再進(jìn)行一次鎖存,從而使Q0和Q1信號在被FPGA同步時(shí)鐘采樣前達到同頻同相。FPGA內部時(shí)鐘通過(guò)對經(jīng)過(guò)處理后的Q0和Q1信號采樣達到了雙沿數據輸入的采樣。詳細波形如Figure 9-12所示。
DDR輸出接口實(shí)現如Figure 9-14所示。經(jīng)過(guò)90度相移的DDR SDRAM時(shí)鐘先對FPGA內部時(shí)鐘域的待輸出信號進(jìn)行一次鎖存,然后由相移時(shí)鐘的高低電平選擇作為當前輸出給DDR SDRAM的數據信號。
詳細波形如Figure 9-15所示。
評論