超前进位加法器设计报告解剖
4bits超前加法进位器的全定制设计_微电子卓越班数字集成电路课程设计报告

数字集成电路课程设计题目:4 bits超前加法进位器地全定制设计姓名:席高照学号: 111000833学院:物理与信息工程学院专业:微电子(卓越班)年级: 2010级指导教师:陈群超(签名)2013 年 6 月 3 日目录第1章概述 01.1课程设计目地.......................................... 错误!未定义书签。
1.2课程设计地主要内容.................................... 错误!未定义书签。
1.2.1设计题目.......................................... 错误!未定义书签。
1.2.2设计内容.......................................... 错误!未定义书签。
第2章功能分析及逻辑分析 (2)2.1功能分析 (2)2.2推荐工作条件 (3)2.3电性能 (7)2.4真值表 ................................................ 错误!未定义书签。
2.5表达式 (6)2.6电路图...................................................................... 错误!未定义书签。
第3章电路设计与器件参数设计83.1性能指标: ............................................ 错误!未定义书签。
3.2模块划分 (7)3.2.1输出级电路设计 (7)3.2.2内部反相器 (9)3.2.3内部电路等效 (8)3.2.4输入级电路 (10)3.2.5输出缓冲级电路 (10)3.2.6输入、输出保护电路 (10)3.3本章小结 (10)第4章电路模拟与仿真................................................................................................... 错误!未定义书签。
4bits超前加法进位器的全定制设计微电子卓越班数字集成电路课程设计报告

数字集成电路课程设计题目:4 bits超前加法进位器的全定制设计姓名:席高照学号:111000833学院:物理与信息工程学院专业:微电子(卓越班)年级:2010级指导教师:群超(签名)2013 年 6 月 3 日目录第1章概述 (1)1.1课程设计目的 (1)1.2课程设计的主要容 (1)1.2.1设计题目 (1)1.2.2设计容 (1)第2章功能分析及逻辑分析 (2)2.1功能分析 (2)2.2推荐工作条件 (3)2.3电性能 (3)2.4真值表 (6)2.5表达式 (6)2.6电路图 (7)第3章电路设计与器件参数设计 (8)3.1性能指标: (8)3.2模块划分 (8)3.2.1输出级电路设计 (8)3.2.2部反相器 (9)3.2.3部电路等效 (9)3.2.4输入级电路 (10)3.2.5输出缓冲级电路 (10)3.2.6输入、输出保护电路 (10)3.3本章小结 (11)第4章电路模拟与仿真 (12)4.1电路搭建 (12)4.1.1建立新库 (12)4.1.2建立SCHEMATIC VIEW (13)4.1.3建立SYMBOL (14)4.1.4建立总体电路SCHEMATIC VIEW (14)4.1.5建立总体SYMBOL (15)4.1.6测试电路 (16)4.2功能仿真 (16)4.3功耗仿真 (18)4.4仿真结果分析 (18)4.5本章小结 (18)5.2反相器版图 (19)5.3输入级 (20)5.4输出级 (20)5.5输出缓冲 (20)5.6异或门 (21)5.7或非门 (23)5.8与非门 (24)5.9整体版图 (25)5.10本章小结 (25)心得 (26)参考文献 (27)附录 (28)附录174LS283中文资料 (28)第1章概述1.1 课程设计目的•综合应用已掌握的知识•熟悉集成电路设计流程•熟悉集成电路设计主流工具•强化学生的实际动手能力•培养学生的工程意识和系统观念•培养学生的团队协作能力1.2 课程设计的主要容1.2.1 设计题目4bits超前进位加法器全定制设计1.2.2 设计要求Vdd=1.8V,VoH=4.6V,Vol=0.4V可驱动10个LSTTL电路(相对于15pf电容负载)1.2.3 设计容•功能分析及逻辑分析•电路设计及器件参数设计•估算功耗与延时•电路模拟与仿真•版图设计•版图数据提交及考核,课程设计总结第2章功能分析及逻辑分析2.1功能分析74283为4为超前进位加法器,不同于普通串行进位加法器由低到高逐级进位,超前进位加法器所有位数的进位大多数情况下同时产生,运算速度快,电路结构复杂。
4bits超前进位加法器全定制设计实验报告

TPLH
Propagation Delay Time
A1~A4,B1~B4到C4
3
ns
TPHL
3
tT
2.5
tP
2.5
Av Power
4
Layout Area
150*180
2.5真值表
2.6逻辑图
工艺的主要参数(smic18工艺)
参数
参数定义
PMOS数值
NMOS数值
U0
迁移率
8.661m
34m
Vth
-0.4
mA
IOL
Low Level OutputVoltage
8
mA
2.3直流特性
Symbol
Parameter
Test Condition
Value
Units
TA=25°C
Min
Typ
Max
VOH
High Level OutputVoltage
VCC=Min,IOH=Max
VIL=Max,VIH=Min
mA
C0
-0.4
II
InputCurrent @ Max Input Voltage
VCC=Max
VI=7.2V
A,B
0.2
mA
C0
0.1
ICC
Supply Current
VCC=Maxl
Parameter
From (Input )to (Ouput)
Test Condition
(2)点选LM视窗上面的工具列File→New→Library;
(3)会产生New Library画面;
(4)在框内填入库名;
16位超前进位加法器实验报告

