• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于UVM的PCI Express總線控制器驗(yàn)證平臺

      2022-03-03 06:12:28叢紅艷張艷飛
      電子與封裝 2022年2期
      關(guān)鍵詞:鏈路層存儲空間用例

      趙 賽,閆 華,叢紅艷,張艷飛

      (無錫中微億芯有限公司,江蘇無錫 214072)

      1 引言

      當(dāng)今系統(tǒng)級芯片(System of Chip,SoC)的設(shè)計(jì)大多數(shù)為軟硬件協(xié)同、數(shù)字模擬混合設(shè)計(jì),讓功能設(shè)計(jì)的復(fù)雜性日益增加。如果使用較高抽象層次的設(shè)計(jì)方法來優(yōu)化和改進(jìn)設(shè)計(jì),會增加驗(yàn)證的復(fù)雜度,當(dāng)前的驗(yàn)證策略仍然是基于仿真寄存器傳輸級的傳統(tǒng)方法,驗(yàn)證無法跟上設(shè)計(jì)的步伐。對于驗(yàn)證的挑戰(zhàn)是在電路原型期內(nèi),不犧牲功能覆蓋率以提高驗(yàn)證流程的速度。集成是另外一個重要問題,對系統(tǒng)級進(jìn)行功能劃分然后同步運(yùn)行,要保證芯片功能的仿真結(jié)果與設(shè)計(jì)意圖完全相符,以滿足系統(tǒng)可靠性需求[1]。

      傳統(tǒng)驗(yàn)證平臺是由Verilog語言搭建,通過信號層端口與待測對象(Design Under Test,DUT)直接進(jìn)行信號傳輸,對端口上的各個信號單獨(dú)制定驅(qū)動邏輯產(chǎn)生輸入激勵。傳統(tǒng)驗(yàn)證平臺對每個功能驗(yàn)證點(diǎn)設(shè)計(jì)直接激勵或完全隨機(jī)激勵,再通過運(yùn)行腳本中不同的選項(xiàng)來輸入不同的激勵,驗(yàn)證人員通過觀察波形文件和日志文件定位功能錯誤。高速外設(shè)部件互連(Peripheral Component Interconnect Express,PCIe)總線用于各種計(jì)算和通信平臺的高性能、通用I/O互連設(shè)備,PCIe充分利用點(diǎn)對點(diǎn)互連、基于交換機(jī)技術(shù)以及分組協(xié)議上的最新進(jìn)展,使得性能和功能達(dá)到一個新的高度。PCIe支持電源管理、服務(wù)質(zhì)量(Quality of Service,QoS)、熱插拔、數(shù)據(jù)完整性以及錯誤處理等功能[2-3]。PCIe設(shè)備包括4層:系統(tǒng)層、事務(wù)層、數(shù)據(jù)鏈路層、物理層。系統(tǒng)層接收從驅(qū)動層及以上發(fā)起的或者在系統(tǒng)層發(fā)起的命令,并管理所有配置寄存器和狀態(tài)[2]。PCIe接口信號數(shù)目較多,內(nèi)部模塊的信號數(shù)量龐大,對錯誤行為直接觀察檢測定位可行性極低,驗(yàn)證人員需要花費(fèi)很多的時間和精力完成驗(yàn)證目標(biāo);且驗(yàn)證平臺按接口協(xié)議進(jìn)行設(shè)計(jì),由于不同協(xié)議接口的特殊性,驗(yàn)證平臺很難被重用。

      由于PCIe邏輯功能復(fù)雜,驗(yàn)證向量空間以指數(shù)級增加,為每個功能驗(yàn)證點(diǎn)設(shè)計(jì)直接激勵不現(xiàn)實(shí)。但采用完全隨機(jī)激勵可能對功能驗(yàn)證點(diǎn)進(jìn)行重復(fù)觸發(fā),遺漏某些功能驗(yàn)證點(diǎn),隨機(jī)出來的激勵可能有一部分對DUT驗(yàn)證沒有實(shí)際意義,導(dǎo)致驗(yàn)證效率和質(zhì)量下降。例如PCIe狀態(tài)機(jī)狀態(tài)較多,為了全面驗(yàn)證PCIe功能的正確性,驗(yàn)證人員將每種可能的當(dāng)前狀態(tài)與進(jìn)入條件的情況列舉并進(jìn)行驗(yàn)證,驗(yàn)證DUT是否達(dá)到正確的狀態(tài),這使得驗(yàn)證工作量急劇增加,導(dǎo)致傳統(tǒng)驗(yàn)證平臺無法完全匹配驗(yàn)證需求。而且傳統(tǒng)驗(yàn)證平臺缺少功能覆蓋率模型,只能進(jìn)行代碼覆蓋率統(tǒng)計(jì),無法統(tǒng)計(jì)驗(yàn)證計(jì)劃中已完成的驗(yàn)證功能點(diǎn)數(shù)量,不利于掌握驗(yàn)證工作整體進(jìn)度[4-6]。

      UVM是整個電子行業(yè)中實(shí)現(xiàn)高效開發(fā)和重用的驗(yàn)證環(huán)境和驗(yàn)證IP(VIP)的一種標(biāo)準(zhǔn),UVM類庫(Class Library)提供System Verilog語言編寫的內(nèi)建組件,可快速開發(fā)具有良好架構(gòu)和可重用的驗(yàn)證組件和驗(yàn)證環(huán)境[7]。UVM驗(yàn)證平臺為分層次的事務(wù)級驗(yàn)證平臺,具有隨機(jī)分布控制等特性,在較高的抽象層次上設(shè)計(jì)驗(yàn)證用例,減少驗(yàn)證人員設(shè)計(jì)不同驗(yàn)證用例的時間,從而提高驗(yàn)證效率,可創(chuàng)建堅(jiān)實(shí)、可重用、互操作性高的驗(yàn)證IP和測試平臺(testbench)組件[8]。

      針對上述問題,本文提出了基于UVM驗(yàn)證方法學(xué)的PCIe總線控制器核驗(yàn)證平臺,用于驗(yàn)證PCIe協(xié)議的所有功能[9]。

      2 基于UVM的PCIe總線控制器功能驗(yàn)證平臺

      2.1 PCIe從設(shè)備接口控制器的驗(yàn)證計(jì)劃

      根據(jù)對PCIe總線設(shè)計(jì)規(guī)范和項(xiàng)目需求的分析,對PCIe從控制器的驗(yàn)證目標(biāo)為PCIe控制器所有功能的正確性,一方面是事務(wù)層、數(shù)據(jù)鏈路層、物理層的模塊功能正確性,另一方面是系統(tǒng)級功能正確性,如流量控制、仲裁機(jī)制、容錯和重傳機(jī)制、中斷處理、低功耗管理等。

      2.2 UVM驗(yàn)證環(huán)境

      PCIe從接口控制器驗(yàn)證平臺結(jié)構(gòu)如圖1所示,創(chuàng)建的針對PCIe的UVM驗(yàn)證環(huán)境平臺采用System Verilog語言完成,主要包括9個組件:序列產(chǎn)生器、驗(yàn)證用例、PCIe參考模型、記分板、AXI(Advanced eXtensible Interface)驅(qū)動模塊、PIPE(Physical Interface for PCI Express)驅(qū)動模塊、AXI監(jiān)測模塊、PIPE監(jiān)測模塊、功能覆蓋率模塊。各個組件之間通過端口連接和通信[7,9]。

      圖1 PCIe從接口控制器驗(yàn)證平臺結(jié)構(gòu)

      PCIe可以配置為兩種模式:根復(fù)合體(Root Complex,RC)和終端(Endpoint,EP)。該驗(yàn)證平臺為了適配PCIe不同的模式,同樣也配置了以上兩種模式。當(dāng)PCIe設(shè)計(jì)作為EP時,PCIe驗(yàn)證模塊作為RC;當(dāng)PCIe設(shè)計(jì)作為RC時,PCIe驗(yàn)證模塊作為EP。PCIe驗(yàn)證平臺根據(jù)協(xié)議遍歷各種通信情況來進(jìn)行數(shù)據(jù)傳輸。PCIe設(shè)計(jì)一端與PIPE接口相連接,另一端與AXI總線接口相連。驗(yàn)證平臺通過AXI總線接口對PCIe設(shè)計(jì)進(jìn)行配置和控制。當(dāng)配置好相應(yīng)的寄存器之后,驗(yàn)證平臺完成與待驗(yàn)證模塊的初始化、復(fù)位、鏈路初始化以及各個層次事務(wù)包的數(shù)據(jù)通信。驗(yàn)證平臺將PCIe設(shè)計(jì)上傳到應(yīng)用層的數(shù)據(jù)結(jié)果采集到記分板并與期望數(shù)據(jù)進(jìn)行自動比較,自動判斷功能是否正確,方便驗(yàn)證回歸測試(Regression)[7,9-10]。

      由于PCIe接口信號數(shù)量較多,該UVM驗(yàn)證平臺使用虛接口對DUT接口信號和功能進(jìn)行封裝,使驗(yàn)證平臺更加簡練,更具有可重用性。

      UVM驗(yàn)證平臺使用受約束的隨機(jī)為主、直接用例為輔的驗(yàn)證策略。平臺中采用受約束的隨機(jī)化方法增強(qiáng)隨機(jī)驗(yàn)證的可控性,加快驗(yàn)證收斂速度。對于隨機(jī)無法覆蓋到的驗(yàn)證點(diǎn),使用直接用例驗(yàn)證。激勵隨機(jī)包括事務(wù)層包(Transaction Layer Packet,TLP)的類型,各類型TLP的數(shù)據(jù)內(nèi)容及其大小、終端設(shè)備地址、路由信息、緩存一致性屬性、事務(wù)級別等,數(shù)據(jù)鏈路層包(Data Link Layer Packet,DLLP)的類型和數(shù)據(jù)內(nèi)容以及物理層有序集的類型、數(shù)據(jù)包的插入錯誤字段位置。例如將PCIe目標(biāo)設(shè)備的訪問地址限制在PCIe存儲和I/O空間范圍內(nèi),并將存儲空間和I/O空間分為幾個區(qū)間段,每個區(qū)間的權(quán)重通過驗(yàn)證計(jì)劃制定,減少隨機(jī)重復(fù)或者無意義的存儲空間地址和I/O空間地址,也可以對一些特殊的地址編寫直接用例,快速覆蓋PCIe存儲空間和I/O空間地址[6,10-11]。

      UVM驗(yàn)證平臺使用事務(wù)級驗(yàn)證技術(shù),序列產(chǎn)生器根據(jù)驗(yàn)證用例生成不同的事務(wù)序列,包括鏈路狀態(tài)機(jī)的初始化以及鏈路訓(xùn)練,數(shù)據(jù)鏈路層的容錯和重傳機(jī)制,對存儲器、配置空間以及I/O的讀寫訪問等;再通過AXI/PCIe驅(qū)動模塊將序列產(chǎn)生器生成的事務(wù)序列的每一個事務(wù)轉(zhuǎn)化成物理接口信號激勵,同樣AXI/PCIe監(jiān)視模塊監(jiān)視DUT實(shí)際輸出信號,并將其轉(zhuǎn)化成事務(wù)數(shù)據(jù)結(jié)構(gòu)傳輸給記分板進(jìn)行比對。相較于傳統(tǒng)驗(yàn)證方法,UVM驗(yàn)證平臺根據(jù)不同的抽象層次劃分模塊,如果對其他功能相似的接口模塊進(jìn)行驗(yàn)證,僅僅需要修改驅(qū)動模塊滿足接口協(xié)議,可大大提高驗(yàn)證平臺的重復(fù)利用性;而且UVM驗(yàn)證平臺提高了抽象層次,更便于對驗(yàn)證用例進(jìn)行分析調(diào)試,也更有利于對事務(wù)類型及功能進(jìn)行統(tǒng)計(jì)和管理,收集和分析功能覆蓋率信息[11]。

      該UVM驗(yàn)證平臺添加功能覆蓋率模塊,根據(jù)PCIe控制器的系統(tǒng)規(guī)范、接口要求、功能要求、協(xié)議規(guī)范等明確功能驗(yàn)證點(diǎn)后,分析和編寫功能覆蓋率點(diǎn)和組。由于驗(yàn)證用例是無法窮盡的,在復(fù)雜的設(shè)計(jì)功能驗(yàn)證中有必要提取和量化驗(yàn)證功能點(diǎn)[8]。例如對于TLP包長的功能點(diǎn),如果只收集代碼覆蓋率,完成驗(yàn)證目標(biāo)需要把所有包長遍歷,消耗大量驗(yàn)證時間。如果時間有限,可以將包長劃分為最短包長(1 DW)、最長包長(1024 DW)、合法包長(2~1023 DW)、非法包長。根據(jù)以上分類編寫功能覆蓋點(diǎn),提供了可測量的驗(yàn)證進(jìn)展指標(biāo),根據(jù)功能覆蓋率數(shù)據(jù)庫中未覆蓋功能點(diǎn)可以添加直接驗(yàn)證用例或增加回歸次數(shù),進(jìn)一步優(yōu)化驗(yàn)證平臺。

      該UVM驗(yàn)證平臺完成PCIe接口模塊中的物理層、數(shù)據(jù)鏈路層和事務(wù)層的全面驗(yàn)證,包括各種錯誤情況的處理、PCIe接口模塊的完備及系統(tǒng)級驗(yàn)證,對PCIe接口模塊兼容性方面也有一定的驗(yàn)證。

      3 驗(yàn)證結(jié)果

      在使用UVM驗(yàn)證平臺驗(yàn)證PCIe模塊時,AXI驅(qū)動模塊的測試項(xiàng)完成PCIe模塊相關(guān)寄存器的初始化操作測試。PIPE驅(qū)動模塊的測試項(xiàng)完成鏈路狀態(tài)機(jī)的初始化以及鏈路訓(xùn)練、數(shù)據(jù)鏈路層的容錯和重傳機(jī)制以及對存儲器、I/O和配置空間的讀寫訪問功能測試。

      3.1 PCIe鏈路訓(xùn)練過程

      PCIe IP核的鏈路訓(xùn)練如圖2所示,鏈路訓(xùn)練及初始 化 過 程 經(jīng) 歷 了DETECT.quiet、DETECT.active、Polling.Active、Polling.Configuration、Configuration.Linkwidth.Start、Configuration.Linkwidth.Accept、Configuration.Lanenum.Wait、Configuration.Lanenum.Accept、Configuration.Complete、Configuration.Idle、Recovery. RcvrLock、Recovery. RcvrCfg、Recovery.Speed、Recovery.Equalization、Recovery.Idle、L0狀態(tài),說明PCIe IP核的鏈路訓(xùn)練成功,且速度從2.5 GT/s成功切換到8 GT/s。

      圖2 PCIe IP核的鏈路訓(xùn)練

      3.2 數(shù)據(jù)鏈路層確認(rèn)機(jī)制

      數(shù)據(jù)鏈路層的ACK/NAK確認(rèn)機(jī)制仿真結(jié)果如圖3所示,PCIe核的數(shù)據(jù)鏈路層接收到多個DLLP,分析類型為ACK包,序列號為6,表明小于等于該序列號的TLP數(shù)據(jù)包都已經(jīng)被對端成功接收,則將存儲在重發(fā)緩沖區(qū)里小于等于該序列號的TLP數(shù)據(jù)包清除。

      圖3 數(shù)據(jù)鏈路層確認(rèn)機(jī)制

      3.3 訪問PCIe核寄存器和存儲空間

      對PCIe寄存器空間和存儲空間進(jìn)行讀寫操作的仿真結(jié)果如圖4所示。對PCIe寄存器多個地址空間(0X00D0/0X0000/0X00C4)進(jìn)行讀寫操作,驗(yàn)證PCIe寄存器讀寫功能正確性。對IO空間和存儲空間的多個地址空間(0X0010/0X0014/0X0018/0X001C/0X0020/0X0024/0X0030)進(jìn)行讀寫操作,驗(yàn)證PCIe存儲器空間操作、I/O空間操作功能正確性。從圖4可以看出對存儲空間地址0X10寫入0X01020304,從存儲空間地址0X10讀出0X01020304,表明存儲空間的寫入值與讀出值一致,可以得出驗(yàn)證PCIe配置空間操作、存儲器空間操作、I/O空間操作功能正確。

      圖4 訪問PCIe核寄存器和存儲空間

      3.4 覆蓋率分析

      經(jīng)過多次回歸測試和添加直接用例,代碼覆蓋率信息如圖5所示,功能覆蓋率信息如圖6所示。驗(yàn)證平臺得到的代碼行覆蓋率達(dá)到97.29%,功能覆蓋率達(dá)到100%,代碼覆蓋率和功能覆蓋率均達(dá)到要求,提高了驗(yàn)證的完備性,并且檢測到設(shè)計(jì)的錯誤,及時反饋設(shè)計(jì)人員修改,確保驗(yàn)證工作按時完成。

      圖5 代碼覆蓋率

      圖6 功能覆蓋率

      4 結(jié)論

      本文研究了PCIe總線控制器核的功能驗(yàn)證,針對傳統(tǒng)驗(yàn)證方法中存在可重用性低、缺乏代碼組織性、極難維護(hù)、驗(yàn)證效率低等問題,提出使用一種基于UVM的PCIe總線控制器核的驗(yàn)證平臺,針對PCIe總線的協(xié)議規(guī)范分析和量化功能驗(yàn)證點(diǎn)搭建該平臺,實(shí)現(xiàn)自動化比對和功能覆蓋率收集。該UVM驗(yàn)證平臺增加了功能驗(yàn)證的穩(wěn)健性,可繼承性高,可用于類似協(xié)議或PCIe下一代協(xié)議驗(yàn)證。與傳統(tǒng)Verilog驗(yàn)證平臺對比表明,驗(yàn)證周期從預(yù)估的12個月縮短到9個月,縮短了交付周期;由于UVM驗(yàn)證平臺代碼可以通過重用得以實(shí)現(xiàn),驗(yàn)證代碼減少至傳統(tǒng)Verilog驗(yàn)證平臺的60%,驗(yàn)證效率得到大幅提升。另外功能覆蓋率模塊的結(jié)果分析可以更加全面、快速地完成PCIe控制器核的功能驗(yàn)證工作。

      猜你喜歡
      鏈路層存儲空間用例
      UML用例模型中依賴關(guān)系的比較與分析
      基于多種群協(xié)同進(jìn)化算法的數(shù)據(jù)并行聚類算法
      基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
      蘋果訂閱捆綁服務(wù)Apple One正式上線
      用好Windows 10保留的存儲空間
      聯(lián)鎖軟件詳細(xì)設(shè)計(jì)的測試需求分析和用例編寫
      從出土文獻(xiàn)用例看王氏父子校讀古書的得失
      基于FPGA全功能MVB網(wǎng)絡(luò)從設(shè)備鏈路層IP核設(shè)計(jì)
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
      IEEE 1394事務(wù)層接口的設(shè)計(jì)與實(shí)現(xiàn)
      忻州市| 思茅市| 文化| 额敏县| 吐鲁番市| 米脂县| 衡山县| 育儿| 祁阳县| 嘉定区| 丰原市| 大足县| 建平县| 安塞县| 彭州市| 惠安县| 宝丰县| 乌恰县| 新密市| 民丰县| 古蔺县| 富锦市| 开阳县| 象山县| 惠水县| 新晃| 天长市| 黑山县| 阳信县| 洛浦县| 鄂州市| 大姚县| 历史| 淮阳县| 富顺县| 辽宁省| 永泰县| 沅江市| 濮阳县| 荥阳市| 宝兴县|