8位二进制加法器

8位二进制加法器
8位二进制加法器

8位二进制加法器

1.摘要:

本次设计主要是如何实现8位二进制数的相加,即两个000到255之间的数相加,由于在实际中输入的往往是三位十进制数,因此,被加数和加数是两个三位十进制数,范围在000到255之间,通过六个二-十进制编码器(即74LS147)分别将加数和被加数的个位、十位、百位转换为8421BCD码,于是得到了两个12位字码,将它们接入三个四位超前进位并行加法器(即74LS283),其中原加数三位十进制数的个位转换得到的四位BCD码与被加数三位十进制数的个位转换得到的四位BCD码相加,串入到第一个74LS283的接线端,得到一个四位8421BCD码。同理,原加数和被加数的十位转换得到的四位BCD码相加也得到一个8421BCD码。同理,百位也是如此。需要注意的是:由于这12位BCD码是由三位十进制数转换过来的,因此在用加法器相加时,要逢10进一。于是通过一些与非门、非门和加法器构成一个新的加法器,使该加法器能对这十二位BCD码进行计算,并且逢10进1,这样得到一个十二位BCD码,即相加结果三位十进制数所对应的BCD码,再通过7447数字显示译码器将这十二位8421BCD码还原成一个三位十进制数,用数码管显示出来,得到一个三位十进制数,即为所求的结果。另外,本次设计不仅可以适用加数和被加数是000到255的数字,同时也适用于加数和被加数是000到999的任何一个数,这是本次设计的创新之处。2.关键字:

二-十进制编码器、四位超前进位并行加法器、7447七段数码显示译码器、逢十进一、数码管。

3.设计要求:

1.八位二进制加数与被加数的输入;

2.三位数码管显示;

3.三位十进制加数与被加数的输入。

4.正文:

第一章系统概述

本次设计的目的是实现两个八位二进制数的相加,那么我们如何实现呢?通常在实际中输入的是三位十进制数,而要求是八位二进制数,八位二进制数换算成三位十进制数最大为

255,也就是说要输入两个000到255之间的数。要实现它们的相加,我们想到了三种思路,下面我说一下这三种思路。

第一种,当输入两个三位十进制数时,由于在数字电路中运算所用到的是二进制数,因此我们必须首先将十进制数转换为二进制数,于是一个问题出现了,那就是,我们如何实现十进制数到二进制数的转换,通过查阅相关资料,我们发现二-十进制编码器(也叫8421BCD 码编码器,在实际中通常指74LS147)可以实现从十进制数到二进制数的转换,于是我们通过二-十进制编码器来实现上述的转换。由于二-十进制编码器可以实现一位十进制数到四位二进制数的转换,而题目中的是两个三位十进制数,因此我们就需要用到6个二-十进制编码器,分别将三位十进制数的个位、十位、百位转换为其各自对应的8421BCD码,于是我们得到了两个十二位的8421BCD码。于是如何实现两个三位十进制数的相加这个问题就变成了如何实现两个十二位的8421BCD码相加这个新问题。那么,如何实现呢?我们想到了加法器,常用的加法器74LS283能够实现四位二进制数的相加,于是我们就要将74LS283进行串联,实现十二位数的相加,但加法器74LS283的进位是逢16进1,而这两个十二位的8421BCD 码相加时的进位是逢10进1,那么就要对加法器74LS283的二进制和数进行修正,即加上一个6(0110),让其产生一个进位。于是把大于9的项画在卡诺图里,另外考虑到若相加产生进位,则同样出现大于9的情况。综合考虑,得到修正和数的条件,用与非门和与门来实现,得到了一个新的加法器,它可以实现逢10进1这个条件。将这两个十二位的8421BCD 码分别接到三个新的加法器的输入端,得到一个新的十二位的8421BCD码。由于结果要得到一个三位十进制数,因此再将这个十二位的8421BCD码通过三个7447七段显示译码器转换为一个三位十进制数,通过数码管将它显示出来,即为所求的结果。

第二种,当输入的不是三位十进制数而是八位二进制数时,我们如何实现它们的相加呢?我们知道,超前进位并行加法器74LS283可以实现四位二进制数的相加,于是,我们需要两个74LS283进行串联,这样我们就得到一个新的九位二进制数,其范围在000到510

之间。那么我们如何实现从九位二进制数到三位十进制数的转换呢?由于三位十进制数的个位、十位、百位分别对应一个四位8421BCD码,也就是说一个三位十进制数对应一个十二位的8421BCD码。于是,问题就是,如何实现九位二进制数到十二位8421BCD码的转换?这样,我们就想到了译码器,通过4线-16线译码器74LS154来实现字码的转换。这样,就得到了一个新的十二位8421BCD码,再通过7447七段数码显示译码器来实现8421BCD码到三位十进制数的转换,最后通过数码管显示出来,得到的就是所要求的的八位二进制数的和。

第三种,通过上述两种思路,我们会要进一步想到,能不能同时实现八位二进制数和三

位十进制数的相加呢?那么我们可以对上述的思路加以扩展,假设输入的是三位十进制数,我们可以设法将其转换为八位二进制数,再通过加法器输出。这样,我们既可以输入三位十进制数,也可以输入八位二进制数。那么三位十进制数如何转换为八位二进制数呢?我们想到了二-十进制编码器,一个二-十进制编码器可以实现一位十进制数到四位二进制数的转换,那么我们就可以将一个二-十进制编码器和一些与非门组成一个新的二-十进制编码器来实现这个三位十进制数的十位到8421BCD 码的转换;同理,三位十进制数的百位也可以这样转换。于是三位十进制数就转换到了八位二进制数,接着,我们就可以用第二种思路来实现八位二进制数的相加。

通过这三种思路,经过分析验证,我们发现,由于在实际中我们遇到的往往是三位十进制数(范围主要在000到255之间),那么我们重点研究三位十进制的相加。在实践论证中我们发现,由于第一种思路所用的元件少,且个位、十位、百位各自对称,因此在连接上方便可行,不易出错。同时由于原理清晰,一旦出现错误,我们可以尽快发现问题并加以改正。在论证第二种思路时,我们发现,在使用译码器时,由于使用的是4线-16线译码器74LS154,因此它有16个出线端。而我们要实现九位二进制数到十二位BCD 码的转换,就要有512个出线端,也就是512除以16,即32个译码器。由于所用到的译码器数量冗长,在连接上容易出错。因此并不采纳。同理,第三种思路也是如此。

通过分析,可以得到各功能块的划分与组成。

