打印

16位乘法算法消耗资源的比较

[复制链接]
1848|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xnwxq|  楼主 | 2009-8-27 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天看到书上有个8位乘法,是用加法原理累加而成,一时兴起,和cpld组的16位乘法移位原理比较了一下。
当8*8乘法时,消耗了134个LE;程序如下:
用CPLD组的16*16 代码,编译后消耗了146个LE.
当把SIZE = 16后,要消耗惊人的526个LE。
/*********************************************/
module mult_repeat(outcome,a,b);
parameter size = 16;
        output[2*size:1] outcome;
input[size:1] a,b;
reg[2*size:1] outcome;
reg[2*size:1] temp_a;
reg[size:1] temp_b;
always @(a or b)
begin
  outcome = 0;
  temp_a = a;
  temp_b = b;
  repeat(size)
   begin
   if (temp_b[1])
    outcome = outcome+ temp_a;
   temp_a = temp_a <<1;
   temp_b = temp_b >>1;
end
end
endmodule

相关帖子

沙发
Fourier00| | 2009-9-4 18:57 | 只看该作者
你这个代码是完全组合逻辑和直接乘没啥两样啊,都不知道能不能综合成乘法器啊

使用特权

评论回复
板凳
鬼舞十七| | 2009-9-26 20:31 | 只看该作者
这样做不是好方法,多级流水的乘法器才是好的,逻辑级不长,流起来还只要1拍,兼顾了频率和节拍数

使用特权

评论回复
地板
patrick007| | 2009-9-27 03:02 | 只看该作者
高速高资源占用:
Look-Up Table (LUT) Multipliers

低资源占用:
Partial Product LUT Multipliers
Row Adder Tree Multipliers
Constant Coefficient Multipliers
Modified booth
CSD

还有各种加法器树的乘法器,基本都可以流水。
根据需要,去搜索一下吧。

我在研究arithmetic,可以多交流。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我们都是风雨中的孩子,手牵着手才不会跌倒

162

主题

294

帖子

1

粉丝