通过 let 构造进行非法层次引用

问题描述 投票:0回答:1

我有一个包,我想在其中放入一些有用的助手来进行一些我在各处使用的常见计算。我以为我可以在课堂上使用它们,但是当我这样做时,我收到了错误。这是显示该问题的基本示例:

package let_pkg;

   let sum(b,c) = b+c;

endpackage

class class_that_uses_let;

   int a,b,c;

   task use_let;
      a = let_pkg::sum(b,c);
   endtask

endclass

第一:为什么这是非法的?

第二:如果我希望这些 let 构造可以在我的测试平台的各个部分中使用,那么更好的方法是什么?过去我使用过宏,但“let”看起来更清晰,所以我想让它发挥作用。

system-verilog
1个回答
0
投票
  • 需要导入包才能使用
  • 不需要 :: 运算符

这为我编译

package let_pkg;

   let sum(b,c) = b+c;

endpackage
import let_pkg::*;
class class_that_uses_let;

   int a,b,c;

   task use_let;
      a = sum(b,c);
   endtask

endclass
© www.soinside.com 2019 - 2024. All rights reserved.