32位浮点加法器设计[整理版]

32位浮点加法器设计[整理版]
32位浮点加法器设计[整理版]

32位浮点加法器设计

32位浮点加法器设计 苦行僧宫城 摘要:运算器的浮点数能够提供较大的表示精度和较大的动态表示范围,浮点运算已成为现代计算程序中不可缺少的部分。浮点加法运算是浮点运算中使用频率最高的运算。因此,浮点加法器的性能影响着整个CPU的浮点处理能力。文中基于浮点加法的原理,采用Verilog硬件描述语言设计32位单精度浮点数加法器,并用modelsim对浮点加法器进行仿真分析,从而验证设计的正确性和可行性。 关键词:浮点运算浮点加法器 Verilog硬件描述语言 Studying on Relation ofTechnology and Civilization 苦行僧宫城 (School of Mechatronic Engineering and Automation, Shanghai University, Shanghai , China) Abstract: The floating-point arithmetic provides greater precision and greater dynamic representation indication range, with floating point calculations have become an indispensable part of the program. Floating-point adder is the most frequently used floating point arithmetic. Therefore, the performance of floating point adder affecting the entire CPU floating point processing capabilities. In this paper the principle-based floating-point addition, Verilog hardware description language design 32-bit single-precision floating-point adder and floating-point adder using modelsim simulation analysis in order to verify the correctness and feasibility of the desig 小组成员及任务分配: 1浮点数和浮点运算 1.1浮点数 浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。 1.2浮点格式 常用的浮点格式为IEEE 754 标准,IEEE 754 标准有单精度浮点数、双精度浮点数和扩展双精度浮点数3 种,单精度为32 位,双精度为64 位,扩展双精度为80 位以上,位数越多精度越高,表示范围也越大。在通常的数字信号处理应用中,单精度浮点数已经足够用了,本文将以它为例来设计快速浮点加法器。单精度浮点数如图1所示。 其中s为符号位,s为1 时表示负数,s为0时表示正数;e为指数,取值范围为[1,254],0和255表示特殊值;f有22位,再加上小数点左边一位隐含的1总共23位构成尾数部分。 1.3 浮点运算 浮点加法运算由一些单独的操作组成。在规格化的表示中,对于基为2的尾数的第1个非0位的1是隐含的,因此,可以通过不存储这一位而使表示数的数目增加。但在进行运算时不能忽略。浮点加法一般要用以下步骤完成: a) 指数相减:将2个指数化为相同值,通过比较2个指数的大小求出指数差的绝对值ΔE。 b) 对阶移位: 将指数较小的操作数的尾数右移ΔE位。 c) 尾数加减:对完成对阶移位后的操作数进行加减运算。

实验一 4位全加器的设计

实验一4位全加器的设计 一、实验目的: 1 熟悉QuartusⅡ与ModelSim的使用; 2 学会使用文本输入方式和原理图输入方式进行工程设计; 3 分别使用数据流、行为和结构化描述方法进行四位全加器的设计; 4 理解RTL视图和Technology Map视图的区别; 5 掌握简单的testbench文件的编写。 二、实验原理: 一个4位全加器可以由4个一位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的进位输入信号cin相接。 三、实验内容: 1.QuartusII软件的熟悉 熟悉QuartusⅡ环境下原理图的设计方法和流程,可参考课本第4章的内容,重点掌握层次化的设计方法。 2.设计1位全加器原理图 设计的原理图如下所示:

VHDL源程序如下(行为描述):-- Quartus II VHDL Template -- Unsigned Adder library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity f_add is port ( a : in std_logic; b : in std_logic; ci : in std_logic; y : out std_logic; co : out std_logic ); end entity; architecture rtl of f_add is begin (co,y)<=('0',a)+('0',b)+('0',ci); end rtl;

四位超前进位加法器原理

超前进位加法器原理 74283为4位超前进位加法器,不同于普通串行进位加法器由低到高逐级进位,超前进位加法器所有位数的进位大多数情况下同时产生,运算速度快,电路结构复杂。其管脚如图1所示: 图1 74283管脚图 其真值表如下所示: 表1 4位超前进位加法器真值表

由全加器的真值表可得S i 和C i 的逻辑表达式: 定义两个中间变量G i 和P i : 当A i =B i =1时,G i =1,由C i 的表达式可得C i =1,即产生进位,所以G i 称为产生量变。若P i =1,则A i ·B i =0,C i =C i-1 ,即P i =1时,低位的进位能传 送到高位的进位输出端,故P i 称为传输变量,这两个变量都与进位信号无关。 将G i 和P i 代入S i 和C i 得: 进而可得各位进位信号的逻辑表达如下:

