• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于VMM的L2 Cache的驗(yàn)證平臺的設(shè)計(jì)與實(shí)現(xiàn)

    2015-04-12 00:00:00翟江濤潘明蘇雪
    現(xiàn)代電子技術(shù) 2015年4期

    摘 要: 隨著集成電路行業(yè)的不斷發(fā)展,芯片設(shè)計(jì)規(guī)??涨霸鲩L,功能也越來越復(fù)雜,使得驗(yàn)證的難度和重要性日益增大。在此提出一種由SystemVerilog語言搭建的基于VMM的一種面向?qū)ο蟮尿?yàn)證平臺。該驗(yàn)證平臺主要使用覆蓋率驅(qū)動的驗(yàn)證技術(shù),并結(jié)合可約束隨機(jī)測試和記分板技術(shù),對一款多核處理器芯片中的L2 Cache進(jìn)行功能驗(yàn)證。最后對驗(yàn)證平臺的可重用性進(jìn)行研究。實(shí)驗(yàn)結(jié)果表明,驗(yàn)證平臺具有良好的激勵生成機(jī)制,能夠?qū)2 Cache模塊的功能進(jìn)行全面的驗(yàn)證;同時(shí),驗(yàn)證平臺經(jīng)過少量更改就可以在基于標(biāo)準(zhǔn)的AXI接口的SoC驗(yàn)證平臺之間重用,極大地提高了驗(yàn)證效率,縮短了驗(yàn)證時(shí)間。

    關(guān)鍵詞: VMM; L2 Cache; 功能驗(yàn)證; System Verilog; 功能覆蓋率; 重用性

    中圖分類號: TN710?34; TP302 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2015)04?0125?04

    0 引 言

    隨著芯片工藝的發(fā)展和設(shè)計(jì)規(guī)模、復(fù)雜程度的急劇增大,使得功能驗(yàn)證的難度和重要性日益增大。由于功能驗(yàn)證在整個設(shè)計(jì)階段是最為關(guān)鍵和出錯率最高的環(huán)節(jié),大部分芯片流片失敗的主要原因在于設(shè)計(jì)功能上的缺陷,因此功能驗(yàn)證變得日趨重要。功能驗(yàn)證的目的在于確認(rèn)設(shè)計(jì)的實(shí)現(xiàn)是否符合系統(tǒng)要求的行為規(guī)范。當(dāng)前所采用的功能驗(yàn)證方法主要分為兩種,一種是形式化驗(yàn)證,一種是模擬驗(yàn)證。由于形式化驗(yàn)證能夠處理的設(shè)計(jì)規(guī)模非常有限,IBM公司將形式化驗(yàn)證成功的應(yīng)用在了POWER7 處理器[1]的功能驗(yàn)證上,對超大規(guī)模IC設(shè)計(jì)的形式化驗(yàn)證提供了寶貴的經(jīng)驗(yàn);模擬驗(yàn)證通過測試激勵模擬電路的工作,從而檢測設(shè)計(jì)描述的行為的正確性[2]?;谀M驗(yàn)證方法是當(dāng)前業(yè)界的大規(guī)模IC功能驗(yàn)證最廣泛的方法。為了節(jié)省人力和時(shí)間,提高驗(yàn)證的工作效率,業(yè)界提出了幾種基于模擬驗(yàn)證架構(gòu)的驗(yàn)證方法學(xué)有:OVM、UVM和VMM。本設(shè)計(jì)就是基于VMM(Verification Methodology Manual)的模擬驗(yàn)證L2 Cache芯片的功能。

    L2 Cache作為作為CPU和主存之間速度很快的存儲器,一個功能完善的L2 Cache能夠大大地加快CPU訪問存儲器的速度,提高處理器的運(yùn)行效率。因此本文主要對L2 Cache芯片進(jìn)行了驗(yàn)證平臺的搭建,通過有效的控制激勵,確保功能驗(yàn)證的完整性。利用System Verilog支持的VMM驗(yàn)證方法學(xué),建立層次化驗(yàn)證平臺[3]。Synopsys公司的VCS仿真驗(yàn)證工具完全支持SystemVerilog描述的結(jié)構(gòu)功能,能夠?qū)崿F(xiàn)隨機(jī)激勵的自動生成[4]、覆蓋率統(tǒng)計(jì)和斷言檢測,可有效的完成整個驗(yàn)證過程。

    1 VMM驗(yàn)證方法學(xué)

    1.1 SystemVerilog語言

    利用面向?qū)ο蟮念惤Y(jié)構(gòu)建立事物及其處理器,具有代碼模塊間的相互獨(dú)立、易于維護(hù)和動態(tài)連接等特點(diǎn)。允許代碼的復(fù)用,大大降低驗(yàn)證的復(fù)雜度和避免了一些設(shè)計(jì)細(xì)節(jié)麻煩。SystemVerilog硬件描述語言融合了面向?qū)ο蟮木幊碳夹g(shù)[5?6],與VHDL和Verilog HDL等過程性描述語言相比,更易于平臺的搭建。運(yùn)用面向的類結(jié)構(gòu)對數(shù)據(jù)進(jìn)行封裝,通過事件實(shí)現(xiàn)模塊的同步,提高驗(yàn)證效率。

    1.2 VMM驗(yàn)證方法學(xué)

    VMM是Synopsys公司推出的基于SystemVerilog的驗(yàn)證方法學(xué)[7],標(biāo)準(zhǔn)的驗(yàn)證平臺主要分為5層,每層實(shí)現(xiàn)不同的功能,每層又包括多個組件,其驗(yàn)證架構(gòu)如圖1所示。

    VMM驗(yàn)證平臺的核心是類(Class),每個層之間的組件都是基于類結(jié)構(gòu)實(shí)現(xiàn)。信號層位于最底層,主要包括DUT、平臺與設(shè)計(jì)信號連接的Interface組件和與DUT相關(guān)的一些其他功能模塊,主要完成DUT與驗(yàn)證平臺的信號連接。指令層主要包括驅(qū)動器(Driver)和監(jiān)測器(Monitor),兩者與DUT的實(shí)際接口相連接,驅(qū)動器由接口入口協(xié)議發(fā)送由功能層傳來的數(shù)據(jù)的激勵,經(jīng)過DUT處理之后監(jiān)視器再根據(jù)接口出口協(xié)議接收數(shù)據(jù)并通過回調(diào)(Callbacks)送到功能層。功能層主要完成處理應(yīng)用層事務(wù),驗(yàn)證DUT的比對工作。發(fā)生器和管理器共同構(gòu)成了場景層,發(fā)生器隨機(jī)的產(chǎn)生DUT的事務(wù)流,管理器根據(jù)特定測試用例產(chǎn)生發(fā)起場景并生成與之對應(yīng)的事務(wù)流[7]。測試層為平臺的頂層,是用戶自定義的測試用例,主要是文本測試用例文件,還包括對激勵的約束。該層的行為確定其他層的作用,啟動和控制整個驗(yàn)證平臺的運(yùn)行。該層較為抽象。在驗(yàn)證過程中利用功能覆蓋率評估測試的進(jìn)程,根據(jù)覆蓋情況修改隨機(jī)測試激勵的約束條件,最終達(dá)到100%覆蓋。

    2 驗(yàn)證平臺的設(shè)計(jì)與實(shí)現(xiàn)

    2.1 L2 Cache芯片結(jié)構(gòu)

    本設(shè)計(jì)的驗(yàn)證平臺的實(shí)驗(yàn)對象是面向多核處理器的L2 Cache芯片,該芯片采用AMBA 4.0 AXI(Advanced eXtensible Interface)接口協(xié)議。此協(xié)議具有高速、低延時(shí)和支持高頻率操作而無需復(fù)雜橋段連接。L2 Cache的結(jié)構(gòu)如圖2所示。L2 Cache通過CIU(Core Interface Unit)和結(jié)構(gòu)環(huán)(Ring)與核進(jìn)行數(shù)據(jù)的交換。由于結(jié)構(gòu)環(huán)產(chǎn)生的功耗低、占用設(shè)計(jì)布局面積小及能夠高效率的完成核與L2 Cache之間的通信等特點(diǎn),因此這里采用結(jié)構(gòu)環(huán)而不用直接的線網(wǎng)進(jìn)行連接。這樣不僅大大地提高了處理器的運(yùn)行效率,而且在功能不變的情況下使芯片體積更小使其市場價(jià)值提高。如圖2所示是CIU、Ring和L2 Cache三者之間的連接圖,CIU接到Core發(fā)過來的請求信號通過環(huán)訪問L2 Cache。L2 Cache由4塊Slice組成,每個Slice之間相互獨(dú)立,圖示只列出了一個Slice結(jié)構(gòu)。

    2.2 驗(yàn)證平臺的建立

    L2 Cache的驗(yàn)證平臺結(jié)構(gòu)如圖3所示,驗(yàn)證平臺采用的是黑盒的驗(yàn)證方法[8],它不需要驗(yàn)證人特別的了解DUT的具體實(shí)現(xiàn),大大減少了驗(yàn)證人員的工作量。平臺使用類對模塊進(jìn)行封裝,保證了平臺各個模塊的獨(dú)立性、完整性,并且易于復(fù)用和擴(kuò)展。此外,本平臺還采用了自檢測機(jī)制,可以高效地判斷激勵生成和DUT返回結(jié)果的正確性。

    (1) 事務(wù)類。根據(jù)L2 Cache功能驗(yàn)證需求,在同一種工作模式下需要發(fā)送和接收多個事物。因此,在本測試平臺里面通過4個事物類來完成設(shè)計(jì)的隨機(jī)化配置和激勵的生成。在config類中,定義了帶有約束的可隨機(jī)化的L2 Cache可配置選項(xiàng)和驗(yàn)證環(huán)境的可配置選項(xiàng),使在建立測試環(huán)境之前,確定L2 Cache的工作模式和收發(fā)數(shù)據(jù)次數(shù)。

    (2) 事務(wù)處理器類。事務(wù)處理器類主要完成接收事務(wù)的處理,并傳至給下一事務(wù)。主要包括GEN類、Driver類、Monitor類和env類。GEN類主要負(fù)責(zé)激勵的生成,本設(shè)計(jì)主要生成四組激勵數(shù)據(jù):L2 Cache寫操作(ST:store)、讀操作(LD:load)、內(nèi)存管理操作(Memory Management Unit,MMU)和取指操作(Instruction Fetch Unit,IFU)。這樣易于對事務(wù)進(jìn)行修改。生成事務(wù)后把事務(wù)發(fā)送給Driver類,Driver類產(chǎn)生L2 Cache工作的控制信號,并將配置信號存放相應(yīng)的寄存器中[9]。Monitor類適時(shí)的將事務(wù)輸出,并對事務(wù)進(jìn)行中間檢測。env類包含GEN、Driver和Monitor類的實(shí)例化。在此類中完成整個的驗(yàn)證過程,確保驗(yàn)證步驟按正確的順利執(zhí)行。

    (3) 記分板(RM)。記分板主要采用自檢測機(jī)制,通過對檢測器接收的實(shí)際輸出結(jié)果與記分板中的參考結(jié)果進(jìn)行自動比對,完成對DUT的驗(yàn)證。本設(shè)計(jì)是在記分板中建立了一個REF_model模型,把GEN類生成的不同的激勵通過郵箱發(fā)送給記分板,記分板獲得郵箱里面的數(shù)據(jù)輸入給REF_model,從而得到參考結(jié)果,再與L2 Cache輸出的結(jié)果進(jìn)行比對,根據(jù)比對結(jié)果,判斷設(shè)計(jì)的正確性。

    (4) 功能覆蓋模型。L2 Cache的功能點(diǎn)比較多,主要包括訪存功能和配置功能兩大主要功能。訪存功能主要包括三種類型:普通的寫訪存請求、普通的讀訪存請求和原子讀/寫交易;配置功能主要包括3種類型:寄存器的配置、禁用和使能L2 Cache和特權(quán)交易。其中的每一個功能都是有很多個測試點(diǎn)正交的集合。設(shè)計(jì)對這幾個功能一一驗(yàn)證,確保L2 Cache的功能設(shè)計(jì)全面。

    該設(shè)計(jì)分兩種對覆蓋率進(jìn)行采集:一是直接采集激勵的生成,二是采用回調(diào)的方式完成覆蓋數(shù)據(jù)的采集。設(shè)計(jì)中主要采用SystemVerilog語言中的覆蓋率組來實(shí)現(xiàn)的。在覆蓋組中,DUT所完成的所有操作設(shè)置成覆蓋點(diǎn),并通過cross結(jié)構(gòu)記錄數(shù)據(jù)包有效數(shù)據(jù)(coverpoint)的各種組合,通過對這些功能點(diǎn)分析,總結(jié)L2 Cache的功能覆蓋率模型如表1所示。

    2.3 驗(yàn)證的實(shí)驗(yàn)結(jié)果分析

    在整個驗(yàn)證過程中,利用Synopsys公司的VCS工具進(jìn)行仿真[10],并通過VCS自帶的覆蓋率分析工具DVE的到代碼覆蓋率。驗(yàn)證通過長時(shí)間不停歇的隨機(jī)激勵的輸入,并對約束不斷的修改,去除少量冗余代碼后,最終使代碼覆蓋率達(dá)到100%。圖4是最終的代碼覆蓋率DVE截圖。圖中第1列Name為設(shè)計(jì)所包含的模塊名;該設(shè)計(jì)總共由9個大模塊組成。第3列Line為代碼行覆蓋率;第4列Toggle為跳轉(zhuǎn)覆蓋率;第2列Score為所有代碼覆蓋率的平均值。

    功能覆蓋率必須著眼于L2 Cache的具體功能,根據(jù)功能覆蓋率模型對L2 Cache的各個功能點(diǎn)進(jìn)行驗(yàn)證;同時(shí),根據(jù)覆蓋信息定向的去改變隨機(jī)的約束,使沒有覆蓋到的功能達(dá)到100%的覆蓋。

    圖5是本驗(yàn)證平臺測試的11個covergroup的覆蓋率情況。而其他的功能點(diǎn)通過對自檢測試模塊和波形的分析獲得。因此該驗(yàn)證平臺在邏輯上已經(jīng)達(dá)到了對L2 Cache功能的充分驗(yàn)證。

    2.4 平臺可重用性

    該驗(yàn)證平臺嚴(yán)格按照VMM分層結(jié)構(gòu)搭建,結(jié)構(gòu)清晰,各模塊之間相對獨(dú)立卻又緊密合作,有利于平臺的功能擴(kuò)展[11]。驗(yàn)證平臺的各個類模塊也可以有選擇地重用,如平臺的發(fā)生器、行為模型和記分板,都可以通過局部的改變或直接重用。對于一些派生設(shè)計(jì)或者具有相同接口協(xié)議的設(shè)計(jì),設(shè)計(jì)者可以直接的重用驅(qū)動器和檢測器等,僅需要對修改激勵中的事務(wù)系列即可重用平臺。表2是通過對L2 Cache的驗(yàn)證平臺進(jìn)行少量更改后重用在NoC(Network on Chip)驗(yàn)證平臺上的代碼統(tǒng)計(jì)表。由圖可知NoC驗(yàn)證平臺中的各個類模塊大部分復(fù)用了L2 Cache驗(yàn)證平臺。復(fù)用率高達(dá)63.67%。這樣對NoC或具有相同機(jī)制設(shè)計(jì)的驗(yàn)證平臺的搭建節(jié)省大量工作量。

    3 結(jié) 語

    本文基于VMM驗(yàn)證方法學(xué)實(shí)現(xiàn)了一個層次化的驗(yàn)證平臺。該平臺采用面向?qū)ο蟮乃枷?,對L2 Cache進(jìn)行了功能仿真驗(yàn)證。驗(yàn)證結(jié)果表明,本文的驗(yàn)證平臺具有良好的擴(kuò)展性,有效地提高了驗(yàn)證的效率和驗(yàn)證覆蓋率。同時(shí)該平臺具有良好的激勵生成機(jī)制,通過覆蓋情況有效的指導(dǎo)激勵的生成,能夠快速地對DUT進(jìn)行全面覆蓋,達(dá)到驗(yàn)證的目的。

    參考文獻(xiàn)

    [1] SCHUBERT K D, ROESNER W, LUDDEN J M, et al. Functional verification of the IBM POWER7 microprocessor and POWER7 multiprocessor systems [J]. IBM Journal of Res Dev, 2011, 55(3): 11?16.

    [2] WANG Jian, WANG Tian?cheng, LI Hua?wei, et al. Survey of verification techniques based on design error injection [C]// the 15th Chinese Fault Tolerant Computing Conference(CFTC). [S.l.]: [s.n.], 2013: 111?116.

    [3] 程剛,蔡敏.基于SystemVerilog的SoC功能驗(yàn)證方法研究[J].科學(xué)技術(shù)與工程,2009,11(22):6814?6817.

    [4] 劉杰,徐偉俊,夏宇聞.設(shè)計(jì)驗(yàn)證中的隨機(jī)約束[J].中國集成電路,2006,11(1):28?31.

    [5] 閆沫,張媛.基于SystemVerilog語言的設(shè)計(jì)驗(yàn)證技術(shù)[J].現(xiàn)代電子技術(shù),2008,31(6):8?11.

    [6] 高世超.基于VMM驗(yàn)證方法學(xué)的SD卡模塊級驗(yàn)證[D].西安: 西安電子科技大學(xué),2011.

    [7] BERGENRON J,CEMY E, HUNTER A. Verification memthodology for SystemVerilog [M]. [S.1.]: Springers,Synopsys Inc, 2006.

    [8] 鐘文楓. SystemVerilog與功能驗(yàn)證[M].北京:機(jī)械工業(yè)出版社,2010.

    [9] 方穎立.基于VMM的寄存器抽象層驗(yàn)證[J].電子設(shè)計(jì)技術(shù), 2007(8):1?3.

    [10] Synopsys. VCS/VCSI user guide, Version G?2012.09 [M]. USA: Synopsys, 2012.

    [11] 何李梅,郭育華,溫志開,等.基于VMM的可重用FPGA驗(yàn)證平臺[J].國外電子測量技術(shù),2009,28(12):39?42.

    辉县市| 玛曲县| 桑日县| 灵璧县| 渑池县| 佛冈县| 平南县| 慈利县| 远安县| 连州市| 昌平区| 通城县| 稻城县| 高台县| 崇礼县| 富川| 克东县| 商洛市| 泰兴市| 田林县| 博罗县| 太和县| 承德市| 邵阳县| 宜都市| 新余市| 安徽省| 新宾| 池州市| 鹤庆县| 仙桃市| 惠东县| 忻州市| 玛纳斯县| 安达市| 含山县| 丹棱县| 平南县| 神木县| 汕尾市| 瑞丽市|