搜索
bottom↓
回复: 4

看看我学习CPLD做乘法器的方法对不对

[复制链接]

出0入0汤圆

发表于 2010-12-13 21:44:10 | 显示全部楼层 |阅读模式
A(8bit)*B(8bit)=Q(16bit)的乘法器
方法:
A*B0+A*b1>>1+......+A*b7>>7
用原理图的方式画的,用了大量的EOR和AND2,功消耗了125LE,在EPM1270T144C5下模拟,大约需要23nS才能得出稳定的结果。

有什么方法又快,占用资源又少的吗?

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

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

出0入0汤圆

发表于 2010-12-13 22:10:26 | 显示全部楼层
找个带硬乘法器的FPGA

出0入0汤圆

 楼主| 发表于 2010-12-13 22:21:50 | 显示全部楼层
是阿,太慢了,我认真看了下,编译时它说:
“Info: Longest tpd from source pin "mul_b[0]" to destination pin "mul_q[15]" is 36.880 ns
        Info: 1: + IC(0.000 ns) + CELL(1.132 ns) = 1.132 ns; Loc. = PIN_53; Fanout = 9; PIN Node = 'mul_b[0]'
        Info: 2: + IC(2.389 ns) + CELL(0.511 ns) = 4.032 ns; Loc. = LC_X8_Y5_N5; Fanout = 3; COMB Node = 'inst21'
        Info: 3: + IC(0.793 ns) + CELL(0.511 ns) = 5.336 ns; Loc. = LC_X8_Y5_N1; Fanout = 2; COMB Node = 'inst242~1'
        Info: 4: + IC(0.715 ns) + CELL(0.200 ns) = 6.251 ns; Loc. = LC_X8_Y5_N6; Fanout = 2; COMB Node = 'inst248~1'
        Info: 5: + IC(1.254 ns) + CELL(0.511 ns) = 8.016 ns; Loc. = LC_X9_Y5_N4; Fanout = 2; COMB Node = 'inst251'
        Info: 6: + IC(0.769 ns) + CELL(0.511 ns) = 9.296 ns; Loc. = LC_X9_Y5_N5; Fanout = 2; COMB Node = 'inst278~1'
        Info: 7: + IC(0.772 ns) + CELL(0.511 ns) = 10.579 ns; Loc. = LC_X9_Y5_N1; Fanout = 2; COMB Node = 'inst283~1'
        Info: 8: + IC(2.037 ns) + CELL(0.511 ns) = 13.127 ns; Loc. = LC_X9_Y6_N8; Fanout = 2; COMB Node = 'inst288~1'
        Info: 9: + IC(0.733 ns) + CELL(0.200 ns) = 14.060 ns; Loc. = LC_X9_Y6_N1; Fanout = 2; COMB Node = 'inst291'
        Info: 10: + IC(1.203 ns) + CELL(0.511 ns) = 15.774 ns; Loc. = LC_X10_Y6_N5; Fanout = 2; COMB Node = 'inst321~1'
        Info: 11: + IC(1.931 ns) + CELL(0.511 ns) = 18.216 ns; Loc. = LC_X8_Y6_N1; Fanout = 2; COMB Node = 'inst326~1'
        Info: 12: + IC(0.725 ns) + CELL(0.200 ns) = 19.141 ns; Loc. = LC_X8_Y6_N7; Fanout = 2; COMB Node = 'inst331~1'
        Info: 13: + IC(1.148 ns) + CELL(0.200 ns) = 20.489 ns; Loc. = LC_X7_Y6_N3; Fanout = 2; COMB Node = 'inst334~12'
        Info: 14: + IC(1.216 ns) + CELL(0.511 ns) = 22.216 ns; Loc. = LC_X6_Y6_N0; Fanout = 2; COMB Node = 'inst362'
        Info: 15: + IC(1.126 ns) + CELL(0.914 ns) = 24.256 ns; Loc. = LC_X7_Y6_N7; Fanout = 2; COMB Node = 'inst392~1'
        Info: 16: + IC(0.801 ns) + CELL(0.511 ns) = 25.568 ns; Loc. = LC_X7_Y6_N1; Fanout = 2; COMB Node = 'inst395'
        Info: 17: + IC(2.028 ns) + CELL(0.511 ns) = 28.107 ns; Loc. = LC_X6_Y5_N3; Fanout = 2; COMB Node = 'inst423'
        Info: 18: + IC(0.722 ns) + CELL(0.200 ns) = 29.029 ns; Loc. = LC_X6_Y5_N8; Fanout = 2; COMB Node = 'inst453~1'
        Info: 19: + IC(0.702 ns) + CELL(0.914 ns) = 30.645 ns; Loc. = LC_X6_Y5_N4; Fanout = 2; COMB Node = 'inst458~1'
        Info: 20: + IC(0.768 ns) + CELL(0.511 ns) = 31.924 ns; Loc. = LC_X6_Y5_N7; Fanout = 2; COMB Node = 'inst463~1'
        Info: 21: + IC(1.828 ns) + CELL(0.200 ns) = 33.952 ns; Loc. = LC_X5_Y4_N8; Fanout = 1; COMB Node = 'inst468~1'
        Info: 22: + IC(0.606 ns) + CELL(2.322 ns) = 36.880 ns; Loc. = PIN_43; Fanout = 0; PIN Node = 'mul_q[15]'
        Info: Total cell delay = 12.614 ns ( 34.20 % )
        Info: Total interconnect delay = 24.266 ns ( 65.80 % )”

出0入0汤圆

发表于 2010-12-14 09:52:41 | 显示全部楼层
直接Q=A*B不就行了吗。。。剩下的交给编译器了。

出0入0汤圆

 楼主| 发表于 2010-12-14 10:04:41 | 显示全部楼层
这个......我是在摸索学习中......
晚上后来看了LPM_MULT,比我自己做得要快,但LE多了几个。
其实我真正想用CPLD做的是在里面做几个并行的数据处理,即使只有200MHz.但我现在还没那个本事呢....本来想用DSP,但DSP的并行处理也不是什么代码都可以并行阿。
也不知道我的理解有没有错误。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-7-24 15:24

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

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