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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5134|回复: 4

[讨论] 关于流水线有符号乘法器,求教

[复制链接]
发表于 2014-11-3 23:14:38 | 显示全部楼层 |阅读模式

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

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

x
今天闲的无聊,用几个加法器写了个三级流水线的无符号乘法器,后来想输入增加一位符号位搞成有符号乘法器,数学太渣,苦于没有捷径,就写了个有符号乘法器的顶层,总的思想是先求两个有符号数的输入数据的补码,输入我的无符号数乘法器,得到的结果,再取补码,得到补码结果,前面再扩展一个单独异或计算的符号位,就得到了最终结果。。。。是不是很蛋疼我没怎么写过底层运算,求各位大神给点比较通用,又比较简单的流水线有符号乘法器写法。
发表于 2014-11-16 22:47:49 | 显示全部楼层
本帖最后由 birdf 于 2014-11-16 22:53 编辑

个人理解,这是正、负数的底层表示问题。正数不变,负数则将正数按比特取反并加1得到,之后的运算就无有符号数和无符号数之分了。至于最后的输出,无论是编译器或仿真器都会正确的显示出来,前提是格式化语句得写对了。
对于你的问题,你只需将无符号乘法器的两个乘数的bit位扩展一位,仍按照无符号数来就行了,正负数的转化及显示实际上软件都已经帮你做好了。
发表于 2014-11-17 10:09:57 | 显示全部楼层
先说你的乘法器吧,底层的设计上你不用关心正负数,你只需关心位宽,比如你要设计16位的有符号的乘法器,那你的输入位宽得设计成17位,拷贝最高位(符号位),乘法操作就是加法的叠加,基本的方法就是用乘数的每一位去和被乘数进行与逻辑,再把得到的部分积相加,这样需要做的加法的次数就是你乘数的位宽,然后你在进行流水的划分,这是最基本的,其实你可以采用编码技术,对乘数编码后,可以减少做加法的次数,还可以采用WALLCE树压缩,最后只需做一次加法,超前进位加法器就不用说了。
    再说你的正负数问题,你只需开始进行一个判断处理就行,正数不用管。负数的话取补码再进入乘法器运算,补码的方式就是取反加一,取反好办,但加一操作可能会影响你的流水线,也不不希望这样的预处理,一种方式你可以把加一操作累加到后续处理,你自己可以想象怎么累加,还有一种方式你可以在最低位后补一个1,这样一加就相当于在原数的最低位加了一个1了,其他的你再自己好好想想,可以设计个性能更高位宽更大的!
发表于 2015-4-17 10:37:56 | 显示全部楼层
回复 3# caojun121123

楼主 请问有哪些提高乘法器精度的办法 我只有一个时钟就要出结果
 楼主| 发表于 2015-4-18 00:56:32 | 显示全部楼层
回复 4# 菜鸟小张


   全组合逻辑,1拍就出结果,但是跑快了不行。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-26 03:00 , Processed in 0.020557 second(s), 9 queries , Gzip On, MemCached On.

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