集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2797|回复: 5

在对fpga 编程时,对了大量数据的运算,比如说乘法运算有两种方法

[复制链接]
tim 发表于 2010-6-28 00:37:03 | 显示全部楼层 |阅读模式
在对fpga 编程时,对了大量数据的运算,比如说乘法运算有两种方法:
(1)
    input[11:0] datain1 , datain2 ;
    output[23:0] dataout;
   dataout<=dataa*datab;


(2) input[11:0] dataain1, datain2;
    output[23:0] dataout;
  lpm_mult  lpm_mult1(.dataa(datain1) , .datab(datain2) ,.result(dataout));

这两种方法对fpga 的速度和面积的影响一样吗?
尤其在实现乘法累加运算中
 楼主| tim 发表于 2010-6-28 00:55:18 | 显示全部楼层
在上面的第二种方法中 <br>
&nbsp; &nbsp;lpm_mult&nbsp; &nbsp; lpm_mult1&nbsp;&nbsp;(.dataa(datain1) , .datab(datain2) ,&nbsp;&nbsp;.result(dataout));<br>
这样写对吗,我感觉没有错,为什么总是出现:&nbsp; &nbsp;&nbsp;&nbsp;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;error :&nbsp;&nbsp;near&nbsp;&nbsp;text &ldquo; mylpm_mult1" ; expecting " &lt;= " ,or "="&nbsp; &nbsp;&nbsp;&nbsp;的错误提示
usd 发表于 2010-6-28 01:18:11 | 显示全部楼层
dataout&lt;=dataa*datab;<br>
没定义reg<br>
能用非阻塞赋值?
UFP 发表于 2010-6-28 03:01:32 | 显示全部楼层
把&nbsp;&nbsp;reg&nbsp;&nbsp;[31:0]&nbsp;&nbsp;dataout 加上
inter 发表于 2010-6-28 03:30:21 | 显示全部楼层
两种方式都会综合出一个乘法器来,我觉得第二种方法应该事先用QuartusII生成一个位数合适的乘法器的宏模块来,然后再调用,就应该没问题了。
 楼主| tim 发表于 2010-6-28 05:23:29 | 显示全部楼层
原帖由 jennyjiao 于 2006-8-28 10:46 发表<br>
在上面的第二种方法中 <br>
&nbsp; &nbsp;lpm_mult&nbsp; &nbsp; lpm_mult1&nbsp;&nbsp;(.dataa(datain1) , .datab(datain2) ,&nbsp;&nbsp;.result(dataout));<br>
这样写对吗,我感觉没有错,为什么总是出现:&nbsp; &nbsp;&nbsp;&nbsp;<br>
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;error :&nbsp;&nbsp;near&nbsp;&nbsp;text &ldquo; myl ... myl ... 是怎么来的了?<br>
假如是你定义的乘法器的名那<br>
lpm_mult&nbsp; &nbsp; lpm_mult1&nbsp;&nbsp;(.dataa(datain1) , .datab(datain2) ,&nbsp;&nbsp;.result(dataout));<br>
就写的有问题
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-15 12:32 , Processed in 0.074536 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表