搜档网
当前位置:搜档网 › 乘法器

乘法器

乘法器
乘法器

EDA设计基础实验课程论文

题目乘法器

学院通信

专业班级

学生姓名

指导教师大力会

2013年6月25 日

摘要

随着工艺水平的发展,集成电路设计向着速度更快,面积更小的方向稳步发展着。处理器作为集成电路设计产品的代表,更是需要体现出这种发展趋势。为了使整体性能有较好的表现,各方面的优化在处理器的各组成部件的设计中都应有所体现。

乘法器是处理器中的一个重要组成部分。在多媒体应用、图像处理等领域中,大量的循环乘法运算使得乘法器的作用尤为突出,其对处理器的整体性能也起到了至关重要的影响。本文就是要针对速度和面积方面的性能提高提出查找表乘法器:4bit*4bit查找表乘法器的设计及具体实施方案。

采用了4 - 2 和5 - 2 混合压缩器对部分积进行压缩, 减少了乘法器的延时和资源占率;经Quartus II 集成开发环境下的综合仿真测试, 与用Verilog HDL 语言实现的两位阵列乘法器和传统的Booth编码乘法器进行了性能比较, 得出用这种混合压缩的器乘法器要比传统的 4 - 2 压缩器构成的乘法器速度提高了10 % , 硬件资源占用减少了1 % 。

关键词:乘法器;改进Booth算法;Verilog HDL语言

Abstract

As technical level develops, IC design progresses in both the ways of higher speed and smaller area steadily. CPU is more likely to represent this trend for it is a typical product of IC design. To get a better performance of the whole target,we should optimize all the components of the CPU in all possible ways.

Multiplier is an important component of the CPU. In the domains of multimedia application, image process and so on, plenty of multiplications in cycles make multiplier a significant part, which plays an important role in deciding the performance of the whole CPU.This paper is about to focus on improvement on speed as well as area and present lookup table multipliers varied by data width:4bit*4bit lookup table multipliers and actualization.

Using 4 - 2 compressor and 5 - 2 compressor to compress partial products , while designing multiplier to reduce the delay of time and ratio of resource . Comparing performance of multiplier described in Verilog HDL on speed 、area and the utilization ratio of resource in the integrated exploitation environment of Quartus II . the speed of this multiplier is increased by 10 % and its hardware resource is reduced by 1 % .

Keywords multiplier; modified Booth algorithm;Verilog HDL language

目录

中文摘要..........................................................I ABSTRACT.........................................................II 第一章绪论. (1)

1.1课题背景 (1)

1.2国内外发展现状 (1)

1.2.1国外研究情况 (1)

1.2.2国内研究情况 (2)

1.3乘法器设计原理 (2)

第二章乘法器简介 (4)

2.1乘法器工作原理 (4)

2.2乘法器实现方法 (4)

2.2.1线性结构 (4)

2.2.2Wallace 树结构 (5)

第三章查找表乘法器的功能仿真 (7)

3.1查找表原理 (7)

3.1.1部分积压缩器功能简介 (7)

3.2设计端口信号描述 (7)

3.3查找表乘法器的功能仿真图 (8)

第四章相关类型乘法器算法的简介 (9)

4.1改进Boosh算法 (9)

4.2 关键路径上Booth 编码模块电路设计 (11)

第五章Verilog HDL语言 (13)

5.1什么是Verilog HDL语言 (13)

5.1.1Verilog HDL 简介 (13)

5.2Verilog HDL语言与VHDL语言的比较 (13)

5.3用Verilog HDL语言编写的程序仿真图 (14)

结论 (15)

参考文献 (16)

致谢 (18)

附录 (20)

第一章绪论

1.1课题背景

Ve rilog HDL 是当今最为流行的一种硬件描述语言, 完整的Ve rilog HDL 足以对最复杂的芯片和完整的电子系统进行描述。随着微电子技术的飞速进步,集成电路工艺进入深亚微米阶段,特征尺寸逐步减小,0.13μm和0.09μm工艺正逐步成为主流工艺。基于0.065μm工艺的研究也已经步入人们的视线。工艺水平的提高必然导致芯片设计复杂化和更大的规模化。微处理器不断更新换代,一批又一批高性能的处理器应运而生。1971年Intel公司推出了第一块 4 位微处理器芯片:4004 微处理器。而今,包括Sun,Intel等各厂商推出的64 位处理器已经在高性能的工作站和服务器中得到了推广和应用[1]。双核及多核技术更是大行其道,占领了可观的市场份额。另一方面,数字信号处理器芯片自上世纪80 年代初,进入了快速发展的阶段,以TI公司为代表的数字信号处理芯片厂商不推出各种系列芯片,以其在音频、视频、图像处理等方面的优异表现赢得了用户的青睐。当然,还有以ARM芯片为代表的嵌入式芯片,以其低功耗,开发方便的优点在便携式产品的开发中起到了不可替代的作用。

在上述的所有芯片中,乘法器的作用都不可小视。在DSP芯片中,由于芯片的应用领域是对音频、视频、图像等信号加以处理,而这种应用决定了程序中大量简单循环的使用,迭代乘法运算在其中占有重要地位,这使得乘法器往往处在DSP芯片的关键路径上,从而决定了DSP芯片的整体运算速度,因此乘法器的设计对数字信号处理器至关重要,往往需要一个单独的乘加单元以便在一个周期内完成一次乘加操作,这种设计几乎成为数字信号处理芯片的一种通用做法[2]。

在微处理器和嵌入式芯片中,一个设计合理的乘法器可以有效的减小芯片

面积,同时一个有较短时间延迟的乘法器也可以减少乘法所需的周期数从而提高芯片的性能。

1.2国内外发展现状

在乘法器的设计工作中,国内外都投入了大量的精力,从理论研究到结构实现,进行了深入细致的讨论。

1.2.1国外研究情况

在乘法器的设计中,主要分为以下几个步骤:部分积产生、部分积压缩、进位传播加法。部分积产生方面,早在1951 年,A. D. Booth就提出了一种产生部分积的算法,后被称为Booth算法,该方法虽然没有减少部分积的个数:对于16×16 的乘法器要产生16 个部分积,但是在当时由于移位运算比加法运算节

约时间,特别是当在乘数里有连续的“1”出现的时候优化效果更为明显,所以得到了广泛的认可。此后,人们发展了Booth算法,提出基为4、8、16 的改进Booth算法,减少了部分积的个数,从而为后续的计算减小了压力。目前的大多数设计采用的都是基为 4 的改进Booth算法,这种算法将部分积的个数减半,即对于16×16 的乘法器只产生8 个部分积。而基为8、16 的改进Booth算法虽然能进一步减少部分积的数目,但却导致了硬件上的较大代价,因而较少使用。

部分积的压缩是靠着一系列带进位的加法器实现的。这些加法器以不同的拓扑结构连接在一起,从加法器层数与输入部分积个数呈线性关系的阵列结构到加法器层数与输入部分积个数呈对数关系的树型结构。采用加法器迭代结构,电路延迟相对较长,为此引入了快速算法。C. S. Wallace提出了“伪二进制加法器”的概念,即使用进位保留加法器(CSA)搭建加法器阵列,这种结构后被称为Wallace树结构。进位保留加法器的输入为三个部分积,输出两个与输入部分积等效的部分积。在部分积压缩加法阵列的每级,Wallace 都使用这样的加法器。这样,非Booth 编码的16×16 的Wallace 树乘法器在第一级需要5 个进位保留加法器将16 个部分积压缩成11 个。在第二级需要 3 个进位保留加法器将部分积压缩成8 个。第三级 2 个进位保留加法器将部分积压缩成6个。第四级2 个进位保留加法器部分积压缩成 4 个。第五级 1 个进位保留加法器将部分积压缩成 3 个。第六级 1 个进位保留加法器将部分积压缩成2个。最后,可以利用进位传播加法器将两数相加,求出最终的乘积。

