CMOS数字集成电路设计_八位加法器实验报告

合集下载

实验一、8位加法器的设计

实验一、8位加法器的设计

E D A技术实验报告题目实验一、8位加法器的设计学生姓名学号10100140所在学院物理与电信工程学院专业班级物理101班一、实验原理基本原理:调用库(USE IEEE.STD_LOGIC_ARITH.ALL)直接进行算术运算,以实现加法器功能,从而不用去编写全加器,即程序尽量简单化。

并用函数CONV_INTEGER(D)把输入的8位二进制数转换成整形数,再相加以十进制数在数码管上显示出来。

加法信号由(ST)控制,ST接一个正脉冲信号,当来一个下降沿时,就读进第一个8位二进制数,再来一个下降沿时就执行加法功能,前后两个8位二进制数相加。

进程process (p)就是把三位十进制数的百位、十位、各位分别取出来,再转换成4位逻辑位矢量。

一个简单加法器,能够实现加法运算并显示结果,在按键控制下,由开关变量以二进制(不超过8位)的形式送入加数和被加数,但必须以十进制的形式显示,按下加法按键后,以十进制方式显示结果。

根据要求首先加法器中必须有二进制(8位)转换成十进制电路,其次加法器中需要用开关变量来控制加数和被加数的输入,再次输入的二进制加数和被加数必须经过转换成十进制后显示,最后加法完成结果以十进制显示。

其二进制(8位)全为1时转换成十进制表示为255,先设三位分别表示十进制数的百位、十位和个位。

将二进制数分别减去100的二进制数,循环直至二进制数小于100,百位循环一次加一,根据同样的道理得出十位和个位。

加数和被加数的输入和显示,利用高低电平控制显示器,当电平为高电平时显示加数和被加数的和,利用选择器来分别选择输出显示,当低电平时分别显示输入的二进制加数和被加数。

加法器是数字系统中的基本逻辑器件,减法器和硬件乘法器都可由加法器来构成。

多位加法器的构成有两种方式:并行进位和串行进位。

并行进位加法器设有进位产生逻辑,运算速度较快;串行进位方式是将全加器级联构成多位加法器。

并行进位加法器通常比串行级联加法器占用更多的资源。

CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计_八位加法器实验报告

CMOS数字集成电路设计课程设计报告学院:******专业:******班级:******姓名:Wang Ke qin指导老师:******学号:******日期:2012-5-30目录一、设计要求..............................................错误!未定义书签。

二、设计思路..............................................错误!未定义书签。

三、电路设计与验证........................................错误!未定义书签。

(一) 1位全加器的电路设计与验证........................错误!未定义书签。

1) 原理图设计......................................错误!未定义书签。

2) 生成符号图......................................错误!未定义书签。

3) 建立测试激励源..................................错误!未定义书签。

4) 测试电路........................................错误!未定义书签。

5) 波形仿真........................................错误!未定义书签。

(二) 4位全加器的电路设计与验证........................错误!未定义书签。

1) 原理图设计......................................错误!未定义书签。

2) 生成符号图......................................错误!未定义书签。

3) 建立测试激励源..................................错误!未定义书签。

实验六 8位全加器的设计

实验六 8位全加器的设计

实验六8位全加器的设计实验报告一、实验要求1、GW48实验箱;2、用原理图输入方式设计8位全加器,并进行编译、仿真、下载;3、总结实验步骤和实验结果。

二、实验内容1、本设计中的8位二进制并行加法器即是由两个4位二进制并行加法器级联而成的,其电路原理图如图所示2、完成4位全加器ADDER4B的设计,并将此全加器电路设置成一个硬件符号入库。

建立一个更高的原理图设计层次,可以取名为ADDER8B。

利用以上获得的4位全加器构成8位全加器,并完成编译,仿真和硬件测试。

3、硬件逻辑验证:选择实验电路结构图NO.1和上图确定引脚的锁定。

如可取实验电路结构图的PIO3~PIO0接A[3..0],PIO7~PIO4接A[7..4],PIO11~PIO8接B[3..0],PIO15~PIO12接B[7..4],PIO49接CIN。

此加法器的被加数A和加数B分别由键2与键1、键4与键3输入,加法器的最低位进位CIN由键8输入,计算和S将分别通过PIO23~PIO20,PIO19~PIO16输出并显示于数码管6(高四位)和数码管5(低四位),溢出进位COUT由PIO39输出,当有进位时,结果显示于发光管D8上。

参考源程序:4位二进制并行加法器的源程序ADDER4Bmodule ADDER4B(A,B,CIN,S,CONT);output [3:0]S;output CONT;input [3:0]A,B;input CIN;assign {CONT, S}=A+B+CIN;endmodule三、实验步骤1、创建文件Max-plus->text editor源代码2、创建缺省符号(Creat Default Symbol)然后添加到框图中:3、连线并标注接口4、编译5、仿真6、下载1)引脚锁定2)开始下载四、实验结果选择实验电路结构图NO.1,此加法器的被加数A和加数B分别由键2与键1、键4与键3输入,加法器的最低位进位CIN由键8输入,当有进位时,结果显示于发光管D8上。

