Questa 10.7b 中没有关于端口和分配的警告

No warning concerning port and assignment in Questa 10.7b

我有一个简单的代码:

module test (
  input a, 
  output b
  );    

  assign a=0;
  assign b=0;

endmodule 

如你所见,输入了a,赋值了,那是错误的..但没有显示警告;我的 compile.do 脚本:

set work work
vlib -type directory $work

vlog -work $work +acc    ../src/test.sv +incdir+../inc

和sim.do:

set work work
vlib -type directory $work
vlog -work $work +acc    ../src/test.sv +incdir+../inc

如何查看警告? 如果我做 assign a=b; (也应该是错误,因为 b 是输出的) 也没有错误,只有 a 是 h'x;

您一定是来自 VHDL。 😏这是 Verilog 在处理网络时特别允许的(您已隐式指定)

Section 23.3.3.1 Port coercion of the IEEE 1800-2017 LRM
A port that is declared as input (output) but used as an output (input) or inout may be coerced to inout.

SystemVerilog 在使用变量而不是网络时可以强制端口方向,因为一个变量只能有一个连续的驱动程序。但是,没有什么可以阻止您从模块内部读取模块输出的值。