在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何設(shè)計(jì)和構(gòu)建Testbench呢?

sanyue7758 ? 來源:芯片學(xué)堂 ? 2023-05-08 10:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Testbench是幾乎所有做動(dòng)態(tài)仿真驗(yàn)證的工程師都要面對的問題,可能是需要設(shè)計(jì),或者開發(fā),又或者是維護(hù),總有很多事情要在這上面折騰。Testbench可以很簡單,也可以很復(fù)雜。

在面對具體的驗(yàn)證對象的時(shí)候,如何利用我們手頭的工具,比如SV/UVM/Python等,去搭建一個(gè)簡潔高效的、可維護(hù)性和可重用性強(qiáng)的testbench,是一個(gè)非常重要且值得討論的問題,甚至不同的工程師就能總結(jié)出自己的一套經(jīng)驗(yàn)法則。

本文將從架構(gòu)(Architecture)、實(shí)現(xiàn)(Implementation)、維護(hù)(Maintenance)這三個(gè)方面著手,討論設(shè)計(jì)和構(gòu)建testbench通常需要考慮的問題,不涉及編程實(shí)操,不涉及驗(yàn)證計(jì)劃。

01 Architecture

Testbench架構(gòu)定義很大程度影響著仿真程序的執(zhí)行效率。這里的討論將分三個(gè)小點(diǎn)展開:驗(yàn)證環(huán)境本身結(jié)構(gòu),層次化測試激勵(lì),以及配置信息的傳播。

最簡單的驗(yàn)證環(huán)境,或者說驗(yàn)證環(huán)境的一般雛形,包括driver、monitor、sequencer、model、checker、scoreboard等這么一些組件,連接關(guān)系也很簡單。然而在實(shí)際工程項(xiàng)目中,特別是到了系統(tǒng)集成級,由于驗(yàn)證對象很龐大,驗(yàn)證環(huán)境的組件數(shù)量往往成倍數(shù)增加,連接關(guān)系和控制關(guān)系也會(huì)變得更加復(fù)雜。

層次化的測試激勵(lì)來源于我們對測試場景的定義和對激勵(lì)控制的需求。一般來說,測試場景定義得越抽象,測試激勵(lì)的層次就會(huì)相應(yīng)地增加,對測試激勵(lì)的控制也會(huì)更加復(fù)雜。舉個(gè)例子,假設(shè)我們想要測試CHI NoC中HN對某一種transaction的響應(yīng)行為,那么只需要啟動(dòng)讓RN agent直接發(fā)出transaction的sequence即可;某天我們想要測試HN處理不同hazard(多筆請求產(chǎn)生沖突)的行為,那么我們可以通過封裝多個(gè)base sequence來實(shí)現(xiàn)該目的。

配置信息的傳播在testbench架構(gòu)中很重要。配置信息一般包括對DUT參數(shù)或者宏定義的配置、驗(yàn)證環(huán)境組件的開關(guān)配置、測試激勵(lì)權(quán)重的配置等等。配置信息使得當(dāng)前驗(yàn)證環(huán)境可以被有效復(fù)用,可以覆蓋到更多的測試場景。通常我們可以通過分享config對象句柄的方式來傳遞配置信息。

02 Implementation

在實(shí)現(xiàn)上要考慮的問題會(huì)比較雜,這里舉幾個(gè)常見的主題:數(shù)據(jù)結(jié)構(gòu)的定義,建模和檢查方式,覆蓋率收集,以及仿真的啟動(dòng)和結(jié)束。

數(shù)據(jù)結(jié)構(gòu)的定義應(yīng)當(dāng)完整,并提供足夠的方法使其能夠被高效操作。數(shù)據(jù)結(jié)構(gòu)容易直接想到的就是sequence_item的定義,決定了數(shù)據(jù)在testbench各組件中游走的包格式。除此之外,需要定義config對象的數(shù)據(jù)結(jié)構(gòu),自定義的建模方式可能需要一種新的數(shù)據(jù)類型等等。

建模和檢查方式強(qiáng)依賴于驗(yàn)證計(jì)劃。大白話是,確定需要覆蓋的測試點(diǎn)和覆蓋方法,對此再分門別類定義checker,根據(jù)checker所需要的信息定義建模方式。這里的建模指的是在testbench中實(shí)現(xiàn)DUT中某個(gè)模塊的功能,或者記錄DUT狀態(tài)信息,使得檢查測試結(jié)果時(shí)有理有據(jù)。

覆蓋率是芯片項(xiàng)目驗(yàn)收的關(guān)鍵技術(shù)指標(biāo),收集覆蓋率就變成testbench必要的功能。定義覆蓋點(diǎn)的位置以及收集覆蓋率的方式都比較靈活,如果沒有統(tǒng)一規(guī)劃和管理,容易讓同一個(gè)testbench中收集覆蓋率變得分散而不好管理。

