• 
    

    
    

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

      ?

      基于VMM的流量管理芯片驗證

      2010-05-13 08:46燕,王京梅,張帆,蘭中文
      現(xiàn)代電子技術(shù) 2009年12期
      關(guān)鍵詞:驗證芯片

      劉 燕,王京梅,張 帆,蘭中文

      摘 要:流量管理芯片的驗證是目前業(yè)界的熱點與難點,驗證工程師們一直在努力尋找用于流量測量的較好方法。采用System Verilog 語言,基于Synopsys公司最新推出的驗證方法學(xué)VMM,提出一種用于流量管理芯片驗證的分層次驗證環(huán)境。該環(huán)境對流量測量方法進行重點研究,放棄采用參考模型的傳統(tǒng)驗證思路,提供一種參考基準(zhǔn)可變,時間窗位置可移,長度可調(diào)的,可在不同設(shè)計間高度重用的流量檢測機制。該驗證環(huán)境及驗證方法在海思半導(dǎo)體某流量管理芯片開發(fā)過程中的成功應(yīng)用,保證了芯片開發(fā)質(zhì)量,縮短了項目開發(fā)周期,為其他同類芯片的開發(fā)提供了強有力的支持。

      關(guān)鍵詞:VMM;流量管理;芯片;驗證

      中圖分類號:TN407文獻標(biāo)識碼:A

      文章編號:1004-373X(2009)12-015-04

      Verification of Traffic Managing Chip Based on VMM

      LIU Yan1,WANG Jingmei1,ZHANG Fan2,LAN Zhongwen1

      (1.State Key Laboratory of Electronic Thin Films and Integrated Devices,University of Electronic Science and Technology of China,Chengdu,610054,China;

      2.Hisilicon Technologies Co.Ltd.,Shenzhen,518129,China)

      Abstract:The verification of traffic managing chip is currently the hotspot and difficulty in this field.Verification engineers have been trying their best to find a better way to traffic measurement.Adopting System Verilog,based on VMM library supplied by Synopsys,one layered verification environment is presented.Focusing on the research of traffic measurement,abandoning the traditional verification thought with RM,the environment provides one traffic check mechanism,in which reference benchmark is variable,time window is movable and time length is adjustable.Successful application of the verification environment and methods introduced in this article in traffic managing chip in Hisilicon not only shorten the period and assure the quality but also strongly supportd the development of congeneric chips.

      Keywords:VMM;traffic managing;chip;verification

      0 引 言

      隨著半導(dǎo)體集成技術(shù)的飛速發(fā)展,SoC的集成規(guī)模日益龐大,集成功能日益復(fù)雜。芯片驗證在芯片研發(fā)中所占的比例越來越重,占據(jù)了整個研發(fā)周期的70%以上[1]。芯片驗證已成為整個芯片流程中的瓶頸,驗證的完備性和驗證效率的提高成為驗證的難點,也是目前驗證的主要研究方向。

      Synopsys是實現(xiàn)高復(fù)雜的SoC設(shè)計。最新推出VMM驗證方法學(xué)[2],基于System Verilog語言。System Verilog具有面向?qū)ο笳Z言的抽象數(shù)據(jù)結(jié)構(gòu)[3],相對于E語言、TCL、C/C++等驗證語言,System Verilog的特殊性在于它將設(shè)計和驗證組合成同一種語言[4],從而使環(huán)境實現(xiàn)更加簡單,結(jié)構(gòu)更清晰,維護性更強。VMM以其清晰的分層架構(gòu)體系,便于維護和擴展的優(yōu)勢越來越受到各公司的重視。瑞薩科技采用Synopsys的VCS功能驗證解決方案開發(fā)復(fù)雜的SoC,并選定了VMM方法集,用于驗證其重要的Super Hyway總線片上互連架構(gòu)[5]。中科院計算所采用VMM驗證方法實現(xiàn)AXI總線系統(tǒng)的驗證[6]。

      1 VMM介紹

      Synopsys提供的VMM不僅是一套驗證方法,更是一種實現(xiàn)。其中,提供VMM庫供用戶在VCS環(huán)境下使用。VMM庫包括一系列的標(biāo)準(zhǔn)基本類,主要有vmm_data,vmm_atomic_gen,vmm_xactor,vmm_xactor_callbacks,vmm_channel,vmm_env,vmm_log等。通過對這些基本類的繼承與過載,可構(gòu)造靈活的驗證環(huán)境。

      2 流量管理芯片介紹

      流量管理芯片通過對網(wǎng)絡(luò)中數(shù)據(jù)流量的合理規(guī)劃和有效控制實現(xiàn)對現(xiàn)有網(wǎng)絡(luò)資源的合理利用,從而控制網(wǎng)絡(luò)擁塞,是網(wǎng)絡(luò)中實現(xiàn)QoS的核心。上行流量管理芯片的結(jié)構(gòu)如圖1所示,芯片將由轉(zhuǎn)發(fā)引擎接收的報文切割為交換網(wǎng)識別的定長信元,以信元為粒度進行調(diào)度,最終將信元輸出到交換網(wǎng)。其中,信元調(diào)度部分是芯片中實現(xiàn)QoS的核心,主要通過各種調(diào)度算法進行流量的分配,提供基于優(yōu)先級的精確帶寬分配。優(yōu)先級間采用WFQ[7]進行調(diào)度,固定包長誤差小于5%,混合包長誤差大于3%。

      圖1 流量管理芯片的結(jié)構(gòu)

      3 驗證工作及驗證策略

      根據(jù)前面對流量管理芯片的介紹,驗證工作主要關(guān)注以下幾方面:

      (1) 各級調(diào)度實現(xiàn)合理。優(yōu)先級間WFQ調(diào)度實現(xiàn)合理,各優(yōu)先級獲得的帶寬在允許的誤差范圍之內(nèi)。

      (2) 報文處理正確。報文進行正確的切割、緩存,最終輸出正確的信元到交換網(wǎng)。

      (3) 同一隊列的信元不能出現(xiàn)亂序、覆蓋、丟棄等現(xiàn)象。

      其中,對于調(diào)度合理性的測試,由于各種流量調(diào)度算法實現(xiàn)復(fù)雜,要建立其參考模型十分困難且意義不大。于是,毅然放棄了傳統(tǒng)采用參考模型的思路,而選擇流量檢測機制指導(dǎo)仿真驗證。流量檢測的基本思想為:檢測各隊列在指定時間窗內(nèi)接收的流量,將各隊列的流量檢測值與預(yù)期值進行比較,從而判斷流量分配是否合理。通過將DUT的輸出與參考模型的輸出進行比較來判斷報文處理的正確性。對于信元亂序、覆蓋、丟棄等的檢測,通過在仿真環(huán)境中添加自動檢測功能,并將檢測結(jié)果打印輸出,從而提高仿真環(huán)境檢測和觀察的自動化程度,進而提高驗證效率。

      4 驗證環(huán)境的搭建

      為完成芯片規(guī)格的驗證,搭建了圖2所示的驗證環(huán)境,整個驗證環(huán)境分為4個層次:信號層、過渡層、命令層、測試層。其中,信號層是驗證環(huán)境的最底層,為DUT提供信號級的連接,與DUT接口以及各種協(xié)議相關(guān),主要包含Driver,Monitor等各BFM。在整個驗證環(huán)境中,信號層起著過渡層與DUT之間橋梁的作用。過渡層包含除信號層以外的其他驗證組件。由于信號層的存在,過渡層不需要關(guān)心DUT的具體時序,完全采用抽象的數(shù)據(jù)結(jié)構(gòu),從而可提高驗證環(huán)境的重用度和可維護性。命令層主要封裝了底層的一些命令以及各種表項配置函數(shù),供測試層調(diào)用。測試層是驗證環(huán)境的最高層,主要包含各測試用例,通過調(diào)用命令層封裝的各種命令、函數(shù),完成對驗證的控制,不用關(guān)心驗證環(huán)境的具體實現(xiàn),從而可以使環(huán)境使用者與搭建者完全獨立開來。

      圖2 分層次的驗證環(huán)境

      在介紹了驗證環(huán)境的分層結(jié)構(gòu)以后,再來介紹如何利用VMM的基本函數(shù)庫完成環(huán)境中各驗證組件的構(gòu)建并進行正常的仿真。

      4.1 激勵和激勵發(fā)生器

      Generation是驗證環(huán)境的激勵,主要定義源地址、目的地址、優(yōu)先級、報文長度等各種報文信息,并提供根據(jù)報文信息產(chǎn)生報文數(shù)據(jù)的方法。Generation對vmm_data類繼承和過載得到報文基本類basepacket,再通過對basepacket繼承和過載得到vlan_packet,mpls_packet等各種報文類。為便于ScoreBoard自動比較結(jié)果,對報文進行隨機約束[8],將報文id和信元id固定填充到報文凈荷部分。

      Generator是驗證環(huán)境的激勵發(fā)生器,根據(jù)TC指定產(chǎn)生各種數(shù)據(jù)包,并將報文發(fā)送到輸出通道。采用vmm的基元發(fā)生器類生成Generator。通過宏調(diào)用`vmm_atomic_gen(basepacket,“類描述信息”),產(chǎn)生basepacket_atomic_gen基元發(fā)生器類。通過對該基元發(fā)生器的變量randomized_obj和stop_after_n_insts賦值,指定發(fā)包類型和發(fā)包數(shù)量。當(dāng)啟動該基元發(fā)生器時,就會產(chǎn)生指定數(shù)目的指定類型報文,并將報文自動放入輸出通道。

      4.2 驅(qū)動器和監(jiān)視器

      Driver是驗證環(huán)境的驅(qū)動器,將Generator產(chǎn)生的報文轉(zhuǎn)化為DUT的時序信號以驅(qū)動DUT。Monitor是驗證環(huán)境的監(jiān)視器,完成與Driver相反的操作,將DUT的輸出轉(zhuǎn)化為信元并發(fā)送到ScoreBoard。Driver和Monitor都由vmm_xactor類繼承得到。該驗證環(huán)境中的其他驗證組件如RM,ScoreBoard等也由vmm_xactor繼承而來。這些組件的所有功能都在main方法中實現(xiàn),它們的啟動和停止分別通過調(diào)用函數(shù)start_xactor和stop_xactor完成。由于System Verilog對Verilog 2001完全兼容,驗證環(huán)境只用一種語言就能實現(xiàn)與DUT的無縫銜接[9],從而使環(huán)境實現(xiàn)更簡單且維護性更強。同時,采用System Verilog的接口機制將Driver與DUT,DUT與Monitor之間的信號進行封裝。這樣可以提高DUT與驗證環(huán)境的抽象層次,使環(huán)境具有更好的擴展性和重用性。

      4.3 參考模型

      RM是驗證環(huán)境的參考模型,以與DUT相同的方式將報文切割為信元,并將信元發(fā)送到ScoreBoard。作為參考模型,RM的正確實現(xiàn)顯得尤為重要。RM沒有DUT那樣嚴(yán)格的時序要求,它的處理由Generator產(chǎn)生抽象數(shù)據(jù)包,這使得用System Verilog編寫比用verilog編寫更加簡潔,靈活,正確性更高。同時,由于DUT由設(shè)計人員編寫,RM由驗證人員編寫,通過將DUT的輸出與RM的輸出進行對比的方式判斷DUT功能的正確性,可以提高驗證結(jié)果的可靠性,并進一步提高驗證效率。

      4.4 流量檢測組件

      Tm_tck是驗證環(huán)境定義的用于流量檢測的callback類[10]。采用callback對流量檢測功能進行回調(diào)封裝可以提高驗證環(huán)境的重用度和可維護性。在Tm_tck中主要定義get_cell,traffic_check和report_traffic三個虛擬方法。get_cell提取信元的長度、隊列號、信元序號等信息,traffic_check在指定的時間窗內(nèi)檢測各隊列接收的報文數(shù)和字節(jié)數(shù),report_traffic根據(jù)報文數(shù)和字節(jié)數(shù)以及時間窗長度計算各隊列的流量,并打印流量信息。traffic_check提供3個輸入變量,即參考隊列號qcheck、起始檢測點num_start、結(jié)束檢測點num_end。當(dāng)調(diào)用traffic_check函數(shù)時,就以qcheck隊列收到第num_start個信元為時間窗起點,收到第num_end個信元為時間窗終點。通過設(shè)置不同的輸入變量,可以改變參考基準(zhǔn)、時間窗位置以及時間窗長度。

      4.5 記分板

      ScoreBoard是驗證環(huán)境的記分板,主要完成信元正確性檢測,信元亂序、覆蓋、丟棄檢測,流量檢測,仿真結(jié)束條件檢測等功能。驗證環(huán)境中ScoreBoard的自動化程度直接決定了仿真驗證的效率。自動化程度高且檢測機制完善的ScoreBoard可以極大地縮短觀測和定位問題的時間,從而提高驗證效率。

      ScoreBoard首先取出RM的輸出信元,用于提取信元隊列號、包id、信元id等信息。將{包id,信元id}作為信元標(biāo)識,區(qū)分隊列號以信元標(biāo)識為索引將信元存入聯(lián)合數(shù)組rm_cell[*],再取出Monitor的輸出信元,提取信元隊列號信息,區(qū)分隊列號將信元壓入隊列mon_cell$。

      在進行信元正確性判斷時,遍歷所有隊列號,從非空mon_cell中彈出信元,以信元標(biāo)識為索引查詢rm_cell。若rm_cell中不存在對應(yīng)地址的信元或者信元內(nèi)容不相等都判斷為錯誤信元。對于錯誤的信元,打印出錯誤信息。

      在進行信元亂序、覆蓋、丟棄等判斷時,遍歷所有隊列號,從非空mon_cell中依次彈出信元,將相鄰兩信元的信元標(biāo)識比較。若出現(xiàn)前面信元標(biāo)識大于后面信元標(biāo)識,則判斷兩信元間出現(xiàn)亂序。若相鄰兩信元標(biāo)識相等,則說明兩信元間出現(xiàn)重疊。遍歷所有隊列號,將rm_cell與mon_cell中的信元個數(shù)比較,若前者信元個數(shù)大于后者,則說明DUT有信元丟失現(xiàn)象。將出現(xiàn)亂序、覆蓋的信元以及丟棄信元的隊列號和信元丟棄個數(shù)打印輸出。

      在進行流量檢測時,直接調(diào)用Tm_tck的流量檢測任務(wù)完成各隊列的流量檢測功能。

      在檢測仿真結(jié)束條件時,檢測DUT丟棄報文數(shù)、輸出報文數(shù)、RM輸出報文數(shù),當(dāng)DUT輸出報文數(shù)加丟棄報文數(shù)等于RM輸出報文數(shù)時,仿真結(jié)束條件成立。

      4.6 斷言和覆蓋率

      為了提高仿真中觀察和定位問題的速度以及驗證的效率和完備性,在環(huán)境中添加了斷言[11]和覆蓋率屬性[12]。通過在設(shè)計模塊對外接口的關(guān)鍵位置上設(shè)置斷言,可以有效地提高觀察和定位設(shè)計錯誤的能力。此外采用代碼覆蓋率和功能覆蓋率手段進行輔助驗證。代碼覆蓋率包括行覆蓋率、條件覆蓋率、狀態(tài)機覆蓋率等,主要用于檢測RTL代碼的執(zhí)行情況,并由VCS自動收集。根據(jù)代碼覆蓋率提供的代碼覆蓋情況,可以對代碼實現(xiàn)的正確性和冗余度進行分析,并有針對性地添加用例,最終達到行覆蓋率100%,條件覆蓋率90%,狀態(tài)機覆蓋率100%的標(biāo)準(zhǔn)。對沒有達到標(biāo)準(zhǔn)的需要分析原因,給出解釋。功能覆蓋率需要定義覆蓋率點和覆蓋率組,主要檢測芯片功能點的覆蓋情況,不僅檢測單一的功能點,還檢測功能點間的耦合。根據(jù)功能覆蓋率提供的信息,進行定向用例補充,最終達到100%的覆蓋標(biāo)準(zhǔn)。

      4.7 驗證環(huán)境

      VMM提供了用于實現(xiàn)驗證環(huán)境的基本類vmm_env。vmm_env提供的基本函數(shù)和方法使環(huán)境的搭建到仿真的完成只需9步操作,業(yè)界稱為“vmm九步曲”。這9步操作分別對應(yīng)gen_cfg,build,reset_dut,cfg_dut,start,wait_for_end,stop,cleanup,report等9個任務(wù)和方法。

      本環(huán)境在對這9個方法進行繼承的同時,對build,start,wait_for_end,stop,report等方法進行過載。在build中將上述各驗證組件通過接口、通道、mailbox等連接成圖2所示的驗證環(huán)境,在start中調(diào)用各組件的start_xactor啟動組件,在wait_for_end中調(diào)用ScoreBoard的仿真結(jié)束函數(shù),等待仿真結(jié)束。在stop中調(diào)用各組件的stop_xactor停止組件,在report中調(diào)用Tm_tck的report_traffic打印各隊列的流量信息。

      5 驗證的實現(xiàn)

      在完成驗證環(huán)境的搭建以后,為了測試優(yōu)先級間WFQ調(diào)度的精度,分別測試輸入報文在固定短包(64 B)、混合短包(64~256 B隨機)、混合長短包(64~1 518 B隨機)、混合長包(1 300~1 518 B隨機)、固定長包(1 518 B)時8個優(yōu)先級間的調(diào)度情況。當(dāng)以優(yōu)先級1為基準(zhǔn)時,優(yōu)先級間WFQ調(diào)度的誤差如圖3所示。從測試誤差分析,優(yōu)先級間WFQ調(diào)度滿足固定包長誤差大于5%、混合包長誤差小于3%的要求,且混合包長誤差小于固定包長,滿足芯片設(shè)計規(guī)格。

      圖3 優(yōu)先級間WFQ調(diào)度誤差

      為了測試調(diào)度的合理性,還測試了優(yōu)先級間WFQ調(diào)度與其他調(diào)度的耦合,優(yōu)先級間WFQ調(diào)度關(guān)系的動態(tài)修改,以及同時修改優(yōu)先級間WFQ調(diào)度關(guān)系和其他調(diào)度關(guān)系的情況。嚴(yán)格執(zhí)行發(fā)現(xiàn)問題、定位問題、解決問題、回歸用例等操作流程。最終保證代碼通過所有用例的測試,且達到了代碼覆蓋率和功能覆蓋率標(biāo)準(zhǔn)。

      6 結(jié) 語

      這里介紹了VMM 的基本函數(shù)庫,在對流量管理芯片主要功能進行分析的基礎(chǔ)上,分析驗證的策略,描述如何利用VMM的基本函數(shù)完成流量管理芯片驗證中各驗證組件的構(gòu)建、驗證環(huán)境的搭建以及進行正常的仿真。在驗證環(huán)境的基礎(chǔ)上,實現(xiàn)芯片優(yōu)先級間WFQ調(diào)度的成功驗證。經(jīng)過分析可以看出,借助接口功能、斷言和覆蓋率屬性搭建的分層次驗證環(huán)境結(jié)構(gòu)清晰、靈活性強、擴展性好、重用度高,能夠極大地提高驗證效率和驗證的完備性。針對流量管理芯片的驗證方法和驗證策略能有效地指導(dǎo)芯片的仿真驗證,采用callback封裝的流量檢測組件,不僅能保證芯片的成功驗證,還可為我公司同類芯片完全重用,從而大大縮短同類產(chǎn)品的開發(fā)周期,降低開發(fā)成本,加快面市進度。

      參考文獻

      [1]楊逸軒,傅興華.VMM在AVS解碼芯片驗證中的應(yīng)用[J].電腦知識與技術(shù),2007(24):85-87.

      [2]Janick Bergeron,Eduard Cerny,Alan Hunter,等.System Verilog 驗證方法學(xué)[M].夏宇聞,楊雷,陳先勇,等譯.北京:北京航空航天大學(xué)出版社,2007.

      [3]Ravi Surepeddi.System Verilog for Quality of Results (QoR)[J].IEEE Computer Society,2008.

      [4]葛立偉.SystemVerilog設(shè)計和驗證的統(tǒng)一語言[Z].電子工程專輯,2003.

      [5]夏宇聞.System Verilog 簡介[J].中國集成電路,2006(2):40-50.

      [6]張珩,辜帆.VMM驗證方法在AXI總線系統(tǒng)中的實現(xiàn)Verification IP應(yīng)用一例[J].中國集成電路,2007(6):19-23.

      [7]鐘山,岳祥.WFQ流量調(diào)度算法研究[J].光通信研究,2006(5):16-18.

      [8]楊鑫,徐偉俊,陳先勇,等.System Verilog中的隨機化激勵[J].中國集成電路,2007(10):37-41.

      [9]Han Ke,Deng Zhongliang,Shu Qiong.Verification of AMBA Bus Model Using System Verilog[A].IEEE Proceedings of the Eighth International Conference on Electronic Measurement and Instruments[C].2007.

      [10]Janick Bergeron.Modeling Usable & Reusable Transactors in SystemVerilog[A].IEEE Proceedings of the 18th International Conference on VLSI Design Held Jointly with 4th International Conference on Embedded Systems Design[C].2005.

      [11]Kausik Datta,Das P P.Assertion Based Verification Using DVL[A].IEEE Proceedings of the 17th International Conference on VLSI Design[C].2004.

      [12]Runshan Yang,Liji Wu,Jun Guo.The Research and Implement of an Advanced Function Coverage Based Verification Environment[J].IEEE ASIC,2007:1 253-1 256.

      作者簡介 劉 燕 女,1983年出生,碩士研究生。主要從事網(wǎng)絡(luò)芯片的驗證工作。

      猜你喜歡
      驗證芯片
      芯片會議
      合理猜想,有效驗證
      小題也可大做
      彈藥保障需求分析實驗?zāi)P洼敵鰯?shù)據(jù)的驗證研究
      汽車外后視鏡抖動問題模型的試驗驗證
      HPGe γ譜儀無源效率刻度軟件驗證
      芯片測試
      多通道采樣芯片ADS8556在光伏并網(wǎng)中的應(yīng)用
      GAN 藍(lán)光LED 正裝小芯片和功率型芯片
      74HC164芯片的應(yīng)用
      黄冈市| 库伦旗| 武汉市| 四子王旗| 兴宁市| 浦城县| 吉水县| 尉氏县| 西畴县| 黄山市| 安溪县| 南漳县| 虎林市| 安龙县| 桓台县| 新丰县| 涞水县| 夏邑县| 阿巴嘎旗| 桓台县| 霍邱县| 公安县| 兴和县| 临汾市| 新沂市| 舟山市| 尤溪县| 长汀县| 金秀| 大荔县| 牡丹江市| 枞阳县| 台安县| 鹤岗市| 灌南县| 西丰县| 和顺县| 和林格尔县| 金坛市| 房山区| 山东省|