验证:C、C++、system verilog 现在是主流
工作:验证平台,搭平台,
1、灌激励;
2、收集相应;
3、作比较。
uvm:基于SV的验证方法学。
1、提供架构;
2、一套完整的库;
3、一套成熟的运作机制。
一般是class开头,相当于module,
extends 继承,
class my_driver extends uvm_driver.
uvm_driver 父类
my_driver 子类,天生拥有父类的所有的功能,
所有东西都需要new一下
::用法 my_driver::main_phase,main_phase是包含在my_driver里。
virtual 用法 虚函数,父类里定义了task1,子类里如果想对task1改进或者重写,需要加virtual。另外是,父类如果有很多子类的情况,改进需要用virtual。为了养成好习惯,
task前面加virtual。
’ 宏定义,'uvm_info(“”,“”,“”) 宏定义里面肯定包含了分号,所以不用写分号。
-gui 是图形化界面,
-log 是数据
import uvm_pkg :: *;
输入uvm包,
uvm优势:
1、便利
2、可移植性
testbench 里用run_test ("") 括号里指定UVM的top顶层。
uvm phase运行机制: 有task phase 和function phase ;function不占用仿真时间,
task占用仿真时间。
uvm某一些phase底层已经把一些phase定义好了,但是里面的功能需要自己后面去实现。uvm自己定义好的phase会自动运行,从上至下,就算有的只是空壳。用户自定义的phase/task/function只有在调用的时候才会执行。
如果有几个class,那么class与class之间的关联:运行机制是按同级phase并行执行,一级都执行完了之后再执行下一级。
interface 接口
为什么定义成logic&#