1.位宽
reg [5:0] reg_t;
reg[3:0] reg_t2;
initial begin
reg_t= 4'd12 //6'b001100
reg_t2= 4'd12 //4'b1100
#10;
reg_t=-4'd12 //6'b110100
reg_t2=- 4'd12 //4'b0100
end
2有符号问题
reg_t= -1 //6'b111111
reg_t2= -1 //4'b1111
reg_t=- 4'd12/4 //6'b111101即-3的补码形式
3.parameter和define
`define widA 5
parameter widB=6;
reg [ 3:0] r_test;
r_test=`widA 'd10;//允许
r_test= widB 'd10;//不允许
总结:对于寄存器,存储的都是数值的补码形式,如果被赋值的寄存器位宽小,就会高位截断。如果位宽多,
就会按符号位补齐。如果在不知道位宽的情况下,想将寄存器所有位都为1,直接赋值-1即可。
寄存器补码赋值与位宽限制
本文详细解释了寄存器补码赋值的过程,包括有符号问题的处理,以及位宽对寄存器赋值的影响。特别强调了在未知位宽情况下,使用-1赋值的方法,并提供了寄存器位宽与补码赋值的总结。
4480

被折叠的 条评论
为什么被折叠?



