在Verilog中,初学者经常分不清reg和wire两者的 区别,应该使用它们中哪个来驱动端口?连接不同模块时又该如何做?Systemverilog中对此做了改进,如图1所示:
图中,黄色的logic、bit、logic和reg 为 无符号类型;蓝色的integer、byte、shortint、int和longint为有符号类型。针对四值逻辑和二值逻辑的赋值问题,如下问题1:
logic [7:0] a = 8'b1000_0000;
bit [7:0] b = 8'b1000_0000;
byte c = 8'b1000_0000;
initial begin
$display("a = %d", a);
$display("b = %d", b);
$display("c = %d", c);
end
打印出来的值为:128、128、-128;
解答:logic和bit 这 ;两个属于无符号数,因此a=b=128。而byte属于有符号数值,数值的首位为符号位,因此c&