设计原理

运算原理如下图所示,其中FA为全加器,HA为半加器。基本原理是加法从数据最密集的地方开始,不断反复使用全加器、半加器来覆盖“树”,这一级全加器是一个3输入2输出的器件,因此全加器又称为3-2压缩器,通过全加器将树的深度不断缩减,最终缩减为一个深度为2的数,最后一集则采用一个简单的两输入加法器组成。

这里竖着计算,第一个半加器,产生和与进位,同时降低一个维度;传递给旁边竖行,全加器运算,继续降低维度。

电路展示

4位与4位相乘,一共形成16对部分积。

verilog代码

module wallace(x,y,out);parameter size = 4; input [size-1:0] x,y;output [2*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] add_out;wire [2*size-1:0] out;assign a = {x[3],x[3],x[2],x[2],x[1],x[3],x[1],x[0],x[3],x[2],x[1],x[0],x[2],x[1],x[0],x[0]}&{y[3],y[2],y[3],y[2],y[3],y[1],y[2],y[3],y[0],y[1],y[1],y[2],y[0],y[0],y[1],y[0]};
// 2 input half adder
hadd U1(.x(a[8]),.y(a[9]),.out(b0));
hadd U2(.x(a[11]),.y(a[12]),.out(b1));
hadd U3(.x(a[4]),.y(a[5]),.out(c0));
//3 input full adder
fadd U4(.x(a[6]),.y(a[7]),.z(b0[0]),.out(c1));
fadd U5(.x(a[13]),.y(a[14]),.z(b0[1]),.out(c2));
fadd U4(.x(b1[0]),.y(a[10]),.z(b1[1]),.out(c3));assign add_a = {c3[1],c2[1],c1[1],c0[1],a[3],a[1]};
assign add_b = {a[15],c3[0],c2[0],c1[0],c0[0],a[2]};
assign add_out = add_a + add_b;
assign out = {add_out,a[0]};endmodulemodule fadd(x,y,z,out);output [1:0] out;input x,y,z;
assign out = x+y+z;
endmodulemodule hadd(x,y,out);output [1:0] out;input x,y;
assign out = x+y;
endmodule//----------testbench--------]
module wallace_tb;reg [3:0] x,y;wire [7:0] out;wallace m(.x(x),.y(y),.out(out));initialbeginx=3,y=4;#20 x=2,y=3;#20 x=6,y=8;end
endmodule

Wallace 树乘法器相关推荐

  1. Wallace树乘法器

    当前乘法器的设计主要有两种方式,Wallace树乘法器和booth编码乘法器.本篇主要讲述的是Wallace树乘法器. 1.算法讲解 以4×4位乘法器为例,如表1-1所示,列出了各个部分的积 表1-1 ...

  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. 1977中文版_历年星云、雨果获奖长篇中文版汇总
  2. c# 因其保护级别而不可访问。只能处理公共类型。
  3. SEO--我们是不是走错了路?
  4. 花鱼儿家的家常小菜~~~~~~丁香鱼炒花菜
  5. 餐饮水单打印软件_开发一款餐饮手机app系统软件什么价格?有哪些方面需要考虑?...
  6. [AngularJS] 理解AngularJS Directive中的Scope
  7. 爬虫-发起post请求-稿件
  8. 音游android平板,音游专题 - 有时候听歌远远不够,试试这些音游吧 - Android 应用 - 【最美应用】...
  9. 区块链六-Merkle Tree
  10. 整理30份酷炫可视化大屏模板,一个代码不用敲,半天学不会来找我
  11. 本地与服务器连接,更改连接使用的用户名,再次登录;如何操作.
  12. Spring的DI(Ioc) - 利用构造器注入
  13. 【转】Java的package和import机制
  14. BZOJ2038[2009国家集训队] 小Z的袜子(hose)
  15. visio 2010激活教程
  16. 解决华为手机用rem单位,内容超出屏幕宽度问题
  17. 自己动手写操作系统-经典书籍
  18. 大数据的IT分析工具
  19. 动作游戏设计三部曲 之一 交互至上
  20. uboot分析之Loopback接口

热门文章

  1. 关于课程体系、内容与教育原则、教学方法的讨论
  2. 闲的没事,算了算4294967296的平方
  3. onclick 阻止冒泡
  4. 两难的境界:不定字段数目的数据库表设计和数据结构
  5. 以太网PHY直接连接
  6. 阿里云服务器安全组如何配置?
  7. 强化学习+神经网络来训练一个股票交易系统
  8. 汉明码 java_(转)汉明码简介
  9. kademlia java_死磕以太坊源码分析之Kademlia算法
  10. 元素定位之CSS定位