【发布时间】:2021-10-18 15:23:31
【问题描述】:
是否可以通过引用将信号传递给属性?例如,我想创建一个覆盖属性来捕获寄存器更改,并将此属性重新用于数十个不同的寄存器。我想做这样的事情:
property reg_change(int num_cycles, ref bit some_reg);
@(posedge CLK)
$changed(some_reg) |-> ##num_cycles $changed(some_reg);
endproperty
Reg1Change10Cycles_cp : cover property (reg_change(10, reg1);
Reg2Change10Cycles_cp : cover property (reg_change(10, reg2);
//...
但尝试在属性中使用“ref”时出现编译错误。我认为我不能只使用bit some_reg,因为那将是按值传递,并且永远不会看到 some_reg 更改。无论如何我可以在不定义每个封面属性中的整个属性的情况下实现这种行为吗?
【问题讨论】:
标签: system-verilog system-verilog-assertions