当前位置:文档之家› 16×16位移位相加乘法器设计

16×16位移位相加乘法器设计

16×16位移位相加乘法器设计
16×16位移位相加乘法器设计

本科学生毕业论文

论文题目:16×16位移位相加乘法器设计学院:电子工程学院

年级:2009级

专业:集成电路设计与集成系统

姓名:于昊

学号:20092141

指导教师:曹贝

2012年 6 月 13日

摘要

随着集成电路设计技术的不断进步,乘法器的芯片设计实现的研究与应用越来越广泛,对乘法器进行ASIC芯片设计,具有设计实现过程简单、所用到的EDA工具完善而且成熟、硬件开销小、易于在VLSI电路或系统级芯片中集成。通常,数字电路设计的流程对于芯片的实现而言,需要RTL级的HDL描述,并要对各层次的设计进行功能仿真验证,在验证电路能按预期设计功能工作后,即可对RTL级的HDL描述进行综合、优化,形成门级网表。整个设计流程可称为数字电路的前端设计。本课题基于移位相加算法的研究,设计16位移位相加乘法器,并在功能仿真通过后,将所设计的Verilog RTL 级代码进行综合,采用Synopsys公司Design Compiler EDA工具进行电路综合,获得16位移位相加乘法器的门级网表与电路实现。

关键词

数字电路设计;移位相加乘法器;综合;

Abstract

Abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract abstract.(英文摘要内容必须与中文摘要完全对应。英文摘要采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。)

Key words

Key words;key words; key words(英文关键词内容必须与中文关键词完全对应。英文关键词采用Times New Roman小四号字书写,毕业论文、毕业设计行与行之间、段落和层次标题以及各段落之间均为1.5倍行距。关键词与关键词之间用“;”隔开)

目录

摘要 (1)

Abstract (2)

第一章乘法器研究的背景与意义 (4)

1.1乘法器的发展现状 (4)

1.1.1国内乘法器现状 (5)

1.1.2国外乘法器现状 (5)

1.2乘法器概述 (5)

1.3乘运算 (6)

1.4乘法器结构 (7)

1.5乘法器端口定义 (8)

第二章移位相加乘法器设计的基本原理 (8)

2.1.1 移位相加算法 (9)

2.1.2 乘法器设计原理 (10)

2.2移位相加乘法器原理 (10)

第三章 16×16位移位相加乘法器设计与仿真 (12)

3.1 16位移位相加乘法器的设计 (12)

3.2 16位移位相加乘法器Verilog文件设计 (12)

3.3 16×16位移位相加乘法器Modelsim仿真 (14)

3.3.1 16×16位移位相加乘法器经典数组运算结果 (15)

3.3.2 16×16位移位相加乘法器一般情况运算结果 (17)

第四章 16×16位移位相加乘法器Verilog设计综合 (18)

4.1 RTL级概念 (18)

4.2 RTL级综合结果与分析 (20)

4.3 16位移位相加乘法器电路图 (22)

结论 (26)

参考文献 (27)

附录一 (28)

致谢 (38)

第一章乘法器研究的背景与意义

数字信号处理中需要频繁进行大数据量的乘法运算。乘法器作为数字信号处理器的重要部件,它的速度直接决定了整个处理器的性能。本课题采用verilog HDL设计了一个16位移位相加乘法器。首先介绍了移位相加乘法器的算法以及比较移位相加乘法器,Booth乘法器,Wallace Tree乘法器各自的特点。介绍了本课题在综合时需用到的Design Compiler(DC)综合工具。随后提出了自己的乘法器设计架构设计了一个16位移位相加乘法器。并用Design Compiler(DC)进行了优化。所设计的乘法器是16×16位,基于Altera公司的Modelsim平台上用Verilog_HDL软件进行功能仿真,验证了功能正确,达到了预期的目标。

微处理器的发展随着集成电路的迅猛发展而日新月异。在微处理器芯片中乘法器是进行数字信号处理的核心同时也是微处理器中进行数据处理的关键部件,它已经是现代计算机必不可少的一部分。乘法器的算法也有很多种,例如移位相加算法、布斯(Booth)算法、华莱士树(Wallace Tree)算法等。其中移位相加算法是乘法器最基础的算法,其它的算法都是在它的基础上为了压缩和优化这种算法延伸出来的算法,目的是提高乘法器的运算速度以及实现更多的乘法器功能。虽然不断有关于32位、64位乘法器的研究出现, 但由于大量的媒体信号处理只需16位运算就能胜任, 因此对16位乘法器的研究仍有着相当的应用价值。

1.1乘法器的发展现状

过去的十年中,研究者扩展了Booth编码算法的空间,提高了乘法器的性能;改进了部分积压缩技术,使乘法器结构更加规则;以传输管逻辑、多路选择器和动态技术为基础的各种电路实现方法也持续刷新高性能乘法器的实现记录;与此同时,与物理实现紧密相关的乘法器拓扑结构的研究也硕果累累。但不断提高的高性能运算需求使得高性能乘法器的设计和实现仍然是当前的热门话题。

1.1.1国内乘法器现状

乘法器的设计与应用在国内研究领域也取得了很好的成绩,1993年中科院声学研究所应用于18位乘法器,实现工作频率38MHZ.。随着应用要求的领域与性能不断提高,1997年国防科技大学完成应用于数字神经处理的16位乘法器,频率30MHZ。2001年西安微电子技术中心于敦山实现了32位定/浮点乘法器延时56/76ns。进入新世纪以来,集成电路工艺水平不断提升,2002年西安交通大学袁寿财实现了0.25um下延时40ns。2003年中科院计算研究所周旭采用0.18um的工艺实现54位浮点乘法器384MHZ。2004年复旦大学武新宇采用0.18um的工艺实现64位乘法器延时2.82ns。2005年上海大学王田采用0.18um的工艺实现32位乘法器延时3.15ns。2007年东南大学王定采用FPGA设计24位乘法器延时18.81ns。乘法器的设计一直是集成电路设计研究领域的一个热点,也有着广泛的应用。

1.1.2国外乘法器现状

理论方面乘法器研究上的里程碑应该从Booth AD在1951年提出的Booth编码方法和Wallace的树型压缩开始。随后出现了Booth2算法、压缩器(进位保留加法)、延迟平衡树等各种算法结构。

国外乘法器在电路方面的发展同样迅猛,1995年Ohkubo基于传输管逻辑实现了4.4ns 54位乘法器,同时提出了新的4:2压缩单元结构和进位选择加法器结构。1996年Hanawa实现了4.3nS的54位乘法器,同一年,Makino实现了8.8ns54位冗余二进制编码乘法器。1997年Inoue提出了符号选择Booth解码和改进的4:2压缩单元结构,实现了4.1ns的54位乘法器。1998年Hagihara基于动态技术和传输管逻辑实现了2.7 ns的54位乘法器。同年Carlson介绍了6.0 ns的64位乘法器实现方法。2001年Itoh实现了一个600MHz的两级流水线的54位乘法器。2003年Cho基于标准单元库实现了一个3.25ns的54位乘法器,并提出了改进的进位选择加法器结构。