实验名称:十六位超前进位加法器一、实验目的设计、验证并优化16位超前进位加法器的逻辑功能。
二、实验原理1、1位全加器原理全加器的求和输出信号和进位信号,定义为输入变量A、B、C的两种组合布尔函数:求和输出信号 = A ⊕ B ⊕ C进位信号 = AB + AC + BC实现这两个函数的门级电路如下图。
并不是单独实现这两个函数,而是用进位信号来产生求和输出信号。
这样可以减少电路的复杂度,因此节省了芯片面积。
上述全加器电路可以用作一般的n位二进制加法器的基本组合模块,它允许两个n 位的二进制数作为输入,在输出端产生二进制和。
最简单的n位加法器可由全加器串联构成,这里每级加法器实现两位加法运算,产生相应求和位,再将进位输出传到下一级。
这样串联的加法器结构称为并行加法器,但其整体速度明显受限于进位链中进位信号的延迟。
因此,为了能够减少从最低有效位到最高有效位的最坏情况进位传播延时,最终选择的电路是十六位超前加法器。
2、超前进位加法器原理超前进位加法器的结构如下图。
超前进位加法器的每一位由一个改进型全加器产生一个进位信号gi和一个进位传播信号pi,其中全加器的输入为Ai和Bi,产生的等式为:改进的全加器的进位输出可由一个进位信号和一个进位传输信号计算得出,因此进位信号可改写为:式中可以看出,当gi = 1(Ai = Bi = 1)时,产生进位;当pi = 1(Ai =1或Bi = 1)时,传输进位输入,这两种情况都使得进位输出是1。
近似可以得到i+2和i+3级的进位输出如下:下图为一个四位超前进位加法器的结构图。
信号经过pi和gi产生一级时延,经过计算C产生一级时延,则A,B输入一旦产生,首先经过两级时延算出第1轮进位值C’不过这个值是不正确的。
C’再次送入加法器,进行第2轮2级时延的计算,算出第2轮进位值C,这一次是正确的进位值。
这里的4个4位超前进位加法器仍是串行的,所以一次计算经过4级加法器,一级加法器有2级时延,因此1次计算一共经过8级时延,相比串行加法器里的16级时延,速度提高很多。
组成原理-超前进位加法器设计

《计算机组成原理》实验报告专业:学号:学生姓名:实验日期:实验二一、实验名称:超前进位加法器设计二、实验目的:1 掌握超前进位加法器的原理及其设计方法。
2 熟悉CPLD 应用设计及EDA 软件的使用。
三、实验设备:PC 机一台,TD-CMA 实验系统一套,排线若干。
四、实验内容:1.了解加法器的工作原理,掌握超前进位产生电路的设计方法.2.正确将电路原理图下载到试验箱中.3.正确通过实验箱连线实现4位二进制数的相加并得到正确结果五、实验原理:加法器是执行二进制加法运算的逻辑部件,也是CPU 运算器的基本逻辑部件(减法可以通过补码相加来实现)。
加法器又分为半加器和全加器(FA),不考虑低位的进位,只考虑两个二进制数相加,得到和以及向高位进位的加法器为半加器,而全加器是在半加器的基础上又考虑了低位过来的进位信号。
表1-2-1 1 位全加器真值表A、B 为2 个1 位的加数,Ci 为来自低位的进位,S 为和,Co 为向高位的进位,根据表1-2-1所示的真值表,可得到全加器的逻辑表达式为:S = ABCi + ABCi + ABCi + ABCiCo = AB+ ACi + BCi根据逻辑表达式,可得到如图1-2-1 所示的逻辑电路图。
有了 1 位全加器,就可以用它来构造多位加法器,加法器根据电路结构的不同,可以分为串行加法器和并行加法器两种。
串行加法器低位全加器产生的进位要依次串行地向高位进位,其电路简单,占用资源较少,但是串行加法器每位和以及向高位的进位的产生都依赖于低位的进位,导致完成加法运算的延迟时间较长,效率并不高。
C0 = 0Ci+1 = AiBi + AiCi + BiCi = AiBi + (Ai + Bi)Ci设gi = AiBipi = Ai + Bi则有:Ci+1 = gi + piCi= gi + pi(gi-1 + pi-1Ci-1)= gi + pi(gi-1 + pi-1(gi-2 + pi-2Ci-2))…= gi + pi (gi-1 + pi-1(gi-2 + pi-2(…(g0 + p0C0)…)))= gi + pigi-1 + pipi-1gi-2 + … + pipi-1…p1g0 + pipi-1…p1p0C0由于gi、pi 只和Ai、Bi 有关,这样Ci+1 就只和Ai、Ai-1、…、A0,Bi、Bi-1、…、B0 及C0有关。
试验二 超前进位加法器 设计