根据逻辑表达式做出电路图如下: 逻辑功能图中有2输入异或门,2输入与门,3输入与门,4输入与门,2输入或门,3输入或门,4输入或门,其转化成CMOS晶体管图如下:

电路网表如下: *xor 2 .subckt xor2 a b c d f mxorpa 1 a vdd vdd pmos l=2 w=8 mxorpb f d 1 vdd pmos l=2 w=8 mxorpc 2 b vdd vdd pmos l=2 w=8 mxorpd f c 2 vdd pmos l=2 w=8 mxorna f a 3 0 nmos l=2 w=4 mxornb 3 b 0 0 nmos l=2 w=4 mxornc f c 4 0 nmos l=2 w=4 mxornd 4 d 0 0 nmos l=2 w=4 .ends xor2 *and2 .subckt and2 a b f mandpa f a vdd vdd pmos l=2 w=4 mandpb f b vdd vdd pmos l=2 w=4 mandna f a 1 0 nmos l=2 w=4 mandnb 1 b 0 0 nmos l=2 w=4 .ends and2 *and3 .subckt and3 a b c f mandpa f a vdd vdd pmos l=2 w=4 mandpb f b vdd vdd pmos l=2 w=4 mandpc f c vdd vdd pmos l=2 w=4 mandna f a 1 0 nmos l=2 w=6 mandnb 1 b 2 0 nmos l=2 w=6 mandnc 2 c 0 0 nmos l=2 w=6 .ends and3 *and4 .subckt and4 a b c d f mandpa f a vdd vdd pmos l=2 w=4 mandpb f b vdd vdd pmos l=2 w=4 mandpc f c vdd vdd pmos l=2 w=4 mandpd f d vdd vdd pmos l=2 w=4 mandna f a 1 0 nmos l=2 w=8 mandnb 1 b 2 0 nmos l=2 w=8 mandnc 2 c 3 0 nmos l=2 w=8 mandnd 3 d 0 0 nmos l=2 w=8 .ends and4

基于流水线结构的浮点加法器IP核设计

万方数据

