支持一下四种类型的变量声明:
1)时序always块中的寄存器变量reg
2)组合always块中的组合reg变量reg
3)assign语句中的网表wire
4)例化模块的输出端口wire
用户在使用变量是需要在至少一个赋值语句的左边或者右边给出该变量的位宽,例如:
A <= 2'b01;
B[3:0] <= 0;
C[5] = 1'b1;
除非在其它语句给出了更高的位宽,否则变量A,B,C的位宽分别为2,4,6。插件支持参数位宽,位宽需要出现在等式左边,例如:
D[WIDTH:0] = 5;
E[2*WIDTH-1] = 1'b1;
变量D和E的位宽分别为WIDTH+1和2*WIDTH。
插件会在/ * autodefine * /之后声明所有变量。