1.2.2国内研究情况

国内方面,多家大学和科研院所对乘法器的研究工作都投入了大量的精力,在各个方面进了深入细致的工作。华南理工大学和上海大学理学院分别对乘法器的算法进行了分析,西安交通大学和合肥工业大学理学院的文章则分别对基大于4 的Booth算法予以研究和实现,西安微电子技术研究所和东南大学微电子中心等单位的多篇文章在乘法器的部分积压缩器结构方面进行了讨论,这也是各单位工作内容最为集中的方向;关于乘法器符号位的处理,中国科学院计算技术研究所和西南交通大学的文章均给出了各自的解决方案西安理工大学、复旦大学、浙江大学的研究从电路层次的角度出发对低功耗问题进行了考虑,国防科技大学的文章涉及了异步乘法器的设计另外,关于浮点乘法器,也有包括西安交通大学、北京理工大学、东南大学、国防科技大学等单位投入研究。

综上所述,在国内,大量的科研工作者对乘法器的研究和发展有着浓厚的兴趣,虽然发展多年,但仍然在不断的研究改进。

1.3乘法器设计原理

一般的n位有符号乘法器会在整个的乘法过程中产生(n - 1)个部分积,然

后将部分积累加求和,也即将乘法操作通过部分积,累加,右移一位,再求部分积,累加,右移一位的方法完成对于n位有符号乘法器一共生成(n- 1)个部分积,符号位不参与累加,移位操作,然后这(n- 1)个部分积累加,便可得到最后乘积绝对值,再添加上最终的符号位,便可以求出最终的乘积结果。

4*4位乘法器由于计算量大计算时间长,因此,采用软件实现4*4位乘法器效率不高,而且编程相对复杂由于FPGA 工作频率高,使用Verilog HDL 语言设计4*4 位乘法器相对简单,基于FPGA的4*4位乘法器可以很好地解决这一问题。本文使用Verilog HDL语言设计4*4 位乘法器,将4*4位乘法器设计成为一个状态机,分为空闲累加和移位3个状态,采用FSM(有限状态机)设计风格,在实现Quartus II 上实现了其功能仿真。

第2章乘法器简介

2.1 乘法器工作原理

乘法器基本的工作原理与手写乘法类似,大体分为三个步骤。以无符号4×4 乘法为例:

第一步,先将二进制的被乘数与乘数的每一位分别相乘,得到与乘数的位数相同个数的数值,这里就是 4 个数值,在乘法器里这些数值称为部分积。它们将作为后续工作的基础。如图2-1 所示。

第二步,将得到的部分积按权值错位相加,得到最终的8 位结果,这个过程在乘法器中称为部分积压缩。如图2-1 所示。

在实际的乘法器设计中,除了部分积生成模块和部分积压缩模块,由于部分积压缩器产生的是两个需要相加的数据,因此还需要增加一个步骤:第三步:一级加法运算,通常采用一个超前进位加法器模块。

以上三步就是一个乘法器的基本组成部分。

1 0 1 0

1 0 0 1

1 0 1 0

部分积生成0 0 0 0

0 0 0 0

1 0 1 0

1 0 1 0

0 0 0 0

部分积压缩0 0 0 0

1 0 1 0

0 1 0 1 1 0 1 0

图2-1乘法器基本原理

2.2 乘法器实现方法

乘法器的实现方法可以多种多样,但是研究的焦点还是部分积压缩器方面各种结构间的比较。按照这个方法分类,大体可以分为二类:线性结构、Wallace 树结构。为方便比较,所有结构都以进位保留加法器组(CSA)作为加法阵列的基本单元。

2.2.1 线性结构

这种结构最为简洁,方便。它将3 个部分积先进行相加,得到的两个等效部分积与第4 个部分积相加,这一步得到的两个等效部分积再与第 5 个部分积相加……直至所有部分积都依次参与进来为止。结构简图如图2-2。

pp5 pp4 pp3 pp2 pp1 pp0

a b cin

CSA

Cout sum

a b cin

CSA

Cout sum

a b cin

CSA

Cout sum

a b cin

CSA

Cout sum

图2-2线性结构部分积压缩器

由于结构是单一重复的,这种方式其实可以只用一个进位保留加法器组实现,当然需要占用多个时钟周期进行迭代。

2.2.2 Wallace 树结构

虽然线性结构简单,易于实现,但是其缺点是显而易见的,这种部分积压缩器的时间延迟是与部分积的个数成线性关系的。Wallace 提出了一种树状结构的部分积压缩器,使部分积的相加能够并行执行,有效地利用了硬件资源,减少了时间延迟,其时间延迟与部分积的个数成对数关系。当乘法位数增加时,这种优

势就得到了体现。其结构简图如图 2-3:

pp0 pp1 pp2 pp3 pp4 pp5 pp6 pp7

图2-3Wallace 树结构部分积压缩器

在图 2-3 所示的 8 个部分积的乘法中,如果采用线性结构,部分积压缩器的时间延迟将为 7 个加法器的时间延迟,使用了 Wallace 树结构以后,部分积压缩器的时间延迟降低到约 4 个加法器的时间延迟。速度得到明显提高。但另一方面,由于端口与端口间的连接相对复杂,在布局布线上,则较为困难。需要以面积和连线复杂度作为代价换取速度上的优势。

a b cin CSA Cout sum a b cin CSA Cout sum a b cin CSA Cout sum a b cin CSA Cout sum a b cin CSA Cout sum a b cin CSA Cout sum

第三章查找表乘法器的功能仿真

3.1查找表原理

查找表乘法器将乘积直接存放在存储器中,将操作数作为地址访问存储器,得到的输出数据就是乘法运算的结果。

整个采集系统以FPGA 为核心控制器来组织工作,FPGA 依次完成对模拟信号通道的切换,A/D转换的控制,数据的存储和运算,外部的微处理器可以通过接口电路方便地读取运算结果。多路信号经过由低通滤波器和输出跟随器等组成的调理电路到多通道模拟开关,经A/D转换后送入运算模块进行电能的计算。随着FPGA 的发展,以及相应EDA 开发软件的成熟,在FPGA 上进行数字信号处理的方法正显示出巨大的优势,特别是随着高密度、高速度FPGA 器件的出现,加之FPGA高度灵活的在线可编程性,使得FPGA 在需要高速数字信号处理的领域得到了越来越广泛的应用。

3.1.1部分积压缩器功能简介

作为乘法器的核心部分,该模块负责将生成的部分积进行错位相加,以较优的结构减少时间延迟同时兼顾面积方面的考虑。针对三种乘法器,计算的输出结果分别为:

4 ×4:一个8 位数S 和一个7 位数C;

32×16:一个48 位数S 和一个47 位数C;

32×32:一个64 位数S 和一个63 位数C。

3.2设计端口信号描述

设计端口外形如图3-1所示,这里以4×4 乘法器为例,其它两乘法器类似:

A[3:0]

B[3:0]

multiplier

sign product[7:0]

图3-1乘法器端口信号

3.3查找表乘法器的功能仿真图

通过在Quartus II软件用Verilog HDL语言编写程序,实现查找表乘法器的功能仿真,便可得到逻辑图3-2.

图3-2功能仿真逻辑图

