基于Spartan-6的16路高速串行傳輸的設計與實(shí)現
產(chǎn)生好發(fā)送時(shí)鐘后,將800MHz的發(fā)送時(shí)鐘和100MHz的FPGA內部邏輯時(shí)鐘送到發(fā)送數據模塊開(kāi)始數據的發(fā)送。送到所有輸出OSERDES2源語(yǔ)的時(shí)鐘和SerDes使能信號可以滿(mǎn)足安全的捕捉FPGA內部并行的慢速數據到輸出SerDes,這些并行的數據然后通過(guò)高速的發(fā)送時(shí)鐘發(fā)送出去。其中一路的數據發(fā)送如圖6,共有16路相同的模塊組成128bit的高速串行數據的傳輸,每路數據發(fā)送速率為800MHz,則每路的數據傳輸速率為8bit×100MHz=800b/s,共16路數據線(xiàn),則總的傳輸速率為12.8Gb/s。本文引用地址:http://dyxdggzs.com/article/162171.htm
源同步時(shí)鐘的發(fā)送不能直接將時(shí)鐘信號通過(guò)OBUFDS類(lèi)似的源語(yǔ)直接發(fā)送,因為Spartan-6是面向低成本的低端產(chǎn)品,不支持高速信號的處理,所以,發(fā)送時(shí)鐘要像發(fā)送數據一樣發(fā)送出去,通過(guò)發(fā)送一個(gè)固定常數序列“10101010”來(lái)完成時(shí)鐘的發(fā)送。
3.2 接收模塊
接收模塊的源同步時(shí)鐘是上面發(fā)送模塊發(fā)出的400MHz的時(shí)鐘,該時(shí)鐘根據需要在PLL內部產(chǎn)生一個(gè)高速采樣時(shí)鐘,通過(guò)PLL和BUFFPLL來(lái)產(chǎn)生ISERDES2源語(yǔ)所需要的接收時(shí)鐘和使能信號。接收源同步時(shí)鐘首先經(jīng)過(guò)一個(gè)延遲單元。然后經(jīng)過(guò)一個(gè)BUFIO2到PLL,PLL產(chǎn)生一個(gè)800MHz的采樣時(shí)鐘和一個(gè)100MHz的FPGA內部邏輯時(shí)鐘,再通過(guò)一個(gè)BUFPLL驅動(dòng)用于后續的邏輯。接收時(shí)鐘的產(chǎn)生模塊如圖7所示。它和發(fā)送時(shí)鐘不同之處也是在于Spartan-6是面向低成本的低端產(chǎn)品,對于400MHz的時(shí)鐘該系列FPGA無(wú)法接收,首先要將該時(shí)鐘當成數據一樣進(jìn)行接收,收到“10101010”比特串后,作為時(shí)鐘信號送給PLL。
產(chǎn)生好接收時(shí)鐘后,將800MHz的采樣時(shí)鐘和100MHz的FPGA內部邏輯時(shí)鐘送到接收數據模塊開(kāi)始數據的接收。其中一路的接收如圖8,共有16路相同的模塊組成128bit的高速串行數據的傳輸,每路數據采樣速率為800MHz,內部FPGA邏輯時(shí)鐘為100MHz,則每路的數據傳輸速率為8b-it×100MHz=800b/s,共16路數據線(xiàn),則總的傳輸速率為12.8Gb/s。
4 實(shí)驗結果分析
在上述的結構中,首先在FPGA1的邏輯中將Rec-FIFO初始化為滿(mǎn)數據狀態(tài),當發(fā)送了數據使能信號后,系統就開(kāi)始自循環(huán)測試,一旦出現錯誤將會(huì )置錯誤標記,在驗證板上有狀態(tài)燈指示該狀態(tài),經(jīng)過(guò)實(shí)際測試,送到兩片FPGA的時(shí)鐘為400MHz,完全滿(mǎn)足在16路高速串行傳輸的傳輸速率達到12.8Gb/s的板級試驗。只是ChipScope不能對管腳的高速信號進(jìn)行采樣觀(guān)察,所以我們在ISE11.5和ModelSim SE 6.5的環(huán)境下,仿真可以看到管腳高速信號和FPGA內部邏輯之間收發(fā)數據的關(guān)系。圖9是發(fā)送數據的仿真結果,圖10是接收數據的仿真結果。其中,所有的輸出是差分輸出,為了便于觀(guān)察,一對的差分信號只顯示其中一個(gè)。
從圖中可以看出,源同步時(shí)鐘是400MHz,按照DDR方式傳送數據,數據的傳輸速率為800MHz,即經(jīng)過(guò)PLL后的采樣時(shí)鐘(或者高速發(fā)送時(shí)鐘)為800MHz,而產(chǎn)生的FPGA內部邏輯的時(shí)鐘為100MHz,從上兩圖中的波形可以看出,該設計實(shí)現了高速串行傳輸的功能。在FPGA設計中,輸入輸出管腳的鎖定是重要的一環(huán),一個(gè)合理的管腳分配方案不僅可以降低布線(xiàn)復雜度,而且可以減少布線(xiàn)的延遲,并有利于PCB板的制作。X-C6SLX150有四個(gè)bank,本文中的串行傳輸采用LVDS 2.5V標準,我們將收發(fā)信號線(xiàn)分別放在不同的bank上,在布線(xiàn)時(shí),為盡量保持同一組差分信號線(xiàn)間的等長(cháng),對管腳分配進(jìn)行調整,做到最優(yōu)化布線(xiàn)。
5 總結和展望
本文介紹了基于Xilinx公司XC6SLX150的16路高速串行傳輸的設計,此設計充分利用了Spartan-6的特點(diǎn)及其所含的IP核,不僅能夠最大限度地提高芯片性能,而且縮短了開(kāi)發(fā)周期,減少了設計復雜度,有益于高速FPGA的開(kāi)發(fā)。通過(guò)試驗,結果表明,采用Xilinx Spartan-6 SerDes設計的每路高速串行傳輸可以實(shí)現800Mb/s的傳輸速率,但Spartan-6本身具有每個(gè)差分I/O的最高數據傳輸速率為1050Mb/s的性能,由于硬件的限制未能驗證,在今后的設計中希望可以進(jìn)行彌補。
評論