首先我们看到的是控制电路,控制电路控制的是总体部分的工作和关闭,控制电路由开关组成,通过开关来实现总电路的控制。在本次设计中,由开关来实现键盘的功能,通过九个开关来实现0到9的控制。设计中一共用到54个开关。接着,我们进入编码电路,编码电路,顾名思义,就是十进制数到二进制数的转换。那么如何实现十进制数到二进制数的转换呢?于是我们就通过二-十进制编码器(也就是8421BCD 编码器)把十进制数转换成了

控 制电 路

编 码电 路

加 法 电 路

译 码 电 路

输 出 电路

8421BCD码。然后我们进入了加法电路,由编码器出来的两个12位8421BCD码要通过加法器74LS283来实现两个8421BCD码的相加,由于加法器只能实现二进制数的相加,不能实现这两个8421BCD码的相加,这是因为这两个8421BCD码是由十进制数转换过来的,因此它们是逢十进一,这与74LS283加法器的逢十六进一相互冲突,于是我们就要改进加法器,在原有的基础上对二进制和数进行修正(即加上6,让其产生进位),得到一个新的加法器,使其实现8421BCD码的相加,,得到一个新的8421BCD码。紧接着,我们进入了译码电路,所谓译码,就是说把这个新的12位8421BCD码再译成三位十进制数,要实现它,就要用到7447七段数码显示译码器,这样就得到了一个新的三位二进制数,也就是所要求的和。而要求是要将这个三位二进制数用数码显示出来,那么就要进入最后一个部分输出电路,这就要用到数码管,通过数码管将这个三位十进制数(本次设计中可以实现和是四位十进制数的数码)显示出来,这样就完成了八位二进制数加法器的原理设计。

第二章单元电路设计与分析

①控制电路:

图1

控制电路是总体电路的枢纽,是控制电路开启和关闭的部分。电路的控制可以采用多种方式,诸如开关、脉冲等。在本次设计中,我们采用开关来实现电路的控制,但问题是,如何用开关实现电路的控制呢?本次设计主要侧重于三位十进制数(000到255)的输入,那么我们就可以用开关(开关的一头接地)来实现,当开关打开时,表示高电平;当开关闭合时,表示低电平,如此便可以实现1和0的输入,但是在模拟验证时,我们发现,在开关打

开时,也就是悬空,这时并不是高电平,那么我们如何实现开关的控制呢?我们想到了另一种思路,那就是通过一个双掷开关来实现高低电平的输入,双掷开关的另外两头一个接高电平5伏电压,一个接地,通过开关的开和关来实现1和0的输入,这样就实现了电路的控制。本次设计一共用到54个双掷开关,其型号为SPDT。开关从下往上、从左往右依次来表示二进制数1到9的输入,其中开关都断开表示0的输入。在如图所示的部分开关电路中,J1到J8分别表示8、7、6、5、4、3、2、1,J27表示9。这样就实现了0到9的输入。

②编码电路:

图2

编码电路是总体电路的第二部分,其主要作用是实现十进制数到二进制数的转换,那么我们如何实现呢?我们想到了编码器,常用的编码器有8线-3线优先编码器74LS148、10线-4线优先编码器74LS147。在本次设计中要用到的是10线-4线优先编码器74LS147,通过输入一个十进制数转换到了四位二进制数,由于74LS147的输入和输出都是低电平有效,因此输出的是四位十进制数的反码,而后面要进行计算,则此时必须将输出的四个数接到非门,然后输出,这次设计中用到的非门为74LS05,可以实现反码的转换。关于74LS147的引脚图如下图所示:

引脚图中,11、12、13、1、2、3、4、5、10为74LS147的输入端,9、7、6、14作为74LS147 的输出端,其中74LS147的真值表如上图所示。

③ 加法电路

:

图3

加法电路是总电路的第三部分,也是总电路的中心环节,其作用至关重要。加法电路是

输入信号

输出信号

I 9 I 8 I 7 I 6 I 5 I 4 I 3 I 2 I 1 I 0 Y 3 Y 2 Y 1 Y 0 0 × × × × × × × × × 0 1 1 0 1 0 × × × × × × × × 0 1 1 1 1 1 0 × × × × × × × 1

0 0 0 1 1 1 0 × × × × × × 1 0 0 1 1 1 1 1 0 × × × × × 1 0 1 0 1 1 1 1 1 0 × × × × 1 0 1 1 1 1 1 1 1 1 0 × × × 1 1 0 0 1 1 1 1 1 1 1 0 × × 1 1 0 1 1 1 1 1 1 1 1 1 0 × 1 1 1 0 1

1

1

1

1

1

1

1

1

1 1

1

1

我此次设计的负责部分,因此我着重介绍加法电路的设计过程。既然用到加法电路,那么我们自然要用到加法器,常用的加法器分为串行进位加法器和超前进位加法器,串行进位加法器的优点是电路简单,连接方便,缺点是运算速度低;而超前进位加法器则解决了这个问题,因此在加法器的选择上我选用了74LS283。74LS283是中规模四位二进制超前进位加法器,它实现的是四位二进制数的相加,但是题目中要设计的是12位BCD 码的相加,这样就需要用到3个加法器。但是,一个问题出现了,那就是如何实现BCD 码到二进制数的转换。我们知道,BCD 码是用4位二进制数表示1位十进制数,4位二进制数内部为二进制,BCD 码之间是十进制,即逢10进1。而四位二进制加法器是按四位二进制数进行计算,即逢十六进一,二者进位关系不同。当和数大于9时,8421BCD 码即产生进位,而此时十六进制则不一定产生进位,因此需要对二进制数进行修正,即加上6(0110),让其产生一个进位,当和数小于9时,则不需要修正。

将大于9的最小项列在卡诺图里,同时,还要考虑到,若相加产生进位,则同样出现大于9的结果,综合考虑,可得卡诺图为:

S 1S 0

S 3S 2 00 01 11 10

00

01

11 10

通过上述的卡诺图,可得到修正和数的条件为L=C 3+S 3S 2+S 3S 1,于是可通过一个非门(74LS05)、三个与非门(74LS00和74LS10)和两个加法器来74LS283来构建成一个新的加法器,这个新的加法器就可以实现一位8421BCD 码的加法计算。本次设计中,要进行运算的是十二位字码的相加,那么我们就需要三个这样的新加法器来实现它们的相加,于是通过三个这样的新加法器串联在一起,将与非门出来的线与加法器向高位的进位端出来的线共同接到一个或门(74LS32)的两个入线端,然后将出线端接到下一个新加法器的低位进位输入端,这样就完成了8421BCD 码的计算。

1 1

1 1

1

1

