Verilog基础:编译指令`default_nettype
相关阅读
Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm=1001.2014.3001.5482
`default_nettype编译指令用于指定该指令后编译单元内的模块中隐式网络的默认线网类型,直到在编译单元中遇到了另一个`default_nettype编译指令(关于编译单元,可以参考Verilog基础:八种命名空间)。
如果在一个编译单元内没有使用`default_nettype编译指令或者使用了`resetall编译指令进行复位,则模块的默认线网类型为wire。
`default_nettype编译指令的语法如图1所示。
图1 `default_nettype编译指令的BNF范式
例1展示了该编译指令的基本使用方式。
// 例1
`default_nettype tri
module top_module(a, b);input wire a, b;assign result = a&b; // result被认为是1-bit tri类型endmodule
需要注意的是,该编译指令只能在模块外部使用,否则会出现编译错误,如例2所示。
// 例2
module top_module(a, b);
`default_nettype triinput wire a, b;assign result = a&b; // 编译错误endmodule
如果指定了none,则所有网络必须显式声明。如果网络没有显式声明,则会出现编译错误,如例3所示。
// 例3
`default_nettype none
module top_module(a, b);
`default_nettype triinput wire a, b;assign result = a&b; // 编译错误endmodule