• 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。


1439 次瀏覽0 則留言

最新文章

查看全部

[科技產業] IC設計股價起飛中,我該換工作嗎?

一兩個月前接到高通 Qualcomm 的電話 說是要發offer給我 由於距離面試結束後已經過了四五個月 時機已不同所以一些因素我婉拒了這個 offer 但後來不斷有 recruiter 或是 headhunter 一直寄信給我 例如 Arm china, Nvidia, Google, SiFive 在這個時機點都瘋狂地找人 讓我不禁懷疑真正的IC設計時代難道現在才開始嗎? 我留下這篇文章來記錄

Logo2020.JPG