八位加法器的设计实验报告

八位加法器的设计实验报告

八位加法器的设计实验报告学号: U200915272班级:信息安全 0901姓名:方浏洋日期: 2011-5-2目录一、实验概述 ....................................................................................................................... - 2 -二、设计思路 ....................................................................................................................... - 3 -2.1 QuartusⅡ中74181的功能分析 ....................................................................... - 3 -2.2 8位先行加法器的设计 ...................................................................................... - 3 -2.3 8位行波进位加法器的设计 .............................................................................. - 4 -三、实验内容 ....................................................................................................................... - 5 -3.1 8位先行加法器 .................................................................................................. - 5 -3.2 8位行波加法器 .................................................................................................. - 7 -3.3 对先行进位和行波进位的时序分析 ................................................................. - 9 -四、心得体会 ..................................................................................................................... - 11 -- 1 -一、实验概述利用EDA软件分别设计一个先行进位和行波进位的8位加法器,分别对它们进行时序分析,比较先行进位和行波进位在时间上的差异。

8位全加器课程设计报告

8位全加器课程设计报告

8位全加器课程设计报告一、课程目标知识目标:1. 学生理解8位全加器的基本概念,掌握全加器的逻辑结构和工作原理;2. 学生掌握8位全加器的电路图绘制方法,能分析并解释全加器中各个部分的作用;3. 学生了解8位全加器在计算机运算中的应用,理解其重要性。

技能目标:1. 学生能够运用所学知识,独立完成8位全加器的电路图设计;2. 学生能够运用逻辑门电路,搭建8位全加器电路,并进行功能验证;3. 学生能够通过实际操作,提高解决问题的能力和团队协作能力。

情感态度价值观目标:1. 学生培养对电子技术课程的兴趣,激发学习热情;2. 学生在学习过程中,树立正确的科学态度,注重实践,勇于创新;3. 学生通过团队合作,培养沟通与协作能力,增强集体荣誉感。

课程性质分析:本课程为电子技术课程的一部分,重点在于让学生掌握8位全加器的原理和应用,培养实际操作能力。

学生特点分析:八年级学生具有一定的电子技术基础,对电路有一定的了解,但可能对全加器的理解尚浅,需要通过具体实例和操作来加深理解。

教学要求分析:本课程要求教师以理论与实践相结合的方式进行教学,注重培养学生的实际操作能力和团队协作能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保课程目标的实现。

通过本课程的学习,学生能够达到上述具体的学习成果。

二、教学内容1. 引言:介绍全加器在数字电路中的重要性,回顾一位全加器的基本原理,引出8位全加器的研究意义。

2. 理论知识:a. 8位全加器的定义和功能;b. 8位全加器的逻辑结构,包括加法器、进位发生器和进位传递部分;c. 8位全加器的真值表和逻辑表达式。

3. 实践操作:a. 8位全加器电路图的绘制;b. 利用集成电路芯片搭建8位全加器电路;c. 电路功能测试及故障排查。

4. 应用拓展:a. 8位全加器在计算机运算中的应用案例;b. 探讨8位全加器与其他数字电路模块的组合应用。

教学大纲安排:第一课时:引言及理论知识(1、2a)第二课时:理论知识(2b、2c)第三课时:实践操作(3a、3b)第四课时:实践操作(3c)第五课时:应用拓展(4a、4b)教材章节关联:本教学内容与教材中“第十章 数字电路及其应用”相关,涉及全加器部分的内容,与教材中的理论知识和实践操作相结合,确保学生能够系统地学习和掌握8位全加器的相关知识。

八位全加器原理图设计实验报告

八位全加器原理图设计实验报告

南通大学计算机科学与技术学院课程实验报告
课程名称:计算机组成原理年级:2012级上机日期:11月6日姓名:学号:班级:信管122
实验名称:八位全加器设计教师:陈越成绩:
上图为n个1位的全加器FA级联成的n位的行波进位加减器。

M为方式控制输入线,当M=0时,做加法运算;当M=1时,做减法运算。

图中左边还表示出单符号位法的溢出检测逻辑:当C n=C n-1时,运算无溢出;而当C n≠C n-1时,运算有溢出,经异或门产生溢出信号,0无溢出,1表示溢出。

四、内容及步骤(包括程序流程及说明)
1.建立add8项目
2.建立一位全加器原理图,输入如下
3.将一位全加器封装成芯片FA,如图
4.将FA级联成8位全加器如图,至此8位全加器原理图设计完毕
四、运行结果
建立波形文件,验证8位全加器。

8位加法器和减法器设计实习报告

8位加法器和减法器设计实习报告