陋的论文得到两院院士关注l软件时空 后选择其尾数进入右移模块.如图2a所示。该部分的功能是使移部件和指数修止部件分别进行左移操作和指数修止,并最后两个数的指数位相同.以便进行尾数部分的加法运算。输出整个浮点加法运算的结果。指数修正部件在收到移位位数图2a中,E1、E2分别为两操作数的指数部分,M1、M2为对信号后。会将较大的指数Ex减去移位位数作为最后的指数输应的尾数部分,Ex为两指数中较大的一个指数,Rm为尾数右出。该两部分如图3b所示。 移位数,rsa为需要进行右移操作的尾数,adl为进入加法器的图中lnum为前导判断出的左移位数。inan为左移后的尾另一个操作数的尾数。数部分.Exp为修正后的指数部分;V表示指数溢出,UF表示指3.3右移部分及指数加1部分数下溢.它们用于标志位。 该部分是流水线的第二级。需要右移的尾数在进入右移网络后右移。在尾数相加时有可能会出现溢出的情况,因此需要对在第一级中输出的指数加“l”操作.其结果作为尾数溢出时输出的指数.gapExl。Ex_v表示在Ex加“l”时,指数溢出,也就是浮点数相加时上溢的情况。该部分如图2b所示。 毕南串 ●thlhh,棚 (a)(b) 图2指数对阶及右移网络 3.4加法部件 加法部件的延时向来都在浮点加法器中起关键的作用。此时,尾数部分的加法就可以按照定点数来处理r。定点加法器的常用算法中有行波进位(RCA),超前进位(CLA),和选择进位(CSA)算法。行波进位结构简单,硬件开销少,但进位串行逐级向前传递.在位宽较大时时延会变得难以忍受:而超前进位结构消除了进位逐级传递的效应.且各级的进位输出将同时产生,其速度也最快.但硬件开销也最大;选择进位(CSA)结构则将进位链分组并行。组间采用串行方式连接。每组有两条路径,进位输入为…0’和“l”的丽种情况,通过两条路径同时计算。一旦该组进位输入信号到来,通过多路选择器就可选择出正确的进位输出及和输出.其速度和硬件开销都介于RCA和CLA之间,而在位宽较小的情况下(如32位)时,其速度与CLA相差不大,因此本文中采用CSA结构。该部分如图3a所示。在Dc综合后,该部件的延时为1.56ns.为整个浮点加法器中的关键路径。啦槎 (a)(b) 图3加法器及尾数规格化 3.5规格化部件及指数修正部件 规格化部件和指数修正部件分为两级流水线,第四级流水线主要产生前导…0’或…1’的判断.经过编码产生移位位数信号。与IEEE754数据格式不同的是.在做前导判断的时候,IEEE754只需要检查第一个“l”的位置.而1'I格式是要对与符号数的相反数进行查询.其过程相对复杂,因此本文将该部分单独作为一级流水线处理。第五级流水线则将移位信号送入左 4结论 本文设计的是一种高速浮点加法器的IP软核,使用SMIC提供0.18unlCMOS丁艺单元库并采用Synopsys公司的DesignCoinpiler软件进行综合后发现。如果使用传统的加法器结构,整个设计的关键路径延时为6.3ns.其最高理论运行频率为158MHz.综合后的单元面积为65859um2。而采用本文的加法器结构、算法以及使用流水线分层后,关键路径的延时仅为1.56ns.工作频率可达500MHz以上,单元面积为66742um2。由此可见.在单元面积并未明显增加的基础上。本文方法大幅度的提高了加法器的性能。图4为使用NC—Verilog软件。采用周期为2ns的时钟仿真综合后电路的仿真波形。 本文作者创新点:对传统加法器进行5级流水线合理划分.达到设计高速浮点加法器的目的。 幽4电路仿真波形图 参考文献 『llR.VK.P{llai,D.AL—Khalili,A.J.AL—KhaliliandS.Y.A.Shah.AlowPowerApproachtoFloatingPointAdderDesignforDSPAp?-plications.JounalofVLSISignalProcessing27,195-213,2001[2]DenzilFemandes,VijayRaj,NarsimhanDoriswamy.ASynthesisToolBasedDesignofA1l1MHzCMOSFloatingPointAdderWithBuiltInTestability.IEEE1993 【31D.Narasimhan,D.Femandes,V.K.R且j_J.Dorenbosch,M.Bowden,V.S.KapoorA100MHzFPGABasedFloatingPointAdder.IEEE19930—7803—0826-3/93 【4]NEILBURGESS.NewModelsofPrefixAdderTopologies.Jour-nalofVLSISignalProcessing40,125—141,2005. 【5]TMS320C3xUser’sGuide.2004. 『61钟冬庆。嵌入式DSP处理器的体系结构设计。微计算机信息,2006,10Z:70一71. 作者简介:夏杰(1981一),男(汉),江苏江阴人,江南大学信息工程学院.硕士,研究方向为数字电路设计。 Biography:XIAJie,male(ban),Jiangyin,Jiangsu,Informationde?partmentofJiangnanUniversity,Master,MajorinDigitalCircuitDesign. (214122无锡江南大学信息工程学院)夏杰宣志斌 (214035无锡中国电子科技集团第58研究所)薛忠杰 通讯地址:(214122无锡江南大学信息工程学院)夏杰 (收稿日期:2008.7.25)(修稿日期:2008.9.15)(多目自控嗣邮局订阅号:82-946 36。元,年一193—  万方数据

实验一-加法器的设计与实现讲解

实验项目二:简单计算器设计与实现基本要求: 1. 能够实现加减运算 2. 能够实现乘法运算 扩展要求: 1.能够实现除法运算 一、实验目的 利用原件例化语句完成一个8位加法器的设计。 二、实验环境 Quartus II 开发系统 三、实验内容 1、掌握层次化设计的方法; 2、掌握一位全加器工作原理; 3、掌握用VHDL文本输入法设计电子线路的详细流程; 4、掌握元件例化语句用法; 5、熟悉软硬件设计验证方法。 四、实验过程 设计思想: 8位二进制加法器可以由8个全加器通过级联的方式构成。根据全加器级联的原理,用VHDL设计一个8位二进制数的加法器,可以先设计一个一位全加器,然后利用一位全加器采用元件例化的方式实现加法器。 实验步骤: 1、设计一个全加器 新建工程,建立源文件,输入VHDL设计文件,如下图所示:

完成设计文件输入后,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示: 由图可知仿真结果正确。 2、元件例化 把VHDL设计文件转为原理图中使用的元件。在文件菜单File中选择Creat/Update选项,单击Create Symbol File for Current File 选项,系统自动生成相应的元件标号。 重复新建文件的操作,选择Block Diagram/Schmatic File 选项,新建一个原理图文件,在添加元件列表中可以看到自动生成的元件,选择full_adder这个元件添加到原理图中,如下图所示:

