微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 新手上路:FPGA的乘法问题

新手上路:FPGA的乘法问题

时间:10-02 整理:3721RD 点击:
刚开始做FPGA   现在要做乘法  也查找了不少资料  但是却有不少的疑惑  望大家帮忙解答一下
我用的是actel 的  A3P250-PQ208  语言用的是verilog
       我查到的资料说    做乘法可以用 移位相加,查找表,流水线,混和式查找表,加法器树,布思算法等多种算法,可是我现在要做的只是要把input  a与固定的数b(b是已知的)相乘,那么可不可以直接就写成,c=a*b,那么这样子时序又怎么样呢?在一个clk能完成这个工作么?

如果一个乘数是固定的,何必还要用乘法器实现呢?用几个加法就行了啊

同意楼上说法!

理论上使用定制电路在一个clk是可以完成的,可是用fpga就不一定了

如果有一个数是固定的 , 可以采用先移位 然后再想加的方法 , 移位运算可以做乘2的运算,想加可以算最后的余数

嗯  听到LS的说法  突然就想通了  谢谢

直接用IPcore三

谢谢小编!

直接移位相加即可

能否1个时钟做要看频率多少

学习学习

常系数乘法可以用CSD(减少加法器),非常快,应该比altera的ip核快。

现在的综合器很聪明, 用CSD也没有直接综合效果好
至少DC新版的是这样,建议直接写*

把b分解为2的倍数,把乘法转化为对a 的移位和加法即可完成

移位相加
两个for loop

综合器肯定会优化,如果不用IP Core,得看数据位宽和时钟频率

移位相加
FPGA的FEX系列时钟频率不到100M

ACTEL里面集成了现成的乘法器,你可以用用,省掉不少LE资源。
你直接写也可以,综合没啥问题,就是很耗单元。

和常数相乘何必动用乘法器?

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top