综合电子系统实习报告设计题目:8位加法器和减法器的设计一、实习目的:综合电子系统实习是电子信息类专业学生了解电子系统设计实现过程,培养实践动手能力的实践性教学环节,是电子信息工程等理工科专业学生一门必修的实践性课程。

通过学习和实践,可以让学生进一步接触电子元器件,电子材料及电子产品的生产实际,了解电子工艺的一般知识和掌握基本电路板的制作,元件的焊接,产品的组装等技能,了解电子工艺生产线的流程和基本管理知识,使学生通过设计一个课题,巩固和加深在“模拟电子技术基础”和“数字电子技术基础”等课程中所学到的理论知识和实验技能,掌握常用电子电路中的一般分析和设计方法,熟悉protel和其他开发软件的使用方法,提高电子电路的分析、设计和实验能力,为以后从事生产和科研工作打下一定的基础,为今后专业实验,毕业设计准备必要的工艺知识和操作技能。

同时培养学生严谨的工作作风,养成良好的工作习惯,它是基本技能和工艺知识的入门向导,又是创新实践和创新精神的启蒙。

综合电子系统实习对训练我们基本操作技能,提高我们实际动手能力是难得的一次好机会。

二、实习基本内容和要求:(1)掌握常用电子元器件的种类,性能,选用原则及质量辨别;(2)掌握电子产品装配及材料;(3)学会印制电路板的制作,掌握锡焊原理及手工焊接工艺技术;(4)学会器件的装配,焊接,调试;(5)学会使用常用电子测试仪器设备,初步具有借助说明书或资料掌握常用工具,仪器的使用能力;(6)掌握常用电子电路的设计方法,学会系统实物制作和调试。

三、实习工具:(1)电烙铁:由于焊接的元件多,所以使用的是外热式电烙铁,功率为30w,烙铁头是铜制。

(2)螺丝刀、钻孔机、斜口钳、尖嘴钳等必备工具。

(3)焊锡,由于锡它的熔点低,焊接时,焊锡能迅速散步在金属表面焊接牢固,焊点光亮美观。

(4)数字万用表,5V直流稳压电源。

要求:1、利用逻辑门电路设计8位加法器和减法器,实现两个8位二进制数的加法运算和减法运算;2、具有进位信号输入和输出能力;3、通过功能选择控制信号F选择运算功能,F=0,加法运算,F=1,进行减法运算;4、用发光二极管显示两个输入数据和运算结构。

8位二进制全加器设计实验报告

8位二进制全加器设计实验报告

EDA技术8位二进制全加器设计实验报告班级:学号:姓名:时间:2013-12-06目录方法一:自己写程序 (2)一、设计原理 (2)二、实验程序 (3)程序1:半加器描述 (3)程序2:一位二进制全加器设计顶层描述 (3)程序3:D触发器描述 (4)程序4:8位二进制加法器顶层描述 (4)三、编译及仿真结果 (9)方法二:使用LPM创立元件 (10)一、打开MegaWizard Plug-In Manager (10)二、按照提示,一步步完成全加器/全减器的创建 (10)三、创建成功,生成CMP文件 (10)四、调用CMP文件,例化元件,生成可以使用的元件。

(10)实验总结: (12)摘要我在本实验中用顶层设计思想,用半加器、全加器、D触发器例化出八位全加器,完成了八路加法器、寄存器/锁存器的设计,上升沿触发,使用了6个数码管,分别用于显示输入A,输入B和输出,输出结果也用红灯进行了显示,溢出用绿灯表示。

输入A用0~7号开关完成,输入B用10~17号开关完成,进位C 用8号开关完成。

实验要求完成八路全加器的设计,十六进制输出,上升沿触发,低电平复位,输入输出用数码管显示,用红灯显示输出,绿灯显示溢出。

方法一:自己写程序一、设计原理先写一个半加器,然后用两个半加器例化出一个全加器,再用八个全加器例化出一个八位全加器。

原理如图。

关于上升沿触发,使用D触发器和八位全加器进行例化,D触发器接同一个时钟。

最终完成上升沿触发的八位全加器的设计。