通过在Quartus II软件用Verilog HDL语言编写程序,进行功能仿真可得到波形图3-3.

图3-3仿真波形图

第四章相关类型乘法器算法的介绍

4.1改进Booth算法

随机选取2 个数,用前面推导的优化Booth,和符号位处理来计算有符号乘法,来验证算法的正确性。

1000010101011001

0110111000001101

111000010101011001 Y

11 0

000111101010100110 -Y

11 1

111000010101011001 Y

10 0

000000000000000000 0

11 0

001111010101001101 -2Y

11 1

111111111111111111 -0

10 1

110111101010100110 –Y

10 1

110000101010110010 2Y

000111001010001100000001110000101:

通过随机选取的16 位数1000010101011001 乘0110111000001101 验证乘法器算法正确。

Booth 编码模块的功能是对乘数的偶数位及其相邻两位x2i-1,x2i,x2i+1进行交替编码,生成Booth 编码的选择值Xi,2Xi,Mi输出到部分积生成模块,控制部分积的生成。这个模块的输入是x2i-1,x2i,x2i+1,输出是Xi,2Xi,Mi。Booth 编码模块的功能是对乘数的偶数位及其相邻两位x2i-1,x2i,x2i+1进行交替编码,生成Booth 编码的选择值Xi,2Xi,Mi输出到部分积生成模块,控制部分积的生成。这个模块的输入是x2i-1,x2i,x2i+1,

输出是Xi,2Xi,Mi。

根据表4-1,Booth 编码真值表,输入x2i-1,x2i,x2i+1与输出Xi,2Xi,Mi关系式如下。

表4-1优化Booth 编码真值表

Booth 编码模块的电路实现如图4-1所示。

图4-1Booth 编码模块图

4.2 关键路径上Booth 编码模块电路设计

前2 列编码和部分积生成模块,处在乘法器的关键路径上,为了提高速度需要对他们进行优化。因为第一列增加的值为0,因此在逻辑可以进行优化,将 3 输入变为2 输入,此时输入输出的关系如表4-2所示。

表4-2第一列Booth 编码真值表

输入x2i,x2i+1与输出Xi,2Xi,Mi关系式可以化简为下面的关系式:

这时的模块电路简化为一个反相器和一个与门。这样优化不但提高了速度也节省了面积。如图4-2

图4-2第一列Booth 编码模块

对于乘法运算的最基本想法正如在绪论中提到的,将乘数的每一位分别与被

乘数相乘,再逐一错位相加,得到最终的乘积。但是Booth 发现了另一种解决问题的办法,注意到,应用ALU 单元做加法和减法的混合运算,就可以得到同样的结果,当然,在效果上是有优化的。

Booth 提示出这种想法的目的在于提高乘法运算的速度,因为在当时,移位运算比加法运算要快一些。他的这种算法给人们带来的最大好处则是它可以应用于有符号的乘法运算。Booth 算法的要点是将乘数中连续出现的一组 1 分成第一位、中间各位和最后一位来进行分别处理。对于数值为0 的位,由于与被乘数的乘积是0,可以不作任何操作。

当相邻两位为“00”时,不进行任何操作,或者说对被乘数乘以0;

当相邻两位为“01”时,即一组连续的 1 即将出现时,对被乘数乘以1;

当相邻两位为“10”时,即一组连续的 1 结束时,对被乘数乘以-1;

当两邻两位为“11”时,即一组连续的1 中间时,不作任何操作或者说对被乘数乘以0。

Booth 算法为乘法器的部分积生成提出了一种新的解决方案,部分积的个数与乘数的位数一致,之所以在提出之初就受到认可,是因为在当时移位运算比加法运算的速度稍快,如果没有了这个优势,Booth 算法并不算实用。但是后人对它的改进却使它有了新的优势,并长期保持了该算法在乘法器设计中的统治地位。

改进Booth 算法通过对二进制补码数据重新编码, 压缩PP( 部分积) 数目, 以提高运算速度。其中, 压缩率取决于编码方法, 如果采用三位编码, 可压缩1/2 的PP , 再对所得的n/2 个部分积进行求和运算。在电路实现中还可采用混合握手协议和管道传输方式, 可以降低电路的功耗, 仅占Amule t3i 乘法器的每次运算的能量消耗的50% , 另外, 也可以采用混合逻辑乘法器设计。

第五章Verilog HDL语言

5.1什么是Verilog HDL语言

Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

5.1.1Verilog HDL - 简介

Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。

设计人员通过计算机对HDL语言进行逻辑仿真和逻辑综合,方便高效地设计数字电路及其产品。

常用的Verilog HDL语言开发软件有Altera公司的MAX+PLUS II,Quartus II和Xilinx公司的Foundation ISE.1983年该公司的Philip Moorby首创了Verilog HDL,Moorby后来成为Verrlog HDL-XL的主要设计者和Cadence 公司的第一合伙人。

5.2 Verilog HDL语言与VHDL语言的比较

当今世界上使用最多的有两种硬件描述语言,一种是Verilog HDL,另一种是VHDL。下面我对他们做一下简单的比较。VHDL是由美国军方组织开发的,并且在1987年就已经成为IEEE标准,这比Verilog HDL早了8年。它与Verilog HDL有很多相同之处,最重要的就是它们都可以借助类似高级语言的特性来抽象描述数字电路的结构和功能,都可以对设计出来的电路进行验证和仿真,以确保电路的正确性,以及都可以实现电路描述与工艺实现的分离。简单地说,它们都可以帮助工程师完成复杂数字电路系统的设计。但它们又各自有着不同的特点:

(1)

Verilog HDL的语法规则与C语言十分相像,而VHDL的语法则类似于ADA 语言。由于C语言有着广泛的使用群体,作为电子工程师机会都学习过这门语言,因而电子工程师们可以比较容易地掌握Verilog HDL。与此相反,有过ADA语言使用经历的电子工程师并不多。因此电子工程师们普遍认为Verilog HDL无论从学习或者使用上都比VHDL简单。

(2)Verilog HDL不支持用户自定义数据类型,而VHDL则支持这一功能。

这使得VHDL同Verilog HDL相比,可以更好地在较高的抽象级别上描述数

字电路系统。因此在设计百万门的大规模数字电路时,使用VHDL往往会取得更好的效果。

(3)Verilog HDL在门级和开关级的描述方面远比VHDL强大,所以即使是VHDL的设计环境,在底层上也是由Verilog HDL描述的器件库所支持的。

(4)Verilog HDL对语法的要求比VHDL宽松得多,语法检查也并不严格,因此在使用Verilog HDL设计电路时要特别注意代码的写法,否则很容易出现综合后的电路功能与预想的功能不一致的情况发生,或者出现竞争冒险现象。VHDL对语法的检查十分严格,这使得VHDL设计出来的电路更可靠,一般不会出现前面阐述那种不一致或者竞争冒险现象,但代价是VHDL的代码比Verilog HDL的代码更加繁琐

(5)Verilog HDL自身就带有用于仿真的指令,例如可以随时检测信号的变化;但VHDL自身并没有类似的指令,调试程序只能依靠仿真工具的支持。

5.3用Verilog HDL语言编写的程序仿真图

用Verilog HDL语言编写查找表乘法器的程序,通过Quartus II软件进行仿真可以观察到仿真的图如图5-1所示。

图5-1逻辑功能图

结论

为了适应更快、更小的发展趋势,各芯片中的运算单元也要适应这种变化,使其速度更快,面积更小。作为处理器中的重要组成部分,乘法器起着重要的作用,尤其在音频、视频、图像处理等领域,乘法运算的大量应用常常使乘法器处于关键路径从而决定了处理器的运算速度,这使得其重要性更加凸现出来。

