我有一个简单的代码:
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;
答案 0 :(得分:3)
您必须来自VHDL。 Ver在处理网络(隐式指定)时,Verilog专门允许这样做
IEEE 1800-2017 LRM的第23.3.3.1节端口强制
可能会强制声明为输入(输出)但用作输出(输入)或输入输出的端口到inout。
使用变量而不是网络时,SystemVerilog可以强制端口方向,因为只有一个变量的连续驱动程序。但是,没有什么可以阻止您从模块内部读取模块输出的值。