天天看点

systemverilog 在class中使用force

1.直接force某个值,比如0/1/a之类的,可以在class中直接force 2.force某个变量的值,比如 force dut.timer=timer, 如果timer是一个动态变量的话,编译会报错“ Class data is not allowed in non-procedural context.”,简单的解法是把timer定义成static类型 3.如果2中不能简单定义成static类型的话,可以借用interface/bind module来实现,具体是在interface中增加trigger/dis-trigger/value三个值,在interface中使用always块force dut信号,在class中驱动trigger/value/dis-trigger

综上,就是force dut信号的右端一定要是静态的值