上述方法是一种思路,我们还可以构想另一种思路,本次设计的关键之处在于,如何实现十进制数和二进制数之间的转换。三位十进制数的个位、十位、百位分别对应着一个四位二进制数,这样一个三位十进制数就对应着一个十二位的二进制数,不同的是,这个十二位二进制数的进位是逢10进一,而正常的二进制数是逢16进一,这就是它们的区别,那么如何实现这个十二位二进制数到九位二进制数的转换呢?我们想到了译码器,我们可以列出它们之间转换的真值表,然后通过译码器来实现,这样就转换到了所要求的数,但这种思路太繁复了,译码器数量庞大,无法满足设计所要求的器件简单这个要求,因此不予采纳。

74LS283的引脚图如下图所示:

74LS00的引脚图如下图所示:

74LS10的引脚图如下图所示:

74LS05的引脚图如下图所示:

上述介绍的就是在加法电路中所用到的器件的引脚图。在实际应用中根据引脚图的各个端口表示的意义来连线即可。

个位(十位、百位)部分相加的真值表

加数被加数和

0000 0000 0000

0001 0000 0001

0001 0001 0010

0010 0001 0011

0010 0010 0100

0011 0010 0101

0011 0011 0110

0100 0011 0111

0100 0100 1000

0101 0100 1001

0101 0101 10000

0110 0101 10001

0110 0110 10010

0111 0110 10011

0111 0111 10100

1000 0111 10101

1000 1000 10110

1001 1000 10111

1001 1001 11000

通过上述真值表,便能更好地理解加法电路的设计。

④译码电路:

图4

译码电路是总体电路的第四部分,在总电路中也占据着举足轻重的作用。译码器的作用在于将加法器输出得到的十二位数通过译码器再转换为三位十进制数,那么我们用什么样的译码器呢?常用的译码器有惟一地址译码器(基本译码器)、码制转换译码器和显示译码器。既然在本次设计中我们最后要将结果显示出来,那么我们自然要用显示译码器。数字显示译码器的主要功能是译码驱动数字显示器件。在本次设计中要用到的译码器是7447七段显示译码器,如图所示。7447七段显示译码器输出低电平有效,用以驱动共阳极数码管,7447七段显示译码器的控制输入端有LT、RBI、BI/RBO这三个,其中,LT是试灯输入端,主要用于检测数码管能否正常发光,在工作时,应置LT=1。RBI是灭零输入端,灭零输入的作用是将有效数字前后多余的零熄灭。BI/RBO端是特殊控制端,有时作为输出端,有时作为输出端,做输入端使用时,是灭灯输入,控制着数码管的显示;做输出端使用时,是动态灭零输出。通过7447七段显示译码器,我们实现了二进制数到十进制数的转换。

⑤输出电路:

图5

输出电路是总电路的最后一部分,也是最后的显示部分,它的作用是显示最后的计算结果,那么用什么显示呢?我们想到了数码管。我们知道,数字显示的方式一般分为三种:一种是字形重叠式,即将不同字符的电极重叠在一起,使相应的电极发亮,则可显示需要的字码;第二种是分段式,即在同一个平面上按笔画分布发光管,利用不同发光管组合,显示不同的数码;第三种是点阵式,由一些按一定规律排列的可发光的点阵组成,通过发光点组合显示不同的数码。其中,以分段式应用最为普遍,因此本次设计采用分段式数字显示,即七段数码管。七段数码管有7个发光段,即a、b、c、d、e、f、g,在发光二极管两端加上适当的电压就能够发光。其引脚图如下图所示:

当BCD码是0000时,显示0;当BCD码是0001时,显示1;当BCD码是0010时,显示2;当BCD码是0011时,显示3;当BCD码是0100时,显示4;当BCD码是0101时,显示5;当BCD码是0110时,显示6;当BCD码是0111时,显示7;当BCD码是1000时,显示8;当BCD码是1010时,显示9。

上述关系即为最后显示电路的实现关系。

第三章系统综述、总体电路图

以上所述为此次设计的中心内容和主要思路,其中总体的思想路线是编码-加法-译码。通过这个主题思想,再加以论证和分析,就可以得到总的电路图,需要说明的是,由于实际能力所限,在许多地方尚存在问题。另外,本人又设计了一个四位输出端的加法器,该加法器可以实现三位十进制数000到999的相加,同时,根据设计原理,也可以设计出四位、五位等等加法器,其原理大同小异。在下述的电路总图中,实现的是197和198的相加,输出的数字中,从下往上,依次为百位、十位、个位,其结果为395,如图6所示。改进后的四位输出加法器如图7所示。

图6图

图7

另外,如果输入的是八位二进制数,那么实现八位二进制数相加的电路如图8所示。

图8

第四章结束语

本次设计历时一周,通过小组合作,基本完成电路的总体设计。但由于所学有限,仍存在一些问题。比如说,在控制电路中,本次设计用的是双掷开关,但是由于开关在一闭一合的时候会产生震荡,因此,需要加以改进,我认为应该加上一个JK触发器,但是由于实验所限和各种原因,最终没能实现,希望在以后改进。另外,本次设计侧重于三位十进制数的输入,但对于八位二进制数的输入,并不能很好的实现,同时由于在八位二进制数的转换中,由于用到的译码器数量较多,也没有在实验中论证,因此,本次设计尚存在许多问题。

5.鸣谢

感谢各位老师的指导和帮助,感谢各位同学在我们设计中给予的帮助,感谢众多参考书编者给我们提供的方便,感谢学院能给我们这个机会来设计电子器件。我们一定再接再励,不断进步。

6.元器件明细表,附图

元器件明细表

序号

名称型号参数数量

备注

1 双掷开关SPDT 54

210线-4线编码器74LS147N 6

3 单输入非门74LS05N27

4 双输入与非门74LS00N 6

5 三输入与非门74LS10N 3

6 四位二进制超前

进位加法器

74LS283N 6

7 七段数码显示译

码器

7447N 3

8 双输入或门74LS32N 2

9 七段黄色数码管Seven yellow 3

10 5V电源VCC(5V) 12 附图:

双掷开关

74LS147N

74LS05N

74LS00N

74LS10N

74LS283N

7447N

74LS32N

Seven yellow

VCC(5V)

7.参考文献

1·林涛·数学电子设计技术基础·清华大学出版社·2006 2·康华光·电子技术基础·高等教育出版社·2000

3·李哲英·电子技术及其应用基础·高等教育出版社·2003

4·王永军·数字逻辑与数字系统·电子工业出版社·2002

8.收获与体会,存在的问题等

