generate for (i=0;i<WIDTH;i=i+1) begin:adder wire t1,t2,t3; xor #1 x1(t1,a[i],b[i]); xor x2(s[i],carry[i],t1); and a1(t2,t1,carry[i]); and a2(t3,a[i],b[i]); or o1(carry[i+1],t2,t3); end endgenerate
function说明语句: function <返回值的类型或范围>(函数名); <端口及数据类型声明>; begin <语句>; end endfunction 举例如下: function [7:0] getbyte; input [15:0] address; begin ······ getbyte=result end endfunction (1)返回的类型不写默认为寄存器类型;范围不写则默认为1位; (2)函数默认定义了一个与函数名同名,类型范围一样的变量; (3)调用方法:<函数名>(表达式1,···,表达式n); (4)函数的使用规则:函数的定义不能包含任意的时间控制语句,如#,@或wait等; 函数不能启动任务; 函数至少有一个输入参数; 函数定义中必须有一条赋值语句给函数中的与函数名相同名的变量赋以函数的结果值。