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