3、完成顶层图的设计 用生成的元件标号,完成顶层图的设计。这里有两种方法,一种是直接用原理图设计,根据原理图设计工具的使用方法,完成顶层文件的设计,这个方法比较复杂,所以这里选择另一种方法,通过VHDL设计文件。 继续建立源文件,输入VHDL设计文件,如下图所示: 依照上述步骤,保存文件,对文件进行编译、仿真,以下是仿真结果,如图所示:

四位二进制加法器 课程设计报告

《电工与电子技术基础》课程设计报告 题目 4位二进制加法器 学院(部) 专业 班级 学生姓名 学号 5月日至 6月日共周

目录 技术要求·2 摘要·2 第一章系统概述 1、总体设计思想·2 2、系统框图·3 3、工作原理·3 第二章单元电路设计及分析 1、加法器的选择·4 2、译码器Ⅰ的选择·8 3、译码器Ⅱ的选择·11 4、数码管的选择·13 第三章系统综述及总体电路图 1、系统综述·14 2、总体电路图·15 3、仿真结果·15 第四章结束语 收获与体会·16 鸣谢·17 附录 1、元件材料清单·17 2、部分元器件引脚图·17 参考文献··17

4位二进制加法器 课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 1)四位二进制加数与被加数输入 2)二位数码管显示 摘要 本设计通过八个数据开关将A4,A3,A2,A1和B4,B3,B2,B1信号作为加数和被加数输入四位二进制并行进位加法器相加,将输出信号S4,S3,S2,S1和向高位的进位C4通过译码器Ⅰ译码,再将输出的X4,X3,X2,X1和Y4,Y3,Y2,Y1各自分别通过一个 74248J译码器,最后分别通过数码管HVH实现二位显示。 本设计中译码器Ⅰ由三部分组成,包括一个2输入四与非门(74LS08D)、一个4位二进制全加器(74LS283N)和一个3输入或门(4075BD_5V)。信号S4,S3,S2,S1和向高位的进位C4输入译码器Ⅰ,将得到的两组4位BCD码输出,将这两组4位BCD码分别输入BCD-7段译码/升压输出驱动器(74248J),使电路的后续部分得以执行。 第一章系统概述 1、总体设计思想 设计思路:两个4位二进制数的输入可用八个数据开关实现,这两个二进制数经全加器求和后最多可以是5位二进制数。而本题要求用两位数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和个位。综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成8位BCD码,其中4位表示这个5位二进制数对应十进制数的十位,另4位表示个位。而译码器Ⅱ有现成的芯片可选用,此处可选74LS248,故本课题设计重点就在译码器Ⅰ。

超前进位加法器设计报告

存档资料成绩: 华东交通大学理工学院 课程设计报告书 所属课程名称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

32位浮点数加法设计仿真实验报告

32位浮点数加法设计仿真实验报告 名字:李磊学号:10045116 班级:10042211 32位浮点数的IEEE-754格式 单精度格式 IEEE.754标准规定了单精度浮点数共32位,由三部分组成:23位尾数f,8位偏置指数e,1位符号位s。将这三部分由低到高连续存放在一个32位的字里,对其进行编码。其中[22:0]位包含23位的尾数f;[30:23]位包含8位指数e;第31位包含符号s {s[31],e[30:23],f[22:0]} 其中偏置指数为实际指数+偏置量,单精度浮点数的偏置量为128,双精度浮点数的偏置量为1024。 规格化的数:由符号位,偏置指数,尾数组成,实际值为1.f乘2的E-128次方 非规格化的数:由符号位,非偏置指数,尾数组成,实际值为0.f乘2的E次方 特殊的数:0(全为零),+无穷大(指数全为1,尾数为0,符号位为0),-无穷大(指数 全为1,尾数为0,符号位为1),NAN(指数全为1,尾数为不全为0) 浮点数加法器设计 设计思路: 1.前端处理,还原尾数 2.指数处理,尾数移位,使指数相等 3.尾数相加 4.尾数规格化处理 5.后端处理,输出浮点数 具体设计: 设计全文: module flowadd(ix, iy, clk, a_en, ost,oz); input ix, iy, clk, a_en; output oz, ost; wire[31:0] ix,iy; reg[31:0] oz;