1.2乘法器概述

乘法器在当今数字信号处理以及其他诸多应用领域中起着十分重要的作用。随着科学技术的发展,许多研究人员已经开始试图设计一类拥有更高速率和低功耗,布局规律

占用面积小,集成度高的乘法器。这样,就能让它们更加适用于高速率,低功耗的大规模集成电路的应用当中。

通常的乘法计算方法是添加和位移的算法。在并行乘法器当中,相加的部分乘积的数量是主要的参数。它决定了乘法器的性能。为了减少相加的部分乘积的数量,修正的Booth 算法是最常用的一类算法。为了实现速度的提高Wallace 树算法可以用来减少序列增加阶段的数量。我们进一步结合修正的booth 算法和Wallace 树算法,可以看到将它们集成到一块乘法器上的诸多优势。但是,随着并行化的增多,大量的部分乘积和中间求和的增加,会导致运行速度的下降。不规则的结构会增加硅板的面积,并且由于路由复杂而导致中间连接过程的增多继而导致功耗的增大。另一方面串并行乘法器牺牲了运行速度来获得更好的性能和功耗。因此,选择一款并行或串行乘法器实际上取决于它的应用性质。在本文中,我们将介绍乘法算法以及在应用结构方面的速度比较,占用面积,功率和这些情况的组合绩效指标。

1.3乘运算

考虑两个没有符号的二进制数X 和Y ,分别为M 位宽和N 位宽。为了说明乘法运算,可以用二进制形式来表示X 和Y :

∑∑-=-===

1

1

22

N j j

j M i i

i

Y Y X X

{}1,0,j i ∈Y X 。于是乘法运算定义如下:

∑∑∑∑∑-=-=+-=-=-+=?

??

? ??=???? ????? ??==

?=101010101

2222M i N j j

i j i N j j j M i i i N M k k

k

Y X Y X Z

Y X Z

执行一个乘法运算最简单的方法是采用一个两输入的加法器。对于M 和N 位宽的输入,乘法采用一个N 位加法器时需要M 个周期。这个乘法的移位相加算法把M 个部分积(partial product )加在一起。每一个部分积是通过将被乘数与乘数的一位相乘(这本质上是一个“与”操作),然后将结果移位到这个乘数的位置得到的。

实现乘法的一个更快的办法是采用类似于手工计算乘法的方法。所有的部分积同时产生并组成一个列阵。运用多操作数相加来计算最终的积。这一方法如图所示。这一组操作可以直接映射到硬件。所形成的结构称为阵列乘法器(array multiplier ),它结合下面三个功能:产生部分积、累加部

分积和最终相加。

二进制乘法的例子 1.4乘法器结构

乘法器的结构种类很多,在此我只介绍一种乘法器结构供接下来设计移位相加乘法器结构的设计做参考。

浮点数包括尾数和指数两部分,尾数部分进行的是乘法运算,指数部分进行的是加法运算,并依据尾数运算结果进行指数调整。

图2-1 乘法器结构

尾数处理部分主要进行尾数扩展和一些数据正负的判断以及负数的生成,以备在进

行Booth 编码的时候使用。部分积的产生采用修正的Booth 算法产生6个部分积,然后

例如: 1101 被乘数

1101 乘数

1101 部分积 0000 1101 1101

10010101 结果

采用3:2和4:2压缩器将结构压缩为两个,高速相加得到结果。之后通过符号修正、尾数舍入、规格化等操作对指数进行调整即可完成乘法功能。

1.5乘法器端口定义

通常,根据乘法器的功能计算要求定义乘法器的端口如下:

mul_16_unsigned

ain[15..0]

start

bin[15..0]

done

clk

yout

rst_n

ain :16位乘数输入

bin :16位被乘数输入

clk :工作时钟输入

res_n :复位信号输入

start:开始位

done:结束位

yout:乘积输出

第二章移位相加乘法器设计的基本原理移位相加乘法器实现起来比较简单,它的设计思想就是根据乘数的每一位是否为1

进行计算,若为1则将被乘数移位相加。一个乘法器只需要一个移位寄存器和一个加法器就能组成。

2.1 移位相加乘法器设计基础

2.1.1 移位相加算法

移位相加算法是乘法器最基础的算法,下面以一个例子说明移位相加法实现M×N。

手动乘法运算举例:

1 1 0 1

×1 0 1 1

1 1 0 1

1 1 0 1

0 0 0 0

﹢1 1 0 1

1 0 0 0 1 1 1 1

计算机实现方案1:部分积左移:

1 1 0 1

×1 0 1 1

1 1 0 1

﹢1 1 0 1

1 0 0 1 1 1

﹢0 0 0 0

1 0 0 1 1 1

﹢1 1 0 1

1 0 0 0 1 1 1 1

计算机实现方案2:部分积之和右移:

1 1 0 1

×1 0 1 1

1 1 0 1 第一次部分积

1 1 0 1 部分积之和右移1位

﹢1 1 0 1 第二次部分积

1 0 0 1 1 1 部分积之和

1 0 0 1 1 1 部分积之和右移1位

﹢0 0 0 0 第三次部分积

1 0 0 1 1 1 部分积之和

1 0 0 1 1 1 部分积之和右移1位

﹢1 1 0 1 第四次部分积

1 0 0 0 1 1 1 1 部分积之和

1 0 0 0 1 1 1 1 部分积之和右移1位

2.1.2 乘法器设计原理

乘法器基本工作原理大体分为三个步骤:( 1) 先将二进制的被乘数与乘数的每一位分别相乘, 得到与乘数的位数相同个数的部分积;( 2) 将得到的部分积按权值错位相加, 进行部分积压缩;( 3) 一级加法,通常采用一个超前进位加法器模块。对乘法器的设计自然集中在各模块的性能优化上,以达到速度快、面积小的目的。

2.2移位相加乘法器原理

从手算的经验可知执行一个乘法运算最简单的方法就是采用一个两输入的加法器,进行部分积的累加,得到最终结果。对于N位的乘数与N位的被乘数的输入,实现乘法运算需要N个加法器与2N个寄存器,乘法的移位和相加把N个部分积加在一起,部分积是通过被乘数与乘数移位后末位相与操作得到,然后将结果与存放在寄存器中的前次运算得到的结果进行相加,并将结果仍然存放在寄存器中,如此反复。这样的操作在硬件实现上就是移位相加乘法器。移位相加乘法器的中间结果需要用寄存器保存的。其中时钟信号可以使用系统时钟信号。许多加法器结构都是应乘法器设计要求而生,如CPA(carry2propagateadder)、CSA(carry2saveadder)[7]和Wallacetree[8]等。移位相加乘法器优点是占用资源少。在第一个时钟来的时候,把乘数的最低位与被乘数相与,当第二个时钟到来时,仍然可以用刚才的与门来进行相与。这样,即使乘数有多少位,