二、实验程序程序1:半加器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder ISPORT (A, B : IN STD_LOGIC;CO, SO : OUT STD_LOGIC );END ENTITY h_adder;ARCHITECTURE FH1 OF h_adder ISBEGINSO <= NOT (A XOR (NOT B));CO <= A AND B;END ARCHITECTURE FH1;程序2:一位二进制全加器设计顶层描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY f_adder ISPORT (AIN, BIN, CIN : IN STD_LOGIC;COUT, SUM : OUT STD_LOGIC );END ENTITY f_adder;ARCHITECTURE FD1 OF f_adder ISCOMPONENT h_adder ISPORT (A, B : IN STD_LOGIC;CO, SO : OUT STD_LOGIC );END COMPONENT;SIGNAL D, E, F : STD_LOGIC;3BEGINU1 : h_adder PORT MAP(A => AIN, B => BIN, CO => D, SO => E);U2 : h_adder PORT MAP(A => E, B => CIN, CO => F, SO => SUM);COUT <= D OR F;END ARCHITECTURE FD1;程序3:D触发器描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DEF1 ISPORT (CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END;ARCHITECTURE bhv OF DEF1 ISSIGNAL Q1 :STD_LOGIC;BEGINPROCESS (CLK)BEGINIF CLK'EVENT AND CLK = '1'THEN Q1<=D;END IF;Q<=Q1;END PROCESS;END bhv;程序4:8位二进制加法器顶层描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY f_adder8 ISPORT ( AIN, BIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0);ASEGIN1,ASEGIN2, BSEGIN1,BSEGIN2 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);CIN : IN STD_LOGIC;CLK : IN STD_LOGIC;SUM : BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);SEG1 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);SEG2 : BUFFER STD_LOGIC_VECTOR(6 DOWNTO 0);COUT : OUT STD_LOGIC );END f_adder8;ARCHITECTURE ONE OF f_adder8 ISCOMPONENT f_adder ISPORT (AIN, BIN, CIN : IN STD_LOGIC;COUT, SUM : OUT STD_LOGIC );END COMPONENT;COMPONENT DEF1 ISPORT (CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END COMPONENT;SIGNAL C,C1, C2, C3,C4,C5,C6,C7: STD_LOGIC;SIGNAL a : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL b : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL s : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL ss : STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL sss : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINU1 : f_adder PORT MAP(AIN => a(0), BIN => b(0), CIN => CIN, SUM => s(0),COUT => C1);U2 : f_adder PORT MAP(AIN => a(1), BIN => b(1), CIN => C1, SUM => s(1),COUT => C2);U3 : f_adder PORT MAP(AIN => a(2), BIN => b(2), CIN => C2, SUM => s(2),COUT => C3);U4 : f_adder PORT MAP(AIN => a(3), BIN => b(3), CIN => C3, SUM => s(3),COUT => C4);U5 : f_adder PORT MAP(AIN => a(4), BIN => b(4), CIN => C4, SUM => s(4),COUT => C5);U6 : f_adder PORT MAP(AIN => a(5), BIN => b(5), CIN => C5, SUM => s(5),COUT => C6);U7 : f_adder PORT MAP(AIN => a(6), BIN => b(6), CIN => C6, SUM => s(6),COUT => C7);U8 : f_adder PORT MAP(AIN => a(7), BIN => b(7), CIN => C7, SUM => s(7),COUT => C);U9 : DEF1 PORT MAP(Q=>a(0),D=>AIN(0),CLK=>CLK);U10 : DEF1 PORT MAP(Q=>a(1),D=>AIN(1),CLK=>CLK);U11 : DEF1 PORT MAP(Q=>a(2),D=>AIN(2),CLK=>CLK);U12 : DEF1 PORT MAP(Q=>a(3),D=>AIN(3),CLK=>CLK);U13 : DEF1 PORT MAP(Q=>a(4),D=>AIN(4),CLK=>CLK);U14 : DEF1 PORT MAP(Q=>a(5),D=>AIN(5),CLK=>CLK);U15 : DEF1 PORT MAP(Q=>a(6),D=>AIN(6),CLK=>CLK);U16 : DEF1 PORT MAP(Q=>a(7),D=>AIN(7),CLK=>CLK);5U17 : DEF1 PORT MAP(Q=>b(0),D=>BIN(0),CLK=>CLK); U18 : DEF1 PORT MAP(Q=>b(1),D=>BIN(1),CLK=>CLK); U19 : DEF1 PORT MAP(Q=>b(2),D=>BIN(2),CLK=>CLK); U20 : DEF1 PORT MAP(Q=>b(3),D=>BIN(3),CLK=>CLK); U21 : DEF1 PORT MAP(Q=>b(4),D=>BIN(4),CLK=>CLK); U22 : DEF1 PORT MAP(Q=>b(5),D=>BIN(5),CLK=>CLK); U23 : DEF1 PORT MAP(Q=>b(6),D=>BIN(6),CLK=>CLK); U24 : DEF1 PORT MAP(Q=>b(7),D=>BIN(7),CLK=>CLK);U25 : DEF1 PORT MAP(Q=>SUM(0),D=>s(0),CLK=>CLK); U26 : DEF1 PORT MAP(Q=>SUM(1),D=>s(1),CLK=>CLK); U27 : DEF1 PORT MAP(Q=>SUM(2),D=>s(2),CLK=>CLK); U28 : DEF1 PORT MAP(Q=>SUM(3),D=>s(3),CLK=>CLK); U29 : DEF1 PORT MAP(Q=>SUM(4),D=>s(4),CLK=>CLK); U30 : DEF1 PORT MAP(Q=>SUM(5),D=>s(5),CLK=>CLK); U31 : DEF1 PORT MAP(Q=>SUM(6),D=>s(6),CLK=>CLK); U32 : DEF1 PORT MAP(Q=>SUM(7),D=>s(7),CLK=>CLK);U33 : DEF1 PORT MAP(Q=>COUT,D=>C,CLK=>CLK);PROCESS(CLK,AIN,BIN)VARIABLE sSeg1 : STD_LOGIC_VECTOR(7 DOWNTO 0);VARIABLE sSeg2 : STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINss(3 DOWNTO 0)<=SUM(3 DOWNTO 0);sss(3 DOWNTO 0)<=SUM(7 DOWNTO 4);sSeg1(7 DOWNTO 0):= AIN(7 DOWNTO 0);sSeg2(7 DOWNTO 0):= BIN(7 DOWNTO 0);CASE ss ISWHEN "0000" => SEG1 <= "";--0WHEN "0001" => SEG1 <= "";WHEN "0010" => SEG1 <="";WHEN "0011" => SEG1 <="";WHEN "0100" => SEG1 <="";WHEN "0101" => SEG1 <="";WHEN "0110" => SEG1 <="";WHEN "0111" => SEG1 <="";WHEN "1000" => SEG1 <="";WHEN "1001" => SEG1 <=""; --9WHEN "1010" => SEG1 <="";WHEN "1011" => SEG1 <="";WHEN "1100" => SEG1 <="";WHEN "1101" => SEG1 <="";WHEN "1110" => SEG1 <="";WHEN "1111" => SEG1 <="";WHEN OTHERS =>NULL;END CASE;CASE sss ISWHEN "0000" => SEG2 <= "";--0WHEN "0001" => SEG2 <= "";WHEN "0010" => SEG2 <="";WHEN "0011" => SEG2 <="";WHEN "0100" => SEG2 <="";WHEN "0101" => SEG2 <="";WHEN "0110" => SEG2 <="";WHEN "0111" => SEG2 <="";WHEN "1000" => SEG2 <="";WHEN "1001" => SEG2 <=""; --9WHEN "1010" => SEG2 <="";WHEN "1011" => SEG2 <="";WHEN "1100" => SEG2 <="";WHEN "1101" => SEG2 <="";WHEN "1110" => SEG2 <="";WHEN "1111" => SEG2 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg1(3 DOWNTO 0) ISWHEN "0000" => ASEGIN1 <= "";--0WHEN "0001" => ASEGIN1 <= "";WHEN "0010" => ASEGIN1 <="";WHEN "0011" => ASEGIN1 <="";WHEN "0100" => ASEGIN1 <="";WHEN "0101" => ASEGIN1 <="";WHEN "0110" => ASEGIN1 <="";WHEN "0111" => ASEGIN1<="";WHEN "1000" => ASEGIN1 <="";WHEN "1001" => ASEGIN1 <=""; --9WHEN "1010" => ASEGIN1 <="";WHEN "1011" => ASEGIN1 <="";WHEN "1100" => ASEGIN1 <="";WHEN "1101" => ASEGIN1 <="";WHEN "1110" => ASEGIN1 <="";WHEN "1111" => ASEGIN1 <="";WHEN OTHERS =>NULL;END CASE;7CASE sSeg1(7 DOWNTO 4) ISWHEN "0000" => ASEGIN2 <= "";--0 WHEN "0001" => ASEGIN2 <= "";WHEN "0010" => ASEGIN2 <="";WHEN "0011" => ASEGIN2 <="";WHEN "0100" => ASEGIN2 <="";WHEN "0101" => ASEGIN2 <="";WHEN "0110" => ASEGIN2 <="";WHEN "0111" => ASEGIN2<="";WHEN "1000" => ASEGIN2 <="";WHEN "1001" => ASEGIN2 <=""; --9 WHEN "1010" => ASEGIN2 <="";WHEN "1011" => ASEGIN2 <="";WHEN "1100" => ASEGIN2 <="";WHEN "1101" => ASEGIN2 <="";WHEN "1110" => ASEGIN2 <="";WHEN "1111" => ASEGIN2 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg2(3 DOWNTO 0) ISWHEN "0000" => BSEGIN1 <= "";--0 WHEN "0001" => BSEGIN1 <= "";WHEN "0010" => BSEGIN1 <="";WHEN "0011" => BSEGIN1 <="";WHEN "0100" => BSEGIN1 <="";WHEN "0101" => BSEGIN1 <="";WHEN "0110" => BSEGIN1 <="";WHEN "0111" => BSEGIN1<="";WHEN "1000" => BSEGIN1 <="";WHEN "1001" => BSEGIN1 <=""; --9 WHEN "1010" => BSEGIN1 <="";WHEN "1011" => BSEGIN1 <="";WHEN "1100" => BSEGIN1 <="";WHEN "1101" => BSEGIN1 <="";WHEN "1110" => BSEGIN1 <="";WHEN "1111" => BSEGIN1 <="";WHEN OTHERS =>NULL;END CASE;CASE sSeg2(7 DOWNTO 4) ISWHEN "0000" => BSEGIN2 <= "";--0 WHEN "0001" => BSEGIN2 <= "";WHEN "0010" => BSEGIN2 <="";WHEN "0011" => BSEGIN2 <="";WHEN "0100" => BSEGIN2 <="";WHEN "0101" => BSEGIN2 <="";WHEN "0110" => BSEGIN2 <="";WHEN "0111" => BSEGIN2<="";WHEN "1000" => BSEGIN2 <="";WHEN "1001" => BSEGIN2 <=""; --9WHEN "1010" => BSEGIN2 <="";WHEN "1011" => BSEGIN2 <="";WHEN "1100" => BSEGIN2 <="";WHEN "1101" => BSEGIN2 <="";WHEN "1110" => BSEGIN2 <="";WHEN "1111" => BSEGIN2 <="";WHEN OTHERS =>NULL;END CASE;END PROCESS;--U1 : f_adder PORT MAP(AIN => AIN(0), BIN => BIN(0), CIN => CIN, SUM => SUM(0), COUT => C1);--U2 : f_adder PORT MAP(AIN => AI N(1), BIN => BIN(1), CIN => C1, SUM => SUM(1), COUT => C2);--U3 : f_adder PORT MAP(AIN => AIN(2), BIN => BIN(2), CIN => C2, SUM => SUM(2), COUT => C3);--U4 : f_adder PORT MAP(AIN => AIN(3), BIN => BIN(3), CIN => C3, SUM => SUM(3), COUT => C4);--U5 : f_adder PORT MAP(AIN => AIN(4), BIN => BIN(4), CIN => C4, SUM => SUM(4), COUT => C5);--U6 : f_adder PORT MAP(AIN => AIN(5), BIN => BIN(5), CIN => C5, SUM => SUM(5), COUT => C6);--U7 : f_adder PORT MAP(AIN => AIN(6), BIN => BIN(6), CIN => C6, SUM => SUM(6), COUT => C7);--U8 : f_adder PORT MAP(AIN => AIN(7), BIN => BIN(7), CIN => C7, SUM => SUM(7), COUT => COUT);END ONE;三、编译及仿真结果程序波形仿真图9时间分析方法二:使用LPM创立元件一、打开MegaWizard Plug-In Manager二、按照提示,一步步完成全加器/全减器的创建三、创建成功,生成CMP文件四、调用CMP文件,例化元件,生成可以使用的元件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CMOS数字集成电路设计课程设计报告学院:******专业:******班级:******姓名:Wang Ke qin指导老师:******学号:******日期:2012-5-30目录一、设计要求 (1)二、设计思路 (1)三、电路设计与验证 (2)(一)1位全加器的电路设计与验证 (2)1)原理图设计 (2)2)生成符号图 (2)3)建立测试激励源 (2)4)测试电路 (3)5)波形仿真 (4)(二)4位全加器的电路设计与验证 (4)1)原理图设计 (4)2)生成符号图 (5)3)建立测试激励源 (5)4)测试电路 (6)5)波形仿真 (6)(三)8位全加器的电路设计与验证 (7)1)原理图设计 (7)2)生成符号图 (7)3)测试激励源 (8)4)测试电路 (8)5)波形仿真 (9)6)电路参数 (11)四、版图设计与验证 (13)(一)1位全加器的版图设计与验证 (13)1)1位全加器的版图设计 (13)2)1位全加器的DRC规则验证 (14)3)1位全加器的LVS验证 (14)4)错误及解决办法 (14)(二)4位全加器的版图设计与验证 (15)1)4位全加器的版图设计 (15)2)4位全加器的DRC规则验证 (16)3)4位全加器的LVS验证 (16)4)错误及解决办法 (16)(三)8位全加器的版图设计与验证 (17)1)8位全加器的版图设计 (17)2)8位全加器的DRC规则验证 (17)3)8位全加器的LVS验证 (18)4)错误及解决办法 (18)五、设计总结 (18)一、设计要求本次设计要求实现一个8位的加法器,通过从前端到后端的设计过程,了解数字集成电路设计流程,熟悉Linux系统及其相关软件icfb的使用,加深对数字集成电路前端设计的认识。

二、设计思路基本单元选用复杂cmos电路实现的一位全加器,采用pmos与nmos网络完全对偶的mirror型,将四个1位全加器级联成一个4位加法器,再将两个4位全加器级联成一个8位全加器。

Figure2-11位加法器级联图如图所示,四个1位加法器级联成一个4位加法器的级联图。

这种电路的好处是将每前一级的Cin与后一级的Cout直接级联,连接比较方便,电路比较好设计。

版图设计也相对较简单,画出一位全加器的版图,多位全加器的版图就迎刃而解。

由于采用直接级联,前一级的输出延时要累加到后一级的输入进位中,最后会导致级联越多,延时越多。

为了提高性能,可以采用曼彻斯特进位链或是进位旁路。

由于是初次接触icfb,对版图还不是太了解,本次试验采用最简单的直接级联形式。

三、电路设计与验证(一)1位全加器的电路设计与验证1)原理图设计Figure3-1 1位全加器的原理图(镜像型)如图所示,为采用镜像型1位全加器的原理图。

