八位二进制累加器的设计
计算二进制二进制文件累加和校验码的工具

计算二进制二进制文件累加和校验码的工具计算二进制文件的累加和校验码是一项常用的技术,可以用来验证文件的完整性和准确性。
在计算机科学领域中,二进制是一种用0和1表示的数字系统,而二进制文件则是由一串0和1组成的文件。
累加和校验码是一种简单而有效的校验方法,它将文件中的每个二进制数都相加,并将结果作为校验码。
这种校验码可以用来检测文件是否发生了任何错误或损坏。
如果文件在传输或存储过程中发生了错误,累加和校验码会发生变化,从而提示用户文件可能已经损坏。
计算二进制文件的累加和校验码需要按照以下步骤进行:1. 打开二进制文件:首先,需要打开要计算校验码的二进制文件。
可以使用各种编程语言或文件编辑器来完成这个步骤。
2. 读取二进制数据:读取二进制文件的内容,将其转换为可处理的数据格式。
这可以通过读取文件中的每个二进制数,并将其转换为对应的整数或字符来实现。
3. 计算累加和:将文件中的每个二进制数相加,并将结果保存为累加和。
可以使用循环来依次读取文件中的每个二进制数,并将其加入累加和中。
4. 转换为校验码:将累加和转换为校验码格式,以便用户可以轻松地进行验证。
校验码可以是整数、十六进制数或其他适合的格式。
5. 输出校验码:将计算得到的校验码输出给用户,以便用户可以使用它来验证文件的完整性和准确性。
校验码可以显示在屏幕上,或者保存到文件中供以后使用。
需要注意的是,计算二进制文件的累加和校验码只能检测到一部分错误,例如单个位的翻转或丢失。
它无法检测到更复杂的错误,例如多位错误或乱序错误。
因此,在实际应用中,可能需要使用更强大的校验方法来确保数据的完整性和准确性。
总结起来,计算二进制文件的累加和校验码是一种简单而有效的校验方法,可以用来验证文件的完整性和准确性。
通过将文件中的每个二进制数相加,并将结果作为校验码,可以检测到一部分错误。
然而,需要注意的是,累加和校验码无法检测到更复杂的错误,因此在实际应用中可能需要使用其他更强大的校验方法。
LPM函数知识和运用LPM函数设计逻辑电路

2.1 MCS-51单片机的内部结构
3)数据地址指针DPTR 数据地址指针DPTR是一个16位的专用地址指针寄存器,
它由DPH和DPL这两个特殊功能寄存器组成。DPH是DPTR 的高8位,DPL是DPTR的低8位,其组成如下:
DPTR用于存放16位地址,可对外部数据存储器RAM64KB (0000H~0FFFFH)地址空间寻址。
本章以二十一位加法器为项目,比较原理图输入法、VHDL程序 设计法和应用宏功能lpm_add_sub模块设计法的各自特点;同时 还将进一步扩展介绍其他常用的宏功能模块,并以相应例子进行讲 解。
上一页 返 回
§5.2 完成工作任务的引导
一、资讯
为完成二十一位加法器的设计,需先了解加法器的相关知识。 • 1.半加器
上一页 返 回
§5.3 相关技术基本知识与基本技能
IP包括基本宏功能(Megafunction/PLM )和 MegaCore两 种,在Altera的开发工具QuartusⅡ中,有一些内带的基本宏功能 可供设计者使用。本节将主要介绍这些基本宏函数功能。
一、 LPM函数的基本概念和分类
1.基本概念 LPM是参数可设模块库的英文缩写(Libraay of Parameterized Modules ),这些可以以图形或硬件描述语言形 式方便调用的宏模块,使得基于EDA技术的电子设计的效率和可靠性 有了很大的提高。设计者可以根据实际电路的设计需要,选择LPM库 中合适模块,并为其设定适当的参数,就能满足自已的设计需要,在
实现两个数的加法,考虑当前位向高位进位但不考虑低位进位 的加法器称为半加器。在数字系统中,对被加数、加数及和的描 述通常采用二进制。在用EDA技术实现时常采用原理图输入方式 或硬件描述语言方式实现。 • 2.全加器
二进制与机器码

