《八位加法器的设计实验报告.docx》由会员分享,可在线阅读,更多相关《八位加法器的设计实验报告.docx(14页珍藏版)》请在三一办公上搜索。
1、学号:U200915272班级:信息安全0901姓名:方浏洋日期:2011-5-2目录一、 实验概述-2 -二、 设计思路-3 -2.1 Quartus II 中 74181 的功能分析-3 -2.2 8位先行加法器的设计-3 -2.3 8位行波进位加法器的设计-4 -三、 实验内容-5 -3.1 8位先行加法器-5 -3.2 8位行波加法器-7 -3.3对先行进位和行波进位的时序分析-9 -四、心得体会-11 -一、实验概述利用EDA软件分别设计一个先行进位和行波进位的8位加法器,分别对它们 进行时序分析,比较先行进位和行波进位在时间上的差异。EDA是电子设计自动化(Electronic D
2、esign Automation)的缩写。在EDA 平台上,设计者可以用硬件描述语言完成设计文件,然后由计算机自动地完成逻 辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对特定目标芯片的 适配编译、逻辑映射和编程下载等工作。利用EDA工具,电子设计师可以从概念、 算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子 产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上 自动处理完成。本次实验将利用目前在国内比较流行的EDA软件工具Quartus II。Quartus II是Altera公司提供的FPGA/CPLD开发集成环境,界面友好,使用便捷,是
3、最 易用、易学的EDA软件。在Quartus II上可以完成设计输入、元件适配、时序仿 真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境。借助 它,设计者能方便地进行设计输入、快速处理和器件编程。实验中,我通过原理图输入的方法来设计输入,然后对其进行仿真,验证器 件的正确性,最后对其进行时序分析,比较两种进位加法器在时间上的差异。二、设计思路2.1 Quartus I中74181的功能分析要求设计一个8位的加法器,为了方便,我采用了两个74181进行组合来实 现8位加法器的功能。在Quartus I中,74181元件的输入输出引脚与书上的略74161AONBQNA1NB1NQN
4、A2NPNAB2NFONAA3NF1N:AB3NF2NACNF3NAMAEQBASOCN4AS12S3ALU图 1 Quartus II中的74181方框图有不同。图1示出了 QuartusII的元件库中的74181方框图。与书上的相比,它的A、B、F、P、G和A=B都是工作于负 操作数,那么,要进行算术加法运算,则S3S2S1S0二HLLH, M=L,CN=H。输入 A3N、A2N、A1N、A0N、B3N、B2N、B1N、 B0N 得到 GN、PN、F0N、F1N、F2N、F3N、CN4。类似于正 操作数的74181,FN=AN+BN,CN4的非为进位,GN为进位 产生函数,PN为进位传递函
5、数。2.2 8位先行加法器的设计先行进位即高位进位和低位进位同时产生的进位。由于74181内部就是采取 的先行进位,因此,只需考虑两片74181之间的进位关系。将操作数分成低4位和高4位,利用一片74181提供的低4位的进位传输输 出PN和进位发生输出GN来产生另一片的进位。则进位关系为:C=GN+C - PN式中,C对应高4位74181的初始进位,C对应低4位74181的初始进位,GN和 PN对应低4位74181的相应引脚。结构框图如下:组合电路图2 8位先行进位加法器2.3行波进位加法器的设计GNCN行波进位也就是串。进位,| &位的的进位都是由相邻的低位送来。实验中,采取用8个一位全加器
6、来实现。结构如图3所示:图3 8位行波进位加法器可是,在元件库中没有一位全加器。那就需要先设计一个一位全加器。根据FA的本位和及进位表达式:Si = AiBiCi_1Ci+i=AiBi+(Bi+Ai)Ci-做出一位全加器的逻辑电路图,通过QuartusII来生成元件,方便调用。最后,将8个FA串行连接起来就成了 8位行波进位加法器。三、实验内容3.1 8位先行加法器原理图输入。根据设计思路,利用两个74181来实现先行进位,最后得到原理图如图4编译。保存原理图文件,并将其设置为顶层模块,然后编译。图5为编译成功的提 示和报告。Flow StatusQu:=Lftus II Ver 5 i on
7、Revi si on IodineTup-level Entity ILdirieF :=jti i lyDevi ceTiming MudeleMet timing requirHmerLtsTotal logi c elementETotal pinsTotal virtual pinsTotal memory bitsTotal FLLeSuccPEEhJ. - Men May 09 13:07:52 20116.0 Build 202 06/20/2006 SF 1 SJ Full Versionshi j i :=ltlCyclont!EF1C3T144C6Finald20 / 2,
8、910 ( 1 % )21 / 104 ( 20 % )0 / 59, 904 ( 0 % )0 / 1 ( 0 % )图5 8位先行加法器利用QuartusII编译成功后的界面功能仿真。设计两组 A、B 值,1111 1111 加 1111 1111 和 1111 0011 加 1110 0011,正 确结果分别为:FC=1, F=1111 1110 和 FC=1, F=1101 0110。nnnn_/_/_/_Z_Z_Z_Z_Z_/ADAlA2A3A4A5ABATB0BlB2B3B4B5B6BiCnlTF0FlF2F3F4F5F6FTFCB1B1B1B1B1B1B1B1B1B1B1B1B1
9、B1B1B1B1B0B1B,图61B1B1B1B1B1B1第一组数据仿真图二组数据仿真图ADB 1A1B 1A2B 0A3B 0A4B 1A5B 1A6B 1A7B 1B0B 1B1B 1B2B 0B3B 0B4B 0B5B 1B6B 1B7B 1CnNB 1F0B 0FlB 1F2B图F3B 0! addi.CinSii . L .aCob= :.v -I图8 一位全加器的原理图(左)和逻辑符号(右)然后,利用8个一位全加器串行连接,组成一个8位行波进位加法器。设计步骤与先行加法器一样,其原理图,编译报告如图9,图10所示。Flow Statusyu:=LrtuE II Ver si nnS
10、uccesEhjl - Mon May 09 14:15:13 20116.0 Build 202 06/20/2006 SF 1 SJ Full VersionRevi e i on N:dJTieshij i anTup-level Entity H:diriehangbaoF :=iiti i lyCycloneDeviceEF1C3T144C6Timing ModelsFinalMet timing requiremerLtsYesTot:al logic elerTiHrLtE16 / 2,910 ( 1Tot:al pins26 / 104 ( 25 %Tot:al virtual
11、 pins0Tot:al memory bits0 / 59? 904 (Cl %Tot:al FLLs0 / 1 ( 0 % )图10 8位行波加法器利用QuartusH编译成功后的界面设计完成后,对其进行功能仿真,测试数据仍然是1111 1111加1111 1111 和 1111 0011 加 1110 0011,正确结果分别为:FC=1, F=1111 1110 和 FC=1, F=1101 0110。仿真图与先行进位的结果一样,这里就不做展示。3.3对先行进位和行波进位的时序分析在上述设计过程中,对设计进行编译时,系统会有对时序的分析过程。由于 这两个加法器是组合逻辑电路,因此,时序分
12、析只针对于它们引脚之间的延迟时 间。图11和图12分别是先行进位加法器和行波进位加法器的时序分析结果。Timing Analyzer SummaryTypeSlackRequired TimeActual TimeFromToFromClockTo ClockFailedPathsWorst-case tpdN/ANone14.841 nsS1F702T otal number of failed paths0图11先行进位加法器的时序分析结果Timing Analyzer SummaryTvpeSlackRequired TimeActual TimeFromToFrom ClockTo C
13、lockFailedPathsLWorst-case tpdN/ANone13.156 nsCinF707T otal number of failed paths0图12行波进位加法器的时序分析结果根据图上的分析结果,先行进位在时间上比行波进位快,这与我们在书上看 到的结论不一样。据我分析,会出现这样的结果可能是以下几个原因: 实验中,先行进位加法器是由74181实现的,而行波进位加法器是由一位 全加器实现的。因为74181本身就具有复杂的内部结构,即使是先行进位也可能 比行波进位慢。 8位加法器的位数比较少,行波进位的延迟时间的累积效应体现的不明显 而出现这种情形。四、心得体会在这一次课外
14、实践中,我觉得自己收获不少。实践过程中,我遇到了不少问 题,但是通过对课本的理解和在网上资料的查找,以及不懈的努力,锻炼了我动 手实验和独立思考的能力。这次实践使自己的课本知识可以通过实验进行深一步认识,使得理论与实际 相结合,加深自己对课本的理解,同时也锻炼了自己的分析理解能力。其次,我 因此认识了 EDA平台,对QuartusII软件的使用也有了一个学习的过程,我学会 了如何使用QuartusII来制作逻辑电路图,实现逻辑电路的仿真,并对逻辑电路 进行时序分析。然而,由于时间的关系,这次实践肯定也有一些不足的地方。但是,最起码 我做了一些成果出来,我体验到了这次实践的过程。相信以后我会以更加积极的 态度去对待学习,认真对待每一个实验,珍惜每一分每一秒,学到最多的知识和 方法,锻炼自己的能力,这个是我在实验上学到的最重要的东西,也使以后都将 受益匪浅。