本次设计中,收获颇多,可以说这是在几年学习中,最完整的一次自我设计和思考的过程。所以它的意义是十分重大的,它培养了我们独立思考、独立解决问题的能力,同时,对于同组之间的合作,也是十分重要的,只有共同努力,才能收获到最美的果实。

在设计中遇到过问题,也解决过问题,有过成功,也有过失败。我们应该记住成功,但我们更加不能忘记失败,只有一次次地总结经验和教训,我们才能不断进步。

评语

实验一 八位全加器的设计

电子科技大学电子工程学院标准实验报告(实验)课程名称EDA技术与应用 姓名:孙远 学号:2010021030002 指导教师:窦衡 电子科技大学教务处制表

实验一八位全加器的设计 一、预习内容 1.结合教材中的介绍熟悉QuartusⅡ软件的使用及设计流程; 2.八位全加器设计原理。 二、实验目的 1.掌握图形设计方法; 2.熟悉QuartusⅡ软件的使用及设计流程; 3.掌握全加器原理,能进行多位加法器的设计。 三、实验器材 PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干 四、实验要求 1、用VHDL设计一个四位并行全加器; 2、用图形方式构成一个八位全加器的顶层文件; 3、完成八位全加器的时序仿真。 五、实验原理与内容 1、原理: 加法器是数字系统中的基本逻辑器件。例如:为了节省资源,减法器和硬件乘法器都可由加法器来构成。但宽位加法器的设计是很耗费资源的,因此在实际的设计和相关系统的开发中需要注意资源的利用率和进位速度等两方面的问题。多位加法器的构成有两种方式:并行进位和串行进位方式。并行进位加法器设有并行进位产生逻辑,运算速度快;串行进位方式是将全加器级联构成多位加法器。通常,并行加法器比串行级联加法器占用更多的资源,并且随着位数的增加,相同位数的并行加法器比串行加法器的资源占用差距也会越来越大。 实验表明,4 位二进制并行加法器和串行级联加法器占用几乎相同的资源。这样,多位数加法器由4 位二进制并行加法器级联构成是较好的折中选择。因此本实验中的8 位加法器采用两个4位二进制并行加法器级联而成。

2、实现框图: 1)四位加法器 四位加法器可以采用四个一位全加器级连成串行进位加法器,实现框图如下图所示,其中CSA为一位全加器。显然,对于这种方式,因高位运算必须要等低位进位来到后才能进行,因此它的延迟非常可观,高速运算肯定无法胜任。 通过对串行进位加法器研究可得:运算的延迟是由于进位的延迟。因此,减小进位的延迟对提高运算速度非常有效。下图是减少了进位延迟的一种实现方法。可见,将迭代关系去掉,则各位彼此独立,进位传播不复存在。因此,总的延迟是两级门的延迟,其高速也就自不待言。 2)八位加法器 用两个并行四位加法器实现一个八位加法器的框图如下:

4FPGA实验报告8位乘法器—徐艺萍

实验四8位乘法器实验 一、实验原理 8位乘法器,输入为两个8位信号,输出结果为16位。 module mult8(out, a, b); //8位乘法器源代码 parameter size=8; input[size-1:0] a,b; //两个操作数 output[2*size-1:0] out; //结果 assign out=a*b; //乘法运算符 endmodule 本实验采用Chipscope-Pro生成VIO/ICON核,并插入到8位乘法器设计中,在线进行观测和调试。 二、实验目的 1. 熟悉ISE9.1 开发环境,掌握工程的生成方法; 2. 熟悉SEED-XDTK XUPV2Pro 实验环境; 3. 了解Verilog HDL语言在FPGA 中的使用; 4. 通过掌握8位乘法器的Verilog HDL设计,了解数字电路的设计。 三、实验内容 1. 用Verilog HDL语言设计8位乘法器,进行功能仿真验证。 2. 使用chipscope-Pro 生成VIO/ICON 核,在线观测调试。 四、实验准备 1. 将USB 下载电缆与计算机及XUPV2Pro 板的J8 连接好; 2. 将RS232 串口线一端与计算机连接好,另一端与板卡的J11 相连接; 3. 启动计算机,当计算机启动后,将XUPV2Pro 板的电源开关SW11 打开到ON 上。观察XUPV2Pro 板上的+2.5V,+3.3V,+1.5V 的电源指示灯是否均亮。若有不亮的,请断开电源,检查电源。

五、实验步骤 ⑴创建工程及设计输入 ①在E:\project\目录下,新建名为mult8的新工程; 器件族类型(Device Family)选择“Virtex2P”, 器件型号(Device)选“XC2VP30 ff896 -7”, 综合工具(Synthesis Tool)选“XST (VHDL/Verilog)”, 仿真器(Simulator)选“ISE Simulator” ②设计输入并保存。 ⑵功能仿真 ①在sources窗口sources for中选择Behavioral Simulation。 ②由Test Bench WaveForm 添加激励源,如图1所示。仿真结果如图2所示。 图1 波形激励编辑窗口 图2 仿真结果 从图中可以验证由Verilog HDL语言设计的8位乘法器的工作是正确的,不论是输入a的值变化还是输入b的值变化,输出值随之变化,为a与b的乘积。 ⑶生成核并添加核 本次试验内容为8位乘法器,不需要使用ILA核。因此下面使用核生成法生成一个ICON核,一个VIO核就可以了。 ①首先对生成的工程进行综合。 ②生成核 ③添加核

二位二进制计数器(DOC)

课程设计任务书 学生姓名杜佳专业班级计算机zy1202班 指导教师袁晓玲学院名称计算机科学与技术学院 一、题目:二位二进制计数器。外部输入X=1时,计数器加1计数,外部输入X=0时,计数器保持不变。 原始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS 32 )、非门( 74 LS 04 ),设计二位二进制计数器。 二、要求完成设计的主要任务如下: 1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。 2.使用同步时序逻辑电路的设计方法,设计二位二进制计数器。写出设计中的三个过程。画出课程设计图。 3.根据74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路引脚号,在设计好的二位二进制计数器电路图中标上引脚号。 4.在试验设备上,使用74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路连接、调试和测试二位二进制计数器电路。 5.设计报告书包括:设计内容与设计要求、设计原理和过程、调试分析、心得体会、参考文献。 三、课程设计进度安排 序号设计内容时间 1 查阅资料,熟悉实验平台和相关芯片的使用方法,完成理 18周 论设计过程,画出电路图;标上引脚。 2 电路修改、接线、排错、实现;分析归纳设计过程,撰写 19周 计算机硬件综合设计报告 合计2周 指导教师签名:年月日 系主任(责任教师)签名:年月日

