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 在使用变量而不是网络时可以强制端口方向,因为一个变量只能有一个连续的驱动程序。但是,没有什么可以阻止您从模块内部读取模块输出的值。
我有一个简单的代码:
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 在使用变量而不是网络时可以强制端口方向,因为一个变量只能有一个连续的驱动程序。但是,没有什么可以阻止您从模块内部读取模块输出的值。