4
十进制小数转换为二进制数
转换规则:乘2取进位 (x)10 =(. k1 k2 …kn-1kn)2=(k1×2-1+k2×2-2+…+kn-1×2n-1+kn × 2-n)10 k1=x乘2取进位,k2=(2×x-k1)乘2取进位,……直至余数为0 例: (0.125)10=(0.001)2 0.125×2=0.25 进位为0 0.25×2=0.5 进位为0 0.5×2=1 进位为1,余数为0,计算结束 练习: (0.625)10= (0.101)2 (23.25)10= (10111.01)2
3
十进制整数转换为二进制数
转换规则:除2取余 (x)10 =(knkn-1…k2k1)2=(kn×2n-1+kn-1×2n-2+…+k2×21+k1)10 k1=x除2取余数,k2=(x-k1)/2除2取余,……直至商数小于2
(27)10=(11011)2
(10100)2 例: (20)10= (1000011)2 (67)10= (10000000)2 (128)10=
定点除法(1)
符号位:两数相除.符号位相加. 0+0=0, 1+0=0+1=1, 1+1=1 0 数值部分:补码相除(|除数|>|被除数|)
17
定点除法(2)—恢复余数法
18
定点除法(3)—加减交替法
19
�
机器数的表达范围有限,两数之和超出表示范围时,产生 溢出(overflow) 例: 01100101 + 01000011 ——————— 10101000 正数相加, 结果为负数
15
定点乘法
符号位:两数相乘.符号位相加. 0+0=0, 1+0=0+1=1, 1+1=1 0 数值部分:原码相乘 0.000 +0.101 0.101 ——— × 0.011 0.101 ———— 0.010 1 101 +0.101 101 ——— + 000 0.111 ———— 0.011 11 0.001111 +0.000 ——— 0.011 0.001 111 累加器初值为0 乘数末位为1,加被乘数 部分积 部分积右移一位 乘数倒数第二位为1,加被乘数 第二次部分积 第二次部分积右移一位 乘数最高位为0,加0 第三次部分积 16 第三次部分积右移一位,得结果
三位二进制加1与加2计数器课程设计

学号:课程设计题目数字逻辑设计题目二位二进制计数器计数器学院计算机科学与技术专业计算机科学与技术班级姓名指导教师周德仿2011 年03 月7 日武汉理工大学课程设计报告书目录一、课程设计任务书 (2)(一)课程设计题目 (2)(二)要求完成设计的主要任务 (2)(三)课程设计进度安排 (2)二、课程设计正文 (3)1课程设计目的 (3)2 题目理解分析和功能描述 (3)3 逻辑电路设计具体步骤 (4)3.1 第1步,根据逻辑功能要求,作出原始状态图和原始状态表 (4)3.2 第2步,求出激励函数和输出函数表达式 (5)3.3 第3步,根据激励函数表达式,画出逻辑电路图 (7)4设计中使用的集成电路名称及引脚编号 (7)4.1 集成电路74 LS 04 引脚编号 (7)4.2集成电路74 LS 08 引脚编号 (8)4.3集成电路74 LS 32引脚编号 (8)4.4 集成电路74LS 86 引脚编号 (8)4.5集成电路74 LS 74 引脚编号 (9)5 三位二进制模5(加1加2)计数器的连接 (9)5.1 调试和测试同步时序逻辑电路和组合逻辑电路参考事项 (9)5.2 计数器的连接 (9)6 集成电路连接图和实验现象 (10)6.1集成电路连接图 (10)6.2实验现象及调试和测试 (10)7 三位二进制模5计数器设计总结和心得 (11)7.1 三位二进制模5计数器设计总结 (11)7.2 课程设计心得 (11)三、本科生课程设计成绩评定表 (12)1课程设计任务书学生姓名学生专业班级计算机指导教师周德仿学院名称计算机科学与技术学院题目:三位二进制加1计数器初始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS 32 )、非门( 74 LS 04 ),设计三位二进制加1计数器。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。
51单片机实验手册

