MyFPGA Forum
标题:
常见signed data 加法运算的处理
[打印本页]
作者:
Pocahontas
时间:
2010-2-24 10:35
标题:
常见signed data 加法运算的处理
算法常见基本的问题:signed data的加法运算,该如何用硬件电路来实现?若处理不好,debug是很费时费力。这边跟大家分享不同于软件(ex. C)的写法。
使用Verilog实现 “signed_add.v”(for 4-bit input and 5-bit output)
module signed_add (
iclk,
ia,
ib,
osum
);
input iclk;
input [3:0] ia;
input [3:0] ib;
output [4:0] osum;
reg [4:0] osum;
wire [4:0] sum_temp;
assign sum_temp = {ia[3], ia} + {ib[3], ib}; // Note here!!
always@(posedge iclk)
osum <= sum_temp;
endmodule
作者:
rich
时间:
2010-2-28 16:36
請問該方法使用的負數表示方法為何? 2補數嗎?
作者:
Pocahontas
时间:
2010-2-28 23:32
是的~
比较详细的描述
RTL 所提供的运算分unsigned与signed两种:
Unsigned:不含signed bit
以4 bit来说,值域从0000~1111,也就是0 ~ 15
Signed:含signed bit(MSB为signed bit,1为负,0为正,负数使用2补码表示)
以4 bit来说,值域从1000~0111,也就是-8 ~ +7
作者:
male3219
时间:
2010-7-21 15:54
本帖最后由 Frank 于 2010-7-23 10:25 编辑
嗯....
欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/)
Powered by Discuz! X3