tim 发表于 2010-6-28 00:37:03

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

在对fpga 编程时,对了大量数据的运算,比如说乘法运算有两种方法:
(1)
    input datain1 , datain2 ;
    output dataout;
   dataout<=dataa*datab;


(2) input dataain1, datain2;
    output dataout;
lpm_multlpm_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;&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]
查看完整版本: 在对fpga 编程时,对了大量数据的运算,比如说乘法运算有两种方法