51单片机实验手册实验一 RAM数据传送程序设计【实验目的】1.学习51微控制器汇编语言的编写。
2.了解51微控制器 RAM的读写及调试方法。
【实验原理】51微控制器片内RAM低128字节(00H~7FH)包含工作寄存器区(00H~1FH)、位操作区(20H~2FH)和数据区(30~7FH)。
对该128字节的RAM区,均可采用直接寻址和间接寻址方式,若采用间接寻址用R0或R1作间址寄存器。
特殊功能寄存器占用片内RAM地址空间 80H~FFH,对它只能采用直接寻址方式。
采用16位数据指针DPTR作间址寄存器,可寻址64KB的RAM和I/O接口。
数据传送指令是汇编语言程序设计的基本要素,数据块传送也是程序设计的基本技巧之一。
编写数据块传送程序,重点要掌握数据指针R0或R1以及DPTR的使用。
【实验内容及要求】1.试编写程序:把内部RAM的(30H~7FH)单元清零。
2.试编写程序:用数据传送指令将片内RAM地址50H~5FH中的内容置成00H~0FH,然后将其中的内容传送到外部RAM地址1000H~100FH中,最后再将外部RAM地址1000H~100FH中的内容传回内部RAM地址中。
3.试编写程序:求n2(0≤n≤9),并将结果送RAM的地址30H中。
【实验报告要求】1.画出程序框图,整理实验程序程序。
2.如果把程序1中(30H~7FH)单元的内容改为55H,如何修改程序。
3.如果把程序2中(50H~5FH),(1000H~100FH),(60H~6FH)单元的内容改为0FFH,如何修改程序。
4.如果把程序3中求n2改为求n3,分析会出现什么结果? 5.分析微控制器存储器的地址空间分配,并画出简图。
6.理解数据指针:数据块传送若在内部RAM中进行,用什么作数据指针?若在外部RAM或ROM中进行,用什么作数据指针?7.存储器和数据存储器的地址空间可以重叠,对此如何解释?【实验参考程序】程序1:内部RAM清零 ORG 0000HCLEAR: MOV R0,#30H ;30H送R0寄存器 MOV R6,#4FH ;4FH送R6寄存器(计数)CLR1: MOV A,#00H ;00送累加器A MOV @R0,A ;00送到30H-7FH单元 INC R0 ;R0加1DJNZ R6,CLR1 ;不到4F个字节再清 WAIT: LJMP WAIT END程序2:数据传送 ORG 0000HMAIN: MOV R0,#50H MOV R7,#10H MOV A,#00H A1: MOV @R0,A INC A INC R0DJNZ R7,A1 MOV R0,#50HMOV DPTR,#1000H MOV R7,#10H A2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R7,A2 MOV R0,#60HMOV DPTR,#1000H MOV R7,#10HA3: MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR DJNZ R7,A3HERE: AJMP HERE END程序3:计算N的平方 ORG 0000HMOV DPTR,#1000H MOVC A,@A+DPTR MOV 30H,A ORG 1000HTABEL: DB 00,01,04,09,16 DB 25,36,49,64,81 NOP END实验二、数制转换程序设计【实验目的】1.学习ASCII码与十六进制互换算法及程序设计方法。
单片机作业

