四位加法器
- 格式:pdf
- 大小:277.10 KB
- 文档页数:2
四位加法器实验报告1.实验目的:掌握组合逻辑电路的基本分析与设计方法;理解半加器和全加器的工作原理并掌握利用全加器构成不同字长加法器的各种方法;学习元件例化的方式进行硬件电路设计;学会利用软件仿真实现对数字电路的逻辑功能进行验证和分析。
2.实验仪器:数字逻辑实验箱3.实验内容:A. 设计实现逐次进位加法器,进行软件仿真并在实验平台上测试。
B. 设计实现超前进位加法器,进行软件仿真并在实验平台上测试。
C.使用VHDL自带加法运算实现一个4位全加器。
4.实验代码:A. 逐次进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity FDFA is#定义串行加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;S:out std_logic_vector(3 downto 0);Co:out std_logic);end entity;architecture struct of FDFA iscomponent fadder is#基于一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end component fadder;signal c0,c1,c2:std_logic;beginU0:fadder port map(A(0),B(0),Ci,S(0),c0);U1:fadder port map(A(1),B(1),c0,S(1),c1);U2:fadder port map(A(2),B(2),c1,S(2),c2);U3:fadder port map(A(3),B(3),c2,S(3),Co);end architecture struct;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(a,b,ci:in std_logic;s,co:out std_logic);end entity;architecture func of fadder isbeginco<=(a and b) or (ci and ( a xor b));s<=a xor b xor ci;end architecture func;B. 超前进位加法器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LAC is#定义超前进位加法器总体接口port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end entity;architecture struct of LAC issignal wirep, wireg:std_logic_vector(3 downto 0);signal wirec:std_logic_vector(2 downto 0);component fadder is#基于一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end component fadder;component Ker is#Ker总理进位传递信号P与进位产生信号G,以及进位信号C port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));end component Ker;beginU0:fadder port map(Ai=>A(0),Bi=>B(0),c=>Ci,si=>S(0),pi=>wirep(0),gi=>wireg(0));U1:fadder port map(Ai=>A(1),Bi=>B(1),c=>wirec(0),si=>S(1),pi=>wirep(1),gi=>wireg(1));U2:fadder port map(Ai=>A(2),Bi=>B(2),c=>wirec(1),si=>S(2),pi=>wirep(2),gi=>wireg(2));U3:fadder port map(Ai=>A(3),Bi=>B(3),c=>wirec(2),si=>S(3),pi=>wirep(3),gi=>wireg(3));L:Ker port map(ci=>Ci,P(0)=>wirep(0),P(1)=>wirep(1),P(2)=>wirep(2),P(3)=>wirep(3),G(0)=>wireg(0),G(1)=>wireg(1),G(2)=>w ireg(2),G(3)=>wireg(3),C(0)=>wirec(0),C(1)=>wirec(1),C(2)=>wirec(2),C(3)=>Co);end architecture struct;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fadder is #定义一位全加器port(Ai,Bi:in std_logic;c:in std_logic;si:out std_logic;pi:out std_logic;gi:out std_logic);end entity;architecture func of fadder isbeginpi<=Ai xor Bi;gi<=Ai and Bi;si<=Ai xor Bi xor c;end architecture func;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity Ker is#定义Ker port(ci:in std_logic;P:in std_logic_vector(3 downto 0);G:in std_logic_vector(3 downto 0);C:out std_logic_vector(3 downto 0));architecture func of Ker isbeginC(0)<=G(0) or ( P(0) and ci );C(1)<=G(1) or ( P(1) and G(0) ) or ( P(1) and P(0) and ci );C(2)<=G(2) or ( P(2) and G(1) ) or ( P(2) and P(1) and G(0) ) or ( P(2) and P(1) and P(0) and ci );C(3)<=G(3) or ( P(3) and G(2) ) or ( P(3) and P(2) and G(1) ) or ( P(3) and P(2) and P(1) and G(0) ) or ( P(3) and P(2) and P(1) and P(0) and ci );end architecture func;C. VHDL自带加法运算实现4位全加器:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity VHDLAD is#定义VHDL自带加法运算实现4位全加器总体接口,如果加和比原来和少,则会进位port(A,B:in std_logic_vector(3 downto 0);Ci:in std_logic;Co:out std_logic;S:out std_logic_vector(3 downto 0));end VHDLAD;architecture bhv of VHDLAD issignal D:std_logic_vector(3 downto 0);beginprocess(A,B,Ci,D)beginD <= A + B;if(Ci = '1') thenD <= D + 1;end if;if(D >= A) thenS <= D;Co <= '0';elseS <= D;Co <= '1';end if;end process;end bhv;5.软件仿真结果说明下面图片每幅有14条信号线,从上到下依次为A的低位到高位(共4条)、B的低位到高位(共4条)、输入的进位信号、和的低位到高位(共4条)、输出进位信号。
4位加法器的设计原理四位加法器是一种数字电路,用于实现四位二进制数的加法运算。
它由多个逻辑门组成,主要包括四个全加器、一个四路二选一选择器和一个四位二进制数输出。
在四位加法器中,每个全加器都负责计算两个输入位和上一位的进位的和。
全加器的原理是采用异或门(XOR)、与门(AND)和或门(OR)的组合。
具体来说,全加器有三个输入端,分别是两个输入位(A和B)和上一位的进位(Cin),两个输出端,分别是当前位的和(S)和当前位的进位(Cout)。
全加器的计算公式如下:S = (A XOR B) XOR CinCout = AB + (A XOR B)Cin其中,“XOR”代表异或操作,“AND”代表与操作,“OR”代表或操作。
全加器的设计原理是基于四位二进制数的加法运算规则。
在四位加法过程中,每一位的和由该位的两个输入位和上一位的进位确定。
进位则与上一位的输入位和上一位的进位有关。
因此,通过级联四个全加器,就可以实现四位加法运算。
除了四个全加器以外,四位加法器还包括一个四路二选一选择器。
这个选择器根据一个控制信号选择输出。
四位加法器的输出是一个四位二进制数,可以选择以原码、反码或补码的形式输出。
通过选择器的控制信号,可以选择输出形式。
四位加法器的工作原理是:首先,将四个输入数两两相加,得到每一位的和,以及进位。
然后,将每一位的和通过四个全加器计算得到最终的和,同时将进位以及控制信号传递给选择器。
最后,选择器选择要输出的结果。
总结来说,四位加法器是基于全加器的构建的数字电路,可以实现四位二进制数的加法运算。
它的设计原理是根据四位二进制数加法的规则和全加器的计算公式,通过级联四个全加器,并通过选择器控制输出形式,实现四位二进制数的加法运算。
硬件描述语言实验题目:四位全加器学院数学与计算机学院学科门类xxxxxxxxxx专业xxxxxxxxxx学号姓名x指导教师xxxx20xx年x 月xx日1、实验目的:练习VHDL语言设计工程的建立与仿真的步骤和方法、熟悉VHDL语言行为描述的编写方法。
2、实验环境:PC个人计算机、Windows XP操作系统、Quartus II集成开发环境软件。
3、实验要求:设计一个四位加法器,其引脚及其功能如下表。
4、实验步骤:(1)用RTL描述方式描述4位加法器①RTL描述方式是一种明确规定寄存器描述的方法,它要求在描述时要么采用寄存器硬件的一一对应的直接描述,要么采用寄存器之间的功能描述。
RTL描述方式可以进行逻辑综合,这是其他描述方式所不具备的特点。
②编辑代码这种描述方法详细描述了加法器的计算过程,即写出了每一位的计算和进位方法。
模块内部(构造体说明部分)需要定义三个连接线,定义语句为:signal c0,c1,c2 : std_logic代码如下:library ieee;use ieee.std_logic_1164.all;entity adder4 isport(a,b:in std_logic_vector(3 downto 0);ci:in std_logic;s:out std_logic_vector(3 downto 0);co:out std_logic);end entity;architecture rtl of adder4 issignal c0,c1,c2:std_logic;s(0) <= a (0) xor b(0) xor ci;c0<= (a(0) and b(0)) or (a(0) and ci) or (b(0) and ci);s(1) <= a (1) xor b(1) xor c0;c1<= (a(1) and b(1)) or (a(1) and c0) or (b(1) and c0);s(2) <= a (2) xor b(2) xor c1;c2<= (a(2) and b(2)) or (a(2) and c1) or (b(2) and c1);s(3) <= a (3) xor b(3) xor c2;co<= (a(3) and b(3)) or (a(3) and c2) or (b(3) and c2);end architecture rtl;③仿真结果(2)用行为描述方式描述4位加法器①行为描述是对系统数学模型的描述,其抽象程度比寄存器传输描述方式和结构描述方式更高。
四位超前进位加法器原理1. 输入部分:四位超前进位加法器有两个四位输入数和一个进位输入。
输入数A和B分别代表被加数和加数,每位由低位到高位分别为A0,A1,A2,A3和B0,B1,B2,B3、进位输入Cin表示上一位的进位情况。
2. 输出部分:四位超前进位加法器有一个四位输出数和一个进位输出。
输出数S代表和,每位由低位到高位分别为S0,S1,S2,S3、进位输出Cout表示本位的进位情况。
3. 逻辑运算:每位的和采用异或门(XOR)实现:Si = A ⊕ B ⊕ Cin。
每位的进位采用与门(AND)实现:Ci+1 = (A ⊕ B) ∧ Cin + A∧ B。
4. 进位传递:如果上一位的进位Cin为1,则本位需要传递进位,即Ci+1 = 1、如果上一位的进位Cin为0,则本位不需要传递进位,即Ci+1 = (A ⊕ B) ∧ Cin。
这样可以确保进位在高位传递,实现加法运算的正确性。
5. 进位溢出:最高位的进位输出Cout表示四位相加是否产生进位溢出,即Cout = A3 ∧ B3 ∧ Cin。
如果Cout为1,则表示加法运算的结果超过了四位二进制数的表示范围,发生了进位溢出。
(1)将输入的两个四位二进制数A和B依次与进位输入Cin相异或,得到每位的和Si。
(2)将输入的两个四位二进制数A和B依次与进位输入Cin相与,得到进位传递结果Di。
(3)将邻位的进位传递结果Di与当前位的和Si再次相与,得到进位输出结果Ci+1(4)将当前位的和Si输出为结果的相应位,将进位输出结果Ci+1作为下一位的进位输入。
(5)最高位的进位输出结果Cout表示加法运算是否产生进位溢出。
四位超前进位加法器的优点是速度快,可以实现高速的加法运算。
其核心原理是采用异或门进行和的计算,采用与门进行进位的计算,通过逐位运算,实现了四位二进制数的加法运算,同时处理了进位情况,确保了运算的正确性。
集成电路CAD课程设计报告四位串行加法器设计1串行进位加法器简介1.1加法器实现多为二进制数相加的电路,称为加法器。
根据进位方式不同,有串行进位加法器和超前进位加法器之分。
采用串行进位方式,优点是电路简单,连接方便;缺点是运算速度不高。
原理:把四个全加器(例如两片74LS183)依次级联起来,便可构成四位串行进位加法器。
因此四位串行进位加法器的设计可以分以下两步进行:(1)全加器设计;(2)将全加器级联,构成四位串行进位加法器(a)(b)图(1)四位串行加法器74831.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 t00f f[]200200)()(2V V V V V V C L W I tn i s tn oxN ndsn -----⎪⎭⎫ ⎝⎛=μm ax0m in 2ox SiOox t C εε=230m ax0m in-⎪⎪⎭⎫⎝⎛=TT n n μμ(2) CMOS P 管(W/P )p 的计算|IoH |<=20uA时有 V oHmin=4.4V tr=tf① 以Ioh<=20uA时V oHmin=4.4V 的条件计算最坏的情况下Vdd=4.5V ,V ohmin=4.4v,Vtp=0.8V ,经计算可得∆∆===⎪⎭⎫⎝⎛233034956.164m inn L W []202)()(2oh tp i dd tp i oxp p ohV V V V V V C L W I -----⎪⎭⎫ ⎝⎛=μm ax0m in 2ox SiOox t C εε=230m ax 0m in-⎪⎪⎭⎫⎝⎛=T T n p μμ∆∆===⎪⎭⎫⎝⎛21532227.7pL W②tr=tp 的条件计算:CMOS 中αp=αn所以2.2 输入级设计ddtp p V V =αddtn n V V =αddp L p V k C =τ()⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡-⎪⎪⎭⎫ ⎝⎛--+--=p n n n n f arth t αααατ111.011)1.0(2p pn n pn n p f r LW L W k k t t μμττ⎪⎭⎫⎝⎛⎪⎭⎫⎝⎛===⎪⎪⎭⎫ ⎝⎛∆∆===⎪⎭⎫⎝⎛233034956.164minn L W ∆∆==⎪⎭⎫⎝⎛275931138minn L W ∆∆===⎪⎭⎫⎝⎛233034956.164minn L W输入电平Vih 可能为2.4V(1)拉管P2为了节省面积,同时又能使Vih 较快上升,取图4(2)CMOS 反向器的P1管此P1管应取内部基本反向器的尺寸(3)CMOS 反相器的N 管TTL 的输出电平在0.4-2.4之间 V1*=ViLmax+Vihmin=1.4V∆∆===⎪⎭⎫⎝⎛223312p L W∆∆==⎪⎭⎫ ⎝⎛231.546内p L W式中βk=kn/kp,Vdd=5V ,Vtn=0.7V ,Vi*=1.4V , βk=17.162.3 内部基本反相器中各MOS 管尺寸的计算内部反相器的负载电容: ①本级漏极的PN 结电容Cpn ②下级的栅电容Cc1 ③连线杂散电容Cs Cpn+Cc1=10CsCs :铝线宽5um,长100um ,在场区上面,此铝线的电容为1K k V V k V p n TP DD p *I+++=+++=R TP DD TN R TN N V V V V k ββ)(∆∆=⎪⎭⎫⎝⎛=⎪⎭⎫ ⎝⎛2230W np R pl nl L L W μμβ∆∆==⎪⎭⎫⎝⎛22303345nlL W ∆∆==⎪⎭⎫⎝⎛231.546plL W ∆∆===⎪⎭⎫⎝⎛223312p L WCpn 和Cl :N 管 其衬底是P 型,所以 NB=2⨯1016 cm-3 设结深Xi=0.5um R □=20Ω/□对于P 管Cpn=而CC1可以由:Cc1=10Cs-Cpn 求出。
四位加法器实验报告四位加法器实验报告一、引言在数字电路的学习中,加法器是一个非常重要的基础电路。
本次实验旨在通过设计和实现四位加法器,加深对数字电路原理的理解,并掌握加法器的设计方法和实现过程。
二、实验目的1. 理解加法器的原理和工作方式;2. 掌握加法器的设计方法和实现过程;3. 学会使用逻辑门电路和触发器构建加法器;4. 验证加法器的正确性和稳定性。
三、实验原理1. 半加器半加器是最基本的加法器,用于实现两个一位二进制数的相加。
其逻辑电路如下:(插入半加器电路图)2. 全加器全加器是由两个半加器和一个或门构成,用于实现三个一位二进制数的相加。
其逻辑电路如下:(插入全加器电路图)3. 四位加法器四位加法器是由四个全加器和一些其他逻辑门组成,用于实现四个四位二进制数的相加。
其逻辑电路如下:(插入四位加法器电路图)四、实验步骤1. 按照电路图连接逻辑门和触发器,搭建四位加法器电路;2. 使用开关设置输入数据,观察输出结果;3. 验证加法器的正确性,将不同的输入数据相加,并手动计算结果进行对比;4. 测试加法器的稳定性,观察输出结果是否随着时间稳定。
五、实验结果与分析通过实验,我们成功搭建了四位加法器电路,并进行了多组数据的测试。
实验结果表明,加法器能够正确地进行四个四位二进制数的相加,并输出正确的结果。
同时,实验中观察到输出结果在一段时间后稳定下来,验证了加法器的稳定性。
六、实验总结本次实验通过设计和实现四位加法器,加深了对数字电路原理的理解,并掌握了加法器的设计方法和实现过程。
通过实验验证了加法器的正确性和稳定性,提高了实际操作能力和解决问题的能力。
同时,实验中还发现了一些问题,比如电路连接错误、输入数据设置错误等,这些问题在实验中及时发现和解决,也对实验结果的准确性起到了保障作用。
在今后的学习中,我们将进一步深入研究数字电路的原理和应用,不断提高自己的实验技能和创新能力。
希望通过这次实验,能够为我们的学习和未来的工作打下坚实的基础。
4位快速加法器设计故障与调试4位快速加法器设计故障与调试引言:在数字电路设计中,快速加法器是一个非常重要的组件。
它用于将两个二进制数相加,并输出其结果。
然而,在设计和实现过程中,可能会遇到一些故障或错误。
本文将介绍4位快速加法器的设计故障和调试方法。
一、4位快速加法器的基本原理1.1 二进制加法的基本概念二进制加法是指将两个二进制数相加,并按照二进制规则进行进位和求和。
当两个二进制数A=1101和B=1010相加时,其结果为C=10111。
1.2 4位快速加法器的结构4位快速加法器由四个全加器组成,每个全加器负责计算一对输入位的和以及前一位的进位。
四个全加器按照级联方式连接起来,形成一个完整的4位快速加法器。
二、常见故障与解决方法2.1 电路连接错误在设计和实现过程中,可能会出现电路连接错误导致功能无法正常工作。
这种情况下,需要检查电路连接是否正确,并进行修正。
2.2 逻辑门选择错误在选择逻辑门时,可能会选错门类型或门数量不足,导致电路无法正确计算和输出结果。
解决方法是仔细检查逻辑门的选择,并根据需要增加或更换逻辑门。
2.3 信号线延迟问题在数字电路中,信号线延迟是一个常见的问题。
当信号传输的时间超过了设计所允许的范围时,可能会导致计算结果出错。
解决方法是通过添加缓冲器或调整信号线长度来解决延迟问题。
2.4 电源供应不稳定电源供应不稳定可能导致电路工作不正常或产生噪声干扰。
为了解决这个问题,可以使用稳压器来提供稳定的电源,并添加滤波器以降低噪声干扰。
三、调试方法3.1 逐级验证在进行调试时,可以使用逐级验证的方法。
首先验证单个全加器的功能是否正常,然后再将多个全加器级联起来进行整体验证。
3.2 输入输出检查通过检查输入和输出信号是否符合预期结果,可以确定是否存在故障。
如果输入和输出不匹配,则需要检查逻辑门连接、输入数据和控制信号等方面是否有错误。
3.3 示波器测量使用示波器可以观察信号的波形和时序,从而帮助定位故障。
4位并行加法器代码摘要:1.4 位并行加法器的概念和原理2.4 位并行加法器的实现方法3.4 位并行加法器的应用场景正文:一、4 位并行加法器的概念和原理4 位并行加法器是一种能够同时对四个二进制数进行加法运算的电路。
在计算机系统中,数据的传输和处理通常是以二进制形式进行的。
为了提高运算速度,需要采用并行加法器,使其在同一时钟周期内完成多个二进制数的加法运算。
4 位并行加法器正是为了满足这一需求而设计的。
二、4 位并行加法器的实现方法1.采用全加器实现全加器(Full Adder)是一种能够对两个二进制数进行加法运算的电路。
通过多个全加器的级联,可以实现对多个二进制数的加法运算。
例如,实现一个4 位并行加法器,需要4 个全加器级联。
输入数据为4 个二进制数A、B、C、D,输出结果为S、C0、C1。
2.采用数据选择器实现数据选择器(Data Selector)是一种能够根据控制信号选择输入数据输出的电路。
通过使用数据选择器,可以实现对多个二进制数的加法运算。
例如,实现一个4 位并行加法器,需要4 个数据选择器级联。
输入数据为4 个二进制数A、B、C、D,输出结果为S、C0、C1。
三、4 位并行加法器的应用场景1.数据处理在数据处理系统中,例如计算机、手机等设备,4 位并行加法器可用于加速数据的加法运算,提高数据处理速度。
2.图像处理在图像处理领域,例如模式识别、图像增强等应用,4 位并行加法器可以用于加速图像的像素级加法运算,提高图像处理效果。
3.通信系统在通信系统中,例如调制解调器、信道编解码等应用,4 位并行加法器可以用于加速信号的加法运算,提高通信系统的性能。
综上所述,4 位并行加法器在多个领域具有广泛的应用前景。
设计过程如下:1.构建一个全加器全加器的真值表和逻辑表达式如下:表一全加器真值表逻辑表达式为:S=A⊕B⊕c , C=AB+(A⊕B)c(1)选逻辑门。
双击Logic and Bit Operations。
将Logical Operator模块拖到工作窗口中。
双击模块打开Block Parameters窗口,将Main标签中的Operator选项改为XOR或OR,再拖入一个AND门。
(2)选输入信号。
选用Pulse Generator。
打开Sources面板,拖入三个Pulse Generator 并放置在窗口的左侧。
这三个Pulse Generator作为加法器真值表的三个输入。
双击第一个并将它的周期(period)设定为8秒,相位延迟(phase delay)设定为4秒,Pluse Width设置为50并Pulse Generator重命名为A input,。
双击第二个,将周期设定为4秒,相位设定为2秒,Pluse Width设置为50,重命名为B input,。
双击第三个,将周期设定为2秒,相位设定为1秒,Pluse Width设置为50,重命名为C input。
(3)输入输出的观测。
用Commonly Used Blocks 中的Scope(示波器)模块。
输入分别为A、B、C输出为S、C(4)选好之后,进行连线,连线结果如下图1 全加器逻辑图(5)执行运行用示波器分别观察A、B、C 、S、C如下:A:B:C:S:C:经过比较,各波形与全加器真值表中数值相符合,因此,创建全加器模块。
2. 创建全加器模块选中要创建子系统的模块,选择Edit\CreateSubsystem 菜单,创建全加器模块,命名为Full_Adder,结果如下图图2 全加器模块3.构建一个4位加法器复制为四个全加器,并在Commonly Used Blocks中拖动3个In、2个Out、2个Demux、1个Mux,并连接成四位全加器,如下图所示:图3 4位全加器经赋值检验连接正确,保存命名为Full Adder_4。
4位全加器实验报告篇一:四位全加器实验报告实验一:四位全加器实验报告实验日期:学生姓名:陆小辉(学号:25)指导老师:黄秋萍加法器是数字系统中的基本逻辑器件,是构成算数运算电路的基本单元。
1位加法器有全加器和半加器两种。
多位加法器构成方式有并行进位方式和串行进位方式。
并行进位加法器设有并行进位产生逻辑,运算速度较快;串行进位加法器是将全加器级联构成多位加法器。
并行进位加法器通常比串行进位加法器占用更多的资源,随着位数的增多,相同位数的并行进位加法器比串行进位加法器的资源占用差距快速增大。
因此,在工程中使用加法器时,要在速度与容量之间寻求平衡。
一、设计要求:设计四位全加器,完成相应的功能。
可采用并行进位方式和串行进位方式,可采用三种常用建模方式中的任意一种。
三、测试代码如(转载自:小草范文网:4位全加器实验报告)下: module text_fulladd4; 二、设计代码如下:(此处采用数据流建模)wire [3:0]sum; module fulladd4(sum,cout,a,b,cin); wire cout; output [3:0]sum; reg [3:0]a,b; output cout; reg cin; input [3:0]a,b; fulladd4 f1(sum,cout,a,b,cin);input cin; initial assign {cout,sum}=a+b+cin; begin endmodule a=4'b0; b=4'b0; cin=1'b0; #210 $stop; end always #10 a=a+1; always #5 b=b+1; always #100 cin=cin+1;endmodule 四、仿真波形如下:续图篇二:4位全加器实验报告数电第一次实验通信1402 程杰 UXX13468【实验目的】采用ISE集成开发环境,利用verilog硬件描述语言中行为描述模式、结构描述模式或数据流描述模式设计四进制全加器。
四位加法器
一、实验要求
掌握组合逻辑电路的基本分析和设计方法;
理解半加器和全加器的工作原理,用硬件描述语言实现半加器和全加器的门级设计,并使用自己设计的半加器组件构建全加器;
学会利用软件仿真和远程实验系统实现对数字电路的逻辑功能进行验证和分析。
二、实验原理
半加器(Half Adder)是不考虑来自低位的进位信号,其输入为 1 bit 的被加数和加数,输出为两位:本位的和以及向高一位的进位。
考虑低位进位的1位二进制加法器称为全加器(Full Adder),其输入为被加数加数以及低一位来的进位,输出为本位的和及向高一位的进位。
一位全加器可以由两个半加器及一个或门连接而成,半加器和全加器逻辑结构分别如图所示。
利用全加器级联可以构成多位二进制加法器,下图所示为四位二进制加法电路,低一位的进位输出作为高一位的进位输入。
这种结构称为逐次进位加法器(Ripple Adder)。
由于逐次进位加法器的进位信号是在各级间逐级传递的,所以高位的输出必须等低位的进位输入稳定后才有效,这就使得逐次进位加法器的延时比较大,速度比较慢。
为了提高加法器的运算速度,需要对加法器的结构进行改进。
引入进位传递信号和进位产生信号的概念,有
{P n=A n⊕B n G n=A n B n
利用这两个信号,可以把和信号与进位输出信号表示为
{
S n=P n⊕C n−1 C n=P n C n−1+G n
根据上面给出的进位输出表达式,可得
C0=G0+ P0C−1
C1=G1+ P1C0=G1+ P1G0+P1P0C−1
C2=G2+ P2C1=G2+ P2G1+P2P1G0+ P2P1P0C−1
C3=G3+ P3C2=G3+ P3G2+P3P2G1+ P3P2P1G0+ P3P2P1P0C−1由于各级的进位传递信号和进位产生信号是同时生成的,所以各级的进位输出信号不再需要等待低一位的进位输入信号,从而大大减小了整个电路的延时,提高的加法器的运算速度。
这种方法称为超前进位,超前进位加法器就是利用超前进位形成电路实现快速进位的。
下图是利用全加器和超前进位电路组成的4位二进制超前进位加法器的结构图。