PCI Express協議實現與驗證
2.2 接口設計
接口設計主要包括本地接口設計、配置寄存器擴展接口設計和電源管理接口設計3部分。
本地接口用于用戶邏輯與遠端PCI Express設備之間傳輸TLP,在本地接口總線上所傳輸的TLP均需滿足標準的PCI Express數據包格式。本地接口又分為發送接口和接收接口,PCI Express IP核通過發送接口在PCI Express鏈路上發送PCI Express包,通過接收接口從PCI Exp ress鏈路上接收PCI Express包。
配置寄存器擴展接口主要用于實現額外的PCI能力項和配置寄存器。根據PCI Express規范,原則上只有跟PCI Express配置相關的寄存器才可以放入配置空間。本文設計的PCI Express IP核是PCI Express端點(Endpoint),故使用標準Type0配置空間,該空間占用了0x000~0x0 BF地址范圍,配置寄存器擴展接口可使用空間的地址范圍從0x0C0~0xFFF。
3 PCI Express IP核功能驗證
驗證是比設計更重要的一個環節,它穿越了整個設計流程,以便盡早發現設計中可能存在的錯誤和缺陷。功能驗證指驗證RTL代碼是否符合原始的設計需求和規格,在這里指驗證設計的PCI Express IP核是否符合PCI Express規范。本文采用基于虛擬平臺的驗證方法對設計的PCI Express IP核進行協議層驗證和應用層驗證。
3.1 協議層驗證
本文采用Denali公司的PureSuite測試工具對PCI Express IP核的協議層進行驗證。PureSuite可以測試PCI Express設計的兼容性,包含完整的測試用例,且與PCI-SIG的兼容性驗收列表完全匹配。PureSuite覆蓋了物理層、數據鏈路層、事務層以及配置空間,包括定向測試和隨機測試,使用PureSpec總線功能模型對待測設計施加合適的激勵,該功能模型使用SOMA配置文件來約束功能模型的行為和特性。PureSu ite充分發揮了Denali的先進特性,自動產生測試激勵,并報告測試結果。使用PureSuite對PCI Express IP核進行兼容性測試主要需要四個步驟,測試平臺搭建、測試用例選擇、運行仿真、查看結果。
測試平臺搭建主要包括對DUT的實例化以及創建約束DUT特性的SOMA文件。首先,編寫Testbench文件,把Denali的模型和監視器以及DUT連接起來,并指定對應的SOMA文件,分別對上述3個模塊進行特性約束。其次,使用Denali的圖形化工具PureView創建DUT監視器模塊及其SOMA文件,需要把PCI Express IP核的特性全部寫入該SOMA文件中。
由于Denali的PureSuite包含了一套完整的測試用例,其中有許多是DUT所不具備的能力,故在運行仿真前需要選擇與DUT配套的測試用例,當然也可以指定一些測試用例進行單獨測試,以禁止運行DUT所不具有的特性的測試用例。PureSuite提供5大類測試,包括事務層測試、PHY測試、數據鏈路層測試、配置空間測試和虛通道測試,本文的設計不包括PHY部分,故僅對DUT進行了其余4類測試。
在進行協議層仿真時,本文使用NC-SIM仿真工具在Linux系統下進行。仿真平臺搭建好后,需要編寫運行腳本文件。在編寫腳本文件中,主要包括對代碼進行編譯、指定編譯器及其參數、指定仿真頂層等。一切準備就緒后,便可以運行仿真。在仿真過程中需要查看仿真波形,要在仿真頂層文件“tb.v”中把保存波形數據庫,在仿真過程中或仿真結束后用SimVision工具打開波形數據庫查看波形。
仿真過程結束后,PureSuite會生成一個測試結果文件puresuite.status,該文件包含了仿真運行的詳細結果及統計結果,整個設計的4類測試項均測試成功。
評論