试验二超前进位加法器设计练习2. 4位超前进位加法器行波进位加法器延时较长,可采用超前进位加法器减少延时,但是由此会造成电路的复杂。
超前进位加法器原理参见《数字集成电路》(周润德第二版)424页。
对以上公式的注解:公式中的C O,K 表示第K 为的进位输出,G K 为第K 位的进位产生,P K 为第K 为的进位传播。
且:K K KK K KG A B P A B ==⊕ A K ,B K 为输入加数的第K 位。
将Co 和S 用G,P 重写为: O ii C G PC S P C =+=⊕由于低位的输出进位是高位的输入进位,所以有上面的(11.15)式源程序://this is a carry lookahead of 4bitmodule clad(ina,inb,ci,co,sum);input[3:0] ina,inb;input ci;output co;output[3:0]sum;wire co0,co1,co2,G0,G1,G2,G3,P0,P1,P2,P3;assignG0=ina[0]&inb[0],P0=ina[0]^inb[0],G1=ina[1]&inb[1],P1=ina[1]^inb[1],G2=ina[2]&inb[2],P2=ina[2]^inb[2],G3=ina[3]&inb[3],P3=ina[3]^inb[3],co0=G0|(P0&ci),co1=G1|(P1&co0),co2=G2|(P2&co1),co=G3|(P3&co2),sum[0]=P0^ci,sum[1]=P1^co0,sum[2]=P2^co1,sum[3]=P3^co2;endmodule测试程序:module clad_test;reg[3:0] ina,inb;reg ci;wire co;wire[3:0]sum;clad CI(.ina(ina),.inb(inb),.ci(ci),.co(co),.sum(sum)); initialbeginina=0;inb=0;ci=0;endalways #5 ina=ina+1'b1;always #80 inb=inb+1'b1;always #1280 ci=~ci;endmodule仿真结果:注:该结果为10进制显示练练手:参考《数字集成电路》(周润德第二版)420-421,设计一个16位的超前进位加法器,基本单元使用4位的加法器,结构自选。
超前进位加法器的设计分解

超前进位加法器的设计分解沈阳航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:超前进位加法器的设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2014年01月10日第2章详细设计方案2.1 顶层方案图的设计与实现顶层方案图主要实现一位全加器的逻辑功能,采用原理图设计输入方式完成,超前进位加法器电路的是实现基于XCV200可编程逻辑芯片。
在完成原理图的功能设计后,经过检测调试,把输入/输出信号通过引脚编号安排到XCV200指定的引脚上去,最终实现芯片的引脚锁定。
2.1.1顶层方案的整体设计顶层图形文件主要由2个四位超前进位加法器构成,总共17位输入,9位输出。
顶层图形文件由Xilinx Foundation F3.1软件编辑得到相应的模块,顶层图形的整体设计如下图2.1所示:图 2.1八位超前进位加法器整体设计图2.1.2元器件选择和引脚锁定(1)元器件的选择由于在设计的过程中,硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,故采用的目标芯片为Xilinx XCV200可编程逻辑芯片。
(2)引脚锁定在Xilinx Foundation F3.1上面完成软件的设计之后,把顶层图形文件中的输入/输出信号用引脚编号安排到Xilinx XCV200芯片指定的引脚上去,从而实现芯片的设计电路的引脚锁定,各信号及Xilinx XCV200芯片引脚对应关系如下表2.1所示:表 2.1 信号和芯片引脚对应关2.2 功能模块的设计与实现在八位超前进位加法器和四位超前进位加法器的设计中均是采用Schematic 设计输入方式,而在四位超前进位加法器的设计中是由一列的门电路构成,最后在由2个四位超前进位加法器模块构成8位超前进位加法器。
可以扩展开来,16位,32位超前进位加法器原理类似8位的设计原理。
2.2.1 八位超前进位加法器的设计与实现(1)设计描述根据上面在1.1中讲述的四位超前进位加法器的设计原理那样,四位超前进位加法器的实现是建立在进位C1,C2,C3,C4的基础之上的。
16位超前加法器实验报告

16位超前加法器设计实验一、实验分析:四位超前进位加法器HDL程序:module add4_head ( a, b, ci, s, pp, gg);input[3:0] a;input[3:0] b;input ci;output[3:0] s;output pp;output gg;wire[3:0] p;wire[3:0] g;wire[2:0] c;assign p[0] = a[0] ^ b[0];assign p[1] = a[1] ^ b[1];assign p[2] = a[2] ^ b[2];assign p[3] = a[3] ^ b[3];assign g[0] = a[0] & b[0];assign g[1] = a[1] & b[1];assign g[2] = a[2] & b[2];assign g[3] = a[3] & b[3];assign c[0] = (p[0] & ci) | g[0];assign c[1] = (p[1] & c[0]) | g[1];assign c[2] = (p[2] & c[1]) | g[2];assign pp = p[3] & p[2] & p[1] & p[0];assign gg = g[3] | (p[3] & (g[2] | p[2] & (g[1] | p[1] & g[0])));assign s[0] = p[0] ^ ci;assign s[1] = p[1] ^ c[0];assign s[2] = p[2] ^ c[1];assign s[3] = p[3] ^ c[2];endmodulep表示进位否决信号(pass),如果p为0就否决调前一级的进位输入。
否决的意思就是即使前一级有进位,本级也不会向后一级产生进位输出。
数字电路课程设计之超前进位加法器

