You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Package通配符导出变量失效,指定导出正常的问题咨询

Verilog Package导出问题:export P1::*编译失败,显式导出单个标识符正常

我尝试创建一个能导出其他package内容的package时遇到编译错误,export的行为看起来和LRM描述不一致。试了两种写法,结果完全不同:

代码1(编译错误)

//---------(1)--------------
package P1;
  int a = 1;
  int b = 4;
endpackage : P1

package P2;
  import P1::*;
  export P1::*;
  int c = 2;
endpackage : P2

module TRY1( );
  import P2 :: *;
  initial begin
    $display("top : P1::a = %0d", a);
    $display("top : P1::b = %0d", b);
    $display("top : P2::c = %0d", c);
  end
endmodule : TRY1 

代码2(无编译错误)

//---------(2)--------------
package P1;
  int a = 1;
  int b = 4;
endpackage : P1

package P2;
  import P1::*;
  export P1::a;
  export P1::b;
  int c = 2;
endpackage : P2

module TRY1( );
  import P2 :: *;
  initial begin
    $display("top : P1::a = %0d", a);
    $display("top : P1::b = %0d", b);
    $display("top : P2::c = %0d", c);
  end
endmodule : TRY1

问题原因

Verilog LRM对export语句的通配符使用有明确限制:export不支持用::*通配符一次性导出整个package的所有内容,必须显式列出每个要导出的标识符。

虽然import可以用::*批量导入,但export不支持这种写法,必须逐个指定要导出的成员,这就是两种写法结果不同的核心原因。

内容的提问来源于stack exchange,提问作者Keyuri Sorathiya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 09:50:54