caosix 发表于 2009-10-28 18:36:38

请问::12bit的“小数乘法器”,需要多大规模的FPGA,或者CPLD??

各位::需要一个 乘法器 ————不限定:非得要 1个时钟周期,完成乘法运算。。。

被乘数 只有 12bit——————也就是说范围是 0 到 4095不是。。。乘数 是个小数 0.01 到 0.99——!!

只要求乘法运算的结果::只需要保留::整数部分,就可以了。。。例如::

2368 * 0.67 ———— 要求乘法器输出: 1586 ——————就万事大吉了。。。请指点:这个小数乘法器的FPGA、CPLD设计思路。谢谢!

minux 发表于 2009-10-28 19:22:02

这个需求按照12bit*7bit->12bit的乘法器估计需求就行了。
但是,乘数的量化还有点细节问题,你要0.01-0.99,是量化成7位还是需要更多?
7位的话,精度只有1/128.

至于需要多大规模的FPGA/CPLD,你需要给出其他的参数才行。
输入、输出数据的格式?(被乘数肯定是12位二进制数据了,但是乘数是什么格式?如果是十进制格式,还要重新量化;输出数据接受不接受冗余二进制编码?)
器件类型(4输入lut还是6输入的lut,带不带有内置的硬乘法器,速度等级)?
是速度优先还是资源优先?
是否需要pipeline设计?如果需要,吞吐量?延时?如果不需要,延时最大多少?

至于设计思路,任何一本计算机算术的书都会讲很多种思路的,先把上面的问题确定了再说。

caosix 发表于 2009-10-28 22:24:33

太谢谢了。。。不好意思,我都忘记 怎么 表示 二进制的小数了!!——忘记了啊。忘记了。
都是正数:0.01 到 0.99希望取得的精度 也应该是12位的(或者11位的)。否则整个体系的精度就不够了。

乘数是什么格式呢??————整体考虑:就用十进制的整数来表示吧::例如:“0.26”就表示成“26”。
“输出数据接受不接受冗余二进制编码?”————完了完了,我不理解这里的“冗余”有什么特别的意义??

先按照 没有内部硬乘法器的 CPLD 器件来考虑吧。。。输入的数字,都假设已经存放在寄存器里了,用一根信号线
的“+”跳变做为:小数乘法的启动信号。。输出也放在一个12位的寄存器里。(只需要输出整数部分!)

按照资源优先来考虑,,吞吐量,就随器件了。。。不做要求。。50MHz 的时钟频率,大多数 ALTERA 器件都足够胜任。

http://cache.amobbs.com/bbs_upload782111/files_21/ourdev_497095.jpg
功能框图 (原文件名:乘法.jpg)

ngzhang 发表于 2009-10-28 23:40:04

只能说,几万门的FPGA都能做,就看要求数据吞吐量和延迟的要求了。

qinxg 发表于 2009-10-29 11:59:34

找个乘法IP核, 编译后看看12*12要多少个D寄存器. 然后再找芯片

icer1 发表于 2009-12-30 12:49:31

mark

oouu01 发表于 2009-12-30 13:47:16

把0~4095分成100份,查表吧。

chopin1998 发表于 2009-12-30 13:49:21

用运放搭模拟乘法器好了

czhxp 发表于 2009-12-30 14:21:28

"不限定:非得要 1个时钟周期,完成乘法运算" 当然用循环加法

xu.sunrise 发表于 2009-12-30 19:10:09

七楼的想法牛,先DA,在用模拟乘法,在AD吧

yuhang 发表于 2009-12-30 20:19:32

如果用组合逻辑不需要时钟

完全取决于 器件延时

我初步 写了一下 需要288个LE

精度决定容量


如果 需要数据稳定 还需要加入 锁存

http://cache.amobbs.com/bbs_upload782111/files_24/ourdev_520799.JPG
(原文件名:144552.JPG)

yuhang 发表于 2009-12-30 21:09:21

延时很大

andywyt 发表于 2009-12-30 23:33:44

楼主可否加小弟QQ:49540953~~~

想问点EPM7064S的问题~~~谢了

caosix 发表于 2010-1-1 18:01:12

【10楼】 yuhang 的大师,,,2010元旦快乐!!,,,能否公告您的成果!???

被乘数的范围____0--4095___12bit ,,,,,,,,,,乘数 0.01--0.99 以0.01为步距..关键是"乘数"在您的设计中是怎么来表达呢??

输出::只需要输出 整数部分的结果就可以了...

yuhang 发表于 2010-1-2 13:47:16

乘数我用的是7位二进制   0-99是可用的

jessie9940509 发表于 2011-11-22 13:34:12

不懂,为什么不用QUARTUS 自带的IP的乘法器,有什么说到么难道??为什么要自己做??

qinxg 发表于 2011-12-2 15:27:27

选用带16*16乘法器的FPGA,一个clk就出来结果了. 很多FPGA都带的

mage99 发表于 2011-12-4 06:12:36

初学的话 建议自己写,理解移位累加,以后的复杂运算和优化都基于基本结构。。。

当然 IP核很快。。
页: [1]
查看完整版本: 请问::12bit的“小数乘法器”,需要多大规模的FPGA,或者CPLD??