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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: wangxuede220

[求助] 请问DC综对“*”综合出的乘法器可以是补码乘法器吗?

[复制链接]
发表于 2011-6-13 10:14:43 | 显示全部楼层
6#所说的公式里面a和b可以是reg wire 甚至是port。verilog2001里面这些东西都可以声明是有符号的。例如 reg signed [7:0] a. 这样a就被认为是一个有符号的如果a和b都被声明为有符号的则 c=a+b。这个加法计算就被认为是有符号计算,也就是补码计算。如果a或b其中一个声明时没有加signed标记,即默认为无符号的,则a+b就按照无符号加法来算。此时如果要进行有符号加法就需要在计算中强制声明,像6楼那样。
 楼主| 发表于 2011-6-13 10:22:41 | 显示全部楼层
回复 11# eighteenyo


    奥,原来verilog还能这么用,谢谢。
    还有一个疑问,也是关键的问题。如果是乘法呢,我用signed定义的两个数a和b,如果a*b的话综合出来是补码乘法器吗,望指教,谢谢啊。
发表于 2011-6-13 10:48:54 | 显示全部楼层
回复 12# wangxuede220


   一样的。只要操作数都是有符号的这个操作就被认为是有符号运算,乘法和加法一样 都是运算嘛。像是复杂运算类似于a+b*c。如果要这个运算是有符号运算的话就要保证abc都是有符号的,如果有其中哪个是无符号的就要声明一下。 比如 如果a本来没有声明为有符号则  $signed(a)+b*c
 楼主| 发表于 2011-6-13 11:22:28 | 显示全部楼层
回复 13# eighteenyo


    非常感谢,我去试一下,但愿这里的补码乘法器不是先对补码求原码,然后经过乘法器,然后结果再求补码。
发表于 2011-6-13 12:11:05 | 显示全部楼层
补码是人为的理解,你可以认为是2补码,也可以认为不是。要想出来的结果是2补码,输入也应该是2补,就酱紫
 楼主| 发表于 2011-6-13 14:42:26 | 显示全部楼层
本帖最后由 wangxuede220 于 2011-6-13 14:43 编辑

回复 15# sdwsh


    普通的乘法器,就算输入的是2补码,可是它不知道是2 补码,只会把它当做普通的数据来运算,所以就算输入是2补,输出的数据也应该是不正确的,现在流行的乘法器设计方法一般是booth-wallance树型乘法器,这种一般都是补码乘法器,进行符号位扩展之后无符号数也可以利用这种乘法器。
    可现在的问题是这种乘法器设计比较麻烦,浪费时间,不知道DC有没有这样的内核什么的,或者说经过什么设置之后会将*综合成为补码乘法器呢?
    前面有人说用signed定义数据之后,然后再用*,便可以综合成为补码乘法器,对此有点小怀疑,先试试再说,这个仅仅经过仿真,应该就可以验证对错了。
    谢谢版主回复。
发表于 2011-6-13 16:56:16 | 显示全部楼层
designware有个DW02_mult,试试看就知道了
 楼主| 发表于 2011-6-14 08:51:28 | 显示全部楼层
回复 17# sdwsh


    不好意思啊版主,这个模块在design vision的什么位置,如何找呢?
发表于 2011-6-14 10:16:38 | 显示全部楼层
DW乘法器IP当输入端TC=1的时候就是有符号数的输入。
补充一下,只有verilog2001才支持有符号数。
 楼主| 发表于 2011-6-14 10:47:01 | 显示全部楼层
回复 19# hover99


    谢谢啊,再请教几个问题。
    DW里的乘法器是补码乘法器吗,输入是补码,输出也是补码?
    还有DW是不是需要买啊,不是有DC就会有DW吧?
    我用的是design vision,不知道这个DW如何找啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-7-15 11:53 , Processed in 0.025005 second(s), 6 queries , Gzip On, MemCached On.

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