CMOS数字集成电路设计_八位加法器实验报告
实验一、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数字集成电路设计课程设计报告学院:******专业:******班级:******姓名:Wang Ke qin指导老师:******学号:******日期:2012-5-30目录一、设计要求..............................................错误!未定义书签。
二、设计思路..............................................错误!未定义书签。
三、电路设计与验证........................................错误!未定义书签。
(一) 1位全加器的电路设计与验证........................错误!未定义书签。
1) 原理图设计......................................错误!未定义书签。
2) 生成符号图......................................错误!未定义书签。
3) 建立测试激励源..................................错误!未定义书签。
4) 测试电路........................................错误!未定义书签。
5) 波形仿真........................................错误!未定义书签。
(二) 4位全加器的电路设计与验证........................错误!未定义书签。
1) 原理图设计......................................错误!未定义书签。
2) 生成符号图......................................错误!未定义书签。
3) 建立测试激励源..................................错误!未定义书签。
实验六 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位全加器课程设计报告一、课程目标知识目标: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位加法器和减法器的设计一、实习目的:综合电子系统实习是电子信息类专业学生了解电子系统设计实现过程,培养实践动手能力的实践性教学环节,是电子信息工程等理工科专业学生一门必修的实践性课程。
通过学习和实践,可以让学生进一步接触电子元器件,电子材料及电子产品的生产实际,了解电子工艺的一般知识和掌握基本电路板的制作,元件的焊接,产品的组装等技能,了解电子工艺生产线的流程和基本管理知识,使学生通过设计一个课题,巩固和加深在“模拟电子技术基础”和“数字电子技术基础”等课程中所学到的理论知识和实验技能,掌握常用电子电路中的一般分析和设计方法,熟悉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位二进制全加器设计实验报告
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文件,例化元件,生成可以使用的元件。
8位可控加减法电路设计实验报告
8位可控加减法电路设计实验报告本文针对8位可控加减法电路设计实验,利用TM1638底板,结合TTL集成电路实现了一个可以实现8位加减法计算的电路系统,并分析设计主要原理及关键技术点,如TTL集成电路的基本原理、TM1638底板的工作原理、LED显示灯的控制原理等。
最后,结合实验结果得出结论,使实验通过率达100%,并对其作出展望,认为者该电路设计具有较强的灵活性及实用性,可以应用在其他计算机系统中,用于计算出大量的结果。
【Keywords】:TM1638底板减法电路 TTL成电路 LED【1.言】近年来,在电子工程领域,加减法电路应用越来越普遍。
它可以实现简单的运算操作,不仅可以提高计算机系统的效率,也可以减少复杂的运算步骤,从而更有效地实现加减法的计算,极大提高了计算能力。
因此,加减法电路的设计变得越来越重要。
本文旨在为8位可控加减法电路设计实验提供实验研究报告,使用TM1638底板和TTL集成电路实现8位加减法计算。
在本实验中,采用测试方法和实验技术进行实验,并分析了设计的主要原理及关键技术点。
【2.文】(1)TM1638底板.TM1638底板用来连接TTL集成电路和LED显示灯,以实现加减法电路设计。
该底板的工作原理是:将微处理器的控制信号由串行输入口输入,然后由控制电路将控制信号转变为8路控制,并将其分配到各个LED显示灯,实现控制功能。
(2)TTL集成电路.TTL集成电路是一种由TTL(Transistor-Transistor Logic)集成电路组成的封装式模块,是用于实现加减法运算的关键环节。
集成电路的基本原理是:利用集成电路中的电路元件实现复杂的加减法运算。
(3)LED显示灯.LED示灯用于显示加减法运算的结果,实现电路设计核心功能。
LED显示灯的控制原理是:利用TTL集成电路产生的控制信号,根据不同的信号类型控制LED显示灯亮灭,从而实现加减法运算的计算结果的显示。
(4)实验结果.本实验中,采用测试方法和实验技术,实现了一个8位加减法电路设计。
8位全加器实验报告
实验1 原理图输入设计8位全加器一、实验目的:熟悉利用QuartusⅡ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个8位全加器的设计把握利用EDA软件进行电子线路设计的详细流程。
二、原理说明:一个8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现。
即将低位加法器的进位输出cout与其相邻的高位加法器的最低进位输入信号cin相接。
而一个1位全加器可以按照本章第一节介绍的方法来完成。
三、实验内容:1:完全按照本章第1节介绍的方法与流程,完成半加器和全加器的设计,包括原理图输入、编译、综合、适配、仿真。
2:建立一个更高的原理图设计层次,利用以上获得的1位全加器构成8位全加器,并完成编译、综合、适配、仿真和硬件测试。
四、实验环境:计算机、QuartusII软件。
五、实验流程:实验流程:↓↓六、实验步骤:1.根据半加器工作原理建立电路并仿真,并将元件打包。
(1)半加器原理图:图1.2 半加器原理图(2)综合报告:图1.3 综合报告:(3)功能仿真波形图4:图1.4 功能仿真波形图时序仿真波形图:图1.5 时序仿真波形图仿真结果分析:sout为和信号,当a=1,b=0或a=0,b=1时,和信号sout为1,否则为0.当a=b=1时,产生进位信号,及cout=1。
(4)时序仿真的延时情况:图1.6 时序仿真的延时情况(5)封装元件:图1.7 元件封装图2. 利用半加器构成一位全加器,建立电路并仿真,并将元件封装。
(1)全加器原理图如图:图2.1 全加器原理图(2)综合报告:图2.2 综合报告(3)功能仿真波形图:图2.3功能仿真波形图时序仿真波形图:图2.4时序仿真波形图仿真结果分析:cin为来自低位的进位,sum=a or b or cin,即:当a,b,cin中有一位为高电平‘1’或者三位同时高电平为‘1’,则sum=1,否则sum=0;当a,b,cin有两位或者三位同为高电平‘1’时,产生进位信号cout=‘1’。
八位加法器设计实验报告
八位加法器设计实验报告实验名称:八位加法器设计实验一、实验目的:1.了解数字电路中加法器的基本原理。
2.学习八位加法器的设计和实现方法。
3.掌握八位加法器的工作过程和输出结果。
二、实验器材:数字电路实验箱、电源线、逻辑门芯片(2个8位加法器芯片、1个与门芯片、1个或门芯片)、导线、电压表,显示器。
三、实验原理:四、具体步骤:1.搭建实验电路。
将两个8位加法器芯片、一个与门芯片、一个或门芯片分别插入数字实验箱中,并使用导线连接它们。
将A和B分别连接到8位加法器芯片的A和B输入端,将进位输入端Cin接地。
然后将两个八位加法器芯片的S0-S7依次连接到特定点,作为低位数;再将与门芯片的S仅连接到A口或B口上的特定点,或门芯片的S仅连接到A口上的特定点;然后将A、B、Cin的高位输入引脚接到与门芯片的输入端上;最后将八位加法器芯片的Cout引脚接到特定点,作为进位输出;将与门芯片和或门芯片的输出引脚接到显示器上。
2.进行实验。
给定任意两个8位操作数A和B,将它们输入到加法器中,并设置进位输入端Cin为0。
观察显示器上的运算结果。
3.分析实验结果。
根据实验数据和观察结果,分析八位加法器的工作过程和输出结果,研究其工作原理。
5.总结实验。
根据实验结果和分析,总结设计和实现八位加法器的方法,并讨论可能存在的问题和改进方法。
五、注意事项:1.在搭建实验电路之前,仔细检查电路连接是否准确、导线是否插紧。
2.在实验过程中,注意实验安全,注意观察显示器上的运算结果,及时记录实验数据。
3.实验结束后,将电源关闭,清理整理实验场地,将实验器材归位。
六、实验结果:S0=1,S1=1,S2=0,S3=0,S4=0,S5=0,S6=1,S7=1,Cout=1七、实验总结:通过本次实验,我学习了数字电路中加法器的基本原理,掌握了八位加法器的设计和实现方法,了解了八位加法器的工作过程和输出结果。
我通过实际搭建电路、输入操作数并设置进位输入,观察了八位加法器的运算结果,并根据实验结果进行了分析和总结。
8位串行进位加法器
8位串行进位加法器实验报告一、实验目的使对quartus II的使用进行初步的了解,对于一些芯片的组合应用更加掌握。
二、实验内容设计8位串行进位加法器用半加器设计一个全加器元件,然后根据图4-38,在顶层设计中用8个1位全加器构成8位串行进位加法器。
给出时序仿真波形并说明之、引脚锁定编译、编程下载于FPGA中进行硬件测试。
完成实践报告。
三、实验步骤及各步结果1、分析8位串行全加器的层次结构2、半加器3、一位全加器output S,CO;wire S1,D1,D2;halfadder HA1(S1,D1,A,B);halfadder HA2(S,D2,S1,CI);or g1(CO,D2,D1);endmodule//8-bit full addermodule _8bit_adder(S,C7,A,B,C_1);input[7:0]A,B;input C_1;output [7:0]S;output C7;wire C0,C1,C2,C3,C4,C5,C6,C7;fulladderFA0(S[0],C0,A[0],B[0],C_1),FA1(S[1],C1,A[1],B[1],C0),FA2(S[2],C2,A[2],B[2],C1),FA3(S[3],C3,A[3],B[3],C2),FA4(S[4],C4,A[4],B[4],C3),FA5(S[5],C5,A[5],B[5],C4),FA6(S[6],C6,A[6],B[6],C5),FA7(S[7],C7,A[7],B[7],C6);endmodule4、软件使用(1)、新建一个工程,工程名为_8bit_adder(2)、新建一个Verilog HDL File文件并写入程序代码(3)、对写完的代码进行编译,发现没有错误(4)、新建一个波形文件(5)、新建(6)、插入程序后双击输入数值进行数据的输入(7)、输入相应的值(8)、仿真出来的结果(9)、按时序给输入端输入不同的数据(10)、继续仿真,波形如图(11)、时序仿真(12)、放大后这里出现了冒险竞争。
全加器实现的8位行波进位加法器
计算机组成原理实验报告实验项目全加器实现的8位行波进位加法器成绩一、实验目的:1、理解加法器的原理;2、掌握各种常见的加法器的设计方法。
二、实验原理:本实验中,用8个全加器实现8位的串行波进位加法器。
所用的全加器内部逻辑如全加器的两个基本公式。
将8个全加器串联起来,也就是说低位全加器的进位输出连到相邻的高位全加器的进位输入,就构成了8位加法器。
实验电路图如下参照全加器的原理,port:输入的8位操作数a : in std_logic_vector(7 downto 0);b : in std_logic_vector(7 downto 0);低位进位:cin : in std_logic;最高位进位:carryout : out std_logic;相加的和:sum : out std_logic_vector(7 downto 0)对应位相加可能出现进位,定义信号变量:signal c0,c1,c2,c3,c4,c5,c6:std_logic;根据行波进位加法器的原理,我们需要实现将低位加法器的进位输出连到相邻高位全加器的进位输入的功能。
要实现这一功能,就要完成两部分运算:1、两个操作数的对应位相加,程序为:sum(1)<=a(1) xor b(1) xor c0;(其中c0为低位的进位)...sum(7)<=a(7) xor b(7) xor c6;注意:sum(0)与后面的略有不同,因为其没有低位进位,但我们已经定义了cin,因此程序为:sum(0)<=a(0) xor b(0) xor cin;2、计算本位向高位的进位,程序为:c1<=(a(1) and b(1))or(a(1)and c0)or(b(1)and c0);…c6<=(a(6) and b(6))or(a(6)and c5)or(b(6)and c5);3、计算最高位,程序为:carryout<=(a(7) and b(7))or(a(7)and c6)or(b(7)and c6);由此就将8位加法器串联起来,实现八位全加器的功能。
实验一 8位全加器
实验一:8位全加器请大家先学习实验一附 Quartus II开发环境简介.doc文件,对照着完成本次实验。
实验步骤1、熟悉QUARTUSⅡ集成开发环境;2、熟悉GW48-PK2型FPGA实验箱;3、编写8位全加器的Verilog HDL源代码;4、完成计算机模拟功能仿真;5、下载到Altera ACEXEP1K30中,使用实验箱完成硬件验证;6、完成实验报告实验要求8位全加器输入:Clk,Rst_,In1,In2,Cin输出:Cout,Sum首先在实验箱左下角有个按钮模式选择,选择到模式1,红色的七段译码器会显示你所选择的模式。
下载到实验箱的时候需要查阅白皮书,首先请查阅第129页找到各实验电路结构图特点和适用范围简述:我们实验时使用结构图NO.1来实现加法器设计,结构图NO.1见白皮书P133页附图3。
关于引脚的绑定,例如键1对应PIO3-PIO0,绑定引脚的时候我们就要查阅白皮书第142页的适合于QuartusII 的部分引脚对照表选择PIO0对应的GW AK30/50 EP1K30/20/50TQC144这一列对应的引脚名称I/00,这个引脚对应与我们程序中的In1[0],依次类推,绑定好引脚In1[2],到In2[7]。
Cin绑到键7,相加的结果绑到译码器5和6。
绑定的时候注意引脚和结果的高低位顺序。
Cout绑到D1。
Rst_绑定到键8。
Clk 绑到CLOCK0。
完成实验后提交:请指导老师观看实验结果,写电子档的实验报告包括实验结果(包括仿真截图,仿真截图需要有文字说明),实验心得,代码(是.V文件)。
截图工具为键盘上的F12右边的那个PrtscSysRq键。
按下此键后,点击电脑左下角的开始—〉所有程序—〉附件—〉画图工具,打开,按住Ctrl+V粘贴图像,再保存截图即可。
提交的时候,请将文件夹命名为学号姓名(如:200531510001XXX)。
回去以后尽快填写纸质实验报告,并在下次做实验的时候交上来。
实验一 八位全加器的设计 报告
实验一八位全加器的设计一、实验目的1.熟悉使用QuartusⅡ的原理图输入方法设计简单组合电路。
2.掌握层次化设计的方法,通过一个8位全加器的设计,掌握利用EDA软件进行原理图输入方式的电子线路设计的详细流程。
3.自行验证所设计电路的正确性。
二、实验内容及要求设计一个八位全加器,并进行验证。
三、实验器材1.软件:Altera公司的Quartus II软件。
2.芯片:Altera公司的EP2C8T144C8。
3.开发平台:KH-31001智能型可编程数字开发系统。
四、实验电路图原理:先由一个半加器构成一个全加器, 8位全加器可以由8个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相临的高位加法器的最低进位输入信号cin相接。
图1 半加器图2 一位全加器图3八位全加器五、实验步骤本设计的思路是先设计1个1位半加器,因此建立新建文件夹D:/ ADD/ADD-H;要利用1位的半加器构造1位的全加器,因此建立新建文件夹D:/ADD/ADD-F;要利用1位的全加器构造8位的全加器,因此建立新建文件夹D:/ADD/ADD8。
1.建立名为ADD-H的工程文件,并在Quartus II原理图编辑环境中绘制如图1所示的电路图;2.保存文件、检查及编译;3.建立波形文件,并进行功能仿真,仿真结果如下图4所示;图44.单击“File”菜单里的“Create/Update”选项,选择“Create Symbol Files for Current File”选项后,生成“ADD-H.bsf”格式的图元文件,使其作为顶层器件,方便后面电路编辑时使用;5.建立建立名为ADD-F的工程文件,并在Quartus II原理图编辑环境中绘制电路图,如图2所示,然后依次执行步骤2、3,得到一位全加器的仿真结果如下图5所示;图56.单击“File”菜单里的“Create/Update”选项,选择“Create Symbol Files for Current File”选项后,生成“ADD-F.bsf”格式的图元文件,方便后面电路编辑时使用;7. .建立建立名为ADD8的工程文件,并在Quartus II原理图编辑环境中绘制电路图,由一个半加器和七个全加器构成的八位全加器如图3所示,然后依次执行步骤2、3,得到八位全加器的仿真结果为下图。
计算机组成原理实验报告_八位补码加减法器的设计与实现
计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。
2.熟悉简单运算器的数据传送通路。
3.掌握8位补码加/减法运算器的设计方法。
4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。
(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。
(3)测试通过后,封装成一个芯片。
2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。
3.利用仿真波形,测试数据通路的正确性。
设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。
(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。
(2)给DR1存入55H,检查数据是否存入,请说明检查方法。
(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。
(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。
(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。
(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。
三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。
(2)实验完毕,写出实验报告,内容如下:①实验目的。
②实验电路图。
③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。
表中的序号表示各控制信号之间的时序关系。
要求一个控制任务填一张表,并可用文字对有关内容进行说明。
⑤实验体会与小结。
四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:表1-一位全加器(FA)电路的输入输出信号说明然后以此基础上实现八位补码加/减法器的设计,考虑到实现所需既可以实现加法又可以实现减法,所以使用了一个M输入来进行方式控制加减。
8位加法器实验报告
6.1 实验一:8位加法器的设计1.实验目的(1)学习isEXPERT/MAX+plusisEXPERT/MAX+plus II/Foudation Series 软件的基本使用方法。
(2)学习GW48-CK EDA实验开发系统的基本使用方法。
(3)了解VHDL程序的基本结构。
2.实验内容设计并调试好一个由两个4位二进制并行加法器级联而成的8位二进制加法器,并用GW48-CK EDA实验开发系统(拟采用的实验芯片的型号为ispLSI1032E PLCC-84或EPF10K10LC84-3或XCS05/XL PLCC84)进行硬件验证。
3.实验条件(1)开发设备:Lattice ispEXPERT。
(2)实验设备:GW48-CK EDA实验开发系统。
(3)拟用芯片:ispLSI1032E PLCC-84或EPF10K10LC84-3或XCS05/XL PLCC84。
4.实验设计1)系统的原理框图2)VHDL源程序(1)4位二进制并行加法器的源程序ADDER4B.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER4B ISPORT(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 ISSIGNAL S5: STD_LOGIC_VECTOR(4 DOWNTO 0);SIGNAL A5,B5: STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINA5<='0'&A4;B5<='0'&B4;S5<=A5+B5+C4;S4<=S5(3 DOWNTO 0);CO4<=S5(4);END ARCHITECTURE ART;(2)8位二进制加法器的源程序ADDER8B.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADDER8B ISPORT(C8: IN STD_LOGIC;A8: IN STD_LOGIC_VECTOR(7 DOWNTO 0);B8: IN STD_LOGIC_VECTOR(7 DOWNTO 0);S8: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);CO8: OUT STD_LOGIC);END ENTITY ADDER8B;ARCHITECTURE ART OF ADDER8B ISCOMPONENT ADDER4B ISPORT(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 COMPONENT ADDER4B;SIGNAL SC:STD_LOGIC;BEGINU1:ADDER4BPORT MAP(C4=>C8,A4=>A8(3 DOWNTO 0),B4=>B8(3 DOWNTO 0),S4=>S8(3 DOWNTO 0),CO4=>SC);U2:ADDER4BPORT MAP(C4=>SC,A4=>A8(7 DOWNTO 4),B4=>B8(7 DOWNTO 4),S4=>S8(7 DOWNTO 4),CO4=>CO8);END ARCHITECTURE ART;5.系统仿真文件预计当输入为以下值时C8: 0 1 1 00A8: 10 02 FF 02B8:11 04 FF 02与之对应的输出应该为CO8:0 0 1 0S8:21 07 FF 04仿真结果为:6.实验小结本实验使我加深了对加法器的了解,也使我学会了isEXPERT/MAX+plus软件的基本操作,使我对VHDL程序有了更深的了解,但是我不知道是不是我的软件问题,仿真结果是正确的,但CO8那一行为什么与别的行不一样,为什么是阴影的,还有就是S8那一行出现的那些红色“XXX”我不知道事怎么回事,希望老师给我解释一下。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CMOS数字集成电路设计课程设计报告学院:******专业:******班级:******姓名:Wang Ke qin指导老师:******学号:******日期:2012-5-30目录一、设计要求 (1)二、设计思路 (1)三、电路设计与验证 (1)(一)1位全加器的电路设计与验证 (1)1)原理图设计 (1)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规则验证 (13)3)1位全加器的LVS验证 (14)4)错误及解决办法 (14)(二)4位全加器的版图设计与验证 (15)1)4位全加器的版图设计 (15)2)4位全加器的DRC规则验证 (15)3)4位全加器的LVS验证 (16)4)错误及解决办法 (16)(三)8位全加器的版图设计与验证 (16)1)8位全加器的版图设计 (16)2)8位全加器的DRC规则验证 (17)3)8位全加器的LVS验证 (17)4)错误及解决办法 (18)五、设计总结 (18)一、设计要求本次设计要现一个8位的加法器,通过从前端到后端的设计过程,了解数字集成电路设计流程,熟悉Linux系统及其相关软件icfb的使用,加深对数字集成电路前端设计的认识。
二、设计思路基本单元选用复杂cmos电路实现的一位全加器,采用pmos与nmos网络完全对偶的mirror型,将四个1位全加器级联成一个4位加法器,再将两个4位全加器级联成一个8位全加器。
Figure2-11位加法器级联图如图Fig.1所示,四个1位加法器级联成一个4位加法器的级联图。
这种电路的好处是将每前一级的Cin与后一级的Cout直接级联,连接比较方便,电路比较好设计。
版图设计也相对较简单,画出一位全加器的版图,多位全加器的版图就迎刃而解。
由于采用直接级联,前一级的输出延时要累加到后一级的输入进位中,最后会导致级联越多,延时越多。
为了提高性能,可以采用曼彻斯特进位链或是进位旁路。
由于是初次接触icfb,对版图还不是太了解,本次试验采用最简单的直接级联形式。
三、电路设计与验证(一)1位全加器的电路设计与验证1)原理图设计Figure3-11位全加器的原理图(镜像型)如图Fig.3-1所示,为采用镜像型1位全加器的原理图。
其中A、B为两个输入信号也即两个一位加数,Cin为前一位的进位输入信号,Co为当前的进位输出信号,So为和输出信号。
2)生成符号图Figure3-21位全加器的符号图如图Fig.3-2所示,为检查并保存1位全加器原理图后生成的符号图,左侧为输入信号A、B、Cin,右侧为输出信号,Co和So。
3)建立测试激励源为了验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。
Figure3-31位全加器的测试激励如图Fig.3-3所示,为用verilog编写的1位全加器的测试激励。
初始状态三个输入信号都设为1,之后给A、B、Cin赋值三个不同频率的脉冲信号,能遍历三个输入中,全0、全1、两个1、一个1的所有情况。
4)测试电路Figure3-41位全加器的测试电路(模拟)Figure3-51位全加器的测试电路(数模混合)如图Fig.3-4,、Fig.3-5所示,为1位全加器的测试电路,Fig.3-4为加模拟信号激励,Fig.3-5为加数字信号激励。
从中比较可以看出,当输入信号较多时,才用数目混合测试要比采用模拟激励测试要方便,电路会简单些。
所以在接下来的4位全加器和8位全加器测试电路中,均采用数模混合方式。
5)波形仿真Figure3-61位全加器的仿真波形aFigure3-71位全加器的仿真波形b如图Fig.3-6,、Fig.3-7所示,为1位全加器的仿真波形图。
从图Fig.3-6中可以看出,仿真波形结果与真值表相符合,从图Fig.3-7中可以看出1位全加器的延时为0.1ns.(二)4位全加器的电路设计与验证1)原理图设计Figure3-84位加法器的原理图如图Fig.3-8所示,为4位加法器的原理图设计。
4位加法器采用4个1位加法器直接串联,前一级的输出直接连到下一级的输入。
左侧为四位输入信号A[3:0]、B[3:0]和进位输入Cin,右侧为四位输出信号D[3:0]和进位输出Co.2)生成符号图Figure3-94位加法器的符号图如图Fig.3-9所示,为检查并保存4位全加器原理图后生成的符号图,左侧为输入信号A[3:0]、B[3:0]、Cin,右侧为输出信号,Co和D[3:0]。
3)建立测试激励源为验证原理图是否满足逻辑要求,新建一个关于激励源的cell view,建立functional文件,编辑测试激励源的verilog文件,遍历真值表,并生成相应的符号。
Figure3-104位全加器的测试激励如图Fig.3-10所示,为用verilog编写的4位全加器的测试激励。
初始状态进位输入设为0,a[3:0]设为1001,b[3:0]设为0111;之后分别给每一位加数不同周期的脉冲信号,使得激励信号能够遍历所有的情况。
4)测试电路Figure3-114位全加器的测试电路(数模混合)如图Fig.3-11所示,为4为全加器测试电路,采用数目混合形式。
从图中可以看出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲,简洁、方便。
5)波形仿真Figure3-124位全加器的仿真波形如图Fig.3-12所示,为4为全加器的仿真波形图,从图中可以看出,仿真波形结果与4位全加器真值表相符合。
其中,关键路径上的延时为0.37ns,延时较大,这与每一级输出都加入一个反相器有很大关系。
(三)8位全加器的电路设计与验证1)原理图设计Figure3-134位加法器的原理图如图Fig.3-13所示,为8位加法器的原理图设计。
8位加法器采用2个4位加法器串联,前一级的输出直接连到下一级的输入。
其中A[7:0]、B[7:0]分别为八位输入信号,Cin为进位输入信号,D[7:0]为输出信号,Co为进位输出信号。
2)生成符号图Figure3-148位加法器的符号图如图Fig.3-9所示,为检查并保存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位全加器的测试激励如图Fig.3-15所示,为用verilog编写的8位全加器的测试激励。
初始状态进位输入设为0,a[7:0]设为10100111,b[7:0]设为10011101;之后分别给每一位加数不同周期的脉冲信号,进位输入Cin设置为周期脉冲信号,使得激励信号能够遍历所有的情况。
4)测试电路Figure3-168位全加器的测试电路(数模混合)如图Fig.3-16所示,为8位全加器测试电路,采用数模混合形式。
从图中可以看出,采用数模混合测试方法,电路比较简单,不需要每个输入信号都给一个模拟脉冲。
当输入信号数目比较大时,采用数模混合方式更加有效。
5)波形仿真Figure3-178位加法器的仿真波形aFigure3-188位加法器的仿真波形bFigure3-198位加法器的仿真波形c如图Fig.3-17、Fig.3-18、Fig.3-19所示,为8位全加器的仿真波形,电路关键路径为从Cin到Co的路径,延时为160.64-159.98=0.66ns。
Figure3-20关键路径上的最大延时波形如图Fig.3-20所示,为Cin到Co路径上的最大延时波形图。
当A[7:0]=8’hff,B[7:0]=8’h00,Cin=1时候,测出Cin和Co的状态转换时间差即为关键路径上的最大延时。
从图中可以看出,关键路径上的最大延时为80.87ns-80ns=0.87ns。
Figure3-21关键路径的上升时间波形如图Fig.3-21所示,为关键路径上的上升时间波形图,从图中可以看出,上升时间为80.536-80.445=0.091ns。
Figure3-22关键路径的下降时间波形如图Fig.3-22所示,为关键路径上的下降时间波形图,从图中可以看出,下降时间为160.628-160.566=0.062ns。
下降时间比上升时间小的原因可能是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=350.0n M=1.0Mpmos_3p314 net90 B net13 vdd! pmos_3p3 W=3u L=350.0n M=1.0Mpmos_3p313 net13 A net17 vdd! pmos_3p3 W=3u L=350.0n M=1.0Mpmos_3p312 net17 Cin vdd! vdd! pmos_3p3 W=3u L=350.0n M=1.0Mpmos_3p311 net90 net114 net34 vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p310 net34 Cin vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p39 net34 B vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p38 net34 A vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p37 net114 Cin net41 vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p30 net41 A vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p31 net41 B vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p36 net114 A net53 vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p35 net53 B vdd! vdd! pmos_3p3 W=4u L=350.0n M=1.0Mpmos_3p34 Co net114 vdd! vdd! pmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p315 So net90 gnd! gnd! nmos_3p3 W=1u L=350.0n M=1.0Mnmos_3p314 net66 Cin gnd! gnd! nmos_3p3 W=1.5u L=350.0n M=1.0Mnmos_3p313 net70 B net66 gnd! nmos_3p3 W=1.5u L=350.0n M=1.0Mnmos_3p312 net90 A net70 gnd! nmos_3p3 W=1.5u L=350.0n M=1.0Mnmos_3p311 net86 Cin gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p310 net86 B gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p39 net86 A gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p38 net90 net114 net86 gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p37 Co net114 gnd! gnd! nmos_3p3 W=1u L=350.0n M=1.0Mnmos_3p36 net98 B gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p35 net114 A net98 gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p32 net110 B gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p31 net110 A gnd! gnd! nmos_3p3 W=2u L=350.0n M=1.0Mnmos_3p30 net114 Cin net110 gnd! nmos_3p3 W=2u L=350.0n M=1.0.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-11位全加器的版图如图Fig.4-1所示,为1位全加器的版图设计,版图设计也采用nmos和pmos 完全对称的镜像网路设计,上部分为pmos下部分为nmos。