查找表乘法器

本文介绍了查找表乘法器的工作原理,通过预先存储乘法结果来提高计算速度,但会占用较多资源。针对高位宽数据,提出了分解策略,将高位宽乘法转换为低位宽乘法并相加,以此降低实现难度。通过具体实例和Verilog代码展示了如何使用查找表乘法器计算4位数据的乘积,并通过模块图和源代码阐述了其实现过程。
摘要由CSDN通过智能技术生成
查找表乘法器先将乘法的所有可能结果存储起来,然后将两个相乘的数据组合起来作为“地址”找到相应的结果。例如:
设 A,B 为两个 2 位二进制数,则 A,B 各有 4 种取值可能,乘积有 4*4=16 种可能(排除重复的其实只有 8 种可能),我们先将{A,B}对应的 16 种可能结果存储起来,然后对于每一特点的输入组合{A,B},找到对应的输出即可。该方式速度很快,只取决于读取存储器的速度,但是预存结果要占用较多资源,因此是面积换取速度思想的体现。同时,随着乘数位宽的增加,需要存储的结果迅速增加,不利于实现,因此该方式适用于位宽很小的情况。但是我们可以将高位宽的数据分解成低位宽的数据再调用查找表乘法器。
例如:
设 A,B 为两个 8 位数据,可将 A 分解为 A=A1×16+A2,其中 A1 为高 4 位,A2 为低 4 位;
同理 B=B1×16+B2,然后
A×B=(A1×16+A2)×(B1×16+B2)=A1*B1*16*16 + A1*B2*16 + A2*B1*16 + A2*B2(此处
可以用左移来表示)
这样就将两个 8 位数的相乘转化为 4 组 4 位数相乘,然后再相加,其中乘以常数可以通
过移位运算实现。对于 2N 位数据 A,可分解为 A=A1×2^N+A2

以下是具体例子,有两个4位的数进行查找表乘积
根据公式  
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值