一、实验目的: 1、深入了解和掌握同步时序逻辑电路的设计过程; 2、了解74LS74、74LS08、74LS32、74LS86及74LS04芯片的功能; 3、能够根据电路图连接好实物图,并实现其功能。学会设计过程中的检验与完 善。 二、题目理解和功能描述: 用数字逻辑实验板和若干集成芯片实现如下功能: 利用逻辑电平区域中八盏灯的任三盏作为实验的输入和输出,其中以1盏灯(如 K1)作为输入x,用以改变输入的0、1特性,对应两位二进制数的四个状态,二 位二进制计数器逻辑结构如图一所示。 计数器输出y2 y1 二位二进制加1计数 输入x 时钟输入 图1 两位二进制数逻辑结构 当输入x为1时对应的输出序列: 00 01 10 11 此时实验板上输出灯的亮暗变化如下: 亮亮亮暗暗亮暗暗

8位全加器的设计

课程设计报告 课程名称数字逻辑课程设计 课题8位全加器的设计 专业计算机科学与技术 班级1202 学号34 姓名贺义君 指导教师刘洞波陈淑红陈多 2013年12月13日

课程设计任务书 课程名称数字逻辑课程设计 课题8位全加器的设计 专业班级计算机科学与技术1202 学生姓名贺义君 学号34 指导老师刘洞波陈淑红陈多审批刘洞波 任务书下达日期:2013年12月13日 任务完成日期:2014年01月21日

一、设计内容与设计要求 1.设计内容: 本课程是一门专业实践课程,学生必修的课程。其目的和作用是使学生能将已学过的数字电子系统设计、VHDL程序设计等知识综合运用于电子系统的设计中,掌握运用VHDL或者Verilog HDL设计电子系统的流程和方法,采用Quartus II等工具独立应该完成1个设计题目的设计、仿真与测试。加强和培养学生对电子系统的设计能力,培养学生理论联系实际的设计思想,训练学生综合运用数字逻辑课程的理论知识的能力,训练学生应用Quartus II进行实际数字系统设计与验证工作的能力,同时训练学生进行芯片编程和硬件试验的能力。 题目一4线-16线译码器电路设计; 题目二16选1选择器电路设计; 题目三4位输入数据的一般数值比较器电路设计 题目四10线-4线优先编码器的设计 题目五8位全加器的设计 题目六RS触发器的设计; 题目七JK触发器的设计; 题目八D触发器的设计; 题目九十进制同步计数器的设计; 题目十T触发器的设计; 每位同学根据自己学号除以10所得的余数加一,选择相应题号的课题。 参考书目 1 EDA技术与VHDL程 序开发基础教程 雷伏容,李俊,尹 霞 清华大学出版 社 978-7-302-22 416-7 201 TP312VH/ 36 2 VHDL电路设计雷伏容清华大学出版 社 7-302-14226-2 2006 TN702/185 3 VHDL电路设计技术王道宪贺名臣? 刘伟 国防工业出版 社 7-118-03352-9 2004 TN702/62 4 VHDL 实用技术潘松,王国栋7-8106 5 7-81065-290-7 2000 TP312VH/1 5 VHDL语言100 例详解 北京理工大学A SIC研究所 7-900625 7-900625-02-X 19 99 TP312VH/3 6 VHDL编程与仿真王毅平等人民邮电出版 社 7-115-08641-9 20 00 7 3.9621/W38V 7 VHDL程序设计教程邢建平?曾繁泰清华大学出版 社 7-302-11652-0 200 5 TP312VH/27 /3

四位二进制加法器课程设计

课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 1)四位二进制加数与被加数输入 2)二位数码管显示 摘要 本设计通过八个开关将A3,A2,A1,A0和B3,B2,B1,B0信号作为加数和被加数输入四位串行进位加法器相加,将输出信号S3,S2,S1,S0和向高位的进位 C3通过译码器Ⅰ译码,再将输出的Y3,Y2,Y1,Y0和X3,X2,X1,X0各自分别通过一个74LS247译码器,最后分别通过数码管BS204实现二位显示。 本设计中译码器Ⅰ由两部分组成,包括五位二进制译码器和八位二进制输出器。信号S3,S2,S1,S0和向高位的进位C3输入五位二进制-脉冲产生器,将得到的n(五位二进制数码对应的十进制数)个脉冲信号输入八位二进制输出器,使电路的后续部分得以执行。 总体论证方案与选择 设计思路:两个四位二进制数的输入可用八个开关实现,这两个二进制数经全加器求和后最多可以是五位二进制数。本题又要求用两个数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和

个位。综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成八位,其中四位表示这个五位二进制数对应十进制数的十位,另四位表示个位。而译码器Ⅱ有现成的芯片可选用,此处可选74LS247,故设计重点就在译码器Ⅰ。 加法器选择 全加器:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。或:不仅考虑两个一位二进制数相加,而且还考虑来自低位进位数相加的运算电路,称为全加器。 1)串行进位加法器 构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。 优点:电路比较简单。 最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。 2)超前进位加法器 为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。 优点:与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。 缺点:电路比较复杂。 综上所述,由于此处位数为4(比较小),出于简单起见,这里选择串行进位加法器。 译码器Ⅱ选择 译码是编码的逆过程,将输入的每个二进制代码赋予的含意“翻译”过来,给出相应的输出信号。译码器是使用比较广泛的器材之一,主要分为:变量译码器和码制译码器,其中二进制译码器、二-十进制译码器和显示译码器三种最典型,使用十分广泛。显示译码器又分为七段译码器和八段

移位相加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,左移后以全零相加,直至被乘数的最高位。从

8位二进制乘法器

8位二进制乘EDA实验 法器 学号:02115024 [2013.12.15] 班级:021151 姓名:王浩楠 指导老师:徐少莹

