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