本人刚接触Verilog,想请教一下,赋值的时候,比如:
wire cin,con;
wire [31:0] sum,a,b;
都什么时候用类似[31:0]这种设置位宽呀?原则呢?我可以都省略吗?
还想问一下reg和wire两个类型,书上说always里必须用reg,那么假如always之前定义的
wire a=2; 在always里面也引用到了a,这样的话是不是就出现错误啦?(a不应该定义为wire)。。。
望高手解答、、好疑惑~
那是不是假如
reg [8:1] D=5;
那么就相当于赋值D[0]=1, D[1]=0, D[2]=1, D[3]=D[4]=...=D[7]=0
是这样吗?
verilog是不能在定义变量时直接赋值的,这是他和c语言的区别所在。
但是可以用parameter或者用initial语句来赋值,parameter相当于c语言中的define关键字了。
你这里的要赋值的话直接用D=5就可以了,这样就D[0]=1, D[1]=0, D[2]=1, D[3]=D[4]=...=D[7]=0了。