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

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2383|回复: 5

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

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

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

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

x
比如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楼正解
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-4 08:45 , Processed in 0.018776 second(s), 7 queries , Gzip On, MemCached On.

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