其中A、B为两个输入信号也即两个一位加数,Cin为前一位的进位输入信号,Co为当前的进位输出信号,So为和输出信号。

2)生成符号图Figure3-2 1位全加器的符号图如图所示,为检查并保存1位全加器原理图后生成的符号图,左侧为输入信号A、B、Cin,右侧为输出信号,Co和So。

3)建立测试激励源为了验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-31位全加器的测试激励如图所示,为用verilog编写的1位全加器的测试激励。

初始状态三个输入信号都设为1,之后给A、B、Cin赋值三个不同频率的脉冲信号,能遍历三个输入中,全0、全1、两个1、一个1的所有情况。

4)测试电路Figure3-4 1位全加器的测试电路(模拟)Figure3-51位全加器的测试电路(数模混合)如图,、所示,为1位全加器的测试电路,为加模拟信号激励,为加数字信号激励。

从中比较可以看出,当输入信号较多时,才用数目混合测试要比采用模拟激励测试要方便,电路会简单些。

所以在接下来的4位全加器和8位全加器测试电路中,均采用数模混合方式。

5)波形仿真Figure3-6 1位全加器的仿真波形aFigure3-71位全加器的仿真波形b如图,、所示,为1位全加器的仿真波形图。

从图中可以看出,仿真波形结果与真值表相符合,从图中可以看出1位全加器的延时为.(二)4位全加器的电路设计与验证1)原理图设计Figure3-84位加法器的原理图如图所示,为4位加法器的原理图设计。