本文从乘法器的基本原理入手,分析了各种不同结构的乘法器的应用范围,并且详细分析了Booth 编码模块、部分积生成、部分积压缩、最终求和等模块不同结构以及其面积,速度,功耗等特性,从而为本设计选取算法提供了重要依据。

学会然后用Verilog HDL语言编写程序,从而实现乘法器的功能仿真过程,通过不断的反复对程序进行修改,达到对Verilog HDL的熟练掌握。

就乘法器自身而言,以后将努力改进设计,进一步提高速度,减少面积。

参考文献

【1】仇冀宏, 陈钟鸣. 一种新的Booth 乘法器设计方法. 合肥工业大学学报. 【2】Z. J. Mou, F. Jutand. Overturned-Stairs Adder Trees and Multiplier Design. IEEE Transactions on Computers. 1992, 41(8):940~948

【3】B. Drerup, E. Swartzlander. Fast Multiplier Bit-Product Matrix Reduction Using Bit-Ordering and Parity Generation. Journal of VLSI Signal Processing. 1994,7(3):249~257

【4】.Altwaijry and M.Flynn. “Multipliers and Datapaths”.Technical Re-port No. https://www.sodocs.net/doc/cf16741685.html,puter Systems Laboratory.Stanford University.Dec.1994

【5】D.T.Shen and A.Weinberger,. “4:2 Carry-Save Adder Implementation Using Send Circuits”.IBM Technical Disclosure Bulletin.V ol.20.No.9 Feb.1978

【6】王定, 余宁梅, 张玉伦, 宋连国. 改进型booth 华莱士树的低功耗高速并行乘法器的设计. 电子器件. 2007, 30(1):252~255

【7】李小进, 初建朋, 赖宗声, 徐晨, 景为平. 定点符号高速乘法器的设计与FPGA 实现. 微电子学与计算机. 2005, 22(4):119~125

【8】刘东. 采用Booth 算法的16×16 并行乘法器设计. 现代电子技术. 2003,(9):21~25

【9】应征, 吴金, 常昌远, 魏同立. 高速乘法器的性能比较. 电子器件. 2003,26(1):42~45

【10】梁峰, 邵志标, 梁晋. Radix-16 Booth 流水线乘法器的设计. 西安交通大学学报. 2006, 40(10):1111~1114

【11】王冠. Verilog HDL与数字电路设计. 机械工业出版社.2006,1

【12】M. C. Wen. S. J. Wang, Y. N. Lin. Low-power parallel multiplier with columnbypassing. Electronics Letters. 2005, 41(10): 581~583

【13】姚若河, 欧秀平. 数字阵列乘法器的算法及结构分析. 中国集成电路.2006,15(8):15~17

【14】K. S. Chong, B. H. Gwee, J. S. Chang. Low energy 16-bit Booth leapfrog array multiplier using dynamic adders. IET Circuits, Devices & Systems. 2007,1(2):170~174

【15】H. SAM, A. Gupta. A generalized multi-bit recoding of two’s complement binary numbers and itsproof with application in multiplier implementations. IEEE Transactions on Computers, 1990,6(38): 1006~1015.

乘法器

课程设计任务书 题目基于FPGA的6*6串行乘法器设计起讫日期 学生姓名专业班级通信工程 所在院系电气信息学院 指导教师职称 所在单位通信工程教研室

任务及要求: 1.设计内容和要求(包括设计内容、主要指标与技术参数) 设计内容:设计一个6*6串行乘法器 设计要求: (1)设计语言为Verilog,仿真软件为ISE自带仿真软件iSIM; (2)该设计不要求下载到硬件开发板上,只需给出仿真波形图,但要求能够从波形图 中看出实现了乘法运算 2.原始依据 本设计要求学生应用Xilinx FPGA设计一个6*6串行乘法器,通过设计能够让学生进一步掌握FPGA的基本开发流程,同时提高时序设计能力,学生已学习过EDA课程,掌握硬件描述语言基本知识,通过本次设计可进一步提高学生的动手能力,加强理论联系实际的能力。 3.进度计划 3.4-3.8 查阅相关资料,掌握FPGA基本知识。 3.11-3.15 应用Verilog语言进行程序开发,设计调试。 3.18-3.22 调试验收,撰写专业课程实践训练报告。 4.参考文献 [1] 夏宇闻. Verilog数字系统设计教程[M]. 北京:北京航空航天大学出版社,2008. [2] Snair Palnitkar(美). VerilogHDL数字设计与综合. 夏宇闻等译.(第二版)[M]. 北京:电子工业出版社,2009. [3] Xilinx. UG230 [Z/OL]. https://www.sodocs.net/doc/cf16741685.html, 指导教师签字: 教研室主任签字:

目录 摘要: (4) 关键词 (4) 一:FPGA (4) 1.1名称 (4) 1.2背景 (4) 1.3工作原理 (4) 1.4芯片结构 (5) 二:Verilog HDL (5) 2.1verilog hdl名称 (5) 2.2verilog hdl用途 (5) 2.3 Ve r i l o g硬件描述语言的主要能力 (6) 三:Spartan3E (7) 四:乘法器 (8) 4.1什么是乘法器 (8) 4.2实现乘法器的方法 (8) 4.3 6*6串行乘法器的设计思路 (9) 4.4 6*6乘法器程序代码 (9) 4.5 6*6乘法器设计仿真图 (11) 4.6结果分析 (12) 四:总结 (12) 参考文献 (12)

计算机组成原理阵列乘法器课程设计报告

. 课程设计

. 教学院计算机学院 课程名称计算机组成原理题目4位乘法整列设计专业计算机科学与技术班级2014级计本非师班姓名唐健峰 同组人员黄亚军 指导教师 2016 年10 月 5 日

1 课程设计概述 1.1 课设目的 计算机组成原理是计算机专业的核心专业基础课。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,而且通过进行设计及实现,进一步提高分析和解决问题的能力。 同时也巩固了我们对课本知识的掌握,加深了对知识的理解。在设计中我们发现问题,分析问题,到最终的解决问题。凝聚了我们对问题的思考,充分的锻炼了我们的动手能力、团队合作能力、分析解决问题的能力。 1.2 设计任务 设计一个4位的二进制乘法器: 输入信号:4位被乘数A(A1,A2,A3,A4), 4位乘数B(B1,B2,B3,B4), 输出信号:8位乘积q(q1,q2,q3,q4,q5,q6,q7,q8). 1.3 设计要求 根据理论课程所学的至少设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统。 (1)制定设计方案: 我们小组做的是4位阵列乘法器,4位阵列乘法器主要由求补器和阵列全加器组成。 (2)客观要求 要掌握电子逻辑学的基本内容能在设计时运用到本课程中,其次是要思维灵活遇到问题能找到合理的解决方案。小组成员要积极配合共同达到目的。

2 实验原理与环境 2.1 1.实验原理 计算机组成原理,数字逻辑,maxplus2是现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。 用乘数的每一位去乘被乘数,然后将每一位权值直接去乘被乘数得到部分积,并按位列为一行每一行部分积末位与对应的乘数数位对齐,体现对应数位的权值,将各次部分积求和得到最终的对应数位的权值。 2.2 2.实验环境 2.2.1双击maxplu2II软件图标,启动软件 (1).新建工程,flie->new project ....,出现存储路径的选项框,指定项目保存路径并且为工程命名,第三行设置实体名,保持与工程名一致。点击OK

各种乘法器比较

