
相关阅读Verilog基础https://blog.csdn.net/weixin_45791458/category_12263729.html?spm1001.2014.3001.5482一般情况下设计者会对线网(Net)进行显式声明如图1所示。图1 线网声明但这不是绝对的在没有显式声明的情况下以下情况会被视为隐式线网声明。1、如果一个标识符在模块端口定义中被使用则应假定其为默认线网类型的隐式线网并具有该端口定义中的向量宽度如例1所示。// 例1 module top_module(a, b, c); output [3:0] a; // 被认为是4-bit wire类型 input b; // 被认为是1-bit wire类型 input c; // 被认为是1-bit wire类型 assign a {b, b, c, c}; endmodule2、如果一个普通标识符即非层次标识符被用于一个模块实例的端口连接表达式中且该标识符在模块实例的作用域中或该作用域可以直接引用的作用域中未被声明则应假定其为默认线网类型的标量即1-bit隐式线网。module top_module(a, b, result); input wire a, b; output wire result; and_block u_block (.x1(a), .x2(b), .x3(c), .y(result)); // c被认为是1-bit wire类型 endmodule3、如果一个普通标识符即非层次标识符出现在连续赋值语句的左侧且该标识符在连续赋值语句出现的作用域中或该作用域可以直接引用的任何作用域中未被声明则应假定其为默认线网类型的标量即1-bit隐式线网。module top_module(a, b); input wire a, b; assign result ab; // result被认为是1-bit wire类型 endmodule对于以上三种情况隐式线网属于其被引用的作用域可以使用default_nettype编译指令改变默认线网类型默认为wire。