wire clk,ost,a_en; reg[25:0] xm, ym, zm; reg[7:0] xe, ye, ze; reg[2:0] state; parameter start = 3'b000, //设置状态机 zerock = 3'b001, exequal = 3'b010, addm = 3'b011, infifl = 3'b100, over = 3'b110; assign ost = (state == over) ? 1 : 0; /*后端处理,输出浮点数*/ always@(posedge ost) begin if(a_en) oz <= {zm[25],ze[7:0],zm[22:0]}; end always@(posedge clk) //状态机 begin case(state) start: //前端处理,分离尾数和指数,同时还原尾数 begin xe <= ix[30:23]; xm <= {ix[31],1'b0,1'b1,ix[22:0]}; ye <= iy[30:23]; ym <= {iy[31],1'b0,1'b1,iy[22:0]}; state <= zerock; end zerock: begin if(ix == 0) begin {ze, zm} <= {ye, ym}; state <= over; end else if(iy == 0) begin {ze, zm} <= {xe, xm}; state <= over; end else

加法器设计介绍

加法器设计介绍 算术逻辑部件主要处理算术运算指令和逻辑运算指令,它的核心单元是加法器。这个加法器是影响算术逻辑部件整体性能的关键部分,因为几乎所有的算术运算和逻辑运算,都要通过它来完成。 加法器结构包括串行进位加法器(Carry Ripple Adder,CRA)、进位跳跃加法器(cany skip Adder,CKA),以及较高速度的进位选择加法器(carry select Adder,CSA)、超前进位加法器(Can 了Look—a}lead Adder,CLA)和并行前缀加法器(Parallel Prcfix Adder)等。 串行进位加法器(CRA) 串行进位加法器是最简单、最基本的加法器结构。串行进位加法器的进位像水波一样依次通过每位,因此也称为“行波进位加法器”。它每次只能进行一位运算,因此速度很慢。 如下图所示 进位跳跃加法器(CKA) 进位跳跃加法器是串行进位加法器的改进结构。它将整个加法器分为几个组,如果某组的所有进位传播信号都为“1”,则将该组的进位输入直接传送到输出,而不需要进行进位运算。这个过程好像进位做了一个跳过该组的动作,因此称为进位跳跃加法器。 为了实现跳跃进位,每组需要增加一个多路选择器和一个与门,这种结构可以提高加法器的运算速度,但是,速度的提高只有在某些特定的情况下才会出现。如下图所示

进位选择加法器(CSA) 进位选择加法器采用资源复制的基本思想,用硬件来换取速度。它将整个加法器分为几 个组,每组有两条路径,进位输入为“O”和“1”的两种情况通过两条路径同时计算。一 旦该组进位输入信号到来,通过多路选择器选择正确的进位输出与和值。如下图所示 由于采用了前瞻的思想,因此进位选择加法器的速度有很大提高。如果整个加法器分为 M 组,则运算延时可由第一组进位延时、M 个多路选择器的延时及一个和产生延时相加得到。进位选择加法器虽然具有较快的速度,但由于它采用了资源复制的方法,因此实现代价 也成倍增加。 一般的进位选择加法器每组具有相同的位数,延迟也与位数成线性关系,称为“线性进 位选择加法器”。如果不把每组设置为相同的位数,而是从低位到高位组内位数逐渐增大, 例如第一组2 位,第二组3 位,等三组4 位,等等。这种逐组位数加长的方法使加法器结构具有亚线性延迟的特性。经过计算,这种结构的延迟与位数的平方根成正比,因此称为“平 方根进位选择加法器”。

四位二进制加法器电工电子课程设计

长安大学 电子技术课程设计 4位二进制加法器 专业车辆工程 班级22010901 姓名韩塽 指导教师顾樱华 日期2011、6、26

目录 一、技术要求 (2) 二、摘要 (2) 三、总体设计方案的论证及选择 (2) 1、加法器的选取 (2) 2、译码器的选取 (2) 3、数码管的选取 (3) 四.设计方案的原理框图,总体电路图,接线图及说明 (3) 1、总体原理图 (3) 2、总体接线图 (4) 五.单元电路设计,主要元器件选择与电路参数计算 (4) 1、逻辑开关 (4) 2、加法器设计 (5) 3、译码器设计 (7) 4、数码管设计 (9) 六、收获与体会 (10) 七、参考文献 (11) 八、附件(元器件清单) (12) 评语 (13)