仿真的啟動(dòng)和結(jié)束主要為了實(shí)現(xiàn)這兩部分功能:測試用例開始前的初始化和仿真結(jié)束時(shí)的狀態(tài)檢查。仿真驗(yàn)證不代表一上來就給驗(yàn)證對象灌激勵(lì),除了要處理好復(fù)位、上電流程之外,通常還要其他初始化工作,比如將某些接口tie成固定值、初始化控制寄存器的值、加載memory的內(nèi)容等等。仿真結(jié)束時(shí),除了要確保DUT已經(jīng)完成對測試激勵(lì)的完整響應(yīng),還需要檢查DUT以及testbench自身的一些狀態(tài)是否符合預(yù)期。

03 Maintenance

在項(xiàng)目迭代中通常會(huì)復(fù)用到前項(xiàng)目的驗(yàn)證環(huán)境,這就導(dǎo)致testbench的維護(hù)工作需要做得比較長遠(yuǎn),否則容易積重難返,最后誰也不敢做出更新或者改進(jìn)。Testbench的維護(hù)有這么幾個(gè)重要的主題:驗(yàn)證環(huán)境的集成,工程目錄結(jié)構(gòu),各類腳本管理,以及相關(guān)文檔的整理。

驗(yàn)證環(huán)境的集成指的是將底層驗(yàn)證環(huán)境的向上復(fù)用,這種操作在實(shí)際項(xiàng)目中非常常見,也是提高驗(yàn)證效率和節(jié)約人力的好方法。當(dāng)testbench需要被集成復(fù)用,需要提前溝通好雙方的需求和配置方式。

工程目錄結(jié)構(gòu)一般要遵守項(xiàng)目管理的統(tǒng)一安排,使得環(huán)境在需要維護(hù)時(shí)檢索效率比較高。否則,當(dāng)驗(yàn)證環(huán)境變得非常龐大之后,在一個(gè)結(jié)構(gòu)混亂的工程目錄中找文件會(huì)非常麻煩,所以不要隨意存放文件。

環(huán)境腳本雖然不作為testbench本身的一部分,卻是維護(hù)驗(yàn)證環(huán)境的必要工具。這里的腳本主要的工作有文本處理、自動(dòng)化生成文件、提交仿真任務(wù)等內(nèi)容,當(dāng)需求發(fā)生變化,相應(yīng)的腳本也就需要更新和維護(hù)。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • UVM
    UVM
    +關(guān)注

    關(guān)注

    0

    文章

    182

    瀏覽量

    19490
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86484
  • 芯片驗(yàn)證
    +關(guān)注

    關(guān)注

    5

    文章

    40

    瀏覽量

    47591
  • DUT
    DUT
    +關(guān)注

    關(guān)注

    0

    文章

    190

    瀏覽量

    12904