4位加法器采用4个1位加法器直接串联,前一级的输出直接连到下一级的输入。

左侧为四位输入信号A[3:0]、B[3:0]和进位输入Cin,右侧为四位输出信号D[3:0]和进位输出Co.2)生成符号图Figure3-94位加法器的符号图如图所示,为检查并保存4位全加器原理图后生成的符号图,左侧为输入信号A[3:0]、B[3:0]、Cin,右侧为输出信号,Co和D[3:0]。

3)建立测试激励源为验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-104位全加器的测试激励如图所示,为用verilog编写的4位全加器的测试激励。

初始状态进位输入设为0,a[3:0]设为1001,b[3:0]设为0111;之后分别给每一位加数不同周期的脉冲信号,使得激励信号能够遍历所有的情况。

4)测试电路Figure3-114位全加器的测试电路(数模混合)如图所示,为4为全加器测试电路,采用数目混合形式。

从图中可以看出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲,简洁、方便。

5)波形仿真Figure3-124位全加器的仿真波形如图所示,为4为全加器的仿真波形图,从图中可以看出,仿真波形结果与4位全加器真值表相符合。

其中,关键路径上的延时为,延时较大,这与每一级输出都加入一个反相器有很大关系。

(三)8位全加器的电路设计与验证1)原理图设计Figure3-134位加法器的原理图如图所示,为8位加法器的原理图设计。

