目录
一、Verilog中如何给一个变量赋值为一个负数
Verilog中默认reg和wire中存放的是>=0的数,如果要存放一个负数需要加关键字signed,下面通过一个自加器的Modelsim仿真来了解一下如果不加signed直接赋值会发生什么。
add1和add2是两个简单的自加器。初始值(-20),步长为2,flag信号用来判断是否是负数。关于flag_add1和flag_add2的产生逻辑如下列代码所示:
reg signed [7:0] add1;
reg [7:0] add2;
reg flag_add1;
reg flag_add2;
initial begin
clk= 0;
add1=-20;
add2=-20;
forever clk=#5 ~clk ;
end
always@(posedge clk)
if(add1>0)
flag_add1<=1;
else
flag_add1<=0;
always@(posedge cl