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信号的右端一定要是静态的值

本文介绍在Verilog HDL中如何正确地对信号进行强制赋值(force),包括直接赋值静态值、通过interface/bindmodule实现动态赋值的方法。探讨了在不同上下文中遇到的问题及解决方案。
681

被折叠的 条评论
为什么被折叠?



