VMM驗證方法在A(yíng)XI總線(xiàn)系統中的實(shí)現
后文的敘述都將圍繞著(zhù)這幾方面展開(kāi)。
AXI-VIP的集成
如前所述,VMM方法具備抽象分層結構、有九個(gè)執行步驟等優(yōu)點(diǎn),但它只是一個(gè)通用的方法,能否符合前邊提出的四點(diǎn)判定標準還成問(wèn)題。舉例來(lái)說(shuō),計算所的AXI主設備(master)仿真模型是以Verilog編寫(xiě)的,無(wú)法在短期內實(shí)現與VMM平臺的互聯(lián);完整的AXI協(xié)議檢測,對本所第一顆基于該總線(xiàn)的片上系統顯得尤為重要;由于時(shí)間倉促,AXI仿真模型還有待修正。這些都是項目進(jìn)程中無(wú)法回避的問(wèn)題,而VMM方法本身又沒(méi)有提供解決方法。
1. 商用驗證模型
AXI驗證模型(VIP)是Synopsys公司的商用模型,可配置、數據交易嚴格符合AXI協(xié)議,具備完整的協(xié)議檢查功能。最重要的一點(diǎn)是,AXI-VIP提供與VMM平臺的接口。實(shí)際上,這個(gè)VIP本身就實(shí)現了VMM平臺的驅動(dòng)部件(Driver)加監控部件(Monitor)的功能:向下層是與DUT通過(guò)端口相聯(lián),向上層則有基于vmm_channel/vmm_xactor_callbacks的數據傳輸管道。如圖2所示,除Test、Generator和Scoreboard之外的部分,AXI-VIP都已實(shí)現。這個(gè)商用模型對開(kāi)發(fā)進(jìn)度的實(shí)際貢獻將取決于工程師能否快速上手。換言之,VIP的易用性決定了它的價(jià)值。
有鑒于此,Synopsys公司提供一個(gè)基于A(yíng)XI-VIP的VMM范例。其中,DUT部分以AXI Bus VIP替代,TB部分實(shí)現了如圖2所示的分層架構。工程師作為用戶(hù)只需做如下修改,便能得到包含有簡(jiǎn)單數據交易、自檢測、覆蓋率統計等功能的驗證平臺:替換DUT,并修改接口信號名;改寫(xiě)測試例test_1的約束條件,得到自己的測試例;增加對DUT的配置操作。上述工作于一天內完成,仿真輸出結果有波形文件、Log文件及覆蓋率報告。
2. AXI-VIP支持的類(lèi)
AXI- VIP定義的類(lèi)都有相同的前綴名“dw_vip_axi”,它們構成vmm_env當中的大部分:
a. dw_vip_axi_master_rvm;
b. dw_vip_axi_slave_rvm;
c. dw_vip_axi_monitor_rvm;
d. dw_vip_axi_master_transaction_scenario_gen;
e. dw_vip_axi_port_model_configuration;
f. dw_vip_axi_system_model_configuration;
g. dw_vip_axi_master_transaction_channel;
h. dw_vip_axi_slave_resp_transaction_channel;
i. dw_vip_axi_monitor_transaction_channel。
這些類(lèi)將例化產(chǎn)生主設備部件、從設備部件、監控部件、配置對象、數據對象和數據傳輸管道等等。它們有著(zhù)各自的變量、函數,提供了豐富的控制功能,涵蓋所有類(lèi)型的操作。
功能的完備并未損害AXI-VIP的易用性,這點(diǎn)在項目中得到了印證。通過(guò)三天的培訓與實(shí)做,工程師們能夠通過(guò)修改約束條件來(lái)隨機產(chǎn)生測試向量,按照芯片測試規范改寫(xiě)自動(dòng)比對機制,添加功能覆蓋點(diǎn),并利用AXI監控部件自動(dòng)檢查協(xié)議并收集與AXI協(xié)議相關(guān)的覆蓋率。
這當中,按照芯片測試規范改寫(xiě)“自動(dòng)比對機制”沒(méi)有現成的VMM基本類(lèi)可用。我們是從Synopsys提供的簡(jiǎn)單范例入手,利用AXI-VIP提供的回調函數集,獲取數據交易信息,并實(shí)時(shí)地比對流出與流入數據。如同其他的驗證系統,這部分工作是最多樣化,也是最為核心的任務(wù),所以占用三天當中的大部分時(shí)間,也在意料之中。
基于VMM的Scoreboard實(shí)現
本所驗證組以VMM方法為指導,利用AXI-VIP提供的回調函數集,快速建立了該測試平臺的自動(dòng)比對機制。盡管還不能最終應用在十幾個(gè)主/從設備的全系統中,但是,由于這部分代碼封裝在自定義的Scoreboard類(lèi)當中,可重用、可擴展,并且符合VMM平臺的接口要求,可以很方便地合入將來(lái)的系統中。該Scoreboard類(lèi)的核心部分SystemVerilog代碼由Synopsys提供,如圖3所示。
圖3:自檢測單元的結構框圖。
左端是主設備數據緩沖及比對,右端為從設備數據緩沖及比對,中間的1到N和N到1轉換,實(shí)現數據比對任務(wù)的分配。N個(gè)從設備的比對代碼,都擴展自相同的類(lèi)。正因為這種設計它是可無(wú)限擴展的?;诒卷椖恐挥袃蓚€(gè)主設備的特點(diǎn),我們對左邊的結構做了大幅度簡(jiǎn)化。
核心的比對部分之外,關(guān)鍵任務(wù)就是實(shí)時(shí)地獲取各主/從設備的數據流。這在A(yíng)XI-VIP(也包括Synopsys公司的其他VIP)中,已經(jīng)有現成函數可用。本所工程師在兩天時(shí)間內就學(xué)會(huì )使用,并結合實(shí)際完成了代碼的開(kāi)發(fā)與調試。
AXI-VIP包括主設備、從設備與監控設備,它們在數據交易的幾個(gè)關(guān)鍵點(diǎn)將得到一次函數回調的機會(huì ),如表1所示。
表1:回調函數與相應管道的對應關(guān)系表。
依據這些回調函數對應的數據交易階段,我們選取主設備的post_input_channel_get,從設備的pre_output_channel_put兩函數來(lái)獲取交易數據。
其它函數也可以用來(lái)獲取數據,如監控設備的pre_activity_channel_put,就可以得到輸入、輸出兩方面的數據。具體請參看AXI-VIP使用手冊。另外,VMM回調函數還可以用于控制驗證流程、插入錯誤數據等等,限于篇幅,本文不再展開(kāi)。
本文小結
因為芯片驗證工作的趨勢是需要更多的軟件知識和技巧。本文以中科院計算所的SoC項目為例,講解了如何充分利用專(zhuān)業(yè)的驗證語(yǔ)言基本庫和商用的仿真模型快速建立測試平臺。文中詳細介紹了各部件的使用和AXI-VIP對象如何納入VMM框架,以及這樣做的實(shí)際意義。
VMM方法基于SystemVerilog語(yǔ)言,提供了完整的函數庫,而作為補充的AXI-VIP,功能完備且易用性強?;谶@一新方法,本所驗證組工程師在五個(gè)工作日內快速建立了一套可方便擴展的測試平臺。建立新系統的過(guò)程中,發(fā)現一個(gè)設計的漏洞,充分體現了該方法的高效性。
評論