reg
Cin;
wire[3:0] S;
wire
Cout;
carry_look_add CAL (.A(A),.B(B),.Cin(Cin),.Cout(Cout),.S(S)); initial begin
#10 A=4'd0;B=4'd0;Cin=0; #10 A=4'd11;B=4'd1;Cin=0; #10 A=4'd10;B=4'd12;Cin=0; #10 A=4'd11;B=4'd4;Cin=0; #100 $stop; end endmodule
Pi=Ai○+ Bi;
可以得到输出与进位表达
Gi=AiBi;
Si=Pi○+ Ci;
Ci+1=Gi+PiCi; Gi 为进位产生,不管输入进位 Ci 为什么,只要 Ai 与 Bi 为 1 时,它将产生进位。Pi 称为进位传输,因为它 与从 Ci 到 Ci+1 的进位传输有关
C0 = 输入进位
C1 = G0 + P0C0
Half_Add H3(.a(A[2]),.b(B[2]),.s(v6),.c(v5));
Half_Add H4(.a(A[3]),.b(B[3]),.s(v8),.c(v7));
carry_look
CL1(.C0(Cin),.P0(v2),.G0(v1),.P1(v4),.G1(v3),.P2(v6),.G2(v5),.P3(v8),.G3(v7),.C1(o1),.C2(o2),.C3(o3),.C4(Cout));
注意 C4 并不需要等待 C3,实际上 C4,C3,C2,C1 同时传输 超前进位产生的电路逻辑图
数字电路课程设计之超前进位加法器

# MACRO ./mul_run_msim_rtl_verilog.do PAUSED at line 14
通过查阅资料将 Verilog 测试文件
Timsbench 文件没有实例化,修改为
修改后仿真 OK 参考文献: 1.数字设计与 Verilog 实现 M.Morris Mano 著 第五版
Pi=Ai○+ Bi;
可以得到输出与进位表达
Gi=AiBi;
Si=Pi○+ Ci;
Ci+1=Gi+PiCi; Gi 为进位产生,不管输入进位 Ci 为什么,只要 Ai 与 Bi 为 1 时,它将产生进位。Pi 称为进位传输,因为它 与从 Ci 到 Ci+1 的进位传输有关
C0 = 输入进位
C1 = G0 + P0C0
instance name in instantiation of 'carry_look_add'.
#
#
Region: /carry_look_add_tb
# Error loading design
# Error: Error loading design
#
Pausing macro execution
基于 Verilog 的四位超前进位加法器设计
使用 Verilog 语言实现四位超前进位加法器设计,并使用 Quartes 编写程序,使用 modelsin 进行仿真
验证设计
二、原理介绍
超前进位加法器(图为全加器)
Ai
1
3
Pi
Bi
2
1
3
Si
2
1 3 Gi
2
Ci
1
3
16位超前进位加法器

16位超前进位加法器设计目录摘要 (1)1需求分析1.1加法器的发展........................................................................ 错误!未定义书签。
1.2几种串行加法器性能比较 (3)1.2.1串行进位加法器 (3)1.2.1超前进位加法器 (3)2主要内容 (4)2.1设计原理 (6)2.2设计思路 (4)3 设计思想 (5)4 实现方法 (6)4.1顶层方案图的设计与实现 (6).4.1.1顶层方案的整体设计 (6)4.1.2元器件选择和引脚锁定 (7)4.2功能模块的设计与实现 (8)4.2.1设计描述 (8)4.2.2创建RTL代码并得到电路图....................................................... .94.3功能仿真 (11)4.4编程与下载 (12)4.5硬件仿真结果 (12)5小结 (13)参考文献 (13)附录 (14)摘要:加法运算是最重要最基本的运算,所有的其他基本算术运算乘除等都最终可以用加法运算来表示在不同的场合对加法器的要求不同,要的要求速度快有的要求面积小超前进位加法器相比于串行进位加法器是一种快速加法运算器,根据用户的要求追求速度与面积的平衡。
关键词:超前进位加法器串行进位加法器速度面积1需求分析1.1 加法器的发展加法运算是最基本的运算,所有其他基本算术运算都是以加法运算为基础。
但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关,因此,为了减少进位传输所耗的时间提高计算速度人们设计了多种类型的加法器。
如跳跃进位加法器,进位选择加法器,超前进位加法器等他们都是利用各位之间的状态来预先产生高位进位信号从而减少进位从低位到高位的传递时间1.2 几种加法器的性能比较1.2.1串行进位加法器串行进位加法器的每一位加和值都依赖于上一位进位信号,即进位信号是串行的经过加法器的每一位。
超前进位加法器设计报告解剖

