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

SystemVerilog仿真出现vlog-2110 Illegal reference to net报错求助

错误原因

你的测试模块t_1c中,将需要生成激励的信号A、B、C声明为了input类型:

module t_1c(input logic A,B,C, output logic F);

SystemVerilog中input端口默认属于线网(net)类型,只能由外部电路、assign连续赋值语句驱动,不允许在initial/always这类过程块内做赋值操作,这就是编译器抛出Illegal reference to net错误的直接原因。

修正方案

测试平台(Testbench)不需要对外的输入端口,直接将激励信号定义为模块内部的logic变量即可,修正后完整代码如下:

module biii (input logic A,B,C,
output logic F);
assign F = ~(~(A & C) & (B & ~(C)));
endmodule

module t_1c();
// 内部激励信号,可在initial块内赋值
logic A,B,C;
// 观测信号,连接待测试模块的输出
logic F;

biii B2(A,B,C,F);

initial begin
#20
A=0;B=0;C=0;
#20
A=0;B=1;C=0;
#20
A=0;B=0;C=1;
#20
A=1;B=1;C=0;
#20
A=1;B=0;C=0;
#20
A=0;B=1;C=0;
#20;
$finish;
end
endmodule

补充说明

如果你的场景确实需要保留t_1c的对外端口,只需将A、B、C的端口方向从input改为output logic即可,端口类型为变量时支持过程块赋值。

内容的提问来源于stack exchange,提问作者射命丸大新文

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:54:03