第一章1、写出下列二进制数的原码、反码和补码(设字长为8位)。
(1)001011 (2)-0010112、微型计算机由那几部分构成?3、什么叫单片机?它有何特点?1、(1)原码:00001011 反码:00001011 补码:00001011(2)原码:10001011 反码:11110100 补码:111101012、微型计算机由微处理器、存储器和I/O接口电路构成。
各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。
3、单片机就是在一块硅片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O口(如并行、串行及A/D变换器等)的一个完整的数字处理系统。
单片机主要特点有:品种多样,型号繁多;存储容量大;频率高,速度快;控制功能强,集成度高;功耗低;配套应用软件多。
第二章2.1 说明ROM,EPROM,EEPROM和Flash之间的主要特点和区别?2.3某ROM芯片中有12根地址输入端和8个数据输入端,该芯片的存储容量是多少位?2.4说明动态RAM和静态的主要区别,使用时应该如何选用。
2.6现有若干片2K*8位的RAM芯片,主控制器的地址线为20根,若用线选法组成片外存储器,有效的寻址范围最大是多少?若用3-8译码器来产生片选信号,则有效的寻址范围最大有是多少?若要将寻址范围扩展到64KB,应选用什么样的译码器来产生片选信号?2.8如图2.22所示,若用1K*8位的芯片来扩展3K*8位RAM,试计算各片的地址范围。
2.1.)1. 掩模工艺ROM(固定式ROM):用来存储计算机用的某些标准程序和固定的数据表格,因为制造出来已经被固定了,所以只能读,不能写。
2. 可擦除可编程存储器EPROM:具有可擦除功能,擦除后可进行再编程,但是擦除需要紫外线照射,平时保存要避免阳光直射。
3. 可电擦除可编程只读存储器EEPOM:用电信号进行擦除,具有ROM的非易失性,又有RAM的随机读写,但是写入速度比较慢,重编程时间较长,有效重编程次数较低。
bcd码加法.

二.BCD码基本知识
BCD码有很多种表示方法,我们通常用 的BCD码是8421BCD码,我们单片机课 程当中的BCD码如不特别说明就是指 8421BCD码,8421BCD码实际就是用 0000—1001这样十个四位二进制数表示 0—9十个十进制数,但我们是以字节为 单位的,一个字节是八位二进制数,如 果高四位和第四位各存一个BCD码,这 样叫做压缩BCD码。
任务八BCD码相加
在单片机应用系统中,通常都要求进行 BCD码的运算,特别是在十进制运算的系 统中,很多的系统在人机界面的输出部分 往往都要用十进制显示,所以BCD码是很件来观看BCD码的相加过程。
在单片机应用系统中,通常都要求进行BCD码的运算, 特别是在十进制运算的系统中,很多的系统在人机界 面的输出部分往往都要用十进制显示,所以BCD码是 很重要的一部分。本任务通过WAVE6000软件来观看 BCD码的相加过程。 【任务目的】 1、理解什么是BCD码。 2、理解BCD码相加的过程。 【任务描述】 1、通过不同数据区的数据改变观察 BCD码的情况。 2、通过WAVE6000的窗口观察BCD码相加的情
MOV 50H , A
MOV A , 41H ADDC A , 31H DA A MOV 51H , A MOV A , #0
ADDC A , #0
MOV 52H , A END
;将加完并转化完的十进制数存至和值寄 存器的低位 ; ;将两个加数的高位相加 ;将高位相加后调整 ;将处理后的数据存至和值高位 ;如果有进位的话,将进位放至万位, 即将进位位Cy加至ACC ;既可。 ;ACC与0带进位位相加,就把Cy加至 ACC了 ;将万位存至52H ;结束伪指令
参考程序如下: ORG 0000H ;定位伪指令,指定下一条指令的地址,第一条指 令必须放在0000H MOV 30H , #78H ;第一个加数的高位。具体数值可以自己修改! MOV 31H , #34H ;第一个加数的低位。具体数值可以自己修改! MOV 40H , #56H ;第二个加数的高位。具体数值可以自己修改! MOV 41H , #12H ;第二个加数的低位。具体数值可以自己修改! MOV 50H , #0 ;将和值所要存储的数据区先清零。 MOV 51H , #0 MOV 52H , #0 MOV A , 40H ;因为加减指令必有一个为ACC暂存器,所以先将 一个加数的低 ;位送至ACC中,用于和另一个加数的低位相加。
二进制与机器码