一.技术要求 1.四位二进制加数与被加数输入 2.二位数码管显示 二.摘要 该设计主要包括两个部分:一是用加法器实现四位二进制加数与被加数的输入,二是将相加产生的二进制和数用二位数码管显示,在此设计中加法器是重点,数码显示是难点。数码显示采用计数器,译码器七段译码显示管来实现。加法器分为半加器和全加器,半加器只能实现两个一位二进制数的相加,其只考虑两个加数本身的求和而不考虑低位来的进数位。目前使用最广泛的二进制加法器是二进制并行加法器。 三.总体设计方案的论证及选择 1.加法器的选取 二进制并行加法器是一种能并行产生两个n位二进制算术和的组合逻辑电路。按其进位方式的不同,可分为串行进位二进制并行加法器和超前进位二进制并行加法器两种类型。所以根据加法器的工作速度选取超前进位加法器。这里供选取的超前进位加法器有74LS283,CT74LS283,SN74LS283,DM74LS283,HD74LS283,M74LS283 可供选择。由于我们是非电专业,对电子器件的选取要求不高,为使设计简单起见所以选74LS283加法器。 2.译码器的选取 译码器是一种具有“翻译”功能的逻辑电路,这种电路能将输入二进制代码的各种状态,按照其原意翻译成对应的输出信号。译码器是组合逻辑电路的一个重要的器件,在显示译码器的选择上有七段译码器和八段译码器。此

用verilog编写的32位超前进位加法器代码

//超前进位加法器 `define word_size 32 `define word [`word_size-1:0] `define n 4 `define slice [`n-1:0] `define s0 (1*`n)-1:0*`n `define s1 (2*`n)-1:1*`n `define s2 (3*`n)-1:2*`n `define s3 (4*`n)-1:3*`n `define s4 (5*`n)-1:4*`n `define s5 (6*`n)-1:5*`n `define s6 (7*`n)-1:6*`n `define s7 (8*`n)-1:7*`n module c_adder (a,b,cin,s,cout); //顶层模块 input`word a,b; input cin; output`word s; output cout; wire[7:0] gg,gp,gc; // wire[3:0] ggg,ggp,ggc; // wire gggg,gggp; // //first level bitslice i0(a[`s0],b[`s0],gc[0],s[`s0],gp[0],gg[0]); bitslice i1(a[`s1],b[`s1],gc[1],s[`s1],gp[1],gg[1]); bitslice i2(a[`s2],b[`s2],gc[2],s[`s2],gp[2],gg[2]); bitslice i3(a[`s3],b[`s3],gc[3],s[`s3],gp[3],gg[3]); bitslice i4(a[`s4],b[`s4],gc[4],s[`s4],gp[4],gg[4]); bitslice i5(a[`s5],b[`s5],gc[5],s[`s5],gp[5],gg[5]); bitslice i6(a[`s6],b[`s6],gc[6],s[`s6],gp[6],gg[6]); bitslice i7(a[`s7],b[`s7],gc[7],s[`s7],gp[7],gg[7]); //second level cla c0(gp[3:0],gg[3:0],ggc[0],gc[3:0],ggp[0],ggg[0]); cla c1(gp[7:4],gg[7:4],ggc[1],gc[7:4],ggp[1],ggg[1]); assign ggp[3:2]=2'b11; assign ggg[3:2]=2'b00; //third level cla c2(ggp,ggg,cin,ggc,gggp,gggg); assign cout=gggg|(gggp&cin); endmodule

实验一半加器的设计

实验一半加器设计 一、实验目的 1、了解和学习Quartus II 5.1 软件设计平台。 2、了解EDA的设计过程。 3、通过实例,学习和掌握Quartus II 5.1 平台下的图形输入法 4、学习和掌握半加器的工作和设计原理。 二、实验仪器 PC机,操作系统为Windows2000/XP,本课程所用系统均为WindowsXp下同),Quartus II 5.1 设计平台。 三、实验原理 加法器是构成算术运算器的基本单元,有来自低位的进位将两个1位二进制数相力口,称为半加。实现半加运算的电路叫做半加器。 按照二进制加法运算规则可以列出如表1-1所示的半加器真值表。其中A、B是两个加数,S是相加的和,CO是相加高位的进位。将S、CO和A、B的关系写成逻 辑表达式如下: S 二AB AB = A: B CO 二AB 四、实验步骤 1、启动Quartus II 5.1 :在Windows操作系统下,单击"开始”,选择"程序”,再选择"altera ”选项下的"Quartus II 5.1 ”命令。 2、新建工程:在File菜单中选择New Project Wizard …,弹出对话框如图1-1所示

图1 — 1 在这个对话框中,第一行是需要你指定项目保存的路径,支持含中文字符的路径,第二行是 需要你为这个项目取一个名称,第三行是需要你为这个项目的顶层实体取个名称,如实验不 需要使用芯片,这三个设定好后,点击“ finish ”。(如何使用芯片及各参数设定将在实验 3 中讲到)出现如下界面