8位加法器采用2个4位加法器串联,前一级的输出直接连到下一级的输入。

其中A[7:0]、B[7:0]分别为八位输入信号,Cin为进位输入信号,D[7:0]为输出信号,Co为进位输出信号。

2)生成符号图Figure3-148位加法器的符号图如图所示,为检查并保存8位全加器原理图后生成的符号图,左侧为两个八位的输入信号A[7:0]、B[7:0]和进位输入信号Cin,右侧为A[7:0]与B[7:0]的和输出信号D[7:0]和进位输出信号Co。

3)测试激励源为了验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。

Figure3-158位全加器的测试激励如图所示,为用verilog编写的8位全加器的测试激励。

初始状态进位输入设为0,a[7:0]设为,b[7:0]设为;之后分别给每一位加数不同周期的脉冲信号,进位输入Cin设置为周期脉冲信号,使得激励信号能够遍历所有的情况。

4)测试电路Figure3-168位全加器的测试电路(数模混合)如图所示,为8位全加器测试电路,采用数模混合形式。

从图中可以看出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲。

当输入信号数目比较大时,采用数模混合方式更加有效。

5)波形仿真Figure3-178位加法器的仿真波形aFigure3-188位加法器的仿真波形bFigure3-198位加法器的仿真波形c如图、、所示,为8位全加器的仿真波形,电路关键路径为从Cin到Co 的路径,延时为。

Figure3-20关键路径上的最大延时波形如图所示,为Cin到Co路径上的最大延时波形图。

