搜索
bottom↓
回复: 17

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

[复制链接]

出0入0汤圆

发表于 2009-10-28 18:36:38 | 显示全部楼层 |阅读模式
各位::需要一个 乘法器 ————不限定:非得要 1个时钟周期,完成乘法运算。。。

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

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

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

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 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设计?如果需要,吞吐量?延时?如果不需要,延时最大多少?

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

出0入0汤圆

 楼主| 发表于 2009-10-28 22:24:33 | 显示全部楼层
太谢谢了。。。不好意思,我都忘记 怎么 表示 二进制的小数了!!——忘记了啊。忘记了。
都是正数:0.01 到 0.99  希望取得的精度 也应该是12位的(或者11位的)。否则整个体系的精度就不够了。

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

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

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


功能框图 (原文件名:乘法.jpg)

出0入0汤圆

发表于 2009-10-28 23:40:04 | 显示全部楼层
只能说,几万门的FPGA都能做,就看要求数据吞吐量和延迟的要求了。

出0入4汤圆

发表于 2009-10-29 11:59:34 | 显示全部楼层
找个乘法IP核, 编译后看看12*12要多少个D寄存器. 然后再找芯片

出0入0汤圆

发表于 2009-12-30 12:49:31 | 显示全部楼层
mark

出0入0汤圆

发表于 2009-12-30 13:47:16 | 显示全部楼层
把0~4095分成100份,查表吧。

出0入0汤圆

发表于 2009-12-30 13:49:21 | 显示全部楼层
用运放搭模拟乘法器好了

出0入0汤圆

发表于 2009-12-30 14:21:28 | 显示全部楼层
"不限定:非得要 1个时钟周期,完成乘法运算" 当然用循环加法

出0入0汤圆

发表于 2009-12-30 19:10:09 | 显示全部楼层
七楼的想法牛,先DA,在用模拟乘法,在AD吧

出0入0汤圆

发表于 2009-12-30 20:19:32 | 显示全部楼层
如果用组合逻辑不需要时钟

完全取决于 器件延时

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

精度决定容量


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


(原文件名:144552.JPG)

出0入0汤圆

发表于 2009-12-30 21:09:21 | 显示全部楼层
延时很大

出0入0汤圆

发表于 2009-12-30 23:33:44 | 显示全部楼层
楼主可否加小弟QQ:49540953~~~

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

出0入0汤圆

 楼主| 发表于 2010-1-1 18:01:12 | 显示全部楼层
【10楼】 yuhang 的大师,,,2010元旦快乐!!,,,能否公告您的成果!???

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

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

出0入0汤圆

发表于 2010-1-2 13:47:16 | 显示全部楼层
乘数我用的是7位二进制   0-99是可用的

出0入0汤圆

发表于 2011-11-22 13:34:12 | 显示全部楼层
不懂,为什么不用QUARTUS 自带的IP的乘法器,有什么说到么难道??为什么要自己做??

出0入4汤圆

发表于 2011-12-2 15:27:27 | 显示全部楼层
选用带16*16乘法器的FPGA,一个clk就出来结果了. 很多FPGA都带的

出0入0汤圆

发表于 2011-12-4 06:12:36 | 显示全部楼层
初学的话 建议自己写,理解移位累加,以后的复杂运算和优化都基于基本结构。。。

当然 IP核很快。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 11:27

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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