• Techo

[IC驗證] IC 電路驗證,testbench與 DUT的關係

更新日期:2019年12月14日

以往在學校裡所教的 testbench 都是在某個時間點把訊號拉為1,

然後用 #delay 一段時間再切換訊號值,

如下圖,



這樣的方式僅可以驗證簡單的電路行為,

而且當要重複控制的時候就必須再寫一次一樣的訊號控制,

一旦需要進行很複雜的驗證時,

或是在同時間不同步的訊號控制,

程式就會非常混亂,

所以關於 DV(design verification)會使用 UVM 來做電路驗證就是會了使整個驗證環境階層化,

並且可以使用物件導向的方式來進行驗證,

也就是使用 Hardware Verification Language (HVL) SystemVerilog 來進行驗證,

使用 trigger 的方式來觸發驗證行為,

我們可以把不同的行為包裝成 task (另類的 function) 如下,


再透過 firmware 的視角來呼叫 task,



既然要驗證那就必須要有待驗的電路,

我們稱呼為 DUT (design under test),

testbench 與 DUT 的架構如下,


design environment

testbench 是一個 wrapper,

DUT 是一個 submodule,

那 testbench的內容是什麼,

如下圖,


Testbench components

DUT 可能要加上 AMBA 或是其他相關硬體電路,

但那些電路並不是我們今天要驗證的對象,

所以我們會使用 systemverilog 來實現那些非待驗電路的 behavior model,

理解起來就會像是,

在 DUT 外部呼叫一些 function 來打入 test pattern,

使用 testbench 的 software behavior 來驗證 DUT 的 hardware behavior。


908 次瀏覽
Logo2020.JPG
  • Instagram - White Circle
  • Google+ - White Circle
  • Facebook - White Circle

Contact Us

Techo私人程式家教

官方LINE ID : @tutortecho

zh-Hant.png

© Copyright 2018 by Sherry Wu and Techo Chao.

Proudly created with Wix.com,

but page loading is too slow,so I don't recommend it.