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方式集成。