当前乘法器的设计主要有两种方式,Wallace树乘法器和booth编码乘法器。本篇主要讲述的是Wallace树乘法器。

1、算法讲解

以4×4位乘法器为例,如表1-1所示,列出了各个部分的积
表1-1:

随后我们从数据最多的那一列开始,用半加器将数据最多有四个数据的那一列中的两个数相加,得到和a0以及向高列的进位b0,这时得到进位的那一列也有四个数据,我们也用半加器相加得到积a1和进位b0,如表1-2进行以上操作后可以的到表1-3所示。黄色表是半加器相加,红色表示全加器相加。
表1-2:

表1-3:

对于表1-3我们可以,用半加器和全加器反复压缩覆盖所有数据超过三个的列,得到表1-4所示的数据:
表1-4:

最后采用简单的2输入加法器,就可以得到相乘结果了。

2、Verilog HDL的实现

module wallace(x,y,out);parameter size=4;input [size-1:0]x,y;output [size-1:0]out;wire [size*size-1:0]a;wire [1:0]b0,b1,c0,c1,c2,c3;wire [5:0]add_a,add_b;wire [6:0]kk;wire [7:0]out;assign a={x[3],x[3],x[2],x[3],x[2],x[1],x[3],x[2],x[1],x[0],x[2],x[1],x[0],x[1],x[0],x[0]}&{  y[3],y[2],y[3],y[1],y[2],y[3],y[0],y[1],y[2],y[3],y[0],y[1],y[2],y[0],y[1],y[0]};//各部分积hadd U1(.x(a[6]),.y(a[7]),.cout(b0[1]),.out(b0[0]));hadd U2(.x(a[11]),.y(a[12]),.cout(b1[1]),.out(b1[0]));//第一级半加器hadd U3(.x(a[3]),.y(a[4]),.cout(c0[1]),.out(c0[0]));//第二级半加器fadd U4(.x(a[8]),.y(a[9]),.cin(b0[0]),.cout(c1[1]),.out(c1[0]));fadd U5(.x(b1[0]),.y(a[10]),.cin(b0[1]),.cout(c2[1]),.out(c2[0]));fadd U6(.x(a[13]),.y(a[14]),.cin(b1[1]),.cout(c3[1]),.out(c3[0]));//第二级全加器assign add_a={a[15],c3[0],c2[0],c1[0],a[5],a[2]};assign add_b={c3[1],c2[1],c1[1],c0[1],c0[0],a[1]};assign kk=add_a+add_b;//第三级简单二输入加法器assign out={kk,a[0]};
endmodulemodule fadd(x,y,cin,out,cout);input x,y,cin;output cout,out;assign out=x^y^cin;assign cout=(x&y)|((x^y)&cin);
endmodulemodule hadd(x,y,cout,out);input x,y;output out,cout;assign out=x^y;assign cout=x&y;
endmodule

Wallace树乘法器相关推荐

  1. Wallace 树乘法器

    设计原理 运算原理如下图所示,其中FA为全加器,HA为半加器.基本原理是加法从数据最密集的地方开始,不断反复使用全加器.半加器来覆盖"树",这一级全加器是一个3输入2输出的器件,因 ...

  2. Booth乘法器和wallace树乘法器的理解

    <span style="font-family: FangSong_GB2312; color: rgb(51, 51, 51);"><span style=& ...

  3. Wallace树专题研究

    Wallace树乘法器专题研究 绪论:在乘法器的设计中采用树形乘法器,可以减少关键路径和所需的加法器单元数目,Wallace树乘法器就是其中的一种.下面以一个4*4位乘法器为例介绍Wallace树乘法 ...

  4. 原码一位乘法器设计_数字IC校招基础知识点复习(七)——超前进位加法器、Wallace树、Booth乘法器...

    1.超前进位加法器 看了一些面经,提到会让你用基础的门搭加法器,因此首先得熟悉半加器,全加器等最基础的加法器才能理解之后的超前进位加法器,树型加法器等复杂的加法器. 半加器的输入为a,b,输出为结果s ...

  5. 乘法器——Wallace树型乘法器

    文章转自https://www.cnblogs.com/wangkai2019/p/11153887.html,在此保存一下 博主最近在看乘法器相关的知识,发现现在用的比较多的是booth编码的乘法器 ...

  6. 【HDL系列】乘法器(4)——图解Wallace树

    目录 一.Wallace树 二.Verilog设计 一.Wallace树 1963年,C.S.Wallace提出的一种高效快速的加法树结构,被后人称为Wallace树.其基本思想如下在其文章中描述如下 ...

  7. 乘法器——基于Wallace树的4位乘法器实现

    博主最近在学习加法器乘法等等相关知识,在学习乘法器booth编码加Wallace树压缩时,发现在压缩部分积的时候用到了进位保留加法器(Carry Save Adder),博主对这种加法器不是很理解,而 ...

  8. Wallace树形乘法器(Verilog),自动生成器(C/C++版)

    学过<数字逻辑>课程的同学,对于Wallace树形乘法器应该不陌生(手拙,灵魂画师--建议读者参考网上的图片). 总的来说,就是一个无符号数乘法器.特点是速度快,使用逻辑电路完成乘法,但是 ...

  9. verilog学习笔记之一--(简化)华莱士(Wallace)树形乘法器设计--(原代码出自用芯学项目)

    verilog学习笔记之一–(简化)华莱士(Wallace)树形乘法器设计–(原代码出自用芯学项目) 学习准备1: 树形乘法器原理:参考<数字集成电路-电路.系统与设计(第二版)>–P43 ...

最新文章

  1. 2018-2019-2 网络对抗技术 20165239Exp3 免杀原理与实践
  2. android 自定义菜单开发,Android开发学习笔记:浅谈3大类菜单
  3. 剑指 Offer 57 - II. 和为s的连续正数序列 思考分析
  4. continue详细讲解
  5. html表单作业练习
  6. 高以翔死因曝光!猝死前最后4分钟,他本还有一次活的机会...
  7. 万年历实验报告单片机C语言,单片机电子实时时钟 万年历系统 综合实验报告下载...
  8. 在linux上临时挂载NTFS格式的优盘
  9. 5月6日LCAC第十三次会议重要信息摘取
  10. cfdpost导出图片_CFD-POST出数据方法.pdf
  11. Ubuntu如何安装Python
  12. 高晓松50岁生日感言:可感恩的很多,可原谅的很少
  13. 阿里支付宝api对银行卡进行效验
  14. SVN管理工具Cornerstone之:创建分支、提交合并
  15. 别忘搜索:可用谷歌、百度等多个搜索引擎同时搜索
  16. RabbitVCS 对比不同后取消新增内容
  17. 微信小程序表单框架01
  18. Excel平均值运算2种操作,不会函数也可轻松上手
  19. markdown pad2 无法使用gihub Markdown在线风格,提示“请求被中止: 未能创建 SSL/TLS 安全通道
  20. ipad手写笔什么牌子好?apple pencil的平替笔推荐

热门文章

  1. 企业微信审批数据可以导出吗?如何导出?
  2. JDBC连接数据库实现登录功能
  3. 【计算机系统】2的n次方转换为十六进制数
  4. word保存时内存不足
  5. 成人高考考试有技巧?看完如考神附体
  6. 视频怎么转换gif图?很容易学会的转换方法
  7. ES6 深入理解 ${ } 模版
  8. 日本发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个,根据供词.写一个程序判定谁是凶手.
  9. Redis 如何实现分布式——京东金融Redis缓存的设计与实践
  10. 云栖大会上海峰会,AI、云计算、大数据领衔的新产品哪些看点不容错过?