在线咨询 切换到宽版
eetop公众号 创芯大讲堂 创芯人才网

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2472|回复: 5

[求助] FPGA里面怎么处理signed与unsigned相加的问题呢?

[复制链接]
发表于 2016-12-1 01:58:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
比如5 + (-6)
   0101
   1010
--------------
   1111

系统是怎么知道这个答案是15还是-1 ?
发表于 2016-12-1 09:25:41 | 显示全部楼层
处理的数据是正负数的补码,我这里假设你的数据位宽为4位,但是最高位是符号位,0代表正数,1代表负数。
+5的补码为0 101,至于-6,1 110,它的反码是 1 001,补码是 1 010(1 110取反加1得到,符号位不变),然后0 101+1 010=1 111,根据符号位判断必然是负数,将它-1再取反得到1 001,就是-1呦。希望帮到了你。
回复 支持 反对

使用道具 举报

发表于 2016-12-1 10:06:58 | 显示全部楼层
0101+1010=1111;那么1111既可以是5+6=15,也可以认为5-6=-1,这一点不矛盾啊。
fpga是不会处理unsigned+signed的情况的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-2 09:28:23 | 显示全部楼层
回复 3# fascinate_lyd


    对,我就是想问signed和unsigned相加会怎么样
回复 支持 反对

使用道具 举报

发表于 2016-12-2 11:30:10 | 显示全部楼层
回复 4# GreatGBL
FPGA默认不会这样处理;编写程序可以强制处理,也是没问题的。
比如:C<=unsigned(A)+signed(B);只要注意C的位宽即可。
回复 支持 反对

使用道具 举报

发表于 2016-12-2 16:57:51 | 显示全部楼层
3楼正解
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条


手机版| 小黑屋| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-9-11 05:22 , Processed in 0.014677 second(s), 3 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表