都是用相同的与门:缺点是运算速度慢,每次时钟乘数输入一位,假设乘数有4位,就需要4个时钟周期才可以把结果输出。

图3-1 移位相加乘法

第三章 16×16位移位相加乘法器设计与仿真

3.1 16位移位相加乘法器的设计

位移和添加乘法器的一般结构如下图所示,对于32比特的数乘运算,根据乘数最低有效位的数值,被乘数的数值被相加并累积。在每一个时钟循环周期内,乘数被左移一个比特,并且它的位值被测试,如果位值是0,则只进行一次位移操作。如果位值是1,则被加数被放入累加器中,并且左移一位。当所有乘数的比特值被测试完之后,结果就在累加器当中。累加器最初是N位,相加之后变成2N位,最低有效位包涵了乘数。延迟是N个最大循环周期。

3.2 16位移位相加乘法器Verilog文件设计

完整的16×16位移位相加乘法器的Verilog文件设计和激励测试文件将会在附件中给出,下面我只对本乘法器的重要部分做下说明。

module mux_16

(

clk,rst_n,

start,ain,bin,yout,done

);

reg[15:0] areg;

reg[15:0] breg;

reg[31:0] yreg;

reg done_r;

reg[4:0] i;

这部分是我定义了一个时钟clk,一个复位键rst_n,一个开始键start,输入乘数ain,输入被乘数bin,输出yout,和结束位done。以及定义了两个16位寄存器areg,breg,一个32位寄存器yerg,一个1位寄存器done_r,一个5位寄存器i。

always@(posedge clk or negedge rst_n)

if(!rst_n) i<=5'd0;

