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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6635|回复: 10

[求助] verilog booth算法 8位乘法器求助

[复制链接]
发表于 2013-1-29 20:13:52 | 显示全部楼层 |阅读模式

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

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

x
如题   求助
发表于 2013-2-22 09:38:25 | 显示全部楼层
module mult(a,b,c);
parameter width=16;
input [width-1:0]a,b;
output [2*width-2:0]c;

reg[2*width+2:1] data;

integer i;

always@(*)
begin
data={{(width+1){1'b0}},b,1'b0};

for(i=0;i<=width-2;i=i+1)
begin
   
  if(data[1]==1'b1 && data[1]!=data[2])
  data=data+{a[width-1],a,{(width+1){1'b0}}};
  else if(data[2]==1'b1 && data[1]!=data[2])
  data=data+{~{a[width-1],a}+1,{(width+1){1'b0}}};

  data={data[2*width+2:2*width+1],data[2*width+2],data[2*width:2]};
  //data={data[2*width+2:2*width+1],1'b1,data[2*width:2]};
end
  
  if(data[1]==1'b1 && data[1]!=data[2])
  data=data+{a[width-1],a,{(width+1){1'b0}}};
  else if(data[2]==1'b1 && data[1]!=data[2])
  data=data+{~{a[width-1],a}+1,{(width+1){1'b0}}};
end

assign c[2*width-2]=data[2*width+2];
assign c[2*width-3:0]=data[2*width:3];

endmodule

这个是一个可定制位宽的booth算法乘法器
发表于 2013-2-22 12:07:48 | 显示全部楼层
看看看
发表于 2013-2-24 10:21:22 | 显示全部楼层
我又改进了一下 加入了流水线 时序很好在smic0.18下能跑到50~60MHz ,但是因为没有用部分积压缩编码所以面积比较大。
发表于 2013-2-26 09:02:52 | 显示全部楼层
不错,可以参考
发表于 2014-7-3 09:59:24 | 显示全部楼层
回复 4# fxty


   前辈您好,请问可以把您改进后的booth代码发上来看看吗?这一段可以跑到多少M呢
发表于 2014-7-3 10:27:21 | 显示全部楼层
回复 2# fxty


   我在论坛里看到有朋友说现在的综合器可以综合出乘法、除法和求模,是真的吗?
发表于 2015-11-13 21:19:26 | 显示全部楼层
赞赞的
发表于 2015-11-15 09:37:16 | 显示全部楼层
前辈啊 求分享4:2压缩代码 小白鼠实在不会写
发表于 2019-1-1 20:15:23 | 显示全部楼层
请问楼主有适配booth的Testbench代码吗?   我用vivado设计的,紧急求助~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 18:05 , Processed in 0.024972 second(s), 9 queries , Gzip On, Redis On.

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