【发布时间】:2015-12-15 20:48:57
【问题描述】:
我试图在我的设计中强制使用一些内部节点。我试图强迫的一件事是struct 的成员。
当我尝试这样做时:
module struct_force;
struct {
logic a;
logic b;
logic c;} d;
initial begin
force d.a = 1;
$display(d);
end
endmodule
Incisive 给我一个错误:
非法使用位选择、部分选择、成员选择或 mda 元素 [9.3.1(IEEE)]
但 VCS 似乎对此很满意:See EDA playground example
从 IEEE-1800 我看到这与 force 有关:
赋值的左边可以是对单数的引用 变量,网络,常数 向量网络的位选择,常数 矢量网络的部分选择,或这些的串联。
我无法解析这句话以找出谁错了:Incisive 是在阻止我做我应该能够做的事情,还是 VCS 在规范中玩得又快又松?
如果这实际上是非法的,有什么办法可以只强制结构的一部分?
【问题讨论】:
标签: system-verilog