我们在使用大位宽乘法器时,有时受到工艺的限制,乘法器位宽太大,时序收不下来,这时候需要将其拆为若干个小位宽乘法再相加,并在其中插入寄存器,即可解决以上问题。

其核心原理是乘法交换律。

我们以两个16bit无符号数相乘为例。

a[15:0] * b[15:0]

a[15:0] = a[15:8]<<8 + a[7:0]

b[15:0] = b[15:8]<<8 + b[7:0]

a[15:0] * b[15:0] = (a[15:8]<<8 + a[7:0]) * (b[15:8]<<8 + b[7:0])

= ((a[15:8]<<8) * (b[15:8]<<8)) + ((a[15:8]<<8) * b[7:0]) + (a[7:0] * (b[15:8]<<8)) + (a[7:0] * b[7:0])

= (a[15:8])* b[15:8])<<16 + (a[15:8] * b[7:0])<<8 + (a[7:0] * b[15:8])<<8 + (a[7:0] * b[7:0])

对于有符号数

$signed(a[15:0]) = - a[15]*2^15 + a[14]*2^14 + a[13]*2^13 + ...... + a[0]*2^0

$signed(b[15:0]) = - b[15]*2^15 + b[14]*2^14 + b[13]*2^13 + ...... + b[0]*2^0

因此

$signed(a[15:0]) = $signed(a[15:8]<<8) + a[7:0]

$signed(b[15:0]) = $signed(b[15:8]<<8) + b[7:0]

$signed(a[15:0]) * $signed(b[15:0]) = ($signed(a[15:8]<<8) + a[7:0]) * ($signed(b[15:8]<<8) + b[7:0])

= ($signed(a[15:8]<<8) * $signed(b[15:8]<<8) + ( $signed(a[15:8]<<8) * b[7:0]) + (a[7:0] * $signed(b[15:8]<<8)) + (a[7:0] * b[7:0])

=  ($signed(a[15:8] * $signed(b[15:8])<<16 + ( $signed(a[15:8] * b[7:0])<<8 + (a[7:0] * $signed(b[15:8]))<<8 + (a[7:0] * b[7:0])

寄存器加在小乘法器后即可

用小位宽乘法器实现大位宽乘法相关推荐

  1. (原码反码补码的计算)在一个8位的二进制的机器中,补码表示的整数范围是从_(1)_(小)到_(2)_(大)。这两个数在机器中的补码表示为_(3)_(小)到_(4)_(大)。数0的补码为_(5)_。

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 题目 分析过 ...

  2. edge robert matlab,哪位熟悉matlab的大神路过瞄一眼哈

    cxfx(believe truth believe me) UID240430 帖子100 精华积分1755 蛋蛋币1755 枚 威望0 BT积分0 阅读权限60 性别男 在线时间125 小时 注册 ...

  3. 学计算机用多大的u盘合适,装w764位系统需要多大u盘呢?

    装w764位系统需要多大u盘的存储空间呢?现在U盘安装系统非常的火热,这时大家就有一个疑问了装w764位系统需要多大u盘适合呢?其实装系统的话有8GB的U盘足够了,启动盘占用30M的样子,系统4G左右 ...

  4. 东北林大计算机考研难吗,一位考取东北林大信息学院农业信息化学姐的考研经验分享...

    [写在前面]考研一路走来,说实话很累,不累的话说明我没有认真努力过.有人说,考取东北林业大学研究生很好考,不怎么复习就可以考上,很简单的事.经历了东北林业大学2012年考研的人都知道:东北林业大学已经 ...

  5. 64位计算机 内存,Win7 64位/32位系统支持多大内存?64/32位系统有什么区别?

    Win7 64位/32位系统支持多大内存?计算机上不同的操作系统对内存的支持是有限度的,且因为主板.CPU的存在,这样的限制只会更小,但还在用户可以接受的范围内.想知道什么原因限制了内存极限吗?请看下 ...

  6. 计算机32位操作系统最大识别到内存,32位系统支持多大内存

    许多小型合作伙伴不知道他们的计算机中最好安装多少内存.事实上,这与我们系统中的位数有关.通常,我们安装64位4G内存系统.32位系统支持多少内存? 很多朋友都知道自己的电脑是安装了64位还是32位的系 ...

  7. 计算机32位操作系统最大识别到内存,win7 32位系统支持多大内存

    很多小伙伴都不知道自己的电脑安装多大的内存最好,其实这个跟我们的系统位数有关系的,一般4G内存的我们安装64位的系统,那么32位的系统最大支持多大内存呢?下面小编来说说win7 32位系统支持多大内存 ...

  8. 32位计算机最大内存怎么算,windows32位系统支持多大内存 怎么查看计算机内存

    windows 32位系统支持多大内存?大家都知道,电脑有32位系统和64位系统之分,支持的内存也是不同的.最近有用户就特别好奇,32位的操作系统到底支持多大的内存呢?电脑又要如何查看计算机内存呢?假 ...

  9. 简易两位二进制乘法器设计

    一.   设计原理: 1.基本公式:   A1 A0 * B1 B0=Y3 Y2 Y1 Y0 2.设计理念:  两位二进制数 A1 A0 和B1 B0 相乘后,结果最高为四位Y3 Y2 Y1 Y0 3 ...

最新文章

  1. [SCOI2009]生日礼物 双指针
  2. 实现简单的网页间的跳转
  3. matlab频域怎么提取特征值,补充:频域特征值提取的MATLAB代码实现(小波分析)...
  4. C++五子棋(一)——开发环境
  5. php管理用户名和密码,管理员用户名/密码不适用于PHP
  6. python 抛出异常与自定义异常raise
  7. macOS 上使用 lightgbm 遇到的坑及解决方法
  8. 无线通信技术协议-Zigbee 3.0
  9. Java 跑酷游戏 rush,翻转跑酷游戏安卓下载|翻转跑酷最新版(Flip Rush)下载v1.0.5-乐游网安卓下载...
  10. Unity中Json文件编写注意
  11. PHP compact函数
  12. 没有钱的苦恼与无奈:七个城市的1000元生活(转载)
  13. WPS Office 2020 for Mac(wps2020)3.8.0(6081)中文
  14. win7关于无线连接的服务器,win7网络连接受限
  15. Ethernet guarder V1.1.exe 下载
  16. c word to html 走样,打印机打印效果走样解决办法.pptx
  17. android高仿输入法,仿ios输入法
  18. 语音处理/语音识别基础(六)- 语音的端点检测(EPD/VAD)
  19. bq4050读固件_BQ4050 + STM32 MCU 虚拟IIC读取SMBUS数据
  20. java毕业设计网络招聘系统源码+lw文档+mybatis+系统+mysql数据库+调试

热门文章

  1. web开发学习什么,前端开发+培训
  2. XMC外设学习之USIC
  3. 国盛源app投资放心有多少积储才能够理财?理财门槛高吗?
  4. java long 验证,找不到类型为:java.lang.Long的验证器.帖子ID
  5. Python怎么运行py文件,编程入门指南
  6. GIS理论常识——坐标系相关知识
  7. Element-UI框架的使用(二)-- pagination-翻页组件
  8. 职业股票交易利器:通达信使用软件篇
  9. 罗马时钟 基于前端CSS、JS 实现
  10. 邮件服务器MailServer之 Hibernate持久层开发