在File 菜单中选择New,出现一个对话框如图 1 — 2 图1 — 2 选择 Block Diaqram/Schematic File ,然后点击 "OK ”。 ft QuBEtus TK - £:7>uuiiKn!x mJ 5D 3i E x/tafi/|Krii/ 3/d D ? - -£Bl?i£kl .MFj tils £di L £LM * frajiiri,占■■LfriaAB tiaLi [lain Ukl? □ GS ? 筍而訂 T 旦才?曙涉C ?轿峙fe ? 0 IkCLTJ^ dm AI .TO 'i. SyriE-Hi/i Pltionti^j k /i B I-A J "Vt'-mmy 扎 CiifcdiWkniW 扎 Eiot 人行WM J Nfrlrtfl? p 暑讣1 F4t IN IK TiRii Fl EH. "V |础 1■■中■ | Mb 图1 — 3 4、 保存文件:选菜单File'Save ,在弹出的Save As 对话窗口中,指定存放文件类型、 文件夹和文件名。这一步也可以放在图形设计完成后进行。 5、 原理图设计输入: (1 )元器件符号放置 通过Edit->lnsert Symbol 插入元器件或点击图板左侧的快捷键 卜' I Symbol,或双击图板 3 、新建文件 \ l±

四位串行进位加法器设计

集成电路CAD课程设计报告 四位串行加法器设计 1串行进位加法器简介 1.1加法器实现多为二进制数相加的电路,称为加法器。根据进位方式不同,有串行进位加法器和超前进位加法器之分。采用串行进位方式,优点是电路简单,连接方便;缺点是运算速度不高。 原理:把四个全加器(例如两片74LS183)依次级联起来,便可构成四位串行进位加法器。因此四位串行进位加法器的设计可以分以下两步进行:(1)全加器设计;(2)将全加器级联,构成四位串行进位加法器 (a)(b) 图(1)四位串行加法器7483 1.2 图2为四位串行加法器7483逻辑图

图(2)四位串行加法器 2 四位串行进位加法器的设计实现: 2.1 输出级电路设计 与TTL电路兼容驱动10个TTL ①输出高电平时|IoH|<=20uAV oHmin=4.4V ②输出低点平时|IoH|<=20mAV oHmax=0.4V ③输出级充放电时间tr=tf 计算电路如图3所示 ①以15个PF的电容负载代替10个TTL电路来计算tr、tf ②输入V为的前一级的输出被认为是理想的输出,即:

ViL=Vss,ViH=Vdd ③计算电流时,负载为电流负载,有拉电流的灌电流。 图3 (1)CMOS N 管(W/L )N 的计算: 当输入为高电平时(Vi=Vdd ),N 管导通后级TTL 电路有较大的灌电流输入,此时(表示成对称形式) 使方括号中的值和栅电容Cox 及电子迁移率un 为最小值: o u t 00f f [] 200200)()(2V V V V V V C L W I tn i s tn ox N n dsn -----? ?? ??=μm ax 0m in 2 ox SiO ox t C εε= 2 30m ax 0m in - ??? ? ? ?=T T n n μμ

超前进位加法器的设计分解

沈阳航空航天大学 课程设计报告 课程设计名称:计算机组成原理课程设计课程设计题目:超前进位加法器的设计院(系):计算机学院 专业:计算机科学与技术 班级: 学号: 姓名: 指导教师: 完成日期: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。 引入进位传递函数Pi和进位产生函数Gi。它们的定义为: Pi=Xi+Yi Gi=Xi*Yi P1的意义是:当X1,Y1中有一个为1时,若有进位输入,则本位向高位传送此进位,这个进位可以看成是低位进位越过本位直接向高位传递的。G1的意义是:当X1,Y1均为1时,不管有无进位输入,本位定会产生向高位的进位。 将Pi、Gi代入C1到C4式子中,便可得到: C1=G1+P1*C0;式(1.1.1)

四位二进制加法器课程设计

课题名称与技术要求 课题名称: 四位二进制加法器设计 技术要求: 1)四位二进制加数与被加数输入 2)二位数码管显示 摘要 本设计通过八个开关将A3,A2,A1,A0和B3,B2,B1,B0信号作为加数和被加数输入四位串行进位加法器相加,将输出信号S3,S2,S1,S0和向高位的进位 C3通过译码器Ⅰ译码,再将输出的Y3,Y2,Y1,Y0和X3,X2,X1,X0各自分别通过一个74LS247译码器,最后分别通过数码管BS204实现二位显示。 本设计中译码器Ⅰ由两部分组成,包括五位二进制译码器和八位二进制输出器。信号S3,S2,S1,S0和向高位的进位C3输入五位二进制-脉冲产生器,将得到的n(五位二进制数码对应的十进制数)个脉冲信号输入八位二进制输出器,使电路的后续部分得以执行。 总体论证方案与选择 设计思路:两个四位二进制数的输入可用八个开关实现,这两个二进制数经全加器求和后最多可以是五位二进制数。本题又要求用两个数码管分别显示求和结果的十进制十位和各位,因此需要两个译码器Ⅱ分别译码十位和

