采用中檔FPGA設計面向PCI Express系統(tǒng)的解決方案
為了克服舊標準的上述局限,1992年人們建立了PCI。其目的是構(gòu)建一個更高帶寬的標準,有即插即用功能和更穩(wěn)健的協(xié)議。PCI協(xié)議支持差錯校驗,通過與計算機的BIOS(基本輸入輸出系統(tǒng))通信實現(xiàn)即插即用功能,并通過標準的控制/狀態(tài)軟件接口就地址范圍或PCI插卡功能等信息進行交換。如果出現(xiàn)地址范圍重疊等差錯,計算機本身可以提供一些反饋。一個基本的32位33MHz的PCI系統(tǒng),可支持的傳輸速率高達132MBps。但是,這個架構(gòu)也有一些限制因素??偩€是單向的(發(fā)起方和被請求的目標設備不能在同一時間進行通信),且?guī)讉€卡要共享一條總線。如果一張卡正在傳輸數(shù)據(jù),所有其他的可訪問總線的部件必須等待。此外,在系統(tǒng)中無法處理PCI帶寬的低性能卡將進行“重試”請求,以確保有更多時間來處理數(shù)據(jù)。這就大大降低了整個系統(tǒng)的帶寬。PCI的另一個限制是各種應用對所需求帶寬不斷增加,特別是在視頻、通信和總線領(lǐng)域。圖1列出的一些應用,已經(jīng)接近或超過了理論上的PCI帶寬132MBps。
圖1:各種應用的帶寬需求對比理論上PCI提供的132MBps。
PCI還有其他一些缺點,如限制只能有5個部件訪問總線。由于PCI總線特殊的無端接總線的反射,電路板的設計也更加困難。數(shù)據(jù)路徑寬度為32或64位的并行線也對時序有苛刻的要求。
根據(jù)以往經(jīng)驗,PCI-SIG(PCI特別興趣小組)與行業(yè)內(nèi)的領(lǐng)先公司合作,定義了PCI的下一代標準。新標準最初被稱為3G IO(第三代輸入輸出),后來改名為大家熟悉的PCI Express。PCI Express的首個規(guī)范于2002年4月公布,其解決了原有PCI標準的所有限制因素。為了克服無端接的大量并行總線并增加帶寬,PCI Express轉(zhuǎn)變?yōu)檫\行速率2.5Gbps的串行鏈路,提供兩個方向同時進行的2Gbps的原始數(shù)據(jù)率。為了滿足更高的帶寬要求,規(guī)范允許使用幾個并行的“通道”。因此對于目前計算機的低帶寬應用,有很多x1和x4通道;對于有高帶寬的要求,例如顯卡,則有x16的插槽。
由于PCI Express規(guī)范使用基于層的協(xié)議,類似于OSI的層次模型,它很容易改變物理層和保留上層協(xié)議。這種做法已被最近發(fā)布的PCI Express 2.0規(guī)范所采納,使得鏈路速度高達5Gbps。然而,大多數(shù)新的設計開始仍然是基于PCI Express 1.1版本的2.5Gbps。
一個PCI Express系統(tǒng)可以用幾個部件組成。所有的系統(tǒng)都需要有一個根聯(lián)合體(Root Complex)對整個系統(tǒng)進行管理。交換設備(Switch)是用來將幾個卡連接到另一個PCI Express鏈路,“端設備”則代表了用戶應用。橋接是端設備的特殊形式,可以將舊的PCI應用連接至PCI Express總線。FPGA主要用于端設備或橋接應用。
在PCI Express應用中FPGA起著重要的作用,主要有三種設計方法:
*PCI-Express至PCI橋和FPGA
*外部的PCI-Express PHY和FPGA
*PCI-Express的PHY集成在FPGA之中
第一種使用PCI-Express至PCI橋的方法,優(yōu)點是可以重用舊的PCI設計,但由于額外的橋接單元,成本很高。在橋和FPGA之間,這個應用仍然被PCI的缺點所限制,在成本方面處于不利地位。
圖2A和2B
當僅需純粹的PCI Express接口,而不需要其它邏輯時,外部的PCI Express PHY和FPGA(圖2A)相結(jié)合可能極具吸引力。利用被稱為PIPE的并行接口,PCI Express PHY可以連接到FPGA。雖然PIPE接口被認為是一個標準,但不同廠商在實現(xiàn)方面有著細微的差別,因此物理層芯片就不容易互換。此外,工業(yè)級的外部PCI Express PHY芯片也不太容易買到,要不就是價格昂貴。此外,許多應用程序使用領(lǐng)先的器件,可用的領(lǐng)先的PCI Express PHY芯片也是很有限的。
因此,如果只有一個PCI Express接口鏈路,而且在FPGA中只要少量的額外邏輯(除了溫度范圍的限制,以及可用的領(lǐng)先器件),這種做法頗有意義。對于所有其他應用,最好是考慮一個整合的解決方案,如圖2B所示。
如果采用整合的解決方案,首個挑戰(zhàn)是尋找一個低成本的器件。在過去,PCI Express需要的串行鏈路一般只在高端昂貴的FPGA中才有。然而,今天許多應用需要較低成本的解決方案。中檔LatticeECP2M,或最近推出的LatticeECP3 FPGA系列,擁有適合這種應用的一些功能。這兩種器件都集成了可用于實現(xiàn)PCI Express x1或x4的串行通道。除了低成本優(yōu)勢外,與高端FPGA解決方案相比,這兩類器件的功耗也非常低。該“節(jié)能方案”使系統(tǒng)工程師能夠降低功耗,因此只需要使用較小供電電源。圖3展示了近期推出的ECP3 FPGA系列的結(jié)構(gòu)圖。
圖3:LatticeECP3中檔FPGA框圖,內(nèi)有集成的SERDES模塊。
利用這些FPGA的另一個優(yōu)點是它們能夠處理PCI Express使用的擴頻時鐘。許多其他的“單芯片”解決方案推薦使用外部的PLL和去除抖動來處理時鐘,這意味著電路板上會有兩到三個額外的器件。這些器件也可用在工業(yè)溫度范圍。
既然這些FPGA的串行鏈路只能實現(xiàn)物理層的SERDES部分,所以需要額外的邏輯來實現(xiàn)完整的PCS。這由軟IP核來完成,它可以配置成x1或x4 PCI Express端點。萊迪思的ispLEVER設計軟件包括一個稱為IPexpress的工具,通過GUI來配置功能,如PLL、存儲器等,還有軟IP。PCI Express核可從萊迪思網(wǎng)站上下載,使用IP Express進行配置并產(chǎn)生編程文件。即使沒有有效許可證,也可以運行這個應用數(shù)小時,從而獲得一個全面的系統(tǒng)評估。
為了符合系統(tǒng)的需要,配置PCI Express核的某些功能是非常重要的。例如, PCI Express提供不同的有效載荷大小。有效載荷的規(guī)模越大,核中需要的FIFO也越大。為了節(jié)約資源,可以通過IPexpress來選擇針對PCI Express核的正確有效載荷的大小。還有一些應加以調(diào)整的其他參數(shù),以針對系統(tǒng)要求優(yōu)化FPGA的利用率。
在許多項目開發(fā)中,只有在開發(fā)后期才能得到樣機電路板。為了熟悉PCI Express的協(xié)議,可從萊迪思獲取PCI Express設計套件。該套件包含了電路板,可用于x1或x4的插槽,并有一些演示配置:
* 基本方法
o 用戶訪問內(nèi)存和寄存器
o 在電腦上運行演示與在電路板上的PCIe IP核之間提供簡單的互動
* 吞吐量
o 在PCIe核和SERDES之間演示和測量帶寬性能
* Scatter Gather DMA
o 使用DMA在PC機內(nèi)存和PCI Express卡之間傳送數(shù)據(jù)
設計人員可以選擇使用其中一個準備好的編程文件,在30分鐘內(nèi)構(gòu)建一個完整的演示。套件不僅提供了硬件設計文件,而且還提供驅(qū)動程序和運行在PC上的應用程序,這樣就為設計人員的應用提供了一個良好的起點。圖4展示了萊迪思的一個完整的PCI Express演示設計。
圖4:Lattice PCI Express的演示。
用協(xié)議分析儀和示波器可以調(diào)試系統(tǒng)。但是,利用功能或者RTL級仿真時,設計人員已經(jīng)可以找到許多問題。
系統(tǒng)調(diào)試的三個主要方法:
* 串行環(huán)回
* 激勵發(fā)生器和測試器
* 總線功能模型
萊迪思的PCI Express核包含一個簡單的采用串行環(huán)回的測試平臺。借助一些來自測試平臺的互動建立PCI Express鏈路,并發(fā)送一些數(shù)據(jù)包。這是仿真設計的非?;镜姆椒?。
一個更先進的方法是使用激勵發(fā)生器和測試器。FPGA中串行鏈路的仿真模型被一個模型所取代,后者生成數(shù)據(jù)包,并檢查FPGA內(nèi)的邏輯響應。
最全面且成本昂貴的方法是建立總線功能模型。有幾個供應商提供PCI Express的仿真模型。根據(jù)總線功能模型,設計人員可以測試應用程序,以及FPGA的串行鏈路與整個系統(tǒng)的互動。