分配线深深嵌套设置的模块
-
24-09-2019 - |
题
我有一个线也就是大约4级深我真的不想麻烦的具有传播到它的层次结构。是否有任何方式分配线使用某些引用?我知道我可以访问该线通过打字:
cca.cpu0.cca3_cpu.nc1_cp_checkpoint
但
assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
不工作
任何人知道任何种方式来做到这一点?
解决方案
因为你还没有表现出足够的代码任何人都可以重现的问题,也没有你有没有透露任何细节关于你的问题,我们所能做的就是猜测。
我的猜测是, nc1_cp_checkpoint
被宣布为 reg
在你 cca3_cpu
实例。你不可以分配一个值 reg
使用一个连续的分配。尝试使用的程序分配(内部的一个 initial
或 always
方框),例如:
initial begin
cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end
如果这不会解决你的问题:
- 显示出更多的 有关 代码
- 详细说明"不工作"。展示你的错误信息,如果有的话。
更新:另一个潜在问题出现,如果 nc1_cp_checkpoint
是一个持续推动 wire
在你 cca3_cpu
实例。在这种情况下,你的第二个 assign
可能会导致竞争,这将使值去未知的(x
).你可能能够避免这一问题的使用 force
和 release
.
其他提示
这是你的标签,你似乎表明您正在使用VCS。您是否获得一个:
Error-[XMRE] Cross-module reference resolution error
Cross module resolution failed, token BLAH'.
Originating module 'foo'. "foo.v", 666:
这将表明,你的路径是不正确的。
跨模块引用做的工作,但如果你限制你的设计综合的结构,他们可能没有启用。 VCS用户指南中查找“跨模块参考”。
不隶属于 StackOverflow