华东交通大学理工学院课程设计报告书所属课程名称EDA课程设计题目超前进位加法器设计分院专业班级学号学生姓名指导教师2013 年7月2日目录第一章设计内容与要求 (3)第二章超前进位加法器设计原理 (3)第三章详细设计流程 (4)3.1.创建工程文件 (4)3.2.程序的编译 (5)3.3.波形的仿真 (7)第四章设计结果分析 (11)第五章源程序代码 (12)第六章心得体会 (14)第七章参考文献 (15)第一章设计内容与要求加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。
但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。
因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。
本设计采用的是超前进位加法器。
通过Verilog 设计一个超前8位加法器。
要求在Quartus II软件下,利用Verilog编程完成层次式电路设计,电路中的元件可以用Verilog设计也可以用库元件连线构成再封装。
8位超前进位加法器,借助EDA工具中的综合器,适配器,时序仿真器和编程器等工具进行相应处理。
适配采用Cyclone系列的EP1C6Q240C8。
要求综合出RTL电路,并进行仿真输入波形设计并分析电路输出波形. 试比较并阐述数据类型reg型和wire型的区别。
第二章超前进位加法器设计原理将n个全加器相连可得n位加法器,但是加法时间较长。
解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。
超前进位产生电路是根据各位进位的形成条件来实现的首先对于1位加法器基本位值和与进位输出为1;如果a,b有一个为1,则进位输出等于cin;令G=ab,P=a+b,则有:Cout==ab+(a+b)cin=G+P•cin由此可以G和P来写出4位超前进位链如下(设定四位被加数和加数为A 和B,进位输入Cin,进位输出为cout,进位产生Gi=AiBi,进位传输Pi=Ai+Bi);C0=cin;C1=G0+P0C0=G0+P0•cinC2=G1+P1C1=G1+P1(G0+P0cin)=G1+P1G0+P1P0cinC3=G2+P2C2=G2+P2(G1+P1cin)=G2+P2G1+P2P1G0+P2P1P0cinC4=G3+P3C3=G3+P3(G2+P2C2)=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0cin Cout=c4由超前进位链,各个进位彼此独立产生,将进位级联传播给去掉了,因此,减小了进位产生的延迟时间。
设计一个4位超前进位加法器(数字逻辑课设)

数字逻辑课程设计题目:设计一个 4 位超前进位加法器
评语:
学院计算机工程班级计算
姓名学号
成绩指导老师黄斌刘丽莉
2016年7 月12日
真值表如下:
Ai Bi Ci-1Si
0000
0011
0101
0110
1001
1010
1100
1111
其卡诺图如下:
AB00011110
C
00101
11010
化简之后的表达式:S=Ai^Bi^Ci-1
进位c的表达式:
g p p p p g p p p g p p g p
下图为局部波形图:
举例:A=0000,B=1011,c_in=0,c=1011,c_out=0
四、实验小结。
通过这次课程设计,我感觉我对Verilog语言还是不够熟悉,在写的过程中需要经常询问同学,或是通过网上查询来解决一些语法上的问题,对于这个加法器,只会按照书本上的来写,不知道怎么修改,测试代码的循环用FOR循环写不出来,只好问同学用always循环。
16位超前进位加法器实验报告

实验名称:十六位超前进位加法器一、实验目的设计、验证并优化16位超前进位加法器的逻辑功能。
二、实验原理1、1位全加器原理全加器的求和输出信号和进位信号,定义为输入变量A、B、C的两种组合布尔函数:求和输出信号= A ⊕B ⊕C进位信号= AB + AC + BC实现这两个函数的门级电路如下图。
并不是单独实现这两个函数,而是用进位信号来产生求和输出信号。
这样可以减少电路的复杂度,因此节省了芯片面积。
上述全加器电路可以用作一般的n位二进制加法器的基本组合模块,它允许两个n 位的二进制数作为输入,在输出端产生二进制和。
最简单的n位加法器可由全加器串联构成,这里每级加法器实现两位加法运算,产生相应求和位,再将进位输出传到下一级。
这样串联的加法器结构称为并行加法器,但其整体速度明显受限于进位链中进位信号的延迟。
因此,为了能够减少从最低有效位到最高有效位的最坏情况进位传播延时,最终选择的电路是十六位超前加法器。
2、超前进位加法器原理超前进位加法器的结构如下图。
超前进位加法器的每一位由一个改进型全加器产生一个进位信号gi和一个进位传播信号pi,其中全加器的输入为Ai和Bi,产生的等式为:改进的全加器的进位输出可由一个进位信号和一个进位传输信号计算得出,因此进位信号可改写为:式中可以看出,当gi = 1(Ai = Bi = 1)时,产生进位;当pi = 1(Ai =1或Bi = 1)时,传输进位输入,这两种情况都使得进位输出是1。
近似可以得到i+2和i+3级的进位输出如下:下图为一个四位超前进位加法器的结构图。
信号经过pi和gi产生一级时延,经过计算C产生一级时延,则A,B输入一旦产生,首先经过两级时延算出第1轮进位值C’不过这个值是不正确的。
C’再次送入加法器,进行第2轮2级时延的计算,算出第2轮进位值C,这一次是正确的进位值。
这里的4个4位超前进位加法器仍是串行的,所以一次计算经过4级加法器,一级加法器有2级时延,因此1次计算一共经过8级时延,相比串行加法器里的16级时延,速度提高很多。
超前进位加法器的设计分解

