PCI Express是由Intel,Dell,Compaq,IBM,Microsoft 等PCI SIG聯合成立的Arapahoe Work Group共同草擬并推舉成取代PCI總線標準的下一代標準。PCI Express利用串行的連接特點能輕松將數據傳輸速度提到一個很高的頻率,達到遠遠超出PCI總線的傳輸速率。一個PCI Express連接可以被配置成x1,x2,x4,x8,x12,x16和x32的數據帶寬。x1的通道能實現單向312.5 MB/s(2.5 Gb/s)的傳輸速率。Xilinx公司的Virtex5系列FPGA芯片內嵌PCI-ExpressEndpoint Block硬核,為實現單片可配置PCI-Express總線解決方案提供了可能。 本文在研究PCI-Express接口協議和PCI-Express Endpoint Block硬核的基礎上,使用Virtex5LXT50 FPGA芯片設計PCI Express接口硬件電路,實現PCI-Express數據傳輸。 1 PCI Express的拓撲結構 PCI Express是一種能夠應用于點設備、臺式電腦、工作站、服務器、嵌入式計算機和通信平臺等所有周邊I/O設備互連的總線。其拓撲結構如圖1所示,其中包含ROOT COMPLEX(RC)、多個終端(I/O器件)、開關和PCI Express/PCI橋路,它們通過PCI Express進行互聯。 ![]() RC是I/O層次的根部,將CPU/存儲器子系統與I/O相連。RC可以支持一個或多個PCI Express端口,例如英特爾芯片組。 開關定義為多個虛擬PCI之間的橋路器件的邏輯組,它們使用一種基于地址路由的PCI橋路機制來傳遞執行信息,例如IDT PCI Express開關。 端點是指能作為PCI Express執行的請求者或完成者的那一類器件,可以是PCI Express自身,也可以是一個非PCI Express器件,例如連接在PCI Express上的圖形控制器。 PCIE總線保留了對于PCI局部總線協議全部軟件的向下兼容性,即只要是PCIE的卡都可以插到支持PCI的操作系統上使用;在硬件上,兩者不兼容,PCIE取代PCI,PCI-X的并行多路總線結構,采用一種串行、點到點的總線連接結構,需要的接口更少。 2 Virtex 5 Lxt PCIE Endpoint block Virtex 5 Lxt PCIE Endpoint block集成了PCIE協議中的物理層(PHY)、數據鏈接層(DLL)和傳輸層(TL),同時它還實現了PCI-Express設備的功能配置寄存器,其結構框圖如圖2所示,包含有以下幾個接口:時鐘和復位接口、配置和狀態接口、電源管理接口、用戶接口和傳輸層接口。 ![]() Virtex 5 Lxt PCIE Endpoint block具有PCI-Express的完整功能,完全符合PCIe基本規格v1.1版要求,作為FPGA內部的硬核,它是可配置的PCIe端點解決方案,大大增加設計的靈活性,降低設計的RNE費用,并且支持1x,2x,4x或8x通道的實現,為系統的功能擴張提供了有效途徑;帶有內置PCIe端點模塊的Virtex-5 LXT FPGA芯片,能夠被用于任何一種外形的產品設計,如表1所示。 ![]() 3 總線接口設計實現 3.1 接口硬件設計 接口硬件主要由主控FPGA模塊,電源管理模塊,DDR高速緩存模塊、和時鐘管理模塊組成。硬件結構框圖如圖3所示。 ![]() FPGA是整個設計的最關鍵部分,主要實現:PCI-Express硬核;在硬核的用戶接口和傳輸接口實現PCI-Express傳輸本地總線的時序邏輯;并且在其內部完成DDR控制時序邏輯。FPGA是PCI-Express接口和DDR內存單元數據傳輸的通道。這里選擇 XilinxVirtex5系列FPGA中的V5LX50T芯片,封裝形式為FFGll36。 在整個電路中,FPGA的功耗最大,因此在電源模塊設計中,重點考慮FPGA因素。FPGA的功耗與設計有關,主要取決于器件的型號、設計的時鐘頻率、內部設計觸發器翻轉率和整個FPGA的資源利用率。這里使用Xilinx功耗分析工具XPower進行功耗分析,根據XPower提供的動態功耗和靜態功耗分析結果,選擇TI公司的相關電源模塊。 DDR是比較常用的高速緩存單元,這里選擇使用現代公司的HY5DU56822DT-D4,在PCI-Express傳輸過程中,對時鐘的穩定性要求很高;Virtex5 FPGA內部的CMT模塊的時鐘綜合處理能力可能達不到預想的效果,這里使用專門的時鐘管理單元提供時鐘,選擇的是ICS874003芯片,通過FPGA 管腳控制其時鐘綜合的效果。 3.2 軟件設計 在實現PCI-Express數據傳輸過程中,構建數據傳輸流程如圖4所示。 ![]() 數據從PC內存通過PCI-Express接口向下傳輸到FPGA內部,FPGA內部DDR控制邏輯再將數據傳輸到的DDR內存芯片中存儲,向下傳輸完畢后,FPGA內部邏輯從DDR芯片中將存儲的數據讀出,并且給每個數據按字節加‘1’,然后通過PCI-Express接口,再將數據傳輸回PC內存,PC內存程序對數據進行校驗。 4 結 語 Virtex5系列FPGA芯片內嵌PCI-Express End-point Block硬核,為實現單片可配置PCI-Express總線解決方案提供了可能;赩irtex5 FPGA的PCIExpress設計實現方式簡單、配置靈活,適合于各種應用領域,降低了設計成本,縮短了產品上市時間,保證了產品的功能性和易用性,開創了高效率PCI Express開發的新時代。 參考文獻 1. Doug Kern Introducing the Virtex-5 PCI Express Endpoint Block 2007 2. PCI ExpressTM Base Specification Revision 1.0a 2003 3. Virtex-5 LogiCORE Endpoint Block for PCI Express Designs User Guide 2007 4. ML555 Board User Guide 2007 5. LogiCORE Endpoint solutions for PCI Express 2007 6. Virtex-5 PCB Designer's Guide 2007 作者:國防科技大學 劉凱 徐欣 來源:現代電子技術 2008 31(20) |