原文標(biāo)題:芯片驗(yàn)證 | 大話題:如何設(shè)計(jì)和構(gòu)建Testbench

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    testbench 設(shè)計(jì)教程

    testbench 設(shè)計(jì)教程
    發(fā)表于 09-12 12:06

    分享一些testbench的文檔教你如何寫好testbench

    這個(gè)論壇感覺說testbench的略少,分享一些testbench的文檔。。。。。
    發(fā)表于 09-08 18:03

    testbench設(shè)置的問題

    本帖最后由 平漂流 于 2017-5-21 11:09 編輯 如圖,看Verilog仿真視頻教程里面,在testbench設(shè)置時(shí)候,直接復(fù)制“blocking_vlg_tst”到top
    發(fā)表于 05-21 11:04

    LFSR testbench V1.2

    LFSR testbench The LFSR testbench can help you understand the LFSR basics: 1. Change
    發(fā)表于 05-14 11:18 ?50次下載

    Writing Testbench

    Writing Testbench:The Quebec Bridge Company was formed in 1887 and for the nextthirteen years, very
    發(fā)表于 07-10 17:30 ?0次下載
    Writing <b class='flag-5'>Testbench</b>

    編寫高效率的testbench

    編寫高效率的testbench,學(xué)習(xí)編寫測試文件的小伙伴們。
    發(fā)表于 05-11 16:40 ?16次下載

    testbench_book

    verilog Testbench
    發(fā)表于 12-13 22:20 ?3次下載

    testbench怎么寫_testbench經(jīng)典教程VHDL

     testbench是一種驗(yàn)證的手段。首先,任何設(shè)計(jì)都是會(huì)有輸入輸出的。但是在軟環(huán)境中沒有激勵(lì)輸入,也不會(huì)對你設(shè)計(jì)的輸出正確性進(jìn)行評估。那么此時(shí)便有一種,模擬實(shí)際環(huán)境的輸入激勵(lì)和輸出校驗(yàn)的一種“虛擬
    發(fā)表于 12-01 17:22 ?5.6w次閱讀
    <b class='flag-5'>testbench</b>怎么寫_<b class='flag-5'>testbench</b>經(jīng)典教程VHDL

    簡單的Testbench設(shè)計(jì)

    testbench是一種驗(yàn)證的手段。首先,任何設(shè)計(jì)都是會(huì)有輸入輸出的。但是在軟環(huán)境中沒有激勵(lì)輸入,也不會(huì)對你設(shè)計(jì)的輸出正確性進(jìn)行評估。那么此時(shí)便有一種,模擬實(shí)際環(huán)境的輸入激勵(lì)和輸出校驗(yàn)的一種“虛擬
    的頭像 發(fā)表于 03-08 14:35 ?2679次閱讀

    介紹FPGA中testbench的編寫技巧

    原來模塊中的輸入信號,定義成reg 類型,原來模塊中的輸出信號,定義為wire類型,但這里有個(gè)問題,如果在testbench中本身有一個(gè)模塊需要,如用來產(chǎn)生時(shí)鐘,送給要仿真的模塊,那怎么定義信號類型?
    發(fā)表于 01-06 14:52 ?2070次閱讀
    介紹FPGA中<b class='flag-5'>testbench</b>的編寫技巧

    典型的UVM Testbench架構(gòu)

    UVM類庫提供了通用的代碼功能,如component hierarchy、transaction level model(TLM),configuration database等等,使用戶能夠創(chuàng)建任何類型的Testbench架構(gòu)。
    的頭像 發(fā)表于 05-22 10:14 ?2717次閱讀
    典型的UVM <b class='flag-5'>Testbench</b>架構(gòu)

    testbench是什么? testbench測試的機(jī)制是什么?

    廢話不多說直接上干貨,testbench就是對寫的FPGA文件進(jìn)行測試的文件,可以是verilog也可以是VHDL。
    的頭像 發(fā)表于 06-28 16:44 ?5851次閱讀
    <b class='flag-5'>testbench</b>是什么? <b class='flag-5'>testbench</b>測試的機(jī)制是什么?

    Verilog Testbench怎么寫 Verilog Testbench文件的編寫要點(diǎn)

    之前在使用Verilog做FPGA項(xiàng)目中、以及其他一些不同的場合下,零散的寫過一些練手性質(zhì)的testbench文件,開始幾次寫的時(shí)候,每次都會(huì)因?yàn)橐恍┗镜臇|西沒記住、寫的很不熟練,后面寫的時(shí)候稍微
    的頭像 發(fā)表于 08-01 12:44 ?4978次閱讀
    Verilog <b class='flag-5'>Testbench</b>怎么寫 Verilog <b class='flag-5'>Testbench</b>文件的編寫要點(diǎn)

    Testbench的基本組成和設(shè)計(jì)規(guī)則

    ??對于小型設(shè)計(jì)來說,最好的測試方式便是使用TestBench和HDL仿真器來驗(yàn)證其正確性。一般TestBench需要包含這些部分:實(shí)例化待測試設(shè)計(jì)、使用測試向量激勵(lì)設(shè)計(jì)、將結(jié)果輸出到終端或波形窗口便于可視化觀察、比較實(shí)際結(jié)果和預(yù)期結(jié)果。
    的頭像 發(fā)表于 09-01 09:57 ?1756次閱讀
    <b class='flag-5'>Testbench</b>的基本組成和設(shè)計(jì)規(guī)則

    編寫高效Testbench的指南和示例

    Testbench是驗(yàn)證HDL設(shè)計(jì)的主要手段,本文提供了布局和構(gòu)建高效Testbench的指南以及示例。另外,本文還提供了一種示例,可以為任何設(shè)計(jì)開發(fā)自檢Testbench。
    的頭像 發(fā)表于 10-29 16:14 ?1715次閱讀
    編寫高效<b class='flag-5'>Testbench</b>的指南和示例
    主站蜘蛛池模板: 亚洲 另类色区 欧美日韩 | 久久精品伊人波多野结 | 免费a级网站 | 天堂激情 | 国产日韩精品一区二区三区 | 亚洲热热久久九九精品 | 国产一级特黄在线播放 | 手机免费看a | 精品国产自在现线看久久 | 午夜精品久久久久久久久 | 七月婷婷在线视频综合 | 最新色网站 | 欧美全免费aaaaaa特黄在线 | 超h 高h 污肉1v1御书屋 | 天天操天天干天天摸 | 亚洲国产精品乱码一区二区三区 | 久久免费精品高清麻豆 | 天堂最新资源在线 | 在线观看成人网 | 美女扒开尿口给男人桶 | 好吊日在线 | 这里只有精品视频 | 污视频18高清在线观看 | 免费视频网站在线观看 | 操美女网址 | 鲁丝一区二区三区 | 色免费在线观看 | 六月婷婷在线 | 9色网站| 免费无码看av的网站 | 三级视频在线 | 婷婷激情五月综合 | 99色在线 | 国产亚洲一区二区三区在线 | 天天摸天天做天天爽水多 | 国产精品伦理一区二区三区 | 日本亚洲黄色 | 国产精品久久福利网站 | h网站免费 | 国产美女主播在线 | 日韩黄a级成人毛片 |