航空航天大学课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:超前进位加法器的设计院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:完成日期:2014年01月10日目录第 1 章总体设计方案 (2)1.1 设计原理 (2)1.2 设计思路 (3)1.3 设计环境 (3)第 2 章详细设计方案 (4)2.1 顶层方案图的设计与实现 (4)2.1.1顶层方案的整体设计 (4)2.1.2元器件选择和引脚锁定 (5)2.2 功能模块的设计与实现 (6)2.2.1 八位超前进位加法器的设计与实现 (6)2.3 功能仿真调试 (8)第 3 章编程下载与硬件测试 (10)3.1 编程下载 (10)3.2 硬件测试及结果分析 (10)参考文献 (12)附录 (13)第 1 章总体设计方案1.1 设计原理将n 个全加器相连可得n 位加法器,但是加法时间较长。
解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。
超前进位产生电路是根据各位进位的形成条件来实现的。
四位超前进位加法器的设计:①只要满足下述两个条件中的任一个,就可形成C1,(1)X1 ,Y1 均为1;(2)X1,Y1 任一个为1,且进位C0 为1。
由此,可以得到C1 的表达式为:C1=X1*Y1+(X1+Y1)*C0 ;②只要满足下述条件中任一个即可形成C2,( 1)X2 ,Y2 均为1;(2)X2,Y2 任一为1,且X1,Y1 均为1;(3)X2,Y2 任一为1,同时X1,Y1 任一为1,且C0 为 1 。
由此,可以得到C2 的表达式为:C2=X2*Y2+(X2+Y2)*X1*Y1+(X2+Y2)*(X1+Y1)*C0 ;③同理,有C3,C4 表达式如下:C3=X3*Y3+(X3+Y3)*X2*Y2+(X3+Y3)*(X2+Y2)*X1*Y1+(X3+Y3)*(X2+Y2)*(X1+Y1)*C0 ;C4=X4*Y4+(X4+Y4)*X3*Y3+(X4+Y4)*(X3+Y3)*X2*Y2+(X4+Y4)*(X3+Y3)*(X2+Y2)*X1*Y1+(X4+Y4)*(X3+Y3)*(X2+Y2)*(X1+Y1)*C0 。
2.超前进位加法器设计

湖南师范大学职业技术学院(工学院)实验数据报告单实验课程:计算机组成原理实验题目:超前进位加法器设计实验日期: 2011年 10 月 25 日专业:电子信息工程年级:09级班级:01班姓名:温永学号:2009180106一.实验目的(1)掌握超前进位加法器的原理及其设计方法。
(2)熟悉CPLD应用设计及EDA软件的使用。
二.实验内容(1)比较超前进位与一般全加器的区别。
.(2)了解加法器的工作原理,掌握超前进位产生电路的设计方法.(3)正确将电路原理图下载到试验箱中.三.实验原理加法器是执行二进制加法运算的逻辑部件,也是CPU运算器的基本逻辑部件(减法可以通过补码相加来实现)。
加法器又分半加器和全加器,不考虑低位的进位,只考虑两个二进制数相加,得到和以及向高位进位的加法器叫半加器,而全加器是在半加器的基础上又考虑了低位进来的进位信号。
全加器的逻辑表达式为:图1全加器逻辑电路图本算法的核心思想是把8位加法器分成两个4位加法器,先求出低4位加法器的各个进位,特别是向向4位加法器的进位C4然后,高4位加法器把C4作为初始进位,使用低4位加法器相同的方法来完成计算。
每一个4位加法器在计算时,又分成了两个2位的加法器。
如此递归。
图2超前进位扩展算法示意图四.实验结果与分析超前进位全加器是集成全加器的一种,全加器是常用的算术运算电路,在一位全加器的基础上,可以构成多位全加器。
当两个n位二进制数相加时,进位方式有两种,即逐位进位和超前进位,目前生产的集成四位全加器也具有上述两种进位方式。
每一位相加结果,必须等到低一位的进位产生以后才能建立,这种结构叫做逐位进位全加器(或串行进位全加器)。
逐位进位全加器的最大缺点是运算速度慢。
为提高运算速度,必须设法减小或消除由于进位信号逐级传递所耗费的时间。
为了提高运算速度,制成了超前进位全加器。
超前进位全加器各位进位信号的产生均只需要经历一级与非门和一级与或非门的延迟时间,比逐位进位的全加器大大缩短了时间。
杭电计组实验2-超前进位加法器设计实验

