EDA课程设计 一位全加器的设计Word文件下载.docx
《EDA课程设计 一位全加器的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《EDA课程设计 一位全加器的设计Word文件下载.docx(10页珍藏版)》请在冰点文库上搜索。
![EDA课程设计 一位全加器的设计Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/3/34b83d89-61ee-43ab-999b-729a549f51c5/34b83d89-61ee-43ab-999b-729a549f51c51.gif)
成绩:
摘要:
本设计主要是利用VHDL语言设计一个一位全加器,它由半加器和或门两个模块组成。
两个模块通过顶层元件例化连接到一起。
几个模块组成的整体能够实现全加器的功能,对所给数据,能够准确快速地计算出其结果.
具体的该设计利用VHDL语言使用文本输入,新建工程,通过设计输入、编译、仿真完成各种模块设计,然后生成元器件,再根据元件例化完成各部分的整合,从而形成一个完整的全加器,功能上很好地被满足。
关键字:
全加器元件例化
Abstract:
ThisdesignprimarilyusesVHDLlanguagetodesigntheonebitfulladder,whichiscomposedoftwohalfadderandaORgate.ThetwomodulesareconnectedbytopComponentinstance.Finally,thewholeofseveralpartsachievethefunctionoffulladder.Forgivendates,itcancalculateitsconsequenceaccuratelyandquickly.
Indetail,thedesignusestextinputmethodbyVHDLlanguagetocreatenewprojects.Bydesigningtheinput,compile,simulate,itcompletevariousmodulesdesignandgeneratenewcomponents.Thenitformsacompleteonebitfulladderbyaccomplishingtheintegrationofallparts,accordingtocomponentinstance.Andthefunctioncanbewellsatisfied.
Keyword:
fulladdercomponentinstance
一.原理(说明)
在计算机中2个二进制数之间的加减乘除算术运算都是由若干加法运算实现的.全加器是算术逻辑运算的重要组成部分,对其深入探索研究有重要的意义。
一位全加器及其表达式在将2个多位二进制数相加时,除了最低位以外,每位都应该考虑来自低位的进位,即将2个对应位的加数和来自低位的进位3个数相加,实现这种运算电路即是全加器.设A是加数,B是被加数,CI是来自低位的进位,S是本位的和,CO是向高位的进位.根据二进制数加法运算规则和要实现的逻辑功能,得出一位全加器真值表,
全加器除了两个1位二进制数相加以外,还与低位向本位的进位数相加.表为全加器的真值表。
Ai
Bi
CI-1
Ci
S
1
图1.全加器f_adder电路图及其实体模块
由真值表可得出逻辑函数式
式中,Ai和Bi是两个相加的1为二进制数,Ci-1是由相邻低位送来的进位数,SI是本位的全加和,CI是向相邻高位送出的进位数。
由数字电路知识可知,一位全加器可由两个一位半加器与一个或门构成,其原理图如图所示。
该设计利用层次结构描述法,首先设计半加器电路,将其打包为半加器模块;
然后在顶层调用半加器模块组成全加器电路;
最后将全加器电路编译下载到实验箱,其中a,b,cin信号可采用实验箱上键1、键2和键3进行输入,s,co信号采用D1与D2发光二极管来显示。
一位全加器将A1、B1和进位输入Cin作为输入,计算得到和S1以及最高位的进位输出Cout。
每一位得到的和与进位输出都直接受其上一位的影响,其进位输出也会影响下一位。
最终,整个全加器的和与输出都受进位输入Cin的影响。
图2.半加器h_adder电路图及其真值表
二.方案论证
利用VHDL语言描述的一位全加器,借助于EDA工具中的综合器、适配器、时序仿真器和编程器等工具进行相应的处理,最后以FPGA实现。
相对于用74ls138,74ls153芯片,用门电路或基于混沌映射的全加器实现方法,其具有灵活的逻辑结构,能实现各种复杂的逻辑功能,有较好的稳定性,充分体现了模块设计的要求等优点。
这种方法的原理框图如图所示,它由以下两个模块组成,分别为半加器、或门,最后通过顶层元件例化将两部分连接起来实现全加器的功能。
现代EDA技术的基本特征是采用高级语言描述,具有系统级仿真和综合能力。
而VHDL语言有强大的行为描述能力和多层次的仿真模拟,程序结构规范,设计效率较高,同时具有支持自顶向下(ToptoDown)的设计特点,在顶层进行系统的结构设计,在方框图一级用VHDL对电路的行为进行描述,并仿真和纠错,然后在系统一级进行验证,最后用逻辑综合优化工具生成具体的门级逻辑电路网表,下载到具体的CPLD器件中去。
由于VHDL有良好的电路行为描述和系统描述能力,利用VHDL语言和CPLD器件设计全加器避免了硬件电路复杂,体积体积庞大,设计死板,性能差的缺点。
原理框图
三.各功能模块的实现及功能仿真
1.半加器的VHDL描述和其仿真结果。
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYh_adderIS
PORT(a,b:
INSTD_LOGIC;
co,so:
OUTSTD_LOGIC);
ENDENTITYh_adder;
ARCHITECTUREfh1OFh_adderis
BEGIN
so<
=NOT(aXOR(NOTb));
co<
=aANDb;
ENDARCHITECTUREfh1;
生成的元器件
半加器的功能仿真结果:
由仿真结果可知,仿真波形与设计要求相一致,半加器在将2个多
位二进制数相加时,不考虑来自低位的进位,即只将2个对应位的加数相
加。
2.或门的VHDL描述和其仿真结果
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYor2aIS
INSTD_LOGIC;
c:
OUTSTD_LOGIC);
ENDor2a;
ARCHITECTUREoneOFor2aIS
BEGIN
c<
=aORb;
ENDone;
生成的元器件
或门的功能仿真结果:
由仿真结果可知,仿真波形与设计要求相一致,实现了或门的“全零得零,见一出一”的功能。
3.全加器顶层设计的VHDL描述和其仿真结果
ENTITYf_adderIS
PORT(ain,bin,cin:
cout,sum:
ENDENTITYf_adder;
ARCHITECTUREfd1OFf_adderIS
COMPONENTh_adder
PORT(a,b:
co,so:
ENDCOMPONENT;
COMPONENTor2a
PORT(a,b:
SIGNALd,e,f:
STD_LOGIC;
u1:
h_adderPORTMAP(a=>
ain,b=>
bin,co=>
d,so=>
e);
u2:
e,b=>
cin,co=>
f,so=>
sum);
u3:
or2aPORTMAP(a=>
d,b=>
f,c=>
cout);
ENDARCHITECTUREfd1;
全加器顶层设计的功能仿真结果:
由仿真结果可知,仿真波形与设计要求相一致,一位全加器
将2个多位二进制数相加时,除了最低位以外,每位都考虑了来自
低位的进位,即将2个对应位的加数和来自低位的进位3个数相
加.
四.总结
通过本次课程设计对全加器的设计和实现,使我积累并总结了一些经验,锻炼了独立工作和实际动手能力,加深了对计算机中的全加器工作原理的认识,提高了对复杂的综合性实践环节分析问题,解决问题,概括总结的实际工作能力,对涉及全加器项目的开发,设计过程有了初步认识。
整个设计采用VHDL语言进行描述,利用EDA工具对其进行综合,适配,和时序仿真,最终由FPGA实现。
在选择仿真器和综合器类型是quartusII中自带的仿真器和综合器。
近一周的课程设计,用VHDL语言实现的一位全加器基本设计完毕,其功能基本符合设计要求,能够完成二进制加法的计算。
但由于时间仓促加之本人能力有限,设计中还有很多不足之处,有待进一步完善。
通过自己的亲自动手,我真正看到了理论与实践之间的差距,我知道,以后的学习中,要不断完善自己的知识体系结构,注重理论与实践的结合,学会灵活运用所学知识,达到学以致用的地步。
在本次的课设中,我学到了很多东西,通过这个过程,无论在理论上还是在实践中,我的计算机水平都得到了提高,我想这对以后是很有利的。
五.参考文献:
[1]潘松,黄继业.EDA技术实用教程[M].北京:
科学出版社.,2006.
[2]刘卫东.计算机组成原理与设计实验指导[M].北京:
清华大学出版社,2002.
[3]王紫婷,吴蓉,张彩珍,等.EDA技术与应用[M].兰州:
兰州大学出版社,2003.
[4]罗力帆,常春藤,等.基于VHDL的FPGA开发快速入门·
技巧·
实例[M].北京:
人民邮电出版社,2009.