else if(start && i<5'd17) i <= i+1'b1;

else if(!start) i <= 5'd0;

always@(posedge clk or negedge rst_n)

if(!rst_n) done_r<=1'd0;

else if(i==5'd16) done_r <= 1'b1;

else if(i==5'd17) done_r <= 1'b0;

assign done = done_r;

这部分主要对开始位start和终止位done的约束。

always@(posedge clk or negedge rst_n)

begin

if(!rst_n)

begin

areg <= 16'h0000;

breg <= 16'h0000;

yreg <= 32'h00000000;

end

begin

if(i==5'd0)

begin

areg <= ain;

breg <= bin;

end

else if( i>5'd0&&i<5'd16)

begin

if(areg[i-1]) yreg <={1'b0,yout[30:15]+breg,yreg[14:1]};

else yreg <= yreg>>1;

end

else if(i==5'd16 && areg[15]) yreg <= yreg[31:16]+breg;

end

这部分是移位相加乘法器的运算方法。

3.3 16×16位移位相加乘法器Modelsim仿真

Modelsim仿真工具是Model公司开发的,它支持Verilog、VHDL以及他们的混合仿真。它可以将整个程序分步执行,使设计者直接看到他的程序下一步要执行的语句,而且在程序执行的任何步骤任何时刻都可以查看任意变量的当前值,可以在Dataflow 窗口查看某一单元或模块的输入输出的连续变化等。比Quartus自带的仿真器功能强大的多,是目前业界最通用的仿真器之一。

在采用Modelsim开始仿真之前我们首先应该搭建一个仿真测试的平台,即为即将进行的测试文件编写一个测试激励(Testbench)。一个测试平台文件就是一个Verilog 模型,可以用来验证所设计的硬件模型的正确性。测试平台就是为所测试的元件提供一个测试激励,仿真结果可以以波形的方式显示或存储测试结果到文件中。激励信号可以直接集成在测试平台文件中,也可以外部文件加载,在这里我们采用集成在测试平台中如图5-1。

仿真测试平台

待测试文件

仿真模拟文件

图3-2 仿真测试平台

仿真模拟文件是采用软件方法模拟一个乘法器,在编写的时候并不考虑硬件情况所以是不可综合的。它仅仅用于仿真,在相同的测试激励下会产生和待测试文件一样的乘法结果。但由于它采用的是纯粹的软件的仿真并不关心实际硬件,所以我们可以采用直接使用乘法得出结果,从而大大减小它的编写难度同时能够保证结果的正确性。如果待测试文件和仿真模拟文件在相同的测试激励下输出相同的结果,那么我们就可以认为设计是正确的。同时得益于软件仿真的高速性我们可以再完成一组仿真比较之后紧接着自动进入下一组,同时自动改变仿真的数据组合,逐步将16位浮点数据的全部组合进行测试,确保在所有情况下的结果都是正确的。

仿真测试平台提供两个相同的测试激励分别将值给待测试文件和模拟测试文件,然后得到它们的结构进行比较,如果相同说明我们的设计在功能上是正确的,如果不同说明设计存在问题,验证测试马上终止,并给出错误位置和激励信号帮助改正,具体实现代码见附录测试代码部分。

3.3.1 16×16位移位相加乘法器经典数组运算结果

在数字电路设计流程中,在进行电路综合前,必须要确保所设计的电路功能的正确性,本课题针对所设计的16*16位移位相加乘法器的verilog设计进行功能仿真,采用的是Mentor公司的仿真器Modelsim,仿真结果如下。

上图是16位的0×0的功能仿真结果,根据第二节中阐述的二进制乘法的基本原理,对于被乘数与乘数都是16位的运算,可获得32位二进制,由仿真结果,在运算结果正确的同时,位数

也保持着正确。

1×1

3.3.2 16×16位移位相加乘法器一般情况运算结果

89×33

24945×32580

第四章 16×16位移位相加乘法器Verilog设计综合

4.1 RTL级概念

RTL的全称为寄存器传输级(Register Transfer Level),它是对芯片设计的一种层次的抽象描述。不同于行为级和门级描述,RTL级的重点是寄存器和其间的逻辑。和行为级相比,RTL级的描述更加规范和严格,可以使用工具转换成门级电路;但比起门级电路,由于抽象层次高,RTL级的描述更清晰,容易理解。

在RTL级,设计被抽象为一系列的寄存器,而信号随着时钟从一个寄存器传递到另一个寄存器,如图4-1所示。

寄存器寄存器

寄存器组合逻辑组合逻辑

这一模型反映了数字系统的几个要素、寄存器组成的时序逻辑、寄存器之间的组合逻辑以及关键的时钟信号。

虽然还不是具体的电路,但RTL级设计作为描述电路的另一种方法,必须是物理的可实现的。所以,真正的芯片设计应该是从RTL代码的编写开始的。具体来说,RTL 级设计应该考虑以下因素:

1.可综合性:

RTL级设计完成后的工作就是综合,因此RTL级设计必须是可综合的。

首先,编写代码使用的预言必须是可综合的。目前,编写RTL代码一般使用VHDL 或Verilog HDL语言,这两种语言中,并不是所有的语言成分都是可综合的,可综合的子集取决于综合工具的能力。但IEEE为这两种语言的综合分别制定了相应的标准,规定了综合工具必须支持的最小集合,分别是针对VHDL的IEEE1076.6和针对Verilog 的IEEE1364.1.

在此基础上,RTL级设计还应该是“面向综合”的。因为,即使完全使用可综合的语言成分,不同的代码产生的综合结果也会大不相同。更高的要求是编写代码时冲分考虑到综合的工作,通过靓号的编码使综合以及此后的其它实现步骤可以顺利地进行,减少反复。

2.可测性:

由于测试在芯片设计中的重要性,现在必须在RTL级就开始考虑测试的问题。这虽然不是RTL所必须的,但如果不在RTL编码时就为测试作出努力,而是把测试完全交给后端,最后的结果可能是根本无法达到要求的故障覆盖率,而不得不在RTL级进行返工。

3.重用性:

RTL级设计时应考虑到的另一个问题就是代码的可读性和可移植性,这在大型的设计中尤为重要。今天的百万门级的设计不可能是每个模块从头开始,甚至有可能全部使用IP或现有的模块,这样既缩短了设计的时间,也减少了风险。这就要求代码的编写者尽可能地完善代码的重要性。那种几个月后连自己也看不懂的代码是绝对不可取的。

4.其它的考虑:

简单16位CPU的设计

简单CPU的设计 设计步骤: 1)确定CPU功能 2)拟定指令系统(采用MIPS) 3)分析指令系统,为数据通路选择合适的组件,并给出组件 所需的控制信号,连接组件建立数据通路 4)详细分析指令在多周期通路中的执行过程,给出指令执行 的流程图 5)依据指令执行的流程图,分析控制信号的取值,生成相应 的状态转换图 一、确定CPU功能 M[2]←M[0]+M[1] 二、拟定指令系统 J类型

4位12位 指令格式中的op(opcode)是指令操作码。rs(register source)是源操作数的寄存 器号。rd(register destination)是目的寄存器号。rt(register target)即可作为源寄 存器号,又可作为目的寄存器号,有具体的指令决定。func(function)可被认为 是扩展的操作码,Target表示一下个地址开始 注:操作码4位,寄存器字段rs,rt,rd各三位,Fun功能字段3位,Imm立即值字段6位;一共8个寄存器,R0只读不可写,恒为0。 R类型的指令 ADD Rd,Rs,Rt SUB Rd,Rs,Rt AND Rd,Rs,Rt OR Rd,Rs,Rt XOR Rd,Rs,Rt I类型的指令 LW Rt, Rs,imm6 SW Rt, Rs,imm6

存放在ROM中的汇编指令,完成M[2]←M[0]+ M[1] LW R1,0(R0);R1←M[R[0]+0],由于R(0)内容为0,即R1←M[0] LW R2,1(R0);R1←M[R[0]+1],由于R(0)内容为0,即R1←M[1] ADD R3,R1,R2 ; R3←R1+R2 SW R3,2(R0) ; M[R[0]+2]←R3 下面地址对应着rom模块里面

模拟乘法器设计____模拟电路课程设计

乘法运算电路 1、课程设计的目的 模拟电子技术基础课程设计是学习模拟电子技术基础课程之后的实践教学环节。其目的是训练学生综合运用学过的模拟电子技术的基础知识。独立完成查找资料,选择方案,设计电路,撰写报告等工作。使学生进一步理解所学本课程的内容。并理论联系实际提高和培养学生的创新能力,为后续课程的学习毕业设计。毕业后的工作打下基础。 2、设计方案论证 理想模拟乘法器具备的条件:1.r i1和r i2为无穷大;2.r o为零; 3. k值不随信号幅值而变化,且不随频率而变化; 4.当u X或u Y为零时u o为零,电路没有失调电压、噪声。 由乘法电路的输出电压正比于其两个输入电压的乘积,即 u o = u I1u I2 求对数,得: 再求指数,得: 所以可以利用对数电路、求和电路和指数电路,得到乘法运算电路,其方块图1为: 对数电路 对数电路 u I1 u I2 ln u I1 ln u I2 求和电路 ln u I1+ ln u I2 指数电路

u O = u I1u I2 图1 乘法运算电路方块图 2.1 Multisim介绍 Multisim是加拿大图像交互技术公司(Interactive Image Technoligics 简称IIT公司)推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。它的前身为 EWB(Electronics Workbench)软件。它以界面形象直观、操作方便、分析功能强大、易学易用等突出优点,早在20世纪90年代初就在我国得到迅速推广,并作为电子类专业课程教学和实验的一种辅助手段。21世纪初,EWB 5.0更新换代推出EWB 6.0,并更名为Multisim 2001;2003年升级为Multisim 7.0;2005年发布Multisim 8.0时其功能已十分强大,能胜任电路分析、模拟电路、数字电路、高频电路、RF电路、电力电子及自动控制原理等个方面的虚拟仿真,并提供多达18种基本分析方法。 工程师们可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样工程师无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,PCB设计工程师和电子学教育工作者可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。2.1.1破解版Multisim7安装方法注:电脑第一次安装Multisim7,须安装两遍;第二次及以后安装均会将跳过第一遍步骤,直接从第二遍步骤开始。第一遍安装步骤:(1)双击Multisim7破解版文件夹/双击Electronics Workbench MULTISMv7.0文件夹/Setup/Next/ 接受协议/Next安装DAO3.5。(2)第一遍安装结束,问是否现在重起计算机?选择“NO”/Finish。第二遍安装步骤:(1)仍双击Electronics Workbench MULTISMv7.0文件夹下的Setup/Next/接受协议/在Serial栏输入任意密码,Next/要求第二次输入密

移位相加8位乘法器的设计

EDA技术课程大作业 设计题目:移位相加8位乘法器的设计 院系:电子信息与电气工程学院 学生姓名: 学号:200902070017 专业班级:09电子信息工程专升本 2010年12月3日

移位相加8位乘法器的设计 1.设计背景和设计方案 1.1设计背景 EDA技术(即Electronic Design Automation技术)就是依赖强大的计算机,在EDA工具软件平台上,对以硬件描述语言HDL(Hardware Ddscription Langurage)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。它在硬件实现方面融合了大规模集成电路制造技术、IC版图设计、ASIC 测试和封装、FPGA(Gield Peogrammable Gate Array)/CPLD(Complex Programmable Logic Device)编程下载和自动测试等技术;在计算机辅助工程方面融合了计算机辅助设计(CAD),计算机辅助制造(CAM),计算机辅助测试(CAT),计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,如电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及长线技术理论等。本文介绍设计一个两个5位数相乘的乘法器。用发光二极管显示输入数值,用7段显示器显示十进制结果。乘数和被乘数分两次输入。在输入乘数和被乘数时,要求显示十进制输入数据。输入显示和计算结果显示,采用分时显示方式进行,可参见计算器的显示功能 1.2设计方案 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八位加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合各方面的考虑,决定采用方案二。 该乘法器是由8位加法器构成的以时序方式设计的8位乘法器。其乘法原理是乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。从

EDA 16位加法计数器的设计

北京理工大学 用程序输入方法设计一个16位二进制加法计数器 学院:机械xxxx学院 专业班级:10机械电子工程x班 姓名:陈xx 学号:10xxxxxx 指导教师:xxx 老师

目录 摘要 (1) 1 绪论 (2) 2 计数器的工作原理 (3) 3 设计原理 (4) 4 电路系统的功能仿真 (5) 6 个人小结 (20) 参考文献 (21)

摘要 计数器是数字系统中使用较多的一种时序逻辑器件。计数器的基本功能是统计时钟脉冲的个数,即对脉冲实现计数操作。计数器也可以作为分频、定时、脉冲节拍产生器和脉冲序列产生器使用。计数器的种类很多,按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。本次课程设计将利用众多集成电路软件软件中的Quartus II软件,使用VHDL语言编程完成论文《用程序输入方法设计一个16位二进制加法计数器》,调试结果表明,所设计的计数器正确实现了计数功能。 关键词:二进制;加法计数器;VHDL语言

1 绪论 现代电子设计技术的核心已日趋转向基于计算机的电子设计自动化,即EDA(Electronic Design Automation)技术。EDA技术就是依赖功能强大的计算机,在集成电路软件平台上,对以硬件描述语言HDL(Hardware Description Language)为系统逻辑描述手段完成的设计文件,自动完成逻辑编译、化简、分割、综合、布局布线以及逻辑优化和仿真测试,直至实现既定的电子线路系统功能。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。一般所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。 EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。常用的EDA工具软件平台有:Matlab、Protel、Proteus、OrCAD以及我们学习的本次课程结课论文所用到的Quartus II等。而且EDA工具软件平台一般都有第三方软件接口,以便于与其他软件联合使用。 本次课程结课论文在设计16位二进制加法计数器时所用到的EDA软件工具平台是Quartus II。Quartus II 是Altera公司的综合性PLD(可编程逻辑器件)开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II 通过和DSP

4位乘法器

一、概述 利用四位二进制寄存器、全加器以及D触发器等元器件,实现四位二进制乘法器的控制部分和乘法的实现部分。成法是加法的简便运算乘法运算只能通过加法运算以及移位运算来实现。在控制端用四个触发器产生四个控制信号来控制实现的加法移位功能,实现端在控制端信号作用下依次执行置零、加法、移位和循环操作。 二、方案说明 设计一个4位二进制乘法器,可以存储其乘积。 电路原理框图如图1所示。乘法器可以利用家发起和寄存器实现。 图1 乘法器原理框图 寄存器B存放被乘数,寄存器Q存放乘数,两个乘积长度可能是原来的2倍,故计算完成后将累加和高位放入寄存器A,而Q放寄存器的低位,P 记录乘数的位数,每形成一个部分P加1,当P=4时,乘法结束,两数之积放在AQ寄存器中。 控制端产生四个控制信号分别为T0、T1、T2、T3。在初态T0时,被乘数和乘数已分别存于寄存器B和Q中,等待启动信号S的到来,当S=1时控制器进入状态T1,在此状态下A、E、P清零,准备乘法操作。 从状态T2开始,控制器进入累计部分积的循环操作过程。首先检验乘数的最低有效位Q1。如Q1=1,A和B相加结果存于A和E之中;如果Q1=0,不做加法运算。无论Q1为何值,都要将计数器P加1。在状态T3,合成寄存器EAQ右移一位得到累计的部分积,时检测P之值,如果P不等于4,状态返回T2,继续累计部分积的过程。如果P=4,停止循环,系统返回初始状态T0。 三、电路设计 1、控制器设计

根据图2所示的ASM图表,可以设计二进制乘法器的控制器。 图2 二进制乘法器ASM图表四个D触发器的驱动方程为: D0=T0S’+T3Z=((T0S’)’·(T3Z)’)’ D1=T0S=((T0S)’)’ D2=T1+T3Z’=(T1’·(T3Z’)’)’ D3=T2

8.模拟乘法器的应用-乘积型混频器

模拟乘法器的应用 ——乘积型混频器 学号:200800120228 姓名:辛义磊仪器编号:30 一、实验目的 1、掌握集成模拟乘法器的工作原理及其特点 2、进一步掌握集成模拟乘法器(MC1596/1496)实现振幅调制、同步检波、混频、倍频的电路调整与测试方法 二、实验仪器 低频信号发生器 高频信号发生器 频率计 稳压电源 万用表 示波器 三、实验原理与实验电路 集成模拟乘法器是继集成运算放大器后最通用的模拟集成电路之一,是一种多用途的线性集成电路。可用作宽带、抑制载波双边带平衡调制器,不需要耦合变压器或调谐电路,还可作为高性能的SSB乘法检波器、AM调制解调器、FM解调器、混频器、倍频器、鉴相器等,它与放大器相结合还可以完成许多数学运算,如乘法、除法、乘方、开放等。 MC1496的内部电路继引脚排列如图所示

MC1496型模拟乘法器只适用于频率较低的场合,一般工作在1MHz以下的频率。双差分对模拟乘法器MC1496/1596的差值输出电流为 MC1595是差值输出电流为 式中,错误!未找到引用源。为乘法器的乘法系数。 MC1496/1596使用时,VT 1至VT 6 的基极均需外加偏置电压。 实验电路 四、实验步骤

检查电路无误后接通电源,完成如下操作: 1、 当本振信号的频率为43 .4=L f MHz 、振幅为5 .0≤-p p V V ,输入信号的频率 为4 =C f MHz ,振幅为50 ≤-p p V mV 时,观察并测绘输入输出信号波形,记 录I L C f f f 、、。 2、当本振信号的频率为43.4=L f MHz 、振幅为5.0≤-p p V V ,输入信号的振幅为 50 ≤-p p V mV 时,改变输入信号频率C f (在3.9-4.1MHz 之间,每隔200kHz 测量 一次),测量输出信号的频率和幅度,记录在表格中,并由此计算带通滤波器的 通频带宽度。 f c 3.9MHz 4.0MHz 4.1MHz f 4.43 MHz 4.43 MHz 4.43 MHz v 500mV 500mV 500mV 3、保持两输入信号的频率及本振信号幅度不变,改变输入信号振幅V sm (峰峰值在40-100mV 之间变化)的大小,逐渐测量输入V sm 和中频输出V im 。将测量及计算结果填入表格中,并完成下列任务: ①计算混频增益A vc 。将混频电压增益A vc 定义为变频器中频输出电压幅值与输入信号幅值之比,以分贝表示为sm vc V V A Im lg 20= ②作出V sm 和V im 的关系曲线 V sm 40 mV 60 mV 80 mV 100mV V im 60mV 85mV 100mV 120mV 五、思考题

16位(8x8)硬件乘法器设计报告

EDA课程设计16位(8x8)硬件乘法器设计学校:华侨大学 学院:信息与工程学院 班级:10集成 姓名:项传煜 学号:1015251031 老师:凌朝东

目录 摘要 一.设计要求 二.正文 2.1. 系统设计 2.1.1 系统设计方案 (3) 2.1.2 系统设计原理 (4) 2.2. 各子模块设计 2.2.1 十进制加计数器设计 (5) 2.2.2 BCD码转二进制码BCD_B的设计 (5) 2.2.3 8位移位寄存器reg_8的设计 (6) 2.2.4 8位加法器adder_8的设计 (7) 2.2.5 1位乘法器multi_1的设计 (7) 2.2.6 16位移位寄存器reg_16的设计 (8) 2.2.7 16位二进制转BCD码B_BCD的设计 (9) 2.3. 软件设计 2.3.1 设计平台和开发工具 (10) 2.3.2 程序流程方框图 (10) 2.3.3 实现功能 (11) 2.3.4 8位乘法器的顶层设计 (11) 2.4. 系统测试 2.4.1 乘法器使用 (13) 2.4.2 仪器设备 (13) 2.4.3 测试数据 (14) 2.5. 结论 (14) 三.测试结果仿真图 (14) 四.参考文献 (15) 五.附录:设计说明书及使用说明书 (15)

摘要 本设计通过对一个8×8的二进制乘法器的设计,学习利用VHDL语言来描述简单的算法,掌握利用移位相加方法实现乘法运算的基本原理。在此次设计中该乘法器是由十进制计数器,BCD码(输入)转二进制码,8位寄存器,8位加法器,16位寄存器,8x1乘法器,二进制码转BCD码(输出显示)7个模块构成的以时序方式设计的8位乘法器,采用逐项移位相加的方法来实现相乘。设计中乘数,被乘数的十位和个位分别采用cnt10(十进制加法器)来输入,经拼接符“&”拼接成8位BCD码,再由BCD_B(BCD码转二进制码)转化成二进制码后计算,计算结果由B_BCD(二进制转BCD码)转化成BCD码输入到数码管中显示。此次设计的创新点在于cnt10,BCD_B,B_BCD的设计,使得电路的输入简单,显示方式为十进制,符合人们的习惯。使用中只要输入乘数,被乘数,按下键3(脉冲)就可以直接得出结果,显示结果稳定。可以满足两位十进制乘法的计算。 一.设计要求 设计一个十六位(8*8)硬件乘法器(难度系数1.0) 要求:2位十进制乘法;能同时显示乘数,被乘数和积的信息(LED数码管)。 二.正文 2.1. 系统设计 2.1.1 系统设计方案 方案一:直接生成乘法器,再配合输入,输出电路,构成2位十进制乘法器,该方案简单,原理清晰明了,但占用资源比较多,且不易于了解内部结构,及其乘法原理。 方案二:移位相加方法实现乘法运算再配合输入,输出电路,构成2位十进制乘法器,该方案原理简单,占用资源少,易于初学者掌握移位相加方法实现乘法运算的原理,但电路模块较多。方案选择:由于现在属初学阶段,掌握原理较为重要,故经小组讨论,一致同意采用方案二。

专用集成电路,verilog移位乘法器,源代码及电路仿真

生命科学技术学院《CMOS专用集成电路》实验报告 学院(系):生命科学技术学院 专业:生物医学工程 班级:151011 学号:15101004 学生姓名:柳琳 2013年06 月29 日

一、实验题目 (1)更改测试文件相关部分的参数值,将该乘法器的数据位宽改为8-Bit。 (2)根据对实验电路的分析,绘制该移位式乘法器电路详细的电路结构框图,并对每一功能部件的功能及相关参数的意义进行说明; (3)采用Verilog HDL硬件描述语言设计一个16-Bit超前进位加法器; (4)在上面超前进位加法器基础上,将原电路的部分积求和电路改进成超前进位加法器。 二、实验结果与讨论 (1)更改测试文件相关部分的参数值,将该乘法器的数据位宽改为8-Bit。 module multiplier_nbit ( rst, clk, x, y, result ); parameter mwidth = 8; parameter rwidth = mwidth + mwidth; input rst, clk; … reg [1:0] stcnt; reg [2:0] mucnt; … assign mucnt_en = (stcnt == 2'b01) ? 1'b1 : 1'b0; assign mucnt_full = (mucnt == 3'b111) ? 1'b1 : 1'b0; assign stcnt_load = (stcnt == 2'b10) ? 1'b1 : 1'b0; … always @(posedge rst or posedge clk) begin if(rst) mucnt <= 3'b000; else if(mucnt_en) mucnt <= mucnt + 1; else mucnt <= mucnt; end module test_mult; reg rst, clk; reg [7:0] x, y; wire [15:0] result;

模拟乘法器及其应用

模拟乘法器及其应用

摘要 模拟乘法器是一种普遍应用的非线性模拟集成电路。模拟乘法器能实现两个互不相关的模拟信号间的相乘功能。它不仅应用于模拟运算方面,而且广泛地应用于无线电广播、电视、通信、测量仪表、医疗仪器以及控制系统,进行模拟信号的变换及处理。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。 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.

16位除8位有符号数的VHDL设计

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; Entity Divider is port( clk: in std_logic; --reset: in std_logic; start: in std_logic; word1: in std_logic_vector(15 downto 0);--被除数 word2: in std_logic_vector(7 downto 0);--除数 data_out: out std_logic_vector(15 downto 0)--商 ); end Divider; Architecture Divider_arc of Divider is type states is(S_Idle,S_Adivr,S_Adivn,S_div); signal state,next_state:states; signal dividend:std_logic_vector(16 downto 0); signal comparison:std_logic_vector(8 downto 0); signal divisor:std_logic_vector(7 downto 0); signal load_words,shift_divisor,shift_dividend,subtract:std_logic; signal num_shift_divisor,num_shift_dividend:integer range 0 to 16; signal quotient:std_logic_vector(15 downto 0); begin process(state,dividend,divisor) begin case state is when S_Adivr => if divisor(7)='0' then comparison<='1'&(not(divisor(6 downto 0)&'0')) +"000000001"+dividend(16 downto 8); else comparison<='1'&(not divisor) +"000000001"+dividend(16 downto 8); end if; when others => comparison<='1'&(not divisor) +"000000001"+dividend(16 downto 8); end case; end process; process(clk,start) begin

有符号5位整数乘法器设计与制作

哈尔滨工业大学(威海) 信息科学与工程学院 EDA课程设计报告 有符号5位整数乘法器设计与制作 指导老师:胡屏 学生班级:0802102 学生姓名:傅愉 学生学号:080210210 2009年11月10日

目录 1.课程设计的性质、目的和任务 (1) 2.题目要求 (1) 3.总体设计 (1) 3.1算法设计 (1) 3.2整体框图及原理 (2) 4.电路设计 (4) 4.1 乘法器总体电路原理图: (4) 4.2分时输入模块电路图: ........................................................... - 5 - 4.3乘法运算电路图: (6) 4.4阀门控制模块电路: ............................................................... - 9 - 4.5计数单元电路图: ................................................................. - 12 - 4.6数码管显示单元电路: ......................................................... - 14 - 4.7报警电路示意: ......................................... 错误!未定义书签。 5.调试过程中出现的问题以及解决办法 .......................................... - 19 - 6.心得体会........................................................................................... - 20 - 7.建议:............................................................................................... - 21 - 1.课程设计的性质、目的和任务 创新精神和实践能力二者之中,实践能力是基础和根本。这是由

用JKFF触发器设计一个模为8的加法计数器

题目:用JKFF 设计模为8的加法计数器 步骤1: 分析题意 根据题目所给的条件,待设计的计数器默认为模为8的加法器,不需要求加载初值。电路只需要故电路只需时钟输入端clk ,clk 作为电路的同步时钟,不必当做输入变量对待;输出一个8进制数要3个输出端,记为0Q 1Q 2Q 。要有输出信号Y ,故共需要3个输出端。因输出量0Q 1Q 2Q 就是计数值,故采用Moore 型电路较为合适。 步骤2:建立原始状态图 模8加法器要求逢8加1,。有此状态图做出如图所示。需要8个状态故不需要化简。 /Y /0 /0 /0 S0→ S1→ S2→ S3 ↑ /1 ↓ /0 S7←S6←S5← S4 /0 /0 /0 步骤3:状态分配。 由于最大模的值为8,因此必须取代码位数n=3。假设S0=000,S1=001,S2=010,S3=011,S4=100,S5=101,S6=110,S7=111.则可以做出状态转移表如图。 步骤4:选触发器,求时钟、输出、状态、驱动方程。 因需要3位二进制代码,选用三个CP 下降沿出发的J-K 触发器,分别用FF0,FF1,FF2表示。 有状态列表可作出次态卡诺图及输出函数的卡诺图,如图所示。 与J-K 触发器的特性方程 n n n Q K Q J Q +=+1 比较得到驱动方程 输入 现态 次态 输 出 CP Q2 Q1 Q0 12 +n Q 11 +n Q 1 +n Q Y 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 2 0 1 0 0 1 1 0 3 0 1 1 1 0 0 0 4 1 0 0 1 0 1 0 5 1 0 1 1 1 0 0 6 1 1 0 1 1 1 0 7 1 1 1 1

模拟乘法器1496实验报告

实验课程名称:_高频电子线路

五.实验原理与电路设计仿真 1、集成模拟乘法器1496的内部结构 集成模拟乘法器是完成两个模拟量(电压或电流)相乘的电子器件。在高频电子线路中,振幅调制、同步检波、混频、倍频、鉴频、鉴相等调制与解调的过程,均可视为两个信号相乘或包含相乘的过程。采用集成模拟乘法器实现上述功能比采用分立器件如二极管和三极管要简单的多,而且性能优越。所以目前在无线通信、广播电视等方面应用较多。集成模拟乘法器的常见产品有BG314、F1595、F1596、MC1495、MC1496、LM1595、LM1596等。下面介绍MC1496集成模拟乘法器。 (1)MC1496的内部结构 MC1496 是目前常用的平衡调制/解调器。它的典型应用包括乘、除、平方、开方、倍频、调制、混频、检波、鉴相、鉴频、动态增益控制等。MC1496 的和内部电路与外部引脚图如图1(a)(b)所示。 (a)1496内部电路 (b)1496引脚图 图1 MC1496的内部电路及引脚图 它内部电路含有 8 个有源晶体管,引脚 8 与 10 接输入电压 VX、1与 4接另一输入电压VY,6 与12 接输出电压 VO。一个理想乘法器的输出为VO=KVXVY,而实际上输出存在着各种误差,其输出的关系为:VO=K(VX +VXOS)(VY+VYOS)+VZOX。为了得到好的精度,必须消除 VXOS、VYOS与 VZOX三项失调电压。引脚 2 与 3 之间需外接电阻,对差分放大器 T5与 T6产生交流负反馈,可调节乘法器的信号增益,扩展输入电压的线性动态范围。 各引脚功能如下: 1:SIG+ 信号输入正端 2: GADJ 增益调节端 3:GADJ 增益调节端 4: SIG- 信号输入负端 5:BIAS 偏置端 6: OUT+ 正电流输出端 7: NC 空脚 8: CAR+ 载波信号输入正端 9: NC 空脚 10: CAR- 载波信号输入负端11: NC 空脚 12: OUT- 负电流输出端 13: NC 空脚 14: V- 负电源 (2)Multisim建立MC1496电路模块 启动multisim11程序,Ctrl+N新建电路图文件,按照MC1496内部结构图,将元器件放到电子工作平台的电路窗口上,按住鼠标左键拖动,全部选中。被选择的电路部分由周围的方框标示,表示完成子电路的选择。为了能对子电路进行外部连接,需要对子电路添加输入/输出。单击Place / HB/SB Connecter 命令或使用Ctrl+I 快捷操作,屏幕上出现输入/输出符号,

各种乘法器比较

各种乘法器比较 韦其敏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;

16位乘法器芯片设计 3月9日

16位乘法器芯片设计 1.方法 乘法器的设计方法有两种:组合逻辑设计方法和时序逻辑设计方法。 采用组合逻辑设计方法,电路事先将所有的乘积项全部算出来,然后做加法运算。 采用时序逻辑设计方法,电路将部分已经得到的乘积结果右移,然后与乘积项相加并保存和值,反复迭代上述步骤直到计算出最终积。 2.组合逻辑的实现 可以以16*3位的乘法器为例做出如下设想: A为16位二进制乘数,B为3位二进制乘数,C为A与B相乘的积。则: C的结果实际上只能为如下值中的一个: 0,A,2A,3A,4A,5A,6A,7A 因为B为3位二进制,则B只能是000,001,010,011,100,101,110,111中的一个。 初步设想符合现实,由于要实现ASIC芯片的生产,所以对各端口定义如下: reset:芯片复位、清零信号。值为0,芯片复位。 start:芯片使能信号。值为1,芯片读入乘数和被乘数,并将乘积复位清零。 ain:被乘数,16bit。 bin:乘数,3bit。 yout:乘积输出,19bit。 done:芯片输出标志信号,值为1,乘法运算完成,yout端口的数据稳定,得到最终的乘积;值为0,乘法运算未完成,yout端口数据不稳定。 编写的Verilog程序如下: Module mult16(reset,start,ain,bin,done,yout); Parameter N=16; Input reset; Input start; Input [N-1:0] ain; Input [2:0]bin; Output [N+3:0] yout; Output done; Integer aa,ab,ac,temp; Integer su; Reg done; Always @(ain) Begin If(start&&!reset) Begin aa=ain; ab=ain+ain; ac=ab+ab;

移位相加型8位硬件乘法器设计

合肥学院 课程设计报告 题目:移位相加型8位硬件乘法器 系别:电子信息与电气工程系 专业:通信工程 班级: 13通信工程(1)班 学号: 姓名: 导师:石朝毅 成绩: 2016年 6 月 11 日

移位相加型8位硬件乘法器设计 摘要 本次设计是基于时序结构的8位移位相加型乘法器,使用软件QuartusII进行仿真设计。完成此乘法器,我们需要首先设计该乘法器的组件,包括REGSHT模块、SREG8BT模块、AND8B模块和ADDER8BT模块,并对所有元件进行仿真,无误后可进行乘法器的设计。设计方法使用的是元件例化,具体原理是通过逐项相加来实现乘法功能,最终完成整体的VHDL程序设计并仿真。 关键词:时序;乘法器;元件例化

目录 第一章前言 (1) 1.1设计概述 (1) 1.1.1问题提出与原理 (1) 1.1.2设计需要 (1) 第二章设计过程及结果 (2) 2.1设计思路 (2) 2.1.1设计须知 (2) 2.1.2基本步骤 (2) 2.2设计代码及仿真 (3) 2.2.1元件REGSHT设计代码及仿真结果 (3) 2.2.2元件SREG8BT设计代码及仿真结果 (4) 2.2.3元件AND8B设计代码及仿真结果 (5) 2.2.4元件ADDER8BT设计代码及仿真结果 (7) 2.2.5总模块设计代码及仿真结果 (8) 第三章总结 (11) 致谢 (12)

第一章前言 1.1设计概述 1.1.1问题提出与原理 采用元件例化的设计方法,设计一个移位相加型8位硬件乘法器设计。下图所示为一个基于时序结构的8位移位相加型乘法器。 图1设计原理图 1.1.2设计需要 (1)元件REGSHT设计,并仿真; (2)元件SREG8BT,并仿真; (3)元件AND8B,并仿真; (4)元件ADDER8BT,并仿真; (5)整体VHDL程序设计,包括元件例化,并仿真。

16位vhdl乘法器详解,加仿真图

控制模块: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity cont_modu is port( Clk : in std_logic ; Start : in std_logic; //数据输入开始信号 en_sig : out std_logic; //控制运算信号,为‘1’运算数据 out_sig : out std_logic // 运算完成信号 ); end entity; architecture rlt_cont_modu of cont_modu is signal cnt :integer range 0 to 15 :=0;//定义从0到15 type state is(S_idle,S_work,S_1d,S_2d);//运算状态信号,状态机 signal st_ty : state :=S_idle; begin process(Clk) begin if rising_edge(Clk) then case st_ty is选择语句;S_idle为空闲状态,当输入数据后Start信号为1就开始工作 when S_idle => if Start ='1' then如果为1就跳转到S_work状态,并且使能信号置1 st_ty <= S_work; en_sig <='1'; else不然继续在S_idle状态 st_ty <= S_idle; en_sig <='0'; end if; out_sig <='0'; when S_work => if cnt =15 then在S_work状态下,cnt信号一直加1,加满16个数就跳转到S_1d,然后使能信号en_sig 就为0。 st_ty <= S_1d; cnt <= 0; en_sig <='0'; else如果没到16个数继续加1 st_ty <= S_work;

用单片机语言设计16位加法计算器实验报告概要

湖北第二师范学院计算机学院09计应 单片机课程设计 实验报告 课程设计名称:电子计算器 课程设计单位:10计应(1)班 课设小组成员:徐凡(1060310039) 凡平(1060310058) 彭浩(1060310045) 桂银(1060310010) 潘光卉(1060300033) 完成时间:2012年04月02日至2012年04月 24 日

单片机课程设计实验报告 课程设计题目:简易计算器 作品功能描述:当通过输入键盘数字时,能够在显示器上显示输出的数值,并且通过想实现的简单运算功能,实现计算器的加、减、乘、 除和清零,并将结果显示出来。 小组成员工作分工:徐凡:程序主框架的构造和主要功能函数的设计。 凡平:原理图的设计和硬件的焊接。 彭浩:基本功能函数的设计(“+,-,*,/”)。 桂银:程序流程图的设计和键盘扫描程序的实现。 潘光卉:编写文档和功能测试。 硬件电路设计:本设计中我们用的是AT89C52芯片,LCD1602 (PROTEUS中为LM016L)就是那个液晶屏,因为可以显示2行16个字符,故 叫做LCD1602. 11.0592M或12M晶振(CRYSTAL),两者均可,但要涉及到串口 需选用12MKEYPAD-SMALLCALC就是那个4X4键盘 电容20~30PF(CAP),接最小电路 电容10PF主要接复位电路 RESPACK-8排阻,为20K的,一个引脚接正极,另8个引脚接 I/O口接RES电阻10K,接复位电路 实物照片:硬件原理图

原理说明: 1,上电后,屏幕初始化; 2,计算。按下数字键,屏幕显示要运行的第一个数字,再按下符号键,然后再按下数字键,屏幕显示要运算的第二个数字,最后按 下“=”号键,屏幕上显示出计算结果。 3,如果要再次计算,可以按下“ON/C”键清零,或者继续按下数字键,即可重新计算。 键盘使用说明如下: 按键功能说明:Array“+”实现两个数的相加 “-”实现两个数的相减 “×”实现两个数的乘积 “÷”实现两个数商的运算 “ON/C”计算器显示的清零和 接通电源

根据模拟乘法器芯片MC1496的调幅与检波电路设计与实现

HUNAN UNIVERSITY 工程训练报告 题目:基于模拟乘法器芯片MC1496 的调幅与检波电路设计与实现 学生姓名:秦雨晨 学生学号:20110803305 专业班级:通信工程1103

指导老师(签名): 二〇一四年九月十五日

目录 1 项目概述---------------------------------------------------------2 1.1引言---------------------------------------------------------2 1.1 项目简介----------------------------------------------------2 1.2 任务及要求--------------------------------------------------2 1.3 项目运行环境------------------------------------------------3 2 相关介绍--------------------------------------------------------3 3 项目实施过程----------------------------------------------------5 3.1 项目原理---------------------------------------------------5 3.2 项目设计内容------------------------------------------------9 3.2.1 调幅电路仿真--------------------------------------------9 3.2.2 检波电路仿真-------------------------------------------12 4 结果分析-------------------------------------------------------14 4.1调幅电路---------------------------------------------------14 4.2 检波电路---------------------------------------------------18 5 项目总结-------------------------------------------------------21 6 参考文献-------------------------------------------------------22 7 附录--------------------------------------------------------23

相关主题
文本预览
相关文档 最新文档