UVM平臺使用C程序,主要用來產生激勵、作為參考模型檢查DUT輸出結果。通過DPI-C將UVM與C程序連接起來,進行通信,具體地,可以通過Package與Virtual interface兩種方式,將UVM與C程序連接。
第一種通過Package方式,將DPI-C的實現(import和export)放在UVM的class里,再把這個class放在package中,在UVM bench里創建這個class,使用句柄調用DPI-C的task/function,實現UVM集成C程序的應用。
1.1、uvm testbench top通過import方式引入C程序package

1.2、C程序package文件

1.3、集成的C程序代碼

1.4、UVM測試用例直接調用C程序

第二種通過Virtual interface方式,將DPI-C的實現(import和export)放在UVM的interface里,在interface對應的agent中,在該agent的sequence使用句柄調用DPI-C的task/function,實現UVM集成C程序的應用。

2.1 Interface接口import方式引入C程序

2.2 uvm agent將接口和Sequncer連接在一起

總結:
UVM集成C程序,通過System Verilog中的DPI-C接口,實現互連,根據C程序在UVM平臺中的應用,如果C程序作為參考模型,可以使用package方式集成;如果C程序作為激勵源,可以使用interface方式集成。