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