当A[7:0]=8’hff,B[7:0]=8’h00,Cin=1时候,测出Cin和Co的状态转换时间差即为关键路径上的最大延时。

从图中可以看出,关键路径上的最大延时为=。

Figure3-21关键路径的上升时间波形如图所示,为关键路径上的上升时间波形图,从图中可以看出,上升时间为。

Figure3-22关键路径的下降时间波形如图所示,为关键路径上的下降时间波形图,从图中可以看出,下降时间为。

下降时间比上升时间小的原因可能是pmos比nmos管速度慢。

6)电路参数************************************************************************* auCdl Netlist:** Library Name: wangkeqin2* Top Cell Name: 8_full_adder* View Name: schematic* Netlisted on: May 25 04:46:15 2012*************************************************************************.EQUATION*.SCALE METER*.MEGA*.GLOBAL gnd!+ vdd!*.PIN gnd!*+ vdd!************************************************************************* Library Name: wangkeqin2* Cell Name: 1_full_adder* View Name: schematic************************************************************************.SUBCKT 1_full_adder A B Cin Co So*.PININFO Co:O So:O A:B B:B Cin:BMpmos_3p315 So net90 vdd! vdd! pmos_3p3 W=2u L= M=Mpmos_3p314 net90 B net13 vdd! pmos_3p3 W=3u L= M=Mpmos_3p313 net13 A net17 vdd! pmos_3p3 W=3u L= M=Mpmos_3p312 net17 Cin vdd! vdd! pmos_3p3 W=3u L= M=Mpmos_3p311 net90 net114 net34 vdd! pmos_3p3 W=4u L= M=Mpmos_3p310 net34 Cin vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p39 net34 B vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p38 net34 A vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p37 net114 Cin net41 vdd! pmos_3p3 W=4u L= M=Mpmos_3p30 net41 A vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p31 net41 B vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p36 net114 A net53 vdd! pmos_3p3 W=4u L= M=Mpmos_3p35 net53 B vdd! vdd! pmos_3p3 W=4u L= M=Mpmos_3p34 Co net114 vdd! vdd! pmos_3p3 W=2u L= M=Mnmos_3p315 So net90 gnd! gnd! nmos_3p3 W=1u L= M=Mnmos_3p314 net66 Cin gnd! gnd! nmos_3p3 W= L= M=Mnmos_3p313 net70 B net66 gnd! nmos_3p3 W= L= M=Mnmos_3p312 net90 A net70 gnd! nmos_3p3 W= L= M=Mnmos_3p311 net86 Cin gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p310 net86 B gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p39 net86 A gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p38 net90 net114 net86 gnd! nmos_3p3 W=2u L= M=Mnmos_3p37 Co net114 gnd! gnd! nmos_3p3 W=1u L= M=Mnmos_3p36 net98 B gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p35 net114 A net98 gnd! nmos_3p3 W=2u L= M=Mnmos_3p32 net110 B gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p31 net110 A gnd! gnd! nmos_3p3 W=2u L= M=Mnmos_3p30 net114 Cin net110 gnd! nmos_3p3 W=2u L= M=.ENDS************************************************************************* Library Name: wangkeqin2* Cell Name: 4_full_adder* View Name: schematic************************************************************************.SUBCKT 4_full_adder A0 A1 A2 A3 B0 B1 B2 B3 Cin Co D0 D1 D2 D3*.PININFO A0:I A1:I A2:I A3:I B0:I B1:I B2:I B3:I Cin:I Co:O D0:O D1:O D2:O *.PININFO D3:OXI3 A0 B0 Cin net6 D0 / 1_full_adderXI2 A1 B1 net6 net11 D1 / 1_full_adderXI1 A2 B2 net11 net16 D2 / 1_full_adderXI0 A3 B3 net16 Co D3 / 1_full_adder.ENDS************************************************************************* Library Name: wangkeqin2* Cell Name: 8_full_adder* View Name: schematic************************************************************************.SUBCKT 8_full_adder A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 Cin Co D0 + D1 D2 D3 D4 D5 D6 D7*.PININFO A0:I A1:I A2:I A3:I A4:I A5:I A6:I A7:I B0:I B1:I B2:I B3:I B4:I *.PININFO B5:I B6:I B7:I Cin:I Co:O D0:O D1:O D2:O D3:O D4:O D5:O D6:O D7:OXI1 A0 A1 A2 A3 B0 B1 B2 B3 Cin net51 D0 D1 D2 D3 / 4_full_adderXI0 A4 A5 A6 A7 B4 B5 B6 B7 net51 Co D4 D5 D6 D7 / 4_full_adder.ENDS四、版图设计与验证(一)1位全加器的版图设计与验证1)1位全加器的版图设计Figure4-1 1位全加器的版图如图所示,为1位全加器的版图设计,版图设计也采用nmos和pmos完全对称的镜像网路设计,上部分为pmos下部分为nmos。

相关文档
最新文档