一.设计要求 8位二进制乘法采用移位相加的方法。即用乘数的各位数码,从低位开始依次与被乘数相乘,每相乘一次得到的积称为部分积,将第一次(由乘数最低位与被乘数相乘)得到的部分积右移一位并与第二次得到的部分积相加,将加得的和右移一位再与第三次得到的部分积相加,再将相加的结果右移一位与第四次得到的部分积相加,直到所有的部分积都被加过一次。 例如:11010101和10010011相乘,计算过程如下: 二.设计方法 按照这种算法,可以得到下图所示之框图和简单流程图。按照这种算法,可以得到下图所示之框图和简单流程图。图中Y寄存器存放被乘数M,B寄存器存放乘数N,A累加器存放部分积。A和Y中的数据在加法器中相加后送入A 中,而A和B相级联又构成了一个16bit的移位寄存器,当它工作于移位模式时,可以实现数据的右移。由于乘数的每一位不是0就是1 ,对应的部分积不是0就是被乘数本身,所以实际作部分积相加这一步时,只要根据乘数的对应位判断:如该位为1 ,则将累加器中的数据加上被乘数再移位;如该位为0时,就不加被乘数而直接移位。运算时首先将累加器A清零,并将被乘数M和乘数N分别存入寄存器Y和B,然后依据寄存器B中最右一位B0(数据N0)确定第一个部分积。将此部分积送入A累加器以后,将A连同寄存器B右移一位,部分积的最低位被移进寄存器B的最左位,乘数的最低位N0被移出寄存器B,而乘数的次低位N1被移至寄存器B的B0位。第二次仍然依据B0位的数据(N1)来确定第二个部分积,将部分积与累加器中的数据相加后右移一位,N1又被移出寄存器,数据N2被移到B0位置。。。。。这样,经过8次部分积相加位的操作,完成1次乘法运算,乘数N恰好被移出寄存器B,寄存器B中保存的就是运算积的低8位数据。移位相加的次数应用一个计数器来控制,每移位一次,计数器计一个数。当计数器计得8个数时,发出一个信号,使电路停止操作,并输出运算结果。

8位串行二进制全加器

只用一位二进制全加器为基本元件和一些辅助的时序电路,设计一个8位串行二进制全加器。 Vhdl代码如下: 顶层文件如下: library ieee; use ieee.std_logic_1164.all; entity f8_adder is port(a,b:in std_logic_vector(7 downto 0); c0:in std_logic; s:out std_logic_vector(7 downto 0); c1:out std_logic); end f8_adder; architecture bhv of f8_adder is signal cout:std_logic_vector(7 downto 1); component f_adder is port(ain,bin,cin:in std_logic; cout,sum:out std_logic); end component; begin u1: f_adder port map(ain=>a(0),bin=>b(0),cin=>c0,sum=>s(0),cout=>cout(1)); u2: f_adder port map(ain=>a(1),bin=>b(1),cin=>cout(1),sum=>s(1),cout=>cout(2)); u3: f_adder port map(ain=>a(2),bin=>b(2),cin=>cout(2),sum=>s(2),cout=>cout(3)); u4: f_adder port map(ain=>a(3),bin=>b(3),cin=>cout(3),sum=>s(3),cout=>cout(4)); u5: f_adder port map(ain=>a(4),bin=>b(4),cin=>cout(4),sum=>s(4),cout=>cout(5)); u6: f_adder port map(ain=>a(5),bin=>b(5),cin=>cout(5),sum=>s(5),cout=>cout(6)); u7: f_adder port map(ain=>a(6),bin=>b(6),cin=>cout(6),sum=>s(6),cout=>cout(7)); u8: f_adder port map(ain=>a(7),bin=>b(7),cin=>cout(7),sum=>s(7),cout=>c1); end bhv; 全加器描述: library ieee; use ieee.std_logic_1164.all; entity f_adder is port(ain,bin,cin:in std_logic; cout,sum:out std_logic); end f_adder; architecture fd1 of f_adder is

8位二进制加法计算器

一:本实验设计的是一个8为二进制加法计算器,其功能就是对两个八位的二进制数执行加法运算,并可以异步清零。 二:电路可划分为三部分:半加器、全加器和复位电路。 1、半加器: 真值表 a b so co 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 电路图 2全加器:由半加器和或门组成 电路图 3复位电路: 复位电路通过en控制,当en为‘1’时,执行加法运算,输出正确的值,当en为‘0’时,输输出及结果为全0. 三:实验波形仿真和VHDL 1、仿真图:

2、VHDL代码 1)半加器h_adder: library ieee; use ieee.std_logic_1164.all; entity h_adder is port (a,b :in std_logic; co,so :out std_logic); end entity h_adder; architecture fh1 of h_adder is begin so <= not(a xor (not b));co <= a and b ; end architecture fh1; 2)或门or2a: library ieee; use ieee.std_logic_1164.all; entity or2a is port (a,b :in std_logic; c: out std_logic); end entity or2a; architecture one of or2a is begin c <= a or b ; end architecture one; 3)全加器f_adder: library ieee;

八位乘法器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布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配臵、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

八位二进制加法器课程设计

长安大学电子技术课程设计 课题名称______________ 班级______________ 姓名______________ 指导教师 日期______________

前言 8位二进制加法器,它的功能主要是实现两个8位二进制数的相加,其结果的范围应该在00000000到111111110之间,即000到510之间。加法器在实际应用中占据着十分重大的地位,从我们呱呱坠地起,到小学,到初中,到高中,到大学,到工作,等等。我们能离开加法吗,不能!加法可以说是一切运算的基础,因此8位二进制加法器的设计是很有必要的。 那么我们如何设计一个8位二进制加法器呢?在实际应用中,我们通常输入的是十进制数,一个八位二进制数所对应的最大的十进制数是255,于是输入两个范围在000到255之间的数,首先通过二-十进制编码器将输入的三位十进制数的个位、十位、百位分别转换为8421BCD码,得到两个十二位字码,再通过加法器将它们相加,逢10进1,得到一个新的十二位字码,再用7447数字显示译码器将这个十二位字码还原到原来的三位十进制数。最后输出的就是一个三位十进制数,其范围在000到510之间。通过上述方法我们实现了八位二进制数的相加,从而达到了题目的要求。 为实现上述目的,我们需要查阅相关资料。通过查阅,理解以及加以运用,我们认识到了收集资料的不易性,但同时也得到了不少收获,可以说是有苦有甜。同时,虽然我们基本设计出了这个八位二进制加法器,但是不必可避免地会产生一些问题,比如说在连线上可能有更简便的途径,在元件的选用上可能还有其它更简便的方法,在控制上可能还不够精简,等等。我们希望在以后的实践中能找出更好的方法,也希望能吸取这次设计中的不足,逐渐改善。另外,在电子设计的过程中,与同组同学之间的合作配和是十分重要的。我在此次设计中也充分认识到这一点的重要性,我相信这次的电子设计能够为我们将来的工作奠定一定的基础。

8位全加器设计

