0

我有一条大约 4 层深的电线,我真的不希望不得不将它向上传播的麻烦。有没有办法使用某种引用来分配电线?我知道我可以通过键入以下内容来访问电线:

cca.cpu0.cca3_cpu.nc1_cp_checkpoint 

assign cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;

不工作

任何人都知道有什么办法吗?

4

2 回答 2

3

由于您没有向任何人展示足够的代码来重现您的问题,也没有透露有关您的问题的任何细节,我们所能做的就是猜测。

我的猜测是它nc1_cp_checkpoint被声明为reg你的cca3_cpu实例内部。您不能reg使用连续赋值为 a 赋值。尝试使用程序分配(在initialoralways块内),例如:

initial begin
    cca.cpu0.cca3_cpu.nc1_cp_checkpoint = checkpoint;
end

如果这不能解决您的问题:

  1. 显示更多相关代码
  2. 详细说明“不起作用”。显示您的错误消息(如果有)。

更新:如果您的实例内部nc1_cp_checkpoint持续驱动,则会出现另一个潜在问题。在这种情况下,您的第二个可能会引起争用,这会使值变得未知()。您可以使用and来避免这个问题。wirecca3_cpuassignxforcerelease

于 2010-02-01T13:56:14.887 回答
2

从您的标签中,您似乎表明您正在使用 VCS。你得到一个:

Error-[XMRE] Cross-module reference resolution error
Cross module resolution failed, token BLAH'. 
Originating module 'foo'. "foo.v", 666: 

这表明您的路径不正确。

跨模块引用确实有效,但如果您将设计限制为可综合的构造,则可能无法启用它们。在 VCS 用户指南中查找“跨模块参考”。

于 2010-02-01T04:02:50.587 回答