摘要:稱為第3代I/O接口技術(shù)的PCI Express總線規(guī)范的出現(xiàn),從結(jié)構(gòu)上解決了帶寬不足的問題,有著極為廣闊的發(fā)展前景?;赩erilog HDL硬件描述語(yǔ)言及可綜合化設(shè)計(jì)理念,完成了PCI Express IP核RTL代碼的設(shè)計(jì)。IP核代碼使用Verilog HDL語(yǔ)言編寫,分模塊、分層次地設(shè)計(jì)了事務(wù)層、數(shù)據(jù)鏈路層和物理層的邏輯子層,并進(jìn)行了可綜合化設(shè)計(jì)與代碼風(fēng)格檢查。對(duì)設(shè)計(jì)的PCI Express IP核的功能分別從協(xié)議層次和應(yīng)用層次進(jìn)行了驗(yàn)證。具體實(shí)現(xiàn)上,采用Denali公司的PureSuite測(cè)試套件對(duì)IP核的協(xié)議兼容性進(jìn)行驗(yàn)證,驗(yàn)證范圍覆蓋了IP核的3個(gè)層次以及配置空間,采用QuestaSim仿真工具對(duì)IP核的應(yīng)用層進(jìn)行驗(yàn)證。仿真結(jié)果表明,設(shè)計(jì)的PCI Express IP核工作正常,性能優(yōu)良。
關(guān)鍵詞:PCI Express協(xié)議; IP核; 驗(yàn)證; I/O接口
中圖分類號(hào):TN9834文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004373X(2012)04012303
Realization and verification of PCI Express protocol
ZHANG Dawei1, LIANG Yuqi2, LIU Di1
(1. Department of Control Engineering, Naval Aeronautical and Astronautical University, Yantai 264001, China;
2. Department of Information Engineering, Shandong College of Information Technology, Weifang 261061, China)
Abstract: The design of RTL code with PCI Express IP core was accomplished on the basis of Verilog HDL and the synthetic design concept. The PCI Express IP core code was compiled with Verilog HDL. The logical sublayers of transaction Layer, data link layer and the physical layer were designed by dividing the modules and layers. The synthetic design and the code style check were performed. The function of PCI Express IP core was verified in the aspects of protocol and application. The compatibility verification of the designed PCI Express IP core was accomplished by the testing assembly PureSuite made by Denali Company, covering the three layers and the Configuration Space of the IP core. The application layer of IP core was verified with the simulation tool QuestaSim. The simulated results show that the PCI Express IP core works well and has satisfactory performance.
Keywords: PCI Express protocol; IP core; verification; I/O interface
收稿日期:201108100引言
當(dāng)下,計(jì)算機(jī)系統(tǒng)使用的主流內(nèi)部總線技術(shù)為PCI總線。隨著千兆以太網(wǎng)、RAID陣列等高帶寬設(shè)備的出現(xiàn),PCI總線133 MB/s的帶寬已明顯不能滿足應(yīng)用的需要。根據(jù)PCI總線的性能不足及計(jì)算機(jī)系統(tǒng)的應(yīng)用需求,第3代I/O總線接口技術(shù)PCI Express應(yīng)運(yùn)而生[12]。PCI Express是一種應(yīng)用于各種計(jì)算與通信平臺(tái)的高帶寬、點(diǎn)對(duì)點(diǎn)串行互聯(lián)協(xié)議,支持虛通道、流量控制機(jī)制及熱插撥,具有錯(cuò)誤處理及錯(cuò)誤報(bào)告功能,并在軟件上與PCI兼容,具有鮮明的技術(shù)優(yōu)勢(shì)和廣闊的應(yīng)用前景[3]?;趯CI Express理論優(yōu)勢(shì)轉(zhuǎn)化為實(shí)際應(yīng)用優(yōu)勢(shì)的考慮,設(shè)計(jì)了PCI Express IP核,并進(jìn)行了可綜合化設(shè)計(jì)與代碼風(fēng)格檢查,最后對(duì)設(shè)計(jì)的PCI Express IP核分別從協(xié)議層次和應(yīng)用層次進(jìn)行了較為充分的功能驗(yàn)證。
1PCI Express協(xié)議
較之PCI總線,PCI Express在總線技術(shù)與結(jié)構(gòu)上實(shí)現(xiàn)了較大飛躍,提供了高速、高性能、點(diǎn)到點(diǎn)、雙單工、串行、差分信號(hào)鏈路來(lái)互聯(lián)設(shè)備[45]。PCI Express的基本結(jié)構(gòu)包括根復(fù)合體(Root Complex)、交換機(jī)(Switch)以及端點(diǎn)設(shè)備(Endpoint)等[6],本文設(shè)計(jì)的PCI Express IP(Intellectual Property)核屬于PCI Express端點(diǎn)設(shè)備。PCI Express總線典型拓?fù)浣Y(jié)構(gòu)如圖1所示。
根復(fù)合體(RC)為下層I/O設(shè)備連接到CPU和主存儲(chǔ)器系統(tǒng)提供了路徑,一個(gè)根復(fù)合體可支持一個(gè)或多個(gè)PCI Express端口;端點(diǎn)設(shè)備(EP)是PCI Express事務(wù)的請(qǐng)求發(fā)起者(Requester)或應(yīng)答者(Completer),端點(diǎn)設(shè)備又分為傳統(tǒng)端點(diǎn)、PCI Express端點(diǎn)和根復(fù)合體集成端點(diǎn);交換機(jī)(Switch)是由多個(gè)虛擬PCItoPCI橋設(shè)備組成的,其主要功能是為上游器件和下游器件的通信選擇路徑。
圖1典型PCI Express總線拓?fù)浣Y(jié)構(gòu)PCI Express規(guī)范規(guī)定對(duì)于設(shè)備的設(shè)計(jì)采用分層結(jié)構(gòu),由下向上可分為物理層(Physical Layer)、數(shù)據(jù)鏈路層(Data Link Layer)和事務(wù)層(Transaction Layer),物理層又由邏輯子層和電氣子層組成。沿縱向來(lái)看,各層又可分為發(fā)送和接收2塊功能[7]。發(fā)送功能塊構(gòu)成了設(shè)備的發(fā)送部分,處理向外的傳輸事務(wù);接收功能塊構(gòu)成了設(shè)備的接收部分,處理向內(nèi)的傳輸事務(wù)。典型PCI Express層次結(jié)構(gòu)如圖2所示。
圖2典型PCI Express層次結(jié)構(gòu)作為PCI Express協(xié)議的最高層,事務(wù)層主要負(fù)責(zé)以下任務(wù),如:基于流水線的分割事務(wù)協(xié)議;處理事務(wù)包的機(jī)制;基于“信用”的流量控制;支持?jǐn)?shù)據(jù)完整性。數(shù)據(jù)鏈路層位于事務(wù)層和物理層之間,為事務(wù)層TLP在鏈路中的傳輸提供可靠的傳輸機(jī)制。數(shù)據(jù)鏈路層完成的主要任務(wù)包括傳遞TLP、錯(cuò)誤檢測(cè)和裁決、初始化和電源管理、產(chǎn)生DLLP。
物理層位于PCI Express協(xié)議的最底層,決定了PCI Express總線接口的物理特性,如點(diǎn)對(duì)點(diǎn)串行連接、微差分信號(hào)驅(qū)動(dòng)、熱撥插、可配置帶寬等。
2PCI Express IP核設(shè)計(jì)
2.1結(jié)構(gòu)設(shè)計(jì)
從層次上來(lái)講,PCI Express IP核實(shí)現(xiàn)了PCI Express協(xié)議定義的所有3個(gè)層次:事務(wù)、數(shù)據(jù)鏈路和物理的邏輯部分。從結(jié)構(gòu)上來(lái)講,PCI Express IP核主要由用戶接口模塊、發(fā)送數(shù)據(jù)包解析模塊、電源管理模塊、DLLP仲裁模塊、TLP仲裁模塊、重傳緩沖模塊、CRC生成模塊、幀信息生成模塊、數(shù)據(jù)鏈路層數(shù)據(jù)流仲裁模塊、LTSSM狀態(tài)機(jī)模塊、SKP發(fā)生模塊、LTSSM用有序集發(fā)生模塊、物理層數(shù)據(jù)流仲裁模塊、通道分配模塊、通道合并模塊、亂序模塊、解亂序模塊、PIPE接口模塊、接收數(shù)據(jù)包解析模塊和接收緩沖模塊組成[8]。本文重點(diǎn)介紹用戶接口模塊和發(fā)送數(shù)據(jù)包解析模塊。
用戶接口模塊是用戶邏輯與PCI Express IP核進(jìn)行數(shù)據(jù)交互的橋梁,該模塊分為發(fā)送接口和接收接口2部分。一方面,用戶邏輯按照規(guī)定的時(shí)序通過(guò)該模塊把欲發(fā)送的數(shù)據(jù)發(fā)送到PCI Express鏈路;另一方面,PCI Express IP核接收來(lái)自PCI Express鏈路上的數(shù)據(jù),處理后通過(guò)該模塊發(fā)送給用戶邏輯。
發(fā)送數(shù)據(jù)包解析模塊的主要任務(wù)之一負(fù)責(zé)解析TLP包,并提供給TLP仲裁模塊進(jìn)行傳輸。
發(fā)送數(shù)據(jù)包解析模塊的第2個(gè)功能為實(shí)現(xiàn)流控機(jī)制。流控機(jī)制是PCI Express中最基本的機(jī)制之一,流控機(jī)制雖然是對(duì)本地緩存的一種有效保護(hù),但對(duì)TLP的收發(fā)性能有很大的影響。流量的初始化和更新均使用DLLP來(lái)完成;初始化使用FC Init1和FC Init2 DLLP來(lái)完成;更新使用FC Updata DLLP來(lái)完成。
2.2接口設(shè)計(jì)
接口設(shè)計(jì)主要包括本地接口設(shè)計(jì)、配置寄存器擴(kuò)展接口設(shè)計(jì)和電源管理接口設(shè)計(jì)3部分。
本地接口用于用戶邏輯與遠(yuǎn)端PCI Express設(shè)備之間傳輸TLP,在本地接口總線上所傳輸?shù)腡LP均需滿足標(biāo)準(zhǔn)的PCI Express數(shù)據(jù)包格式。本地接口又分為發(fā)送接口和接收接口,PCI Express IP核通過(guò)發(fā)送接口在PCI Express鏈路上發(fā)送PCI Express包,通過(guò)接收接口從PCI Express 鏈路上接收PCI Express包。
配置寄存器擴(kuò)展接口主要用于實(shí)現(xiàn)額外的PCI能力項(xiàng)和配置寄存器。根據(jù)PCI Express規(guī)范,原則上只有跟PCI Express配置相關(guān)的寄存器才可以放入配置空間。本文設(shè)計(jì)的PCI Express IP核是PCI Express端點(diǎn)(Endpoint),故使用標(biāo)準(zhǔn)Type0配置空間,該空間占用了0x000~0x0BF地址范圍,配置寄存器擴(kuò)展接口可使用空間的地址范圍從0x0C0~0xFFF。
3PCI Express IP核功能驗(yàn)證
驗(yàn)證是比設(shè)計(jì)更重要的一個(gè)環(huán)節(jié),它穿越了整個(gè)設(shè)計(jì)流程,以便盡早發(fā)現(xiàn)設(shè)計(jì)中可能存在的錯(cuò)誤和缺陷[9]。功能驗(yàn)證指驗(yàn)證RTL代碼是否符合原始的設(shè)計(jì)需求和規(guī)格,在這里指驗(yàn)證設(shè)計(jì)的PCI Express IP核是否符合PCI Express規(guī)范。本文采用基于虛擬平臺(tái)的驗(yàn)證方法對(duì)設(shè)計(jì)的PCI Express IP核進(jìn)行協(xié)議層驗(yàn)證和應(yīng)用層驗(yàn)證[10]。
3.1協(xié)議層驗(yàn)證
本文采用Denali公司的PureSuite測(cè)試工具對(duì)PCI Express IP核的協(xié)議層進(jìn)行驗(yàn)證。PureSuite可以測(cè)試PCI Express設(shè)計(jì)的兼容性,包含完整的測(cè)試用例,且與PCISIG的兼容性驗(yàn)收列表完全匹配。PureSuite覆蓋了物理層、數(shù)據(jù)鏈路層、事務(wù)層以及配置空間,包括定向測(cè)試和隨機(jī)測(cè)試,使用PureSpec總線功能模型對(duì)待測(cè)設(shè)計(jì)施加合適的激勵(lì),該功能模型使用SOMA配置文件來(lái)約束功能模型的行為和特性。PureSuite充分發(fā)揮了Denali的先進(jìn)特性,自動(dòng)產(chǎn)生測(cè)試激勵(lì),并報(bào)告測(cè)試結(jié)果。使用PureSuite對(duì)PCI Express IP核進(jìn)行兼容性測(cè)試主要需要四個(gè)步驟,測(cè)試平臺(tái)搭建、測(cè)試用例選擇、運(yùn)行仿真、查看結(jié)果。
測(cè)試平臺(tái)搭建主要包括對(duì)DUT的實(shí)例化以及創(chuàng)建約束DUT特性的SOMA文件。首先,編寫Testbench文件,把Denali的模型和監(jiān)視器以及DUT連接起來(lái),并指定對(duì)應(yīng)的SOMA文件,分別對(duì)上述3個(gè)模塊進(jìn)行特性約束。其次,使用Denali的圖形化工具PureView創(chuàng)建DUT監(jiān)視器模塊及其SOMA文件,需要把PCI Express IP核的特性全部寫入該SOMA文件中。
由于Denali的PureSuite包含了一套完整的測(cè)試用例,其中有許多是DUT所不具備的能力,故在運(yùn)行仿真前需要選擇與DUT配套的測(cè)試用例,當(dāng)然也可以指定一些測(cè)試用例進(jìn)行單獨(dú)測(cè)試,以禁止運(yùn)行DUT所不具有的特性的測(cè)試用例。PureSuite提供5大類測(cè)試,包括事務(wù)層測(cè)試、PHY測(cè)試、數(shù)據(jù)鏈路層測(cè)試、配置空間測(cè)試和虛通道測(cè)試,本文的設(shè)計(jì)不包括PHY部分,故僅對(duì)DUT進(jìn)行了其余4類測(cè)試。
在進(jìn)行協(xié)議層仿真時(shí),本文使用NCSIM仿真工具在Linux系統(tǒng)下進(jìn)行。仿真平臺(tái)搭建好后,需要編寫運(yùn)行腳本文件。在編寫腳本文件中,主要包括對(duì)代碼進(jìn)行編譯、指定編譯器及其參數(shù)、指定仿真頂層等。一切準(zhǔn)備就緒后,便可以運(yùn)行仿真。在仿真過(guò)程中需要查看仿真波形,要在仿真頂層文件“tb.v”中把保存波形數(shù)據(jù)庫(kù),在仿真過(guò)程中或仿真結(jié)束后用SimVision工具打開波形數(shù)據(jù)庫(kù)查看波形。
仿真過(guò)程結(jié)束后,PureSuite會(huì)生成一個(gè)測(cè)試結(jié)果文件puresuite.status,該文件包含了仿真運(yùn)行的詳細(xì)結(jié)果及統(tǒng)計(jì)結(jié)果,整個(gè)設(shè)計(jì)的4類測(cè)試項(xiàng)均測(cè)試成功。
3.2應(yīng)用層驗(yàn)證
在應(yīng)用層驗(yàn)證中主要驗(yàn)證DUT是否能夠正確處理數(shù)據(jù)包,包括是否能夠正確發(fā)送用戶邏輯產(chǎn)生的數(shù)據(jù)包和是否能夠正確接收鏈路上的數(shù)據(jù)包,并路由到正確的目標(biāo)地址。同時(shí),兼顧測(cè)試PCI Express IP核的部分協(xié)議兼容性。應(yīng)用層驗(yàn)證需要為DUT搭建一個(gè)應(yīng)用環(huán)境,包括一個(gè)內(nèi)部SRAM,一片F(xiàn)LASH存儲(chǔ)器和通用輸入輸出接口。DUT的PHY使用Xilinx的GTP模型,主機(jī)模型使用由某公司提供的PCI Express根復(fù)合體仿真模型。
代碼覆蓋率是驗(yàn)證結(jié)果的重要質(zhì)量標(biāo)志,有助于指導(dǎo)驗(yàn)證計(jì)劃的改進(jìn)。通過(guò)QuestaSim 6.3d的代碼覆蓋率計(jì)算,如圖3所示,PCI Express IP核的代碼覆蓋率達(dá)到了令人滿意的效果。
圖3代碼覆蓋率4結(jié)語(yǔ)
攻克了基于信用的流量控制機(jī)制、電源管理機(jī)制、錯(cuò)誤檢測(cè)與處理報(bào)告機(jī)制、LTSSM狀態(tài)機(jī)等多個(gè)技術(shù)難關(guān)后,本文完成了PCI Express IP核RTL代碼的設(shè)計(jì)?;赑ureSuite測(cè)試套件及QuestaSim仿真工具對(duì)設(shè)計(jì)的IP核進(jìn)行了全方位的功能驗(yàn)證,并對(duì)驗(yàn)證過(guò)程發(fā)現(xiàn)的問題逐一進(jìn)行修正。仿真結(jié)果表明,設(shè)計(jì)的PII Express IP核實(shí)現(xiàn)了預(yù)期功能,達(dá)到了設(shè)計(jì)技術(shù)指標(biāo)。
參考文獻(xiàn)
[1]魏鵬,羅武勝,杜列波.PCI Express總線及其應(yīng)用設(shè)計(jì)研究[J].電測(cè)與儀表,2007,44(2):4345.