杭州电子科技大学计算机学院
实验报告
实验项目:实验2-超前进位加法器设计实验
课程名称:计算机组成原理与系统结构课程设计
姓名:学号:同组姓名:学号:
实验位置(机号):
实验日期:指导教师:
#100;
A = 1011;
B = 1101;C0 = 0;
#100;
A = 1010;
B = 0010;C0 = 1;
#100;
A = 0111;
B = 1000;C0= 0;
#100;
A = 0011;
B = 0100;C0 = 1;
#100;
A = 1001;
B = 0001;C0 = 0;
#100;
end
Endmodule
RTL图
二、结果
思考题:
(1)综合得到的电路图,它和想要设计的电路在引脚的输入输出方面是完全相同的,但是相比较内部的RTL图,实验实现的结果是相同的,但是我编写的实验代码并没有调用实验一的全加器设计。
(2)尝试编写8位超前进位加法器设计实验
module add_8 ( input [7:0]a, input [7:0]b, input cin, output [7:0] s, output co );
wire [7:0]c_tmp;
wire [7:0]g;
wire [7:0]p;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华东交通大学理工学院课程设计报告书所属课程名称EDA课程设计题目超前进位加法器设计分院专业班级学号学生姓名指导教师2013 年7月2日目录第一章设计内容与要求 (3)第二章超前进位加法器设计原理 (4)第三章详细设计流程 (5)3.1.创建工程文件 (5)3.2.程序的编译 (6)3.3.波形的仿真 (8)第四章设计结果分析 (12)第五章源程序代码 (13)第六章心得体会 (15)第七章参考文献 (16)第一章设计内容与要求加法运算是最重要也是最基本的运算,所有的其他基本运算,如减、乘、除运算最终都能归结为加法运算。
但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关。
因此为了减少进位传输所消耗的时间,提高计算速度,人们设计了多种类型的加法器,如跳跃进位加法器、进位选择加法器、超前进位加法器等。
本设计采用的是超前进位加法器。
通过Verilog 设计一个超前8位加法器。
要求在Quartus II软件下,利用Verilog编程完成层次式电路设计,电路中的元件可以用Verilog设计也可以用库元件连线构成再封装。
8位超前进位加法器,借助EDA工具中的综合器,适配器,时序仿真器和编程器等工具进行相应处理。
适配采用Cyclone系列的EP1C6Q240C8。
要求综合出RTL电路,并进行仿真输入波形设计并分析电路输出波形. 试比较并阐述数据类型reg型和wire型的区别。
第二章超前进位加法器设计原理将n个全加器相连可得n位加法器,但是加法时间较长。
解决的方法之一是采用“超前进位产生电路”来同时形成各位进位,从而实现快速加法。
超前进位产生电路是根据各位进位的形成条件来实现的首先对于1位加法器基本位值和与进位输出为1;如果a,b有一个为1,则进位输出等于cin;令G=ab,P=a+b,则有:Cout==ab+(a+b)cin=G+P•cin由此可以G和P来写出4位超前进位链如下(设定四位被加数和加数为A 和B,进位输入Cin,进位输出为cout,进位产生Gi=AiBi,进位传输Pi=Ai+Bi);C0=cin;C1=G0+P0C0=G0+P0•cinC2=G1+P1C1=G1+P1(G0+P0cin)=G1+P1G0+P1P0cinC3=G2+P2C2=G2+P2(G1+P1cin)=G2+P2G1+P2P1G0+P2P1P0cinC4=G3+P3C3=G3+P3(G2+P2C2)=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0cin Cout=c4由超前进位链,各个进位彼此独立产生,将进位级联传播给去掉了,因此,减小了进位产生的延迟时间。
同样可推导出下面的式子:SUM=A⊕B⊕Cin=(AB)⊕(A+B) ⊕CinU=G⊕P⊕Cin本实验中采用8位超前进位加法器第三章详细设计流程3.1.创建工程文件打开Quartus II 9.1创建一个工程文件adder_ahead选择菜单File中New Project Wizard命令,在如下“工程设置”对话框中单击右侧“…”按钮,找到文件夹D:\atlera\quartus,选中已存盘的add_ahead.vhd的文件。
单击Next,将与工程有关的文件加入此工程。
(1)选择仿真器和综合器类型。
都选默认的None。
(2)选择目标芯片。
(3)工具设置。
这里默认使用QuartusⅡ自含的所有设计工具。
(4)结束设置。
3.2.程序的编译(1).选择菜单“Processing”—“Start Compilation”命令,或者点击运行编译按钮,启动完全编译,这里的完全编译包括分析与综合、适配、装配文件、定时分析、网编文件提取过程。
如果只要进行期中的某一项编译,可以选着“Tools”---“Compiler Tool”命令,或者点击按钮即可出现编译工具选择串口,共包括5个编译工具,分别为分析与综合器、适配器、装配器、定时分析器、网表文件提提取器,单机每个工具前面的小图标可单独启动每一个编译器。
(2)编译完成后,会将有关的编译信息显示在窗口中,可查看其中的相关内容。
还可以查看中和后的电路原理图,选择“Tools”---“Netlist Viewers”---“RTL Viewer”菜单命令,既可观察综合生成的RLT方式的电路原理图,在这里我们可以看到8位超期进位加法器生成的原理图如下:8位超期进位加法器生成的原理图:3.3.波形的仿真仿真时序,对项目进行仿真测试,也可以对项目中的某一个子模块进行仿真,其方法是选择菜单“Assignment”---“Wizard”----“Simulator Set Wizard”命令,在设置过程中指定仿真对象,并指定对象的仿真类型、矢量激励源等。
(1)打开波形编辑器选择菜单“File”---“New”命令,在“New”对话框中选择“Other File”页中的“Vector Wave File”选项,单击“ok”按钮,即出现选择波形按钮;(2)输入信号节点选择菜单“View”---“Utility Windows”---“Node Finder”命令,出现对话框,在“Filter”下拉列表中选择“Pins:all”选项,再次单击“List”按钮,即在下面的“Nodes Found”框中出现本设计项目的所有端口引脚列表,从端口列表中选择所需要的,并逐个拖到波形编辑窗口中(4)编辑输入信号波形点击波形编辑窗口中的全屏显示,使用波形编辑窗口中的各种波形赋值,编辑各输入信号的激励波形。
在仿真的时候需要设置一个合理的区域,选择菜单“Edit”---“End Time”命令,在淡出的“Time”窗口中输入60us.对数据的型号的格式可以选择:Binary(二进制),Hexadecimal(十六进制)、Octal(八进制)、Signed Decimal(有符号十进制),Unsgned Decimal(无符号十进制)。
这里选择的是Binary二进制,便于观察结果。
(5)仿真参数的设置,选择菜单“Assignments”—“Setting”命令,在弹出的对话框选择“Simulator Setting”项下的“Mode”,以选择仿真模式,仿真模式有功能仿真模式和时序仿真模式,这里选择功能仿真。
(6)观察仿真结果选择菜单“Processing”---“Start Simulation”命令,即启动仿真器工作。
仿真完毕后,可以通过输出波形,检验所设计电路的功能是否正确。
8位超前进位的功能输出波形图:第四章设计结果分析输入a 00100110 00100111输入b 001010110 01010111cin 0 1 0 1 sum 01101000 01101001 01101010 01101011 结果中显示是正常的,8位超前进位加法器得到成功的实现8位超前进位器综合后的RTL级原理图第五章源程序代码8位超前进位加法器module add_ahead(sum,cout,a,b,cin);input[7:0] a,b;input cin;output[7:0] sum;output cout;wire[7:0] G,P;wire[7:0 ] C,sum;assign G[0]=a[0]&b[0];assign P[0]=a[0]|b[0];assign C[0]=cin;assign sum[0]=G[0]^P[0]^C[0];assign G[1]=a[1]&b[1];assign P[1]=a[1]|b[1];assign C[1]=G[0]|(P[0]&cin);assign sum[1]= G[1]^P[1]^C[1];assign P[2]=a[2]&b[2];assign C[2]=G[1]|(P[1]&C[1]);assign sum[2]=G[2]^P[2]^C[2];assign G[3]=a[3]&b[3];assign P[3]=a[3]|b[3];assign C[3]=G[2]|(P[2]&C[2]);assign sum[3]=G[3]^P[3]^C[3];assign G[4]=a[4]&b[4]; assign P[4]=a[4]|b[4];assign C[4]=G[3]|(P[3]&C[3]); assign sum[4]=G[2]^P[2]^C[2]; assign G[5]=a[5]&b[5]; assign P[5]=a[5]|b[5];assign C[5]=G[4]|(P[4]&C[4]); assign sum[5]=G[5]^P[5]^C[5]; assign G[6]=a[6]&b[6]; assign P[6]=a[6]|b[6];assign C[6]=G[5]|(P[5]&C[5]); assign sum[6]=G[6]^P[6]^C[6]; assign G[7]=a[7]&b[7]; assign P[7]=a[7]|b[7];assign C[7]=G[6]|(P[6]&C[6]); assign sum[7]=G[7]^P[7]^C[7]; assign cout=G[7]|(P[7]&C[7]); endmodule第六章心得体会本学期学习了EDA技术与Vertlog技术,对EDA技术应用有了一些了解,在如今生活在这个数字化和信息化时代,数字产品的广泛应用越来越多。
EDA技术的使用在我们生活中息息相关,发现了EDA的强大功能。
系统系设计,混合电路设计,综合仿真的设计,数字电路设计,版图设计,PCB 板设计,PLD开发,高速电路设计,模拟电路设计等应用。
这次课设中用到的Quartus Ⅱ软件,在安装过程中遇到不能仿真,后来下载了9.11版本得到解决。
Quartus Ⅱ进行EDA开发包括设计输入,编译,仿真,编程和验证,自己通过设计8位超前加法器对Quartus Ⅱ软件的应用也得到了一定的掌握。
在编译的过程中遇到一些不能编译,通过网上找资料,和同学的讨论得到了一定的了解,通过软件的设置和通过编译错误的提示来更改错误,对设计的原理有了更深的理解。
同时也发现遇到问题不要急着马上就向同学寻求帮助,我们自己可以认真地独立思考,想想问题哪里出错了,这样自己才会有不断地提高。
认识涞源于实践实践是用于检验真理的唯一标准。
这次使用超前进位这样就减少了延时,加快了运行速度。
对于一切的设计我们都要多思考,使用最优的方法到我们实际生活当中去。
这次课设设计,加强了我们自己动手,思考解决问题的能力。
也让我们在学习的道路求知的一段探索道路,是对于我们生活一种充实。