基于原理图的8位全加器设计 实验目的:熟悉利用Quartus II的原理图输入方法设计简单的组合电路,掌握层次化设 计的方法,并通过一个8位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 实验原理:一个8位全加器可以由8个1位全加器串行构成,即将低位加法器的进位输 出cout与相临的高位加法器的最低位输入信号cin相接。 试验任务:1.完成半加器和全加器的设计。 2.建立一个更高层次的原理图设计,利用以上获得的1位全加器构成8位全加器,完成编译、综合、适配、仿真和硬件测试。 实验步骤: 一、1位全加器设计 1.建立工程文件夹adder,路径d:\adder。 2.输入设计项目和存盘 原理图编辑输入流程如下: (1)打开Quartus II,选择file—>new命令,在弹出的窗口中选择block diagram/schematic file 选项,单击ok按钮后将打开原理图编辑窗口。 (2)在编辑窗口中的任何一个位置上右击,将弹出快捷菜单,选择inset—>symbol命令,将弹出元件输入对话框。 (3)单击“…”按钮,找到基本元件库路径d:/altera/90/quartus/libraries/primitives/logic项(假设软件安装在D盘),选中需要的元件,单击“打开”按钮,此元件即显示在窗口中,然后单击symbol窗口中的ok按钮,即可将元件调入原理图编辑窗口中。也可以在name栏输入需要的元件名。调入好元件和引脚后,连接好电路,再输入各引脚名。 (4)选择file—>save as命令,选择刚才为自己的工程建立的目录d:\adder,将已设计好的原理图取名为h_adder.bdf,并存盘此文件夹内。 3.将设计好的项目设置成可调用的元件 为了构成全加器的顶层设计,必须将以上设计的半加器h_adder.bdf设置成可调用的元件。在打开半加器原理图文件的情况下,选择file—>create/update—>create symbol file for current file命令,即可将当前文件h_adder.bdf变成一个元件符号存盘,以待高层次设计中调用。4.设计全加器顶层文件 打开一个原理图编辑窗口,方法同前。在新打开的原理图窗口中双击,在弹出的窗口中选择project选项,选择h_adder.bdf,并调入其他元件,连接好电路。以f_adder.bdf名存在同一路径d:\adder中。 二、8位全加器设计 1.将刚设计好的1位全加器设置成可调用的元件,方法同上。 2.调入元件,连接电路图,以8f_adder.bdf保存于同一路径d:\adder中的文件夹中。 3.将顶层文件8f_adder.bdf设置为工程。 4.编译与仿真 原理图与仿真波形分析:

移位硬件八位乘法器

移位硬件八位乘法器 作者:孤灯 摘要:纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容 易的用ASIC大型集成芯片来完成,性价比高,可操作性强。 关键词:加法器,寄存器,一位乘法器,锁存器。 Abstract The pure combinatory logic constitution multiplier although the working speed quite is quick,But too takes the hardware resources,Realizes the wide position multiplier with difficulty.Meets the ROM multiplication table based on the PLD component outside the multiplier then is unable to constitute the monolithic system,Also is impractica Here introduced constitutes by eight accumulators by the succession logic way design eight multipliers,Has the certain practical value, Moreover constitutes the experimental system after FPGA,May be very easy to complete with the ASIC large-scale integration chip,The natural price is higher than,Feasibility. 一.设计思路 纯组合逻辑构成的乘法器虽然工作速度比较快,但过于占用硬件资源,难以实现宽位乘法器,基于PLD器件外接ROM九九表的乘法器则无法构成单片系统,也不实用。这里介绍由八位加法器构成的以时序逻辑方式设计的八位乘法器,具有一定的实用价值,而且由FPGA构成实验系统后,可以很容易的用ASIC大型集成芯片来完成,性价比高,可操作性强。其乘法原理是:乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数左移后与 上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。 二.方案设计与论证 此设计是由八位加法器构成的以时序逻辑方式设计的八位乘法器,它的核心器件是八 加法器,所以关键是设计好八位加法器。 方案一:八位直接宽位加法器,它的速度较快,但十分耗费硬件资源,对于工业化设计是不合理的。 方案二:由两个四位加法器组合八位加法器,其中四位加法器是四位二进制并行加法器,它的原理简单,资源利用率和进位速度方面都比较好。综合 各方面的考虑,决定采用方案二。 三.工作原理

设计一个四位二进制计数器

1、要求:设计一个四位二进制计数器,将计数结果由数码管显示,显示结果为十进制数。数码管选通为低电平有效,段码为高电平有效。 分析:VHDL 描述包含五部分:计数器、将四位二进制数拆分成十进制数的个位和十位、二选一的数据选择器、七段译码、数码管选通控制信号 线定义为信号 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity counter3 is Port ( clk:in STD_LOGIC; clk1 : in STD_LOGIC; clr : in STD_LOGIC; en : in STD_LOGIC; co : out STD_LOGIC; scanout:out std_logic_vector(1 downto 0); ledout:out std_logic_vector(6 downto 0)); end counter3; architecture Behavioral of counter3 is signal cnt:std_logic_vector(3 downto 0); signal cnt1:std_logic_vector(3 downto 0); signal cnt2:std_logic_vector(3 downto 0); signal hex:std_logic_vector(3 downto 0); signal scan:std_logic_vector(1 downto 0); en clr

用原理图方法设计8位全加器

实验报告一 一、实验目的 熟悉利用QuartusII的原理图输入方法设计简单电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。 二、实验内容 1.根据工作原理,完成1位半加器和全加器的设计; 2.建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成 编译、综合、适配、仿真。 三、实验环境 计算机、QuartusII软件 四、实验步骤 1.根据半加器工作原理,建立电路并仿真,并将元件打包。 (1)电路 (2)仿真: 仿真结果分析:S为和信号,当A=1,B=0或A=0,B=1时,和信号S为1,否则为0.当A=B=1时,产生进位信号,及CO=1。 (3)打包后的文件:

2.利用半加器构成一位全加器,并打包。 (1)电路 (2)仿真 仿真结果分析:CI为来自低位的进位,S=A xor B xor CI,即:当A,B,CI中有一位为高电平‘1’或者三位同时高电平为‘1’,则S=1,否则S=0;当A,B,CI有两位或者三位同为高电平‘1’时,产生进位信号CO=‘1’。 (3)打包后的文件 3.利用全加器构成8位全加器,并完成编译、综合、适配、仿真。 (1)电路

(2)仿真 仿真结果分析:八位全加器,和S分别与A,B 对应。当来自第七位的进位信号为‘1’、A 的最高位和B的最高位三者有两个位高电平‘1’时,则产生进位信号CO=‘1’。 五、实验结果与讨论 实验的仿真结果与预计的结果一致,所以所设计的电路是正确的。不足的地方有: 1、对软件还不够熟悉,所以操作的有点慢;

