《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > VMM驗證方法在AXI總線系統中的實現
VMM驗證方法在AXI總線系統中的實現
張珩(中科院計算機所),辜帆(Synopsys公司)
摘要: 芯片驗證越來越像是軟件而不是硬件工作,這點已逐漸成為業界的共識。本文以軟件工程的視角切入,分析中科院計算所某片上系統(SoC)項目的驗證平臺,同時也介紹當前較為流行的驗證方法,即以專門的驗證語言結合商用的驗證模型,快速建立測試平臺(Test-bench)并在今后的項目中重用。
關鍵詞: SOC AXI VMM
Abstract:
Key words :

        芯片驗證越來越像是軟件而不是硬件工作,這點已逐漸成為業界的共識。本文以軟件工程的視角切入,分析中科院計算所某片上系統(SoC" target="_blank">SoC)項目的驗證平臺,同時也介紹當前較為流行的驗證方法,即以專門的驗證語言結合商用的驗證模型,快速建立測試平臺(Test-bench)并在今后的項目中重用。

        本文提及的高級驗證語言、方法學、驗證基本庫和仿真模型,這一套方法在近幾年中正逐漸被業界廣為采用。計算所的工作就是以這些最新成果為起點,對基于AXI總線協議的SoC建立測試平臺。

        這種新方法可大幅度提高芯片驗證的效率,尤其是項目初期投入極大地降低,原因之一是面向對象編程等軟件工程方法的大量引入。當然,這也對驗證工程師的技能提出了新的要求。

驗證方法

        在驗證領域,顯見的趨勢是語言劃一、仿真平臺統一、更加正規和高效。以本文介紹的項目為例,語言是SystemVerilog,平臺則基于VMM構建,更有驗證模型(Verification IP)助力,大幅提升了效率。正是因為部件可重用、平臺結構化、以覆蓋率為導向和高度自動化等特點,驗證工作也愈加正規,有流程可循。

        專門的驗證語言,面世已有數年之久。它們出自于傳統的純粹Verilog(有時部分引入C/C++)描述的驗證系統,并有很大發展。Vera、e語言和目前已成IEEE標準的SystemVerilog就是這段時期技術創新的成果。

        面向對象編程特性,溯其源頭便是C++語言。早在純Verilog語言驗證的時代,已有利用C++開發可重用驗證代碼的做法。工程師們看中的恰是OOP的封裝、繼承、多態及可重用等優異特性。

        驗證語言沒有相應函數庫的支持,語言本身也很難發揮效力。舉一個大家熟知的例子,視窗(Windows)編程中,使用C語言直接調用視窗系統的編程接口(API)實現,是較為傳統的做法,可目前卻鮮有視窗程序員這樣應用。為什么?工作量巨大,需維護的信息太多,從窗口尺寸、菜單列表到程序算法,都要加以考慮。因而作為解決方案之一的微軟基本庫(MFC)才得以大行其道。與之相得益彰的是,C++作為微軟基本庫的描述語言,也隨視窗系統的傳播,廣為流行開來。

        現代芯片驗證領域,無例外地也出現了類似狀況。大量新方法、新模型和新類庫不斷涌現,減輕了驗證工程師們重復開發底層代碼的負擔,將更多精力投入到實際項目上。這一套新思路中,主要構成部分便是驗證語言(如Vera、SystemVerilog),驗證基本庫(RVM、VMM)和相應的驗證模型。

VMM的應用

        VMM不僅是方法學,更是該方法的具體實現。它包括一系列的類庫(class library)、類對象(object)聯接關系以及用戶定制的代碼。如圖1所示的測試平臺中,各部件或即對象,是VMM基本類/擴展類的實例化(Instantiate)。所涉及到的VMM基本類有vmm_xactor、vmm_scenario_gen和vmm_data等。

 

圖1:測試平臺框圖。
圖1:測試平臺框圖。

        聯接各部件,構成一個整體還需要其它一些基本類,包括vmm_env、vmm_channel以及vmm_xactor_callbacks等。除此之外,用戶要根據芯片的實際狀況,添加或修改約束條件、接口聯線、執行步驟、覆蓋率定義和自動比對機制(auto-check)。

1. 背景

        該種類型的驗證平臺充分利用了軟件工程的成果,將整個測試平臺按照所實現的功能,分門別類予以切割,實現各模塊獨自開發、分別維護。目前,芯片規模趨于龐大,協議愈形復雜,通常要傳遞海量數據,并擁有數目繁多的端口。如果還以先前純Verilog的方式建立驗證系統,將很難滿足芯片開發和投片的進度。

        簡而言之,簡單地激勵DUT輸入端口、監控相應的輸出端口和編寫臨時性的代碼來做數據比對,這種驗證方法已相當落后了。當然,我們也看到某些結構簡單的芯片還有一定市場,純粹Verilog語言的驗證平臺也可以做到非常復雜(但是很難維護),并且學習面向對象編程的代價容易令人望而卻步。但這些都是主流之外的個例,故對此本文不深入展開。

現代驗證系統,盡管包含數量眾多的模塊、多樣的數據類型/協議及各模塊間復雜的信息傳遞(保持同步、共享數據等),它仍然是繼承傳統方法,歸納以往的驗證經驗,依照慣常的步驟建立測試平臺。

        VMM方法也概莫能外。依照通常的流程,它為所有應用VMM的測試平臺設定了九個步驟,定義在vmm_env中:gen_cfg、build、reset_dut、cfg_dut、start、wait_for_end、stop、cleanup和report。

        另一方面,VMM平臺的架構按抽象層次劃分,由以下部件組成:測試例(test)、場景發生器(generator)、驅動部件(driver)、監控部件(monitor)、數據比對部件(scoreboard)、數據對象(data object)、數據傳輸管道(channel)、回調函數集(callback)、配置總集(dut_cfg與sys_cfg)、覆蓋率統計部件,以及聯接并集成以上所有部件的環境對象(environment object),如圖2中所示。

 

圖2:在測試平臺中使用驗證IP可大為降低工作量。
圖2:在測試平臺中使用驗證IP可大為降低工作量。

        VMM中各個部件的使用,可參看Synopsys與ARM共同出版的手冊。

2. 評估標準

        該研究所之前的驗證工作均采用高級驗證語言Vera,使用SystemVerilog則是第一次。VMM方法的引入,究竟能在多大程度上提高驗證效率?該項目既是實際工作又是一次評估。

我們設定預期值,是基于以下幾點考慮:

a. 建立一個范例平臺(包含簡單的數據交易、自檢測、覆蓋率統計)需要多長時間?

b. 可擴展性,即隨機測試向量的約束條件更改、自動比對機制按需求定制、功能覆蓋點的添加及AXI協議的監控是否完備。

c. 驗證流程可控性,如在已有的九步驟中插入額外動作;通過系統配置的改變,來控制各步驟執行的順序和次數(比如一次reset多次cfg_dut以實現在線重復測試)。

d. 易用性也應當考慮在內。畢竟,VMM方法涵蓋的內容很廣,工程師們要完全掌握仍有個過程。在無法知其所以然的時候,能不能很快地知其然,并開展工作,顯得非常重要。

后文的敘述都將圍繞著這幾方面展開。

AXI-VIP的集成

        如前所述,VMM方法具備抽象分層結構、有九個執行步驟等優點,但它只是一個通用的方法,能否符合前邊提出的四點判定標準還成問題。舉例來說,計算所的AXI主設備(master)仿真模型是以Verilog編寫的,無法在短期內實現與VMM平臺的互聯;完整的AXI協議檢測,對本所第一顆基于該總線的片上系統顯得尤為重要;由于時間倉促,AXI仿真模型還有待修正。這些都是項目進程中無法回避的問題,而VMM方法本身又沒有提供解決方法。

1. 商用驗證模型

        AXI驗證模型(VIP)是Synopsys公司的商用模型,可配置、數據交易嚴格符合AXI協議,具備完整的協議檢查功能。最重要的一點是,AXI-VIP提供與VMM平臺的接口。實際上,這個VIP本身就實現了VMM平臺的驅動部件(Driver)加監控部件(Monitor)的功能:向下層是與DUT通過端口相聯,向上層則有基于vmm_channel/vmm_xactor_callbacks的數據傳輸管道。如圖2所示,除Test、Generator和Scoreboard之外的部分,AXI-VIP都已實現。這個商用模型對開發進度的實際貢獻將取決于工程師能否快速上手。換言之,VIP的易用性決定了它的價值。

        有鑒于此,Synopsys公司提供一個基于AXI-VIP的VMM范例。其中,DUT部分以AXI Bus VIP替代,TB部分實現了如圖2所示的分層架構。工程師作為用戶只需做如下修改,便能得到包含有簡單數據交易、自檢測、覆蓋率統計等功能的驗證平臺:替換DUT,并修改接口信號名;改寫測試例test_1的約束條件,得到自己的測試例;增加對DUT的配置操作。上述工作于一天內完成,仿真輸出結果有波形文件、Log文件及覆蓋率報告。

2. AXI-VIP支持的類

AXI- VIP定義的類都有相同的前綴名“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。

        這些類將例化產生主設備部件、從設備部件、監控部件、配置對象、數據對象和數據傳輸管道等等。它們有著各自的變量、函數,提供了豐富的控制功能,涵蓋所有類型的操作。

        功能的完備并未損害AXI-VIP的易用性,這點在項目中得到了印證。通過三天的培訓與實做,工程師們能夠通過"修改約束條件來隨機產生測試向量",按照芯片測試規范改寫"自動比對機制",添加"功能覆蓋點",并利用AXI監控部件"自動檢查協議"并收集與AXI協議相關的覆蓋率。

        這當中,按照芯片測試規范改寫“自動比對機制”沒有現成的VMM基本類可用。我們是從Synopsys提供的簡單范例入手,利用AXI-VIP提供的回調函數集,獲取數據交易信息,并實時地比對流出與流入數據。如同其他的驗證系統,這部分工作是最多樣化,也是最為核心的任務,所以占用三天當中的大部分時間,也在意料之中。

基于VMM的Scoreboard實現

        本所驗證組以VMM方法為指導,利用AXI-VIP提供的回調函數集,快速建立了該測試平臺的自動比對機制。盡管還不能最終應用在十幾個主/從設備的全系統中,但是,由于這部分代碼封裝在自定義的Scoreboard類當中,可重用、可擴展,并且符合VMM平臺的接口要求,可以很方便地合入將來的系統中。該Scoreboard類的核心部分SystemVerilog代碼由Synopsys提供,如圖3所示。

 

圖3:自檢測單元的結構框圖。
圖3:自檢測單元的結構框圖。

        左端是主設備數據緩沖及比對,右端為從設備數據緩沖及比對,中間的1到N和N到1轉換,實現數據比對任務的分配。N個從設備的比對代碼,都擴展自相同的類。正因為這種設計它是可無限擴展的。基于本項目只有兩個主設備的特點,我們對左邊的結構做了大幅度簡化。

        核心的比對部分之外,關鍵任務就是實時地獲取各主/從設備的數據流。這在AXI-VIP(也包括Synopsys公司的其他VIP)中,已經有現成函數可用。本所工程師在兩天時間內就學會使用,并結合實際完成了代碼的開發與調試。

        AXI-VIP包括主設備、從設備與監控設備,它們在數據交易的幾個關鍵點將得到一次函數回調的機會,如表1所示。

 

表1:回調函數與相應管道的對應關系表。
表1:回調函數與相應管道的對應關系表。

        依據這些回調函數對應的數據交易階段,我們選取主設備的post_input_channel_get,從設備的pre_output_channel_put兩函數來獲取交易數據。

        其它函數也可以用來獲取數據,如監控設備的pre_activity_channel_put,就可以得到輸入、輸出兩方面的數據。具體請參看AXI-VIP使用手冊。另外,VMM回調函數還可以用于控制驗證流程、插入錯誤數據等等,限于篇幅,本文不再展開。

本文小結

        因為芯片驗證工作的趨勢是需要更多的軟件知識和技巧。本文以中科院計算所的SoC項目為例,講解了如何充分利用專業的驗證語言基本庫和商用的仿真模型快速建立測試平臺。文中詳細介紹了各部件的使用和AXI-VIP對象如何納入VMM框架,以及這樣做的實際意義。

        VMM方法基于SystemVerilog語言,提供了完整的函數庫,而作為補充的AXI-VIP,功能完備且易用性強?;谶@一新方法,本所驗證組工程師在五個工作日內快速建立了一套可方便擴展的測試平臺。建立新系統的過程中,發現一個設計的漏洞,充分體現了該方法的高效性。

 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          香蕉成人啪国产精品视频综合网| 国产精品久久一级| 欧美婷婷六月丁香综合色| 亚洲欧洲综合| 久久精品国产清高在天天线| 在线免费观看日韩欧美| 亚洲大片免费看| 欧美一区二区三区另类| 性xx色xx综合久久久xx| 欧美精品九九99久久| 亚洲精品专区| 国产精品国产三级国产aⅴ浪潮| 久久香蕉国产线看观看av| 国产精品亚洲不卡a| 国产精品欧美日韩一区二区| 韩国av一区| 免费国产自线拍一欧美视频| 国产日韩欧美一区二区三区在线观看| 揄拍成人国产精品视频| 国产裸体写真av一区二区| 久久偷看各类wc女厕嘘嘘偷窃| 久久久久国产成人精品亚洲午夜| 亚洲一二三区精品| 精品91视频| 欧美视频在线观看免费网址| 国产精品久久久久av| 久久精品欧洲| 欧美区日韩区| 国内成+人亚洲+欧美+综合在线| 中文一区在线| 欧美日韩高清在线观看| 亚洲伊人网站| 国产区日韩欧美| 国产一区二区三区在线观看免费视频| 亚洲人成啪啪网站| 亚洲美女av网站| 在线日韩一区二区| 久久综合国产精品台湾中文娱乐网| 亚洲欧美在线观看| 欧美精品激情在线观看| 欧美视频一区| 欧美午夜久久| 久久中文字幕一区二区三区| 久久中文字幕一区二区三区| 国产精品草草| 亚洲欧美一区二区三区极速播放| 欧美视频三区在线播放| 欧美在线free| 国产精品影音先锋| 亚洲人成人一区二区在线观看| 激情久久久久久久久久久久久久久久| 久久网站热最新地址| 亚洲国产精品一区二区www在线| 久久综合亚州| 久久夜色精品国产噜噜av| 久久久久久自在自线| 国产欧美视频一区二区| 99精品视频一区二区三区| 国产精品一区二区三区久久久| 欧美一级成年大片在线观看| 久久久噜噜噜久久久| 午夜精品亚洲一区二区三区嫩草| 亚洲精选视频免费看| 国产一区二区三区视频在线观看| 亚洲一区二区三区乱码aⅴ蜜桃女| 免费观看成人www动漫视频| 国产精品mm| 在线视频欧美日韩| 欧美日韩亚洲国产一区| 久久久久9999亚洲精品| 红桃视频成人| 亚洲在线观看视频网站| 国产精品久久精品日日| 一区二区三区自拍| 欧美日韩中文字幕在线| 国产精品系列在线| 久久免费高清| 国产日韩欧美在线视频观看| 欧美精品国产精品日韩精品| 久久综合伊人77777蜜臀| 久久精品国产一区二区三| 先锋资源久久| 精品不卡视频| 欧美日韩成人在线视频| 99国产精品久久久久久久| 欧美jizz19hd性欧美| 激情欧美日韩| 亚洲一区中文字幕在线观看| 黄色av成人| 国产在线精品二区| 国产精品久久久久影院亚瑟| 久久视频精品在线| 亚洲黄色免费电影| 中文亚洲视频在线| 在线看片第一页欧美| 激情综合色丁香一区二区| 亚洲激情影视| 欧美日本国产| 欧美视频在线观看一区二区| 欧美日韩亚洲国产精品| 雨宫琴音一区二区在线| 国内在线观看一区二区三区| 日韩视频在线一区二区三区| 国产一区二区看久久| 欧美一区二区三区在线观看视频| 欧美v国产在线一区二区三区| 欧美韩日亚洲| 尤物九九久久国产精品的特点| 国产精品久久一区二区三区| 99国产精品99久久久久久粉嫩| 中文av字幕一区| 欧美日韩裸体免费视频| 免费观看在线综合| 在线观看欧美日本| 久久综合给合久久狠狠色| 亚洲欧美成人一区二区在线电影| 久久在线免费观看视频| 最新日韩精品| 国产精品美女主播在线观看纯欲| 亚洲视频一二三| 亚洲精品乱码久久久久久| 欧美在线亚洲在线| 午夜在线观看免费一区| 欧美极品欧美精品欧美视频| 国产真实精品久久二三区| 中文亚洲欧美| 红桃视频国产精品| 欧美三级视频在线观看| 久久精品日产第一区二区| 亚洲精品欧美日韩| 欧美欧美天天天天操| 亚洲午夜视频| 在线观看亚洲a| 美女啪啪无遮挡免费久久网站| 亚洲伦理精品| 亚洲欧美激情视频在线观看一区二区三区| 欧美一区综合| 亚洲一区二区日本| 亚洲黄色大片| 先锋影院在线亚洲| 欧美日韩免费区域视频在线观看| 国产区二精品视| 欧美一区二区成人6969| 欧美日韩1区2区| 国产精品手机在线| 亚洲裸体俱乐部裸体舞表演av| 亚洲美女毛片| 亚洲每日在线| 久久久在线视频| 欧美绝品在线观看成人午夜影视| 亚洲欧美成人综合| 亚洲欧美日韩一区在线观看| 久久免费观看视频| 午夜精品av| 欧美日韩少妇| 在线免费日韩片| 亚洲作爱视频| 亚洲精品中文字幕有码专区| 欧美天天影院| 欧美精品日韩精品| 国产精品你懂的在线欣赏| 欧美日韩精品免费观看视一区二区| 欧美日韩精品是欧美日韩精品| 欧美三区在线观看| 久久久欧美精品| 久久精品99无色码中文字幕| 欧美理论在线| 欧美极品在线播放| 亚洲人体影院| 国产精品夜夜夜一区二区三区尤| 国产精品网站在线| 黄色一区三区| 国内外成人免费激情在线视频网站| 国产香蕉97碰碰久久人人| 亚洲理论在线观看| 最近中文字幕mv在线一区二区三区四区| 蜜臀av一级做a爰片久久| 欧美日韩久久不卡| 国产精品一区二区在线观看不卡| 国产精品入口66mio| 国产视频丨精品|在线观看| 欧美日本在线视频| 亚洲视频一区二区免费在线观看| 亚洲乱码视频| 亚洲欧美国产一区二区三区| 国产欧美一区二区三区久久| 欧美日产一区二区三区在线观看| 欧美三级午夜理伦三级中文幕| 亚洲一区二区av电影| 亚洲午夜精品一区二区| 在线亚洲国产精品网站| 一区二区三区在线免费播放| 欧美不卡视频| 欧美亚洲系列| 性欧美暴力猛交69hd| 午夜在线观看欧美| 亚洲欧美日韩精品综合在线观看| 欧美精品一区二区三区很污很色的| **性色生活片久久毛片| 国产精品久久久久一区二区三区共| 国产精品女主播一区二区三区| 欧美性久久久| 欧美影视一区| 欧美日韩中文字幕综合视频| 欧美午夜精品一区二区三区| 一本色道精品久久一区二区三区| 久久视频这里只有精品| 亚洲精品日日夜夜| 亚洲精品女人| 蜜臀久久久99精品久久久久久| 在线看片第一页欧美| 亚洲精品九九| 国产精品久久久99| 欧美视频久久| 狠狠噜噜久久| 国产精品一区二区三区久久| 久久gogo国模裸体人体| 美女露胸一区二区三区| 国产精品无码专区在线观看| 国产亚洲精品一区二555| 国产人成精品一区二区三| 狠狠色综合色综合网络| 国内外成人免费激情在线视频网站| 国产日韩高清一区二区三区在线| 亚洲国产成人精品久久久国产成人一区| 精品99一区二区| 国产精品一级在线| 美日韩在线观看| 性久久久久久久久| 亚洲精品自在久久| 久久成人在线| 欧美理论大片| 欧美/亚洲一区| 欧美电影免费| 欧美色精品在线视频| 亚洲欧美电影院| 国产一区二区高清| 久久午夜精品一区二区| 国产日韩精品一区观看| 欧美精品色综合| 狠狠综合久久av一区二区老牛| 欧美一区二区三区婷婷月色| 欧美激情一二三区| 亚洲一级一区| 久久久久久久久久久久久女国产乱| 欧美精品久久99| 亚洲精品国久久99热| 一区二区三区在线视频观看| 国产日韩精品在线播放| 欧美视频日韩视频在线观看| 欧美jizz19hd性欧美| 国产精品日日摸夜夜摸av| 久久精品99国产精品日本| 亚洲欧美日韩在线不卡| 欧美日韩亚洲国产一区| 久久精品国产免费| 欧美另类99xxxxx| 亚洲一区二区高清视频| 久久在线播放| 男女激情视频一区| 亚洲在线成人精品| 国产一区高清视频| 午夜精品在线| 欧美国产日本韩| 久久不见久久见免费视频1| 国产人久久人人人人爽| 韩国久久久久| 久久精品网址| 欧美日韩亚洲一区二区三区| **网站欧美大片在线观看| 欧美日韩激情小视频| 久久久综合视频| 久久九九精品99国产精品| 亚洲欧美成人一区二区在线电影| 亚洲男女自偷自拍图片另类| 欧美日韩日本国产亚洲在线| 亚洲小说春色综合另类电影| 亚洲精品一区在线| 亚洲激情一区二区三区| 一区二区三区免费网站| 亚洲黄网站黄| 亚洲第一在线综合在线| 亚洲欧美日韩另类精品一区二区三区| 午夜视频久久久久久| 欧美好骚综合网| 国产精品美女久久久久久免费| 91久久亚洲| 国语自产精品视频在线看一大j8| 国产综合色精品一区二区三区| 亚洲裸体在线观看| 榴莲视频成人在线观看| 麻豆9191精品国产| 欧美理论电影在线播放| 欧美欧美在线| 国产精品高清一区二区三区| 国产一区清纯| 麻豆av福利av久久av| 国产精品区一区| 国产噜噜噜噜噜久久久久久久久| 久久亚洲精品视频| 亚洲经典视频在线观看| 欧美激情区在线播放| 极品尤物久久久av免费看| 国产精品盗摄久久久| 久久久久久网址| 国产一区二区在线观看免费播放| 欧美日韩日本国产亚洲在线| 亚洲国产一区二区在线| 亚洲国产精品成人久久综合一区| 国产精品美女主播| 国产三区精品| 欧美在线一二三区| 亚洲婷婷综合久久一本伊一区| 国内成+人亚洲+欧美+综合在线| 亚洲欧美日韩精品综合在线观看| 一本色道88久久加勒比精品| 久久国产成人| 亚洲三级影片| 亚洲永久视频| 狼狼综合久久久久综合网| 国产啪精品视频| 欧美精品一区二区三区在线看午夜| 欧美成人性网| 久久国产一区二区三区| 韩国三级在线一区| 在线视频亚洲一区| 亚洲欧洲一级| 亚洲精品影院在线观看|