定点乘法器----部分积压缩(华为杯)

news/2025/1/16 10:23:17/

一. 简介

在上篇文章中,已经介绍了如何使用booth算法生成部分积了,那么在这篇文章中将介绍如何使用加法树对部分积进行压缩。加法树压缩有多种形式,常见的是Wallace压缩,也是赛题中介绍一种方法。
感兴趣的可以,可以研究研究哦。

二. Wallace压缩

在Wallace压缩中,常见的压缩方法有3:2压缩和4:2压缩,罕见的有5:2压缩。

3:2压缩的表达式和框图如下

请添加图片描述

4:2压缩的表达式和框图如下

请添加图片描述

5:2的就不介绍了,这里详细说说4:2压缩器,因为经过的算法,生成的部分积恰好有8个,经过三个4:2压缩器就可以了。而使用3:2压缩则需要更深的结构,因此在我的设计中没有使用。

4:2压缩就是输入1bit的4个数据以及1bit进位,然后输出1bit的两个数据和一个进位。我们需要32bit的压缩器时,只需要将1bit的4:2压缩级联起来即可,上一个的Cout输入到下一个的Cin即可。最后的结果需要将Carry左一位。代码实现起来如下。

请添加图片描述

就将4个部分积压缩到了两个部分积,使用三个这样的压缩器,最终就得到了2个部分积。

压缩这里为什么不直接使用加法器呢?通过压缩器的结构即可明白。

三. 结果

最后使用一个32bit的加法器,将最后两个部分积相加即可。这里使用了四个8bit的超前进位加法器串联成的32bit加法器。超前进位加法器可以有效减少因为进位而带来的延时。

ps: 另外可以通过选择加法器,增加额外的两个8bit加法器,以及一个选择器,进一步降低延时。

请添加图片描述

四. 小结

简单的介绍了一下定点乘法器的实现原理,以及实现过程。在此框架下想要对乘法器的性能进行优化,一般都是从两点出发,部分积的生成和部分积的压缩,在知网阅读相关论文,大部分都是从这两点进行优化。后面我也将从这两点进行优化以及程序上,希望能有所提升。

目前整个设计大概消耗了2100多个与非门 和 800多个非门(转化为与非门)使用yosys工具可以自动统计,使用DC工具综合出只使用了800多个门,计算延时为16ns(在FPGA上),仿真图如下。还达不到比赛的要求,后续会分享优化的版本。感兴趣的可以一起研究研究。

关注回复 定点乘法器基础版本 获取完整代码

请添加图片描述


http://www.ppmy.cn/news/37863.html

相关文章

爬虫day2 正则表达式作业

利用正则表达式完成下面的操作: 一、不定项选择题 能够完全匹配字符串"(010)-62661617"和字符串"01062661617"的正则表达式包括(ABD) A. r"\(?\d{3}\)?-?\d{8}" B. r"[0-9()-]" 中括号里面的字符出现任意次…

银行数字化转型导师坚鹏:银行数字化领导力提升之道

银行数字化领导力提升之道 ——融合中西智慧,践行知行合一思想,实现知行果合一 课程背景: 很多银行存在以下问题:不知道如何领导数字员工?不清楚银行数字化领导力模型的内涵?不知道如何开展银行数字化…

现在的年轻人真会玩,开发界面都这么时尚,不服老都不行了

文章目录一、你还在用传统的开发界面吗二、年轻人的界面1.动漫型2.偶像型3.提神型三、更换背景的操作第一步第二步第三步一、你还在用传统的开发界面吗 不比不知道,一比吓一跳,都2023年了,你还在用Pycharm的默认背景写代码吗?已经…

GFS分布式文件系统

目录 一、GlusterFS分布式文件系统 1、什么是GlusterFS及其术语 2、GlusterFS特点 3、GlusterFS工作原理流程 4、GlusterFS的卷类型 ①、分布式卷 ②、条带卷 ③、复制卷 ④、分布式条带卷 ⑤、分布式复制卷 5、GlusterFS群集部署 ①实验环境 ②磁盘配置 ③修改主…

MySQL数据库——常用数据库访问接口简介,数据库的种类有哪些?

不同的程序设计语言会有各自不同的数据库访问接口,程序语言通过这些接口,执行 SQL 语句,进行数据库管理。主要的数据库访问接口主要有 ODBC、JDBC、ADO.NET 和 PDO。 ODBC ODBC(Open Database Connectivity,开放数据…

Java程序设计——作业一

一.单选题(共3题,42.6分) 1 Java属于哪种语言?( ) A、 机器语言 B、 汇编语言 C、 高级语言 D、 以上都不对 正确答案: C 2 下面命令中,可以用来正确编译HelloWorld.java程序的是&#x…

微信小程序开发

构建npm,记得把配置写如setting括号里 创建.gitignore文件 创建组件custom-tab-bar 用vant的tabbar替换掉自带的 清空app.scss 首先我们把app.json里面的pagepath多余的“text”“iconPath”“selectionIconPath”去掉,把数据结构定义到index.ts里&…

vue尚品汇商城项目-day01【3.项目路由的分析】

文章目录本人其他相关文章链接安装命令:cnpm install --save vue-router vue-router 前端所谓路由:kv键值对 key:URL(地址栏中的路径) value:相应的路由组件 注意:本项目是上中下结构 路由组件: Home首页路由组件、Search路由组件…