劉 娟,田 澤,2,黎小玉,2,牛少平
(1.中航工業西安航空計算技術研究所,西安 710068;2.集成電路與微系統設計航空科技重點實驗室,西安 710068)
隨著嵌入式系統互連技術的發展,系統對數據傳輸和處理的速率也有了越來越來高的要求,I/O 子系統的性能直接關系到系統的性能[1],PCI Express(PCIe)是繼第一代ISA、EISA、VESA 總線,第二代PCI、AGP、PCI-X 總線之后的第三代高性能I/O 總線,是一種能夠廣泛應用于移動設備、計算系統、嵌入式計算和通信平臺等所有周邊I/O 設備互連的總線[2-3]。
由于PCIe 在嵌入式系統的廣泛應用,使得在愈來愈復雜的SoC 設計中如何對PCIe 接口盡早的進行充分且完備的驗證,是值得研究的重要問題之一,本文基于一款自研SoC 芯片PCIe 接口,詳細闡述PCIe 接口的FPGA 平臺驗證。
本文中SoC 芯片的PCIe 模塊符合PCI Express v2.0協議,并兼容PCI Express v1.1協議,支持x4 PCI Express通道,單通道2.5Gb/s 通道速率,實現了協議規定的事務層、鏈路層、物理層邏輯子塊的功能,支持端點操作,提供傳統中斷和MSI 中斷兩種中斷類型,PCIe 模塊為用戶提供全面的底層PCIe 狀態信息,主機通過PCIe 接口可訪問的地址空間分為3部分,可分別配置基地址寄存器BAR1、BAR2、BAR3的值來確定其基地址,BAR0空間保留。BAR1為寄存器區,BAR2為存儲區,BAR3為FLASH。
在PCIe 接口的FPGA 原型驗證中,需要綜合考慮平臺的可靠性、完備性以及可測試性,文中采用的驗證環境示意圖如圖1所示:驗證環境使用的硬件和軟件如下:
硬件組成:PC 機,Xilinx 編程調試電纜,RiscWatch 調試工具,PCIe 驗證板,PPC 主機板、PCIe 訓練器,母板/擴展卡;
軟件環境:ELDK,Tornado2.2,Protocol Exerciser 工具。

圖1 驗證環境
對PCIe 接口進行充分完備的FPGA 驗證,可以有效的彌補軟件模擬仿真的不足,檢驗設計是否符合SoC 設計需求,盡早的暴露設計中存在的問題[4]。本文中通過協議分析,根據SoC 芯片的PCIe 接口需求以及功能定義,策劃了符合性驗證,功能驗證、性能驗證三大類驗證項,以保證功能、性能、對外接口以及兼容性滿足應用要求。以下分別介紹。
協議的符合性測試是一種功能性的黑盒測試[5],由于PCI Express 協議的復雜性,使符合性測試較困難;另外,在驗證中需要考慮提高驗證效率,因此,在文中采用安捷倫PCIe 訓練器,通過訓練器自帶的Protocol Exerciser軟件來進行協議符合性測試。測試軟件如圖2所示,協議符合性測試包括以下兩項:
(1)PCI-SIG 要求的13個強制測試項目,主要包括對未定義編碼的DLLP 是否會被丟棄、對錯誤LCRC 的丟棄處理以及錯誤序列號的TLP 是否丟棄等,訓練器在測試完成后會自動生成測試報告。
(2)對傳輸層、數據鏈路層、配置空間的測試項目,包括傳輸層70項,數據鏈路層40項,配置空間66項,電測試1項,可根據訓練器軟件中對每個測試項的執行提示完成測試項的執行并自動生成測試報告。

圖2 協議符合性測試軟件
PCIe 接口的功能驗證主要包括PCIe 配置空間功能,BAR1寄存器區功能,BAR2存儲區功能、BAR3 Flash 功能,PCIe BAR間干擾以及PCIe 中斷功能測試,具體如表1所示。

表1 功能驗證
根據SoC 設計需求,PCIe 性能驗證包括四線轉一線測試、PCIe 的讀寫速率測試以及PCIe 鏈路穩定性測試,其中PCIe 的讀寫速率包括單拍讀寫及DMA 讀寫。
四線轉一線:由于系統上電復位后,系統自動協商為PCIe四線,配置PPC 主機的SRDS1CR1寄存器,將PCIe 鏈路強制為一線,在PCIe 初始化和配置完成后訪問Bar1和Bar2,判斷讀寫是否正常。
PCIe 的單拍讀寫速率:使用PPC 主機上的定時器進行定時,對BAR1空間進行多次讀寫數據,計算BAR1的單拍讀寫速率。
DMA讀寫速率:DMA讀寫速率測試需分別測試PCIe在一線、四線時,PCIe 包分別配置為128B、256B、512B 的最大讀請求長度和128B、256B 的寫請求長度的場景下,使用PPC 主機上的定時器,在PPC主機上準備數據,配置DMA測試寄存器數據源地址、目的地址、測試長度,啟動DMA,對DMA 狀態查詢傳輸是否完成,從而根據多次DMA的數據長度及定時器時間,計算DMA讀速率、DMA 寫速率。
PCIe 鏈路穩定性測試:系統上電復位后,初始化和配置PCIe,在一定的時間段內,對BAR 空間進行連續的單拍讀寫訪問或者DMA 操作,并在數據訪問期間讀PCIe 鏈路狀態寄存器,判斷鏈路狀態是否正常。
本文介紹了一種SoC 芯片中PCIe 接口的FPGA 平臺驗證,搭建驗證平臺,策劃測試用例,進行協議符合性驗證、功能驗證以及性能驗證,經驗證,PCIe 接口符合PCIe 協議標準,功能正確,性能穩定;PCIe 讀速率為487.9MB/s,PCIe 寫速率為520MB/s,PCIe 接口功能及性能滿足該芯片需求,對SoC 芯片的開發進度有一定的促進作用,構建的驗證平臺具有可重用性,對同類模塊的驗證有可參考性。