一、m个有符号整数,位宽相同均为n,求它们的和,和的位宽应设置为n+m-1,求和时每个数均扩展m-1个符号位
例1:
reg [3:0] a;
reg [3:0] b;
reg [4:0] sum;
always@(posedge clk)begin
sum <= {a[3],a[3:0]} + {b[3],b[3:0]};
end文章来源地址https://www.toymoban.com/news/detail-757970.html
例2:
reg [3:0] a;
reg [3:0] b;
reg [3:0] b;
reg [5:0] sum;
always@(posedge clk)begin
sum <= {{2{a[3]}},a[3:0]} + {{2{b[3]}},b[3:0]} + {{2{b[3]}},b[3:0]} ;
end
二、m个有符号整数,位宽不完全相同,最大位宽是n,求它们的和,和的位宽也应设置为n+m-1,求和时每个数都扩展符号位至位宽为n+m-1
例3:
reg [3:0] a;
reg [2:0] b;
reg [4:0] sum;
always@(posedge clk)begin
sum <= {a[3],a[3:0]} + {{2{b[2]}},b[2:0]};
end
例4:
reg [3:0] a;
reg [2:0] b;
reg [1:0] b;
reg [5:0] sum;
always@(posedge clk)begin
sum <= {{2{a[3]}},a[3:0]} + {{3{b[2]}},b[2:0]} + {{4{b[1]}},b[1:0]} ;文章来源:https://www.toymoban.com/news/detail-757970.html
end
到了这里,关于Verilog 有符号整数加法计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!