MyFPGA Forum
标题:
常见signed data overflow的处理
[打印本页]
作者:
Pocahontas
时间:
2010-2-24 10:59
标题:
常见signed data overflow的处理
算法常见基本的问题:signed data除了在硬件架构上需要注意signed-bit的加法运算外,overflow 也是一个很重要需要处理的问题,若处理不好,debug也是很费时费力。承接上面的分享,这边把输出从“5-bit output”改成“4-bit output”。
使用Verilog实现 “signed_add.v”(for 4-bit input and 4-bit output)
module signed_add (
iclk,
ia,
ib,
osum
);
input iclk;
input [3:0] ia;
input [3:0] ib;
output [3:0] osum;
reg [3:0] osum;
wire [4:0] sum_temp;
assign sum_temp = {ia[3], ia} + {ib[3], ib};
always@(posedge iclk)
if (!sum_temp[4] && sum_temp[3]) //Note here!
osum <= 4’h7;
else if (sum_temp[4] && !sum_temp[3]) //Note here!
osum <= 4’h8;
else
osum <= sum_temp;
endmodule
sum_temp[4]:signed bit
sum_temp[3]:overflow bit
判断是否为正overflow:sum_temp[4]为0且sum_temp[3]为1
判断是否为负overflow:sum_temp[4]为1且sum_temp[3]为0
作者:
huguangheng
时间:
2010-2-24 11:04
回复
1#
Pocahontas
谢谢分享 : )
作者:
Steady_Chou
时间:
2010-2-24 11:26
好艰深阿~ 谢谢分享
欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/)
Powered by Discuz! X3