2、设计电路时,由于数字电路的知识有些开始淡忘了,所以应当及时去补 缺补弱。 六、总结 思考题:为了提高加法器工作速度,如何改进以设计的进位方式? 答:采用超前进位。串行加法器的第i位进位是由0~(i-1)决定的,而超前进位是事先得出每一位全加器的进位输出信号,而无需再从低位开始向高位逐位传递进位信号了,这就有效地提高了工作速度了。

EDA课程设计八位二进制全加器

EDA课程设计八位二进制全加器

EDA设计说明书 课程名称: EDA技术实用教程 设计题目:八位二进制全加器 院系:电子信息与电气工程学院学生姓名: 学号: 专业班级: 指导教师:李响 年 6 月 1

1. 设计目的 熟悉利用QuartusⅡ的原理图输入法设计简单的组合电路,掌握层次化设计的方法,并经过一个八位全加器的设计把握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。 2. 设计原理 2.1 一位全加器的原理 一位全加器能够用两个半加器及一个或门连接而成,因此需要首先完成半加器的设计。在本设计中,将采用原理图输入法来完成设计。 一位全加器的设计步骤: ①为本项工程设计建立文件夹; ②输入设计项目和存盘; ③将设计项目设计成可调用的元件; ④设计全加器顶层文件; ⑤将设计项日设置成工程和时序仿真。 2.2 八位全加器的原理 一个八位全加器能够由八个一位全加器构成,加法器之间的进位能够用串行方式实现,即将低位加法器的进位输出cout 与相邻的高位加法器的最低进位输入信号cin 相接。

3. 设计方案与仿真 3.1 一位全加器的设计与仿真 全加器的实现是以半加器的实现为基础的,因此,要设计全加器应首先设计一个一位的半加器。半加器的实现方案为: ①为此项工程建立文件夹; ②在基本元件库中,选中需要的元件,将元件(包含元件 and2、not 、xnor 和输入输出引脚input、output)调入原理图编辑窗口中; ③将己设计好的原理图文件存盘; ④将所设计的半加器设置成可调用的元件。 用原理图输入法所设计的半加器原理图如图3-1所示,利用QuartusⅡ软件平台,根据图3-1所示电路,可生成一个半加器元件符号,如图3-2所示。在半加器的基础上,为了建立全加器的顶层文件,必须再打开一个原理图编辑窗口,方法同上。其中,所选择的元件包含半加器、或门和输入输出引脚,由此可得到如图3-3所示的全加器原理图;进而可生成个全加器元件符号,如图3-4所示。 图3-1 半加器原理图图3-2 半加器元件符号

利用Quartus II软件和原理图输入法设计八位加法器

摘要 Quartus II是最高级和复杂的,用于system-on-a-programmable-chip (SOPC)的设计环境。Quartus II提供完善的timing closure 和LogicLock 基于块的设计流程。QuartusII design是唯一一个包括以timing closure 和基于块的设计流为基本特征的programmable logic device (PLD)的软件。Quartus II 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供FPGA与mask-programmed devices开发的统一工作流程。 本文介绍了微机上的QuartusⅡ软件系统的使用,并用该软件分别设计半加器,全加器,并编译连接设计一个8位加法器的过程。 关键词:8位加法器;EDA(电子设计自动化);QuartusⅡ(可编程逻辑软件)

目录 第1章概述 (1) 1.1EDA的概念 (1) 1.2硬件描述语言概述 (2) 第2章QUARTUS II (4) 2.1QUARTUSII概述 (4) 2.2QUARTUSII建立工程项目 (4) 2.3QUARTUSII建立原理图输入文件 (6) 2.4QUARTUSII层次化项目设计 (9) 第3章8位加法器设计 (12) 3.18位加法器分析 (12) 3.2设计过程 (12) 参考文献 (15) 结论 (16)

第1章概述 1.1 EDA的概念 EDA是电子设计自动化(Electronic Design Automation)的缩写,从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。 由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。但从EDA技术的几个主要方面的内容来看,可以理解为EDA技术就是以计算机为工具,设计者在EDA软件平台上,以硬件描述语言为系统逻辑描述的主要表达方式完成设计文件,然后由计算机自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度[1]。 利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。 EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB 布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能[2]。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成[3]。 1.1.1 EDA的发展 从目前的EDA技术来看,中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分的设计人员工发复杂的片上系

EDA8位二进制并行加法器

实验二:8位加法器的设计 1.实验目的 (1)学习Quartus Ⅱ/ISE Suite/ispLEVER软件的基本使用方法。 (2)学习GW48-CK或其他EDA实验开发系统的基本使用方法。 (3)了解VHDL程序的基本结构。 2.实验内容 设计并调试好一个由两个4位二进制加法器级联而成的8位二进制并行加法器,并用GW48-CK或其他EDA实验开发系统(事先应选定拟采用的实验芯片的型号)进行硬件验证。3.实验要求 (1)画出系统的原理图,说明系统中各主要组成部分的功能。 (2)编写各个VHDL源程序。 (3)根据系统的功能,选好测试用例,画出测试输入信号波形或编号测试程序。 (4)根据选用的EDA实验开发装置编好用于硬件验证的管脚锁定表格或文件。 (5)记录系统仿真、逻辑综合及硬件验证结果。 (6)记录实验过程中出现的问题及解决办法。 4.实验条件 (1)开发条件:Quartus Ⅱ 8.0。 (2)实验设备:GW48-CK实验开发系统。 (3)拟用芯片:EPM7128S-PL84。 5.实验设计 1)系统原理图 为了简化设计并便于显示,本加法器电路ADDER8B的设计分为两个层次,其中底层电路包括两个二进制加法器模块ADDER4B,再由这两个模块按照图2.1所示的原理图构成顶层电路ADDER8B。 ADDER4B 图2.1 ADDER4B电路原理图

A8[7..0] 图 2.1 ADDER8B电路原理图 2)VHDL程序 加法器ADDER8B的底层和顶层电路均采用VHDL文本输入,有关VHDL程序如下。ADDER4B的VHDL源程序: --ADDER4B.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER4B IS PORT(C4:IN STD_LOGIC; A4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); B4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CO4: OUT STD_LOGIC); END ENTITY ADDER4B; ARCHITECTURE ART OF ADDER4B IS SIGNAL S5:STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL A5,B5:STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN A5<='0'&A4; B5<='0'&B4; S5<=A5+B5+C4; S4<=S5(3 DOWNTO 0); CO4<=S5(4); END ARCHITECTURE ART; ADDER8B的VHDL源程序: --ADDER8B.VHD LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ADDER8B IS

相关文档
最新文档