CPU 、ASIC和存儲器的設(shè)計者為了使器件擁有盡可能高的通信帶寬,他們在設(shè)計過程中充分利用I/O單元中的每一個晶體管來達到這個目標。這些器件常與FPGA相連接。因此,F(xiàn)PGA的設(shè)計者面臨著一個不同以往的挑戰(zhàn):提供一個不僅能滿足這些集成電路對互連帶寬的要求,而且還能支持不同接口協(xié)議的可編程接口。 解決方案是可編程硬件I/O模塊。這些可編程硬件模塊位于FPGA的I/O路徑內(nèi)。硬件模塊的傳輸單元將高速數(shù)據(jù)及相關(guān)的時序信號一起發(fā)送至接收器電路。這些模塊中的接收單元擁有時序調(diào)整的功能,以便在很高的速度下能可靠地采集數(shù)據(jù)。此外,這些模塊通過增加數(shù)據(jù)的寬度來減緩數(shù)據(jù)傳輸速率,從而使FPGA能夠?qū)@些數(shù)據(jù)進行處理。以下兩個例子說明了FPGA的I/O結(jié)構(gòu)的發(fā)展。 源同步接口 在源同步接口中,發(fā)送器芯片發(fā)送數(shù)據(jù)字和數(shù)據(jù)采樣時鐘至接收器。接收器芯片使用時鐘來采集數(shù)據(jù)。從理論上說,源同步接口的速度是沒有任何限制的。但是,隨著數(shù)據(jù)速率的提高,由于數(shù)據(jù)相位偏移的差錯,以及因工藝、電壓和溫度引起接收器內(nèi)部延時的變化,導致數(shù)據(jù)采集出錯。一些常見的源同步接口為SPI4.2、XGMII 、DDR SDRAM和串行LVDS ADC、DAC。 為了可靠地鎖存輸入至器件的數(shù)據(jù),在FPGA內(nèi)預先設(shè)計了源同步接口。針對中等性能的應(yīng)用,可以通過匹配輸入和數(shù)據(jù)路徑做到。然而,對更高性能的接口,用算法彌補這些差錯是很重要的。補償這些差錯有兩個步驟。首先,器件在啟動時,該算法補償數(shù)據(jù)相位偏移和工藝的延時。其次,當開始正常的數(shù)據(jù)傳輸時,該算法監(jiān)測和糾正由于電壓和溫度的變化而引起的時鐘和數(shù)據(jù)相位關(guān)系的差錯。而這些監(jiān)測算法可以在FPGA內(nèi)實現(xiàn),以防止在高數(shù)據(jù)速率情況下數(shù)據(jù)采集出錯,這些算法已經(jīng)在FPGA 的I/O中很好地實現(xiàn)了。 LatticeSC FPGA的I/O引腳中使用了一個可編程的硬件模塊(圖1),實時地監(jiān)測和糾正數(shù)據(jù)和時鐘的關(guān)系。因此,LatticeSC FPGA可以實現(xiàn)可靠的源同步接口,運行的數(shù)據(jù)傳輸速率可達2Gbps。為了使輸入的數(shù)據(jù)速率與FPGA的運行速度相匹配,I/O引腳還提供了一個變速功能,可將進入FPGA的數(shù)據(jù)速率降低8倍。設(shè)計人員可用軟件來配置這個硬件模塊,以滿足系統(tǒng)的性能需求,然后專注于處理數(shù)據(jù)的算法。 圖1:LatticeSC I/O引腳中的2Gbps源同步數(shù)據(jù)接口。 3.125Gbps SERDES (串化器/解串器)通道 SERDES是一種高速串行接口,它已用于許多標準,諸如PCI-Express、XAUI、Serial Rapid I/O、Gigabit Ethernet和JESD204。首先,發(fā)送器將時鐘編入數(shù)據(jù),然后通過一對線路傳輸合成的串行位流。接收器電路通過時鐘數(shù)據(jù)恢復(CDR)電路從數(shù)據(jù)中提取時鐘,并使用恢復的時鐘對數(shù)據(jù)解串。然后用相應(yīng)的物理層協(xié)議,對解串后的數(shù)據(jù)解碼,并細分為字。在發(fā)送并行的數(shù)據(jù)至FPGA之前,接收器還應(yīng)當通過彈性緩沖器處理,以補償提取的時鐘和FPGA時鐘之間的頻率差異。在接收器和發(fā)送器中的邏輯速度應(yīng)足夠的快,以便處理3.125Gbps速率的數(shù)據(jù)。 通過使用一個可編程的硬件模塊(圖2),LatticeECP2M低成本FPGA 能夠滿足各種協(xié)議標準要求。硬件模塊的高速模擬SERDES部分能夠?qū)崿F(xiàn)均衡,時鐘提取,對高達3.125Gbps速率的數(shù)據(jù)進行串化和解串化處理。為了進行字邊界識別,用緩沖方式使物理層協(xié)議和時鐘速率相匹配,硬件模塊包括一個可編程的物理編碼子層(PCS)功能塊。PCS功能塊可以配置成實現(xiàn)協(xié)議的特殊數(shù)據(jù)提取/格式。由于設(shè)計這些可編程硬件模塊旨在滿足性能要求,設(shè)計人員可以頗有信心地在FPGA中實現(xiàn)更高層的協(xié)議邏輯。 圖2:LatticeECP2 FPGA的 SERDES功能塊。 為增加芯片至芯片連接的通道帶寬,LatticeSC FPGA已經(jīng)在I/O路徑中加入了可編程的硬件模塊。這些模塊很容易使設(shè)計人員在FPGA中實現(xiàn)邏輯功能。為支持更高的數(shù)據(jù)率, LatticeECP2M器件中的SERDES模塊進一步在硬件中實現(xiàn)一些高速協(xié)議功能。而FPGA內(nèi)的結(jié)構(gòu)則用來實現(xiàn)更高層的數(shù)據(jù)處理功能。 |