选择数据类型时常犯的错误.ALR大支号类型确定方法总结如下信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信号为内部信号。对于端口信号,输入端口只能是net类型。输出端口可以是net类型,也可以是register类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值(包括实例化语句),则为net类型。内部信号类型与输出端口相同,可以是net或register类型。判断方法也与输出端口相同。若在过程块中赋值,则为register类型:若在过程块外赋值,则为net类型。若信号既需要在过程块中赋值,又需要在过程块外赋值。这种情况是有可能出现的,如决断信号。这时需要一个中间信号转换下面所列是常出的错误及相应的错误信息(errormessage)用过程语句给一个net类型的或忘记声明类型的信号赋值。X信息:illegal..assignment将实例的输出连接到声明为register类型的信号上信息:<name>has illegaloutput portspecification将模块的输入信号声明为register类型。信息:incompatibledeclaration,<signalname>122025/12/3
2025/12/3 12 选择数据类型时常犯的错误 ❖ 用过程语句给一个net类型的或忘记声明类型的信号赋值。 信息:illegal . assignment. ❖ 将实例的输出连接到声明为register类型的信号上。 信息:<name> has illegal output port specification. ❖ 将模块的输入信号声明为register类型。 信息:incompatible declaration, <signal name> . 下面所列是常出的错误及相应的错误信息(error message) • 信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其它的信 号为内部信号。 • 对于端口信号,输入端口只能是net类型。输出端口可以是net类型,也可以是 register类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值(包 括实例化语句),则为net类型。 • 内部信号类型与输出端口相同,可以是net或register类型。判断方法也与输出端口相 同。若在过程块中赋值,则为register类型;若在过程块外赋值,则为net类型。 • 若信号既需要在过程块中赋值,又需要在过程块外赋值。这种情况是有可能出现的, 如决断信号。这时需要一个中间信号转换。 信号类型确定方法总结如下:
选择数据类型时常犯的错误举例-ALexample.v修改后:修改前:moduleexample(o1,o2,a,b,c,d);moduleexampleo1,o2,a,b,cd);inputa, b, c, d;inputa,b,c,d;outputo1,o2;Ilreg c, d;outputo1,o2;IIrego2regc, d;rego2rego1;andu1(o2, c, d);andu1(o2, c, d);always @(a or b)always @(a or b)if(a)o1=b;elseo1=0;if(a)01=b;else01=0;endmoduleendmodule132025/12/3
2025/12/3 13 选择数据类型时常犯的错误举例 修改前: module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; reg c, d; reg o2 and u1(o2, c, d); always @(a or b) if (a) o1 = b; else o1 = 0; endmodule 修改后: module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; // reg c, d; // reg o2 reg o1; and u1(o2, c, d); always @(a or b) if (a) o1 = b; else o1 = 0; endmodule example.v
内容提要T心主要数据类型总结OTONG运算符及表达式阻寒和非阻寒赋值心过程块verilog的词汇约定2025/12/3
2025/12/3 14 内容提要 ❖主要数据类型总结 ❖运算符及表达式 ❖阻塞和非阻塞赋值 ❖过程块 ❖verilog的词汇约定
4.1运算符及表达式T算术运算符OTONG赋值运算符心关系运算符心逻辑运算符心条件运算符位运算符心移位运算符心拼接运算符心其他152025/12/3
2025/12/3 15 4.1 运算符及表达式 ❖算术运算符 ❖赋值运算符 ❖关系运算符 ❖逻辑运算符 ❖条件运算符 ❖位运算符 ❖移位运算符 ❖拼接运算符 ❖其他
操作数的数目区分T心单目运算符OTONG双目运算符三目运算符162025/12/3
2025/12/3 16 操作数的数目区分 ❖单目运算符 ❖双目运算符 ❖三目运算符