个位。综上所述,需要设计一个译码器Ⅰ,能将求和得到的五位二进制数译成八位,其中四位表示这个五位二进制数对应十进制数的十位,另四位表示个位。而译码器Ⅱ有现成的芯片可选用,此处可选74LS247,故设计重点就在译码器Ⅰ。 加法器选择 全加器:能对两个1位二进制数进行相加并考虑低位来的进位,即相当于3个1位二进制数相加,求得和及进位的逻辑电路称为全加器。或:不仅考虑两个一位二进制数相加,而且还考虑来自低位进位数相加的运算电路,称为全加器。 1)串行进位加法器 构成:把n位全加器串联起来,低位全加器的进位输出连接到相邻的高位全加器的进位输入。 优点:电路比较简单。 最大缺点:进位信号是由低位向高位逐级传递的,运算速度慢。 2)超前进位加法器 为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。 优点:与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。 缺点:电路比较复杂。 综上所述,由于此处位数为4(比较小),出于简单起见,这里选择串行进位加法器。 译码器Ⅱ选择 译码是编码的逆过程,将输入的每个二进制代码赋予的含意“翻译”过来,给出相应的输出信号。译码器是使用比较广泛的器材之一,主要分为:变量译码器和码制译码器,其中二进制译码器、二-十进制译码器和显示译码器三种最典型,使用十分广泛。显示译码器又分为七段译码器和八段

超前进位加法器设计实验实验

《计算机组成原理》实验报告 实验序号:四实验项目名称:超前进位加法器设计实验xx 1xx 姓名xx 专业、班XX 实验地点XX 指导教师xx 实验时间XX 一、实验目的及要求 (1) 掌握超前进位加法器的原理及其设计方法。 (2) 熟悉CPLD 应用设计及EDA 软件的使用。 二、实验设备(环境)及要求 PC 机一台,TD-CM3+或TD-CMX 实验系统一套。 三、实验内容与步骤 (1) 根据上述加法器的逻辑原理使用Quartus II 软件编辑相应的电路原理图并进行编译,其在EPM1270 芯片中对应的引脚如图1-2-7 所示,框外文字表示I/O 号,框内文字表示该引脚的含义(本实验例程见‘安装路径\Cpld\Adder\Adder.qpf’工程)。 (2)关闭实验系统电源,按图1-2-8 连接实验电路,图中将用户需要连接的信号用圆圈标明。

(3) 打开实验系统电源,将生成的POF 文件下载到EPM1270 中去。 (4) 以CON 单元中的SD17…SD10 八个二进制开关为被加数A,SD07…SD00 八个二进制开关为加数B,K7 用来模拟来自低位的进位信号,相加的结果在CPLD 单元的L7…L0 八个LED灯显示,相加后向高位的进位用CPLD 单元的L8 灯显示。给A 和B 置不同的数,观察相加的结果。 四、实验结果与数据处理 如在SD17...SD10中输入1111 1001,在SD07...SD00中输入1001 1111,在实验箱中可看到用来模拟低位与高位的进位信号K7、L8灯变亮,同时可看到A01...A08与L7...L0上的显示分别为1001与1000。 五、分析与讨论(心得) 这个实验是上个实验的扩展,进一步加深了我对运算器的认识。现实生活中我们也要学会对已有的知识的一种扩展补充,进一步加深对已有知识的巩固,并探索其更深层次的东西,设计出与众不同的东西来。这个算法的核心是把8 位加法器分成两个 4 位加法器,先求出低 4 位加法器的各个进位,特别是向高4 位加法器的进位 C 4 。然后,高4 位加法器把 C 4 作为初始进位,使用低4 位加法器相同的方法来完成计算。每一个 4 位加法器在计算时,又分成了两个 2

相关文档
最新文档