• 奇偶数的判断以尾数为准 • 易于运算
• 用于表达二进制数所需的物理状态最少
例:0~999范围内的数,十进制表示需3×10=30个稳定状态; 二进制表示需10×2=20个稳定状态(210=1024)
5
二进制数转换为十进制数
• 整数部分: (knkn-1…k2k1)2=(kn×2n-1+kn-1×2n-2+…+k2×21+k1)10 • 小数部分: (. k1 k2 …kn-1kn)2=(k1×2-1+k2×2-2+…+kn-1×2-(n-1)+kn × 2-n)10 例: (11001)2 (0.101)2 (101.11)2 24+23+1=(25)10 2-1+2-3=(0.625)10 22+1+2-1+2-2=(5.75)10
13
机器码—反码
• 数学定义: [x]反= x 1>x>=0 0>=x>-1 2-2-n+x
• 物理意义:正数反码等于原码,负数反码等于原码符号位 不变但各数值码位取反
例:x=+0011011 x= -1000110
[x]原=00011011 [x]原=11000110
[x]反=00011011 [x]反=10111001
10
数的机内表示— 定点整数
• 无符号整数: 数值位
• 字长为n时,无符号整数的表达范围为 0~2n-1
• 有符号整数: 数符 数值
• 字长为n时,有符号整数的表达范围为 |x|<=2n-1-1
11
数的机内表示— 浮点数
• 浮点数: 阶符 阶码 数符 尾数 • 将数x表示为 s×2j的形式,其中s为x的小数形式(尾数) 例: -110.11= -0.11011×211 • 数字需要转换成标准小数 • 设阶码共m位,尾数共n-1位,则浮点数的表示范围为: 2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入电压V=5V时,当Cin=1,A=1,B由0->1变化时,用计算器中的delay函数测得此最坏下降延时(对于Sum来说,此时相当于最坏的上升延时)如图所示。由图可知,Sum最坏的上升延时为484.14ps;而Sum_layout最坏的上升延时。所以,版图仿真的最坏上升延时比原理图仿真的最坏延时小79.1ps。
图七Cin=1,A=1,B由0->1时功耗的波形
(2)最坏的下降延时分析
下面利用瞬态分析,测量Cin=0,A=0,B由1->0变化时的延时情况。如下图所示,是该情况下的输入输出波形。
图八Cin=0,A=0,B由1->0时,输入输出波形
用计算器中的delay函数测得此时的最坏上升延时(对于Sum来说,此时相当于最坏的下降延时)如图九所示。由图可知,最坏的下降延时为528.98ps
aபைடு நூலகம்组内并行,组间串行的进位链
b)组内并行,组间并行的进位链
它们的目的就是要进位信号的产生尽可能的快,因此产生了二重进位链或更高重进位链,显然进位速度的提高是以硬件设计的复杂化为代价来实现的。
(3)串行加法进位
串行加法进位从最低位进到最高位,即整个进位是分若干步骤进行的。
优点:具有器件少、成本低、电路结构简单的优点。缺点:运算速度慢。
正电平触发式触发器的状态在CP=1期间翻转,在CP=0期间保持不变。电平触发式触发器的缺点是存在空翻现象,通常只能用于数据锁存。
(2)主从触发器:
主从触发器由分别工作在时钟脉冲CP不同时段的主触发器和从触发器构成,通常只能在CP下降沿时刻状态发生翻转,而在CP其他时刻保持状态不变。它虽然克服了空翻,但对输入信号仍有限制。
(1)在运算器中,累加器是专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。进行加、减、读出、移位、循环移位和求补等操作,是运算器的主要部分。
(2)在中央处理器CPU中,累加器(accumulator) 是一种暂存器,用来储存计算所产生的中间结果。没有像累加器这样的暂存器,那么在每次计算 (加法,乘法,移位等等)后就必须要把结果写回到内存,也许然后再读回来。然而存取主内存的速度是比从算数逻辑运算单元(ALU) 到有直接路径的累加器存取更慢。
二、整体思路
累加器就是把一列的数字加起来。一开始累加器设定为零,每个数字依序地被加到累加器中,当所有的数字都被加入后,结果才写回到主内存中。
首先设计一全加器,可以将两数字A和B及进位进行相加,由于触发器具有记忆功能,所以将它们所加的结果输入到触发器进行存储,然后将存储的结果作为全加器的其中一输入再次与输入数字相加,然后再进行存储,这样就可以实现累加的功能了。
用计算器中的delay函数测得此时的最坏下降延时(对于Sum来说,此时相当于最坏的上升延时)如图所示。由图可知,最坏的上升延时484.75ps
如图七所示,是利用计算器中的spectrerPower函数计算出的功耗波形。由图可以看出,在静态时,电路消耗的功耗很微小(几乎为0);然而在动态时,相对静态而言,消耗的功耗就比较大。然而,从整体上来说功耗还是很小的。
Si=Ai⊕Bi⊕Ci-1
第二个表达式也可用一个异或门来代替或门对其中两个输入信号进行求和:
全加器晶体管级电路:
各MOS管参数:
1.2全加器晶体管级原理图绘制
注意:Cin为关键信号(最后稳定信号),故靠近输出端,可以减小延时。
1.3全加器逻辑功能验证
全加器的逻辑表达式可表示为:
其真值表如下表所示:
输入
通过选题,熟悉对cadence工具的应用,设计过程中运用模块化设计有助于整体的层次分明。因此在学习了模拟电子技术,数字电子技术,模拟CMOS集成电路设计,数字集成电路设计等的基础上,由最底层的晶体管级别的电路连成更为复杂的电路,实现特定的功能。
关键词:CMOS、ACCUMULATOR、全加器、触发器、累加器、版图、LVS验证、仿真、cadence、集成电路、模块化设计等。
(3)边沿触发器:
边沿触发器只能在CP上升沿(或下降沿)时刻接受输入信号,其状态只能在CP上升沿(或下降沿)时刻发生翻转。它应用范围广、可靠性高、抗干扰能力强。
3.最终方案:
综上所述,整体考虑,最终选择具有器件少、成本低、电路结构简单等优点的串行加法进位方式,触发器选用能克服空翻、可靠性高、抗干扰能力强的维持阻塞式边沿D触发器。
输出
A
B
Cin
Sum
Cout
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1.4全加器延时及功耗分析
首先,对上面的全加器进行封装。Design->Create->From Cellview,生成的封装symbol如图所示。
对上面的全加器原理图进行封装之后,建立如图所示的Full_Adder_test原理图,原理图主要用来分析全加器的延时以及功耗等。
(1)首先为与非门创建一个config view。然后,在Analog Environment环境中,Setup->Design选择所要模拟的线路图Full_Adder_posttest,view name选择config,然后按以前的方法进行仿真,仿真输入输出结果如图所示。
(2)不同的输入电压下延时与功耗
如图十所示,是利用计算器中的spectrerPower函数计算出的功耗波形。由图可以看出,在静态时,电路消耗的功耗很微小(几乎为0);然而在动态时,相对静态而言,消耗的功耗就比较大。然而,从整体上来说功耗还是很小的。
图十Cin=0,A=0,B由1->0时功耗的波形
1.5全加器版图绘制与LVS验证
根据实验要求绘制该全加器的版图如图十一所示。该全加器版图使用AMI 0.6um工艺,栅长为600nm,NMOS和PMOS管的宽都以最小尺寸方向器作为标准进行放大。
2.对设计的八位累加器创建符号
3.3 八位累加器原理图仿真及分析
3.4 八位累加器逻辑功能验证
3.5八位累加器版图绘制、LVS验证及仿真分析
1.版图绘制
2.版图寄生电容的提取
3.LVS验证
3.6小结
五、本次课程设计收获与心得
六、参考文献
一、选题的背景及意义
累加器在计算机组成部件当中具有重要的作用,是用来储存计算所产生的中间结果,是一种暂存器。有各种不同的应用:
也就是说,当Cin=1,A=1,B由0->1变化时,下降延时最大。同理可以分析出,当Cin=0,A=0,B由1->0变化时,上升延时最大。
(1)最坏的上升延时分析
下面利用瞬态分析,测量Cin=1,A=1,B由0->1变化时的延时情况。如下图所示,是该情况下的输入输出波形。
Cin=1,A=1,B由0->1时,输入输出波形
学号:2011****
姓名:***
班级:微电子1班
指导教师:白天蕊
实习时间:二O一四年七月
摘要
随着科学技术的发展,计算机不断地更新换代,给我们的生活带来越来越多的便捷,然而累加器作为计算机的重要组成部件,在运算器、中央处理器CPU中、汇编语言程序中都有各种不同的应用,因此很有必要了解其工作原理。
本次课程设计目的为DESIGN A CMOS 8-BIT ACCUMULATOR,八位累加器主要由两大模块组成:八位加法器与八位寄存器。首先DESIGN A CMOS FULL ADDER和DESIGN A MASTER-SLAVE FLIP-FLOP,然后再由它们构成八位加法器。按定制设计流程设计各自原理图,确定参数,检验无误,即可进行原理图仿真及分析、逻辑功能验证、版图绘制、版图寄生电容提取、LVS验证及仿真分析。
1.6全加器版图仿真
1.7 小结
模块二、DESIGNA MASTER-SLAVEFLIP-FLOP
2.1 触发器介绍(包括工作原理,功能逻辑等)
2.2 D触发器原理图绘制
1.首先设计三输入与非门的原理图
2.对设计的三输入与非门创建符号
3.利用创建的三输入与非门符号设计主从触发器
4.对设计的主从触发器创建符号
目录索引
一、选题的背景及意义
二、整体思路
三、方案选择
1.八位加法器的选择
2.触发器的选择
3.最终方案
四、设计详细内容
模块一、DESIGN A CMOS FULL ADDER
1.1 全加器介绍(包括工作原理,功能逻辑等)
1.2 全加器原理图绘制
1.3 全加器逻辑功能验证
1.4全加器延时及功耗分析
1.5全加器版图绘制与LVS验证
ACOUT
BSUMOUT
CIN
累加器结构图
三、方案选择
八位二进制累加器主要由两大模块组成:八位加法器与八位寄存器。八位寄存器主要是由触发器组成的,八位加法器由一位全加器组成,所以最终归结到八位加法器的组成方式与各类触发器方案的选择。
1.八位加法器的选择:
(1)串行进位的并行加法器;
(2)并行进位的并行加法器;
由于要测量最坏情况下的延时以及功耗,所以首先应分析何时才是最坏的情况。由全加器原理图图一可以看出,最长的MOS管链是输入A、B、Cin的三个MOS管,所以最大的延时就取决于这最长的MOS管链。下面我们来分析该链最坏下降延时情况下的输入条件,如图所示
(a)输入B=0保持不变(b)输入B由0->1变化
由于节点寄生电容的存在,所以每一次充放电的过程中,都要对寄生电容C1及C2进行充放电,进而增加了传输延时。如图所示,当Cin=1,A=1,B=0保持不变,即Cin、A输入的NMOS管导通,B输入的NMOS管截止,NMOS没有到地的通路,负载电容不会放电,然而不期望的是,Cin和A反而会对寄生电容C1及C2进行充电,使得寄生电容C1及C2存储电荷;当Cin=1,A=1,B由0->1变化时,即Cin、A、B输入的NMOS管均导通,有到地的通路,所以不仅负载电容Cload会放电,而且寄生电容C1及C2也要放电,所以增加了下降延时的时间。由于B是最后稳定的信号(通常称为关键信号),所以经过上面的分析可以得出一个结论:为了减小延时、提高速度,关键信号(最后稳定的信号)应该尽量靠近输出端。