各种乘法器比较 韦其敏08321050 引言:乘法器频繁地使用在数字信号处理和数字通信的各种算法中,并往往影响着整个系统的运行速度。如何实现快速高效的乘法器关系着整个系统的运算速度和资源效率。本位用如下算法实现乘法运算:并行运算、移位相加、查找表、加法树。并行运算是纯组合逻辑实现乘法器,完全由逻辑门实现;移位相加乘法器将乘法变为加法,通过逐步移位相加实现;查找表乘法器将乘积结果存储于存储器中,将操作数作为地址访问存储器,得到的输出数据就是乘法运算结果;加法树乘法器结合移位相加乘法器和查找表乘法器的优点,增加了芯片耗用,提高运算速度。 注:笔者使用综合软件为Quartus II 9.1,选用器件为EP2C70,选用ModelSim SE 6.1b进行仿真,对于其他的软硬件环境,需视具体情况做对应修改。 汇总的比较: 详细实现过程: 1.并行乘法器 源代码: module Mult1(outcome,a,b); parameter MSB=8; input [MSB:1] a,b; output [2*MSB:1] outcome; assign outcome=a*b; endmodule

资源耗用情况: ModelSim测试激励文件源代码:`timescale 10ns/1ns module Mult1_test(); reg [8:1] a,b; wire [16:1] outcome; Mult1 u1(outcome,a,b); parameter delay=2; initial begin a=1; b=0; end initial forever begin #delay a=a+1; b=b+1; if(outcome>=16'h0FFF) $stop;

乘法器课程设计

摘要:基于VHDL的数字系统设计具有设计技术齐全、方法灵活、支持广泛等优点,同时也是EDA技术的重要组成部分.文章用VHDL语言设计了左移法和进位节省法实现的两种组合乘法器,通过功能仿真,对两种乘法器的性能进行了比较,从而得知后者的传输延迟时间小,即速度较快.通过设计实例,介绍了利用VHDL语言进行数字系统设计的方法. 关键词:VHDL语言左移法进位节省法 Abstract:Digital system design based on VHDL has complete design techniques, methods, the advantages of flexible and wide support, at the same time also is the important component of the EDA technology. The article using VHDL language to design the left shift method and carry save method to realize the combination of two kinds of multiplier, through the function simulation, compares the performance of the two kinds of multiplier, which the latter's small transmission delay time, namely fast. Through the design example, introduced the method of using VHDL language to design digital system. Keywords:VHDL language ,left shift method ,carry save method

模拟乘法器AD834的原理与应用

模拟乘法器AD834的原理与应用 1.AD834的主要特性 AD834是美国ADI公司推出的宽频带、四象限、高性能乘法器,其主要特性如下: ●带符号差分输入方式,输出按四象限乘法结果表示;输出端为集电极开路差分电流结构,可以保证宽频率响应特性;当两输入X=Y=±1V时,输出电流为±4mA; ●频率响应范围为DC~500MHz; ●乘方计算误差小于0.5%; ●工作稳定,受温度、电源电压波动的影响小; ●低失真,在输入为0dB时,失真小于0.05%; ●低功耗,在±5V供电条件下,功耗为280mW; ●对直通信号的衰减大于65dB; ●采用8脚DIP和SOIC封装形式。 2.AD834的工作原理 AD834的引脚排列如图1所示。它有三个差分信号端口:电压输入端口X=X1-X2和Y=Y1-Y2,电流输出端口W=W1-W2;W1、W2的静态电流均为8.5mA。在芯片内部,输入电压先转换为差分电流(V-I转换电阻约为280Ω),目的是降低噪声和漂移;然而,输入电压较低时将导致V-I转换线性度变差,为此芯片内含失真校正电路,以改善小信号V-I转换时的线性特性。电流放大器用于对乘法运算电路输出的电流进行放大,然后以差分电流形式输出。 AD834的传递函数为: W=4XY (X、Y的单位为伏特,W的单位为mA) 3.应用考虑 3.1 输入端连接

尽管AD834的输入电阻较高(20kΩ),但输入端仍有45μA的偏置电流。当输入采用单端方式时,假如信号源的内阻为50Ω,就会在输入端产生1.125mV的失调电压。为消除该失调电压,可在另一输入端到地之间接一个与信号源内阻等值的电阻,或加一个大小、极性可调的直流电压,以使差分输入端的静态电压相等;此外,在单端输入方式下,最好使用远离输出端的X2、Y1作为输入端,以减小输入直接耦合到输出的直通分量。 应当注意的是,当输入差分电压超过AD834的限幅电平(±1.3V)时,系统将会出现较大的失真。 3.2 输出端连接 采用差分输出,可有效地抑制输入直接耦合到输出的直通分量。差分输出端的耦合方式,可用RC耦合到下一级运算放大器,进而转换为单端输出,也可用初级带中心抽头的变压器将差分信号转换为单端输出。 3.3 电源的连接 AD834的电源电压允许范围为±4V~±9V,一般采用±5V。要求VW1和VW2的静态电压略高于引脚+VS上的电压,也就是+VS引脚上的电去耦电阻RS应大于W1和W2上的集电极负载电阻RW1、RW2。例如,RS为62Ω,RW1和RW2可选为49.9Ω,而+V=4.4V,VW1=VW2=4.6V,乘法器的满量程输出为±400mV。 引脚-VS到负电源之间应串接一个小电阻,以消除引脚电感以及去耦电容可能产生的寄生振荡;较大的电阻对抑制寄生振荡有利,但也会使VW1和VW2的静态工作电压降低;该电阻也可用高频电感来代替。 4.应用实例 AD834主要用于高频信号的运算与处理,如宽带调制、功率测量、真有效值测量、倍频等。在某航空通信设备扩频终端机(如图2所示)的研制中,笔者应用AD834设计了扩频信号调制器和扩频信号接收AGC电路。

基于标准单元库扩展的快速乘法器设计

收稿日期:2011-09-20;修回日期:2011-11-04 基金项目:国家科技重大专项基金资助项目(2009ZX01030-001-002). 作者简介:曾宪恺(1987-),男,湖北孝感人,硕士,主要研究方向为超大规模集成电路设计自动化(zengxk@vlsi.zju.edu.cn );郑丹丹(1981-),女,博士,主要研究方向为超深亚微米集成电路SOC 设计;严晓浪(1947-),男,教授,主要研究方向为超大规模集成电路设计、VLSI 设计自动化;吕冬明(1981-),男,博士,主要研究方向为集成电路CAD 研究;葛海通(1972-),男,博士,主要研究方向为嵌入式系统设计. 基于标准单元库扩展的快速乘法器设计 * 曾宪恺,郑丹丹,严晓浪,吕冬明,葛海通 (浙江大学超大规模集成电路设计研究所,杭州310027) 摘 要:设计并实现17?17bit 带符号数字乘法器。为了提高乘法器的性能,采用改进的Booth 编码算法、 Wal-lace 树型结构以及基于标准单元库扩展的设计方法。该方法使用逻辑功效模型分析乘法器的关键路径,通过构造驱动能力更为完备的单元以实现关键路径中每一级门功效相等,从而得到最短路径延时。将TSMC 90nm 标准单元库扩展得到扩展单元库, 使用两个单元库版图分别实现数字乘法器,基于扩展单元库实现的乘法器速度提升10.87%。实验结果表明,基于标准单元库扩展的半定制设计方法可以有效提升电路的性能,这种方法尤其适用于电路负载过大的情况。 关键词:乘法器;标准单元库扩展;改进的Booth 编码算法;Wallace 树;逻辑功效中图分类号:TN47 文献标志码:A 文章编号:1001-3695(2012)05-1778-03 doi :10.3969/j.issn.1001-3695.2012.05.047 Design of high-speed multiplier based on standard cell library extension ZENG Xian-kai ,ZHENG Dan-dan ,YAN Xiao-lang ,LV Dong-ming ,GE Hai-tong (Institute of VLSI Design ,Zhejiang University ,Hangzhou 310027,China ) Abstract :This paper proposed a 17?17bit signed digital multiplier.To improve the performance ,the multiplier used modi-fied Booth ’s recoding algorithm ,a Wallace tree structure and design method based on standard cell library extension.It ana-lyzed critical path using logical effort model ,and by constructing cells with different driving capabilities , it implemented equal logical effort in each stage to achieve minimum path delay.Based on TSMC 90nm standard cell library , generated an extended cell library ,and implemented the layouts of multiplier respectively.Compared to standard cell library ,the multiplier imple-mented with extended cell library achieved a performance improvement of 10.87%.Experimental results show that the semi-custom design methodology based on standard cell library extension can improve circuit performance effectively ,which is espe-cially appropriate for designs with large loads. Key words :multiplier ;standard cell library extension ;modified Booth ’s recoding algorithm ;Wallace tree ;logical effort 0引言 乘法器是嵌入式CPU 的重要部件,其运算速度决定了逻 辑运算单元的工作频率,因此高性能乘法器的设计仍然被关注 [1,2] 。同时,市场的需求加速了产品的上市进程,从而要求 设计者尽量缩短设计时间。为了兼顾乘法器的性能和设计时间, 通常使用基于标准单元库的半定制设计方法。但该方法受限于库中标准单元有限的驱动能力,无法实现最短路径延时。为此,本文提出基于标准单元库扩展的乘法器设计方法,消除了传统方法因关键路径优化不足对乘法器性能的影响。基于TSMC 90nm 工艺标准单元库扩展,设计并实现了17?17bit 乘法器模块。该乘法器支持带符号二进制乘法运算, 最差情况下(工作电压0.9V ,温度125℃)工作频率为346MHz 。设计过程中,使用EDA 工具进行了速度优先的逻辑综合以及布局布线;在关键路径的处理中,采用了基于逻辑功效的优化方法。 1乘法器 二进制乘法器实现了二进制数的乘法运算,它将两个二进 制数X 和Y 作为输入,将乘法运算的积Z 作为输出。设被乘数为m 位,记为X m -1X m -2…X 0,乘数为n 位,记为Y n -1Y n -2…Y 0,则积为m +n 位,记为Z m +n -1Z m +n -2…Z 0。将m 位被乘数X 与n 位乘数Y 的每一位进行与运算,可以得到n 项位数为m 的部分积, 用加法器阵列将n 项部分积相加,得到积Z 。乘法器的具体实现分为部分积生成、部分积压缩、最终加法三个步骤。通常,使用与门来产生部分积,用加法器阵列对部分积压缩来构成阵列乘法器。这种架构算法简单,易于实现,并且能够实现规则的版图结构,但是由于部分积个数较多,压缩时间较长,无法得到快速的乘法器。使用改进的Booth 编码算法[3,4] 有效地减少了部分积的个数,使用Wallace 树型结 构 [5] 缩短部分积压缩的时间,其算法较复杂,并且版图结构不 规则, 但可以有效地提升乘法器的性能。第29卷第5期2012年5月计算机应用研究 Application Research of Computers Vol.29No.5May 2012

八位乘法器VHDL及功能模块说明

EDA课程设计报告 实验名称:八位乘法器

目录 一.引言 1.1 EDA技术的概念?? 1.2 EDA技术的特点?? 1.3 EDA设计流程?? 1.4 VHDL介绍?? 二.八位乘法器的设计要求与设计思路??2.1 设计目的?? 2.2 设计要求?? 三.八位乘法器的综合设计?? 3.1 八位乘法器功能?? 3.2 八位乘法器设计方案?? 3.3 八位乘法器实体设计?? 3.4 八位乘法器VHDL设计?? 3. 5八位乘法器仿真图形?? 心得体会?? 参考文献??

一、引言 1.1 EDA技术的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。 1.2 EDA技术的特点 利用EDA技术进行电子系统的设计,具有以下几个特点:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。 1.3 EDA设计流程 典型的EDA设计流程如下: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。 4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。 5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

乘法器应用电路

第6章 集成模拟乘法器及其应用 6.1集成模拟乘法器 教学要求: 1.掌握集成模拟乘法器的基本工作原理; 2.理解变跨导模拟乘法器的基本原理; 3.了解单片集成模拟乘法器的外部管脚排列及外接电路特点。 一、集成模拟乘法器的工作原理 (一)模拟乘法器的基本特性 模拟乘法器是实现两个模拟量相乘功能的器件,理想乘法器的输出电压与同一时刻两个输入电压瞬时值的乘积成正比,而且输入电压的波形、幅度、极性和频率可以是任意的。其符号如下图所示,K 为乘法器的增益系数。 1.模拟乘法器的类型 理想乘法器—对输入电压没有限制, u x = 0 或 u y = 0 时,u O = 0,输入电压的波形、幅度、极性和频率可以是任意的 。 实际乘法器—u x = 0 , u y = 0 时,u O 1 0,此时的输出电压称为输出输出失调电压。u x = 0,u y 1 0 (或 u y = 0,u x 1 0)时,u O 1 0,这是由于u y (u x )信号直接流通到输出端而形成的,此时 的输出电压为u y (u x )的输出馈通电压。 (二)变跨导模拟乘法器的基本工作原理 变跨导模拟乘法器是在带电流源差分放大电路的基础上发展起来的,其基本原理电路如下图所示。

在室温下,K为常数,可见输出电压u 与输入电压u y、u x的乘积成正比,所以差分放大电路具有乘法功 O 能。但u y必须为正才能正常工作,故为二象限乘法器。当u Y较小时,相乘结果误差较大,因I C3随u Y而变,其比值为电导量,称变跨导乘法器 . 二、单片集成模拟乘法器 实用变跨导模拟乘法器由两个具有压控电流源的差分电路组成,称为双差分对模拟乘法器,也称为双平 衡模拟乘法器。属于这一类的单片集成模拟乘法器有MC1496、MC1595等。MC1496内部电路如下图所示。

模拟乘法器及其应用

模拟乘法器及其应用

摘要 模拟乘法器是一种普遍应用的非线性模拟集成电路。模拟乘法器能实现两个互不相关的模拟信号间的相乘功能。它不仅应用于模拟运算方面,而且广泛地应用于无线电广播、电视、通信、测量仪表、医疗仪器以及控制系统,进行模拟信号的变换及处理。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。 Analog multiplier is a kind of widely used nonlinear analog integrated multiplier can be achieved between two unrelated analog multiplication is not only applied in the simulation operation aspect, and widely used in radio, television, communications, measuring instruments, medical equipment and control system, the analog signal conversion and the high frequency electronic circuit, amplitude modulation, synchronous detection, mixing, frequency doubling, frequency, modulation and demodulation process, the same as can be seen as two signal multiplication or contain multiplication function is realized by using integrated analog multiplier than using discrete components such as diodes and transistors are much more simple, and superior performance.

定点原码两位乘法器的设计

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计 课程设计题目:定点原码二位乘法器的设计 目录 第1章总体设计方案 (1) 1.1设计原理 (1) 1.2设计思路 (3) 1.3设计环境 (5) 第2章功能模块的设计与实现 (6) 2.1总体的设计与实现 (6) 2.1.1总体方案的逻辑图 (6) 2.2基本功能模块的组成及工作原理 (8) 2.2.1被乘数模块的组成及工作原理 (8) 2.2.2乘数模块的组成及工作原理 (8) 2.2.3选择模块的组成及工作原理 (9) 2.2.4 移位模块的工作原理 (9)

第3章程序仿真与测试 (10) 3.1程序仿真 (10) 3.2仿真测试及结果分析 (10) 参考文献 (12) 附录(汇编程序) (13)

第1章总体设计方案 1.1 设计原理 定点原码两位乘与定点原码一位乘一样,符号位的运算和数值部分是分开进行的,但为了提高运算速度,所以采用了原码两位乘,因为原码两位乘是用乘数的末两位的状态来决定新的部分积如何形成,可提高运算速度。乘数和被乘数都用原码表示。 两位乘数有四种可能的组合,每种组合对应的操作如表1.1所示 表1.1 乘数组合与部分积关系对照表 乘数y n-1y n 新的部分积 00 新部分积等于原部分积右移两位 01 新部分积等于原部分积加被乘数后右移两位 10 新部分积等于原部分积加2倍被乘数后右移两位 11 新部分积等于原部分积加3倍被乘数后右移两位 与一位乘法比较,多出了+2X和3X两种情况。把X左移1位即得到2X,在机器内通常采用左斜送一位来实现。可是+3X一般不能一次完成,如分成两次进行,又降低了计算速度。解决问题的办法是:以(4X-X)来代替3X运算,在本次运算中只执行-X,而+4X则归并到下一步执行,此时部分积以右移了两位,上一步欠下的+4X已变成+X,在实际线路中要用一个触发器C来记录是否欠下+4X,若是,则C变为1。因此实际操作用Yi-1,Yi,C三位来控制,运算规则如下所示: 表1.2 判断值对应的操作以及C值的变化情况 组合值Yi-1 Yi C 操作C值变化 0 0 0 0 部分积+0;右移两位C=0 1 0 0 1 部分积+x;右移两位C=0 1 0 1 0 部分积+x;右移两位C=0 2 0 1 1 部分积+2x;右移两位C=0 2 1 0 0 部分积+2x;右移两位C=0

流水线乘法器

流水线乘法器 一般的快速乘法器通常采用逐位并行的迭代阵列结构,将每个操作数的N位都并行地提交给乘法器。但是一般对于FPGA来讲,进位的速度快于加法的速度,这种阵列结构并不是最优的。所以可以采用多级流水线的形式,将相邻的两个部分乘积结果再加到最终的输出乘积上,即排成一个二叉树形式的结构,这样对于N位乘法器需要log2(N)级来实现。一个8位乘法器,如图所示。 module mux_4(mul_a,mul_b,mul_out,clk,rst_n); parameter MUL_WIDTH = 4; parameter MUL_RESULT = 8; input [MUL_WIDTH-1:0] mul_a; input [MUL_WIDTH-1:0] mul_b; input clk; input rst_n; output [MUL_RESULT-1:0] mul_out; reg [MUL_RESULT-1:0] mul_out; reg [MUL_RESULT-1:0] stored0; reg [MUL_RESULT-1:0] stored1; reg [MUL_RESULT-1:0] stored2; reg [MUL_RESULT-1:0] stored3; reg [MUL_RESULT-1:0] add01; reg [MUL_RESULT-1:0] add23; always @(posedge clk or negedge rst_n) begin if(!rst_n) begin mul_out <= 8'b0000_0000;

stored0 <= 8'b0000_0000; stored1 <= 8'b0000_0000; stored2 <= 8'b0000_0000; stored3 <= 8'b0000_0000; add01 <= 8'b0000_0000; add23 <= 8'b0000_0000;; end else begin stored3 <= mul_b[3] ? {1'b0,mul_a,3'b0} : 8'b0; stored2 <= mul_b[2] ? {2'b0,mul_a,2'b0} : 8'b0; stored1 <= mul_b[1] ? {3'b0,mul_a,1'b0} : 8'b0; stored0 <= mul_b[0] ? {4'b0,mul_a} : 8'b0; add01 <= stored1 + stored0; add23 <= stored3 + stored2; mul_out <= add01 + add23; end end endmodule

乘法器的设计

物理与电子工程学院集成电路设计课程论文题目:乘法器的研究 学生姓名:XXX 指导教师:XXX 201X年XX月XX日

乘法器 摘要:乘法器,其基础就是加法器结构,它已经是现代计算机中必不可少的一部分。 乘法器的模型就是基于“移位和相加”的算法。本文讨论基本的阵列乘法器,以及产生部分 积和最终求和。 关键词:全加器,半加器,阵列。 引言: 乘法运算非常耗费硬件面积并且速度很慢,许多计算问题解决的快慢受乘法器电 路工作速度的约束,因此在现代高级的数字信号处理器和微处理器中都集成了硬件乘法单 元。并且乘法器在当今数字信号处理以及其他诸多应用领域中起着十分重要的作用。随着科 学技术的发展,许多研究人员已经开始试图设计一类拥有更高速率和低功耗,布局规律占用 面积小,集成度高的乘法器。这样,就能让它们更加适用于高速率,低功耗的大规模集成电 路的应用当中。通常的乘法计算方法是添加和位移的算法。在并行乘法器当中,相加的部分乘积的数量是主要的参数。它决定了乘法器的性能。为了减少相加的部分乘积的数量,修正 的Booth 算法是最常用的一类算法。但是,随着并行化的增多,大量的部分乘积和中间求和 的增加,会导致运行速度的下降。不规则的结构会增加硅板的面积,并且由于路由复杂而导 致中间连接过程的增多继而导致功耗的增大。另一方面串并行乘法器牺牲了运行速度来获得 更好的性能和功耗。因此,选择一款并行或串行乘法器实际上取决于它的应用性质。 主体 1.1.1二进制乘法定义 考虑两个无符号二进制数X 和Y ,X 为M 位宽,Y 为N 位宽,将它们用下列二进制数形 式表达 i 1 -M 0i i 2X X ∑== (1.1) j 1 -N 0j j 2Y Y ∑== (1.2) 其中i X 和j Y 为0或者1,那么X 和Y 的乘法运算定义如下 Z=X ×Y= k 1 -N M 0k k 2Z ∑+= =(i M i i X 210∑-=)(j 1-N 0j j 2Y ∑=)=∑∑=-=+???? ??1-M 0i 10j 2N j i j i Y X (1.3) 我们先来看一下手工是如何进行二进制乘法运算的。如图1-1所示,被乘数与乘数的第一个 位相乘(实际为“与”操作)产生积,并且根据乘数相应位的位置对部分积进行左移(例如, 被乘数与乘数的第0位相乘,则不移位;与第一位相乘,部分积左移1位,以此类推),最 终将所有的部分积相加得到乘法运算的结果。M 位被乘数与N 位乘数相乘得到的乘积是 M+N 位的。 1.1.2部分积生成

十六位硬件乘法器电路设计报告

课程名称电子设计自动化 题目十六位硬件乘法器电路 院系班级信息学院11电子信息工程A班姓名 学号 指导老师凌朝东 2013 年 12 月 5 日

题目名称: 十六位硬件乘法器电路 摘要: 设计一个16位硬件乘法器电路.要求2位十进制乘法,能用LED数码管同时显示乘数,被乘数和积的值.本设计利用Quartus II软件为设计平台,通过移位相加的乘法原理:即从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。经软件仿真和硬件测试验证后,以达到实验要求。

目录 1.题目名称 (2) 2.摘要 (2) 3.目录 (3) 4.正文 (4) 4.1. 系统设计 (4) 4.1 设计要求 (4) 4.2 系统设计方案 (4) 4.2 单元电路设计 (4) 4.2.1十进制计算模块 (5) 4.2.2 BCD码转二进制模块 (5) 4.2.3 8位右移寄存器模块 (6) 4.2.4 8位加法器模块 (7) 4.2.5 1乘法器multi_1模块 (7) 4.2.6 16位移位寄存器reg_16模块 (8) 4.2.7 16位二进制转BCD码B_BCD模块 (9) 4.2.8 8位乘法器multi_8x8顶层设计 (10) 4.3 软件设计 (12) 4.3.1设计平台和开发工具 (12) 4.3.2程序流程方框图 (13) 4.4 系统测试 (14) 4.1仿真分析 (14) 4.2硬件验证 (15) 5. 结论 (15) 6. 参考文献 (15) 7. 附录 (15)

4.正文 4.1系统设计 1.1设计要求 题目要求设计一个16位硬件乘法器电路.要求2位十进制乘法;能用LED数码管同时显示乘数,被乘数和积的信息.设置一个乘法使能端,控制乘法器的计算和输出. 1.2系统设计方案 此设计问题可分为乘数和被乘数输入控制模块,乘法模块和输出乘积显示模块基本分. 乘数和被乘数的输入模块使输入的十进制数转化为二进制数输入乘法模块,乘法模块利用移位相加的方法将输入的两组二进制数进行相乘,并将16位乘积输出到乘积输出显示模块.显示模块将输入的二进制数按千,百,十,个位分别转化为十进制数输出. 乘数和被乘数的输入可用数据开关K1~K10分别代表数字1,2,…,9,0,用编码器对数据开关K1~K10的电平信号进行编码后输入乘法器进行计算.但此方案所用硬件资源较多,输入繁琐,故不采取. 方案二是利用硬件箱自带16进制码发生器,由对应的键控制输出4位2进制构成的1位16进制码,数的范围是0000~1111,即0H~FH.每按键一次,输出递增1,输出进入目标芯片的4位2进制数将显示在该键对应的数码管. 乘数和被乘数的输入模块将16进制码的A~F码设计成输出为null.使得减少了无用码的输入. 两数相乘的方法很多,可以用移位相加的方法,也可以将乘法器看成计数器,乘积的初始值为零,每一个时钟周期将乘数的值加到积上,同时乘数减一,这样反复执行,直到乘数为零.本设计利用移位相加的方法使得程序大大简化. 系统总体电路组成原理图如下图所示: 4.2单元电路设计

VHDL的乘法器设计——数字电路课程设计

数字电路课程设计 题目乘法器设计 班级实验二班 学号 姓名 时间第十三、十四周 地点科A-304 指导陈学英唐青

【摘要】:用FPGA设计完成基于半加器、全加器和保留进位思想设计的4BIT四级流水乘法器,用modelsim仿真其结果。 【目录】: 第一章、实验任务及原理 第二章、设计思路方法及方案 第三章、FPGA模块程序设计与仿真 第四章、结束语

【正文】 【第一章】:实验任务及原理 本实验只要求编写乘法器的硬件代码,并用Modelsim进行仿真测 试。设计乘法器,两个输入都是4BIT,对所有输入相乘都得到正 确结果,乘法器采用四级流水设计,以增加处理速度。用modelsim 仿真时,要求用时钟上升沿方式遍历所有输入,检查输出结果是否 正确。原理用到流水,进位保留思想。 【第二章】:设计思路及方案 算法结构(无符号) 由上图可见,乘法的运算最终是加法的运算,两个4BIT输入,输出为7BIT。模块一、半加器:单比特输入相加, 模块二、全加器:由两个半加器组成,有一个进位输入, 模块三、进位保留加法器:

最终程序结构图 流水设计的原理:在前向割集上加入四级流水 图一 图二 如上图所示方框代表触发器,五边形代表组合逻辑块,假设图一中逻辑块输入输出延时为Ta,图二将逻辑块切割成两块,延时分别为T1,T2,且Ta=T1+T2,

并在两逻辑块之间加触发器,两个逻辑块工作频率都可以达到clk频率,故工作速度增加一倍,虽然时延增加了,但资源优化了许多。 【第三章】:FPGA程序模块及仿真 半加器的程序模块: entity half_adder is port(a,b:in std_logic; s,cout:out std_logic); end half_adder; architecture Behavioral of half_adder is begin s<=a xor b; cout<=a and b; end Behavioral; 全加器的程序模块:调用半加器,采用顶层设计 entity full_adder is port(a,b,cin:in std_logic; s,cout:out std_logic); end full_adder; architecture Behavioral of full_adder is component half_adder port(a,b:in std_logic; cout,s:out std_logic); end component; signal h1s,h1cout,h2cout:std_logic; begin u1:half_adder port map(a,b,h1cout,h1s); u2:half_adder port map(cin,h1s,h2cout,s); cout<=h1cout or h2cout; end Behavioral; 乘法器的程序模块: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ----Uncomment the following library declaration if instantiating ----any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all;

基于模拟乘法器MC1496的混频器设计

基于模拟乘法器MC1496的混频器设计

摘要 集成模拟乘法器是完成两个模拟量(电压或电流)相乘的电子器件。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频等调制与解调的过程均可视为两个信号相乘的过程,而集成模拟乘法器正是实现两个模拟量,电压或电流相乘的电子器件。采用集成模拟乘法器实现上述功能比用分立器件要简单得多,而且性能优越,因此集成模拟乘法器在无线通信、广播电视等方面应用较为广泛。 混频器在通信工程和无线电技术中,应用非常广泛,在调制系统中,输入的基带信号都要经过频率的转换变成高频已调信号。在解调过程中,接收的已调高频信号也要经过频率的转换,变成对应的中频信号。特别是在超外差式接收机中,混频器应用较为广泛,混频电路是应用电子技术和无线电专业必须掌握的关键电路。 Matlab是一种电子技术界应用广泛的优秀科学计算软件,大量应用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。主要内容是基于MC1946的混频器应用设计与仿真,阐述混频器基本原理,并在Matlab中实现各信号波形的仿真。 关键词:MC1496模拟乘法器,混频器,Matlab

DESING OF MIXER BASED ON THE ANALOG MULTIPLIER MC1496 Abstract Integrated analog multiplier is to complete two analog multiplication electronics (voltage or current) In high frequency electronic circuit, amplitude modulation, synchronous detection, mixing, times frequency, frequency modulation and demodulation process can be regarded as the multiplication of two signals process, and integrated analog multiplier is the realization of two analog, voltage or current multiplication of electronic devices. The function is realized by using integrated analog multiplier is much simpler than with a discrete device, and superior performance, therefore integrated analog multiplier in wireless communication, radio and television are more widely application. Mixer in communication engineering and electronic technology, are widely applied in modulation system, the input of the baseband signal through frequency conversion into high frequency modulated signals. In the process of demodulation, receive the high frequency signal is modulated by frequency conversion, into the corresponding intermediate frequency signals. Especially in a superheterodyne receiver, which has been widely applied mixer, mixing circuit is a professional application of electronic technology, and radio must master the key circuit. Matlab is an electronic technology widely used mathematical software, a large number of used in algorithm development, data visualization, data analysis and numerical calculation of senior technical computing language and interactive environment. Main content is based on the MC1946 mixer application design and simulation, the basic principle of mixer, and realize the signal waveform in the Matlab simulation. Key Words: MC1496 analog multiplier, mixer, Matlab

相关主题