请问8bit*10bit的无符号乘法器,需要耗费多少时钟周期?

[复制链接]
6290|7
 楼主| crystal28 发表于 2011-11-11 08:49 | 显示全部楼层 |阅读模式
用的actel的proasic3 fpga,应该如何去测算?我用modelsim仿真,好像所有组合逻辑一个时钟就完成了。
谢谢!
mr.king 发表于 2011-11-11 21:30 | 显示全部楼层
FPGA带有乘法器,一个时钟完成
 楼主| crystal28 发表于 2011-11-12 10:57 | 显示全部楼层
那如果是有符号乘法,能否一个时钟完成?
比如这样的计算:

  1. reg [7:0]reg1;
  2. reg [9:0]reg2;
  3. reg[17:0]reg3;
  4. reg3 = (reg1 * reg2) >> 1;
应该要两个时钟吧?
谢谢!
Backkom80 发表于 2011-11-14 13:40 | 显示全部楼层
示情况而定,
如你调用IP核,在IP的文档在可以找到相应说明,在IP调用时也可以作相应设置。
如你是自己写的代码,你应该自己清楚你的设计时序,同时也要考虑完成你设计时代码风格是不是可以综合!
如C = A*B,这种描述风格是不是可以综合,能综合,他能跑多快,适合符号你的设计的工作频率!
 楼主| crystal28 发表于 2011-11-14 16:47 | 显示全部楼层
谢谢回复。
我不清楚的是,无符号和有符号数做乘法,(直接用verilog的乘法运算符,即reg3 = (reg1 * reg2);)需要多少个时钟周期。我觉得是1个时钟,想确认一下。
还有,网上有的**讲,20*18bits有符号整数乘法可以用booth算法提高效率,他们为什么不直接reg3 = (reg1 * reg2)呢?是因为硬件不支持?这里我就不明白了。
另外像C = A*B,这种情况还有可能无法综合?在何时可能无法综合?
求教!
Backkom80 发表于 2011-11-17 10:28 | 显示全部楼层
1、C = A*B这种写法不是所有的综合器都支持他们为可综合的,Quartus II是支持的,ISE新版好象也支持了,第三方如synplify等,你需要自己去看。
2、C = A*B这种写法,就算能综合,默认为无符号数。
3、always @ ( posedge clk ) C = A*B 为一个时钟周期,这种写法,时钟能跑多快,有待分析,我感觉是中低端芯片也就50M上下这个样子(没有完全结论,只是一个初步试跑)。
4、建意调用乘法IP核来实现你这个功能。硬核,在时序上有保证。图形化设置,多少个时钟完成乘法都可设置。具体用法在生成时查看相应的datasheet。
 楼主| crystal28 发表于 2011-11-21 10:04 | 显示全部楼层
actel的proasic3系列据我所知没有硬件乘法器
我用的synplify,可以综合C = A*B,但时钟频率上不去
Backkom80 发表于 2011-11-21 12:28 | 显示全部楼层
actel的芯片没用过,呵呵,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

45

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部