我有一条大约 4 层深的电线,我真的不希望不得不将它向上传播的麻烦。有没有办法使用某种引用来分配电线?我知道我可以通过键入以下内容来访问电线:
cca.cpu0.cca3_cpu.nc1_cp_checkpoint
但
assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
不工作
任何人都知道有什么办法吗?
我有一条大约 4 层深的电线,我真的不希望不得不将它向上传播的麻烦。有没有办法使用某种引用来分配电线?我知道我可以通过键入以下内容来访问电线:
cca.cpu0.cca3_cpu.nc1_cp_checkpoint
但
assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
不工作
任何人都知道有什么办法吗?
由于您没有向任何人展示足够的代码来重现您的问题,也没有透露有关您的问题的任何细节,我们所能做的就是猜测。
我的猜测是它nc1_cp_checkpoint
被声明为reg
你的cca3_cpu
实例内部。您不能reg
使用连续赋值为 a 赋值。尝试使用程序分配(在initial
oralways
块内),例如:
initial begin
cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end
如果这不能解决您的问题:
更新:如果您的实例内部nc1_cp_checkpoint
持续驱动,则会出现另一个潜在问题。在这种情况下,您的第二个可能会引起争用,这会使值变得未知()。您可以使用and来避免这个问题。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 用户指南中查找“跨模块参考”。