数字逻辑4位二进制加法器实验
组合逻辑课程设计4位二进制全加器全减器原创

1 1
逻辑表达式:
实现全加器的电路图如下:
图1.2.1全加器等式电路图
图1.2.2全加器简化模型图
1
1
四位二进制加法器为4个全加器的级联,每个处理一位。最低有效位的进位输入通常置为0,每个全加器的进位输出连到高一位全加器的进位输入。
图1.1.2.1.1四位二进制加法器实现流程图
输入Input
A3A2A1A0
1.2.1
=AB+
令 产生进位 产生传输信号,
四位全加器的进位链逻辑可以表示为如下:
+
1.3
全减器有两种构造方法:
1.全减器处理二进制算法的一位,其输入位为X(被减数),Y(减数)和Bin(借位输入),其输入位为D(差)和Bout(借位输入),根据二进制减法表,可以写出如下等式:
这些等式非常类似于全加器中的等式,但不足为奇。所以我们可以按照全加器的构造思路来构造全加器。
...
...
...
...
...
...
...
4
下面是74LS283四位二进制全加器的逻辑电路图:
图4.174LS283四位二进制全加器的逻辑电路图
图4.1
图4.2
图4.3
图4.4
5
采用VerilogHDL语言对设计的4位二进制全加器进行仿真,下面是具体VerilogHDL程序:
第一步:建立一个半加器的VHD程序。Hadd_v.vhd
2.1
由上面对加法器的具体分析,我们分别假定两个4位二进制数分别为A3A2A1A0、B3B2B1B0,利用Verilog HDL软件进行仿真,每个数位上的数值1、0用开关的高低电平表示,当开关打到红色点上时表示该位数值为1,反之如果打到蓝色点上时为0,输出的四位二进制用S3S2S1S0表示,当输出的各位上亮红灯了该位输出为1,如果为蓝色则表示为0,Cout进位输入端,C4为进位输出端,以此进行仿真。
四位加法器实验报告

四位加法器实验报告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位加法器芯片,实现两个4位二进制数的相加。
通过这个实验,我们将学习到如何进行芯片设计的基本步骤,包括电路设计、逻辑门的选择与布局、电路模拟与验证等。
二、实验步骤1. 电路设计根据实验要求,我们需要设计一个4位加法器芯片。
首先,我们需要确定所需的逻辑门类型。
在这个实验中,我们选择使用AND门、OR门和XOR门。
然后,我们根据加法器的逻辑功能,设计出相应的电路图。
2. 逻辑门的选择与布局在芯片设计中,逻辑门的选择和布局非常重要。
我们需要根据电路的逻辑功能和性能要求,选择适当的逻辑门,并合理布局。
在这个实验中,我们选择使用CMOS逻辑门,并根据实验要求进行布局。
3. 电路模拟与验证在设计完成后,我们需要使用相应的电路模拟工具对设计进行验证。
通过模拟,我们可以检查电路的功能是否符合预期,并进行必要的调整。
在这个实验中,我们可以使用SPICE软件进行电路模拟。
4. 电路布线与布局在电路设计验证通过后,我们需要进行电路布线与布局。
这一步骤是将逻辑电路转化为物理电路的过程,需要考虑电路的布线规则、信号线的长度匹配等因素。
在这个实验中,我们可以使用EDA工具进行电路布线与布局。
5. 物理设计与制造在完成电路布线与布局后,我们需要进行物理设计与制造。
这一步骤是将电路布线转化为实际的芯片结构,并进行制造。
在这个实验中,我们可以使用CAD 工具进行物理设计与制造。
三、实验结果与分析通过以上的实验步骤,我们成功设计并制造了一个4位加法器芯片。
通过电路模拟与验证,我们确认了芯片的功能正常,并且满足了设计要求。
此外,我们还对芯片的性能进行了评估,包括功耗、速度等指标。
加法器实验总结

加法器实验总结1. 引言加法器是计算机中一种关键的数字逻辑电路,用于实现数字数据的加法运算。
本文将对我们进行的加法器实验进行总结和分析,包括实验的目的、设计原理、具体实验步骤、实验结果以及实验总结和改进方向。
2. 实验目的本次实验的主要目的是通过设计和实现一个4位二进制加法器,加深理解数字逻辑电路的工作原理和设计方法,并通过实际操纵和观察实验现象来验证所学到的知识。
3. 设计原理一个基本的4位二进制加法器包含4个输入端口(两个4位的二进制数A和B)、一个输出端口(4位二进制数S)和一个进位输出端口(C)。
设计原理可以简述如下: - 每一位的加法运算由一个半加器(half adder)实现,用于计算每一位的和(S)和进位(C)。
- 第一位的和(S[0])和进位(C[0])直接由对应的输入端口A[0]和B[0]进行异或和与运算,得到结果。
- 对于其它位(i>=1),和(S[i])的计算需要考虑前一位的进位(C[i-1]),即S[i] = A[i] ^ B[i] ^ C[i-1],进位(C[i])的计算需要考虑前一位的进位(C[i-1])和当前位的进位(Carry)信号,即C[i] = (A[i] & B[i]) || (C[i-1] & (A[i] ^ B[i]))。
4. 实验步骤4.1 材料准备•集成电路芯片:4个半加器、4个或门、3个异或门。
•连线材料:导线、面包板等。
4.2 电路连接根据设计原理进行电路的连接,确保每个元件都正确连接并没有短路或接触不良的情况。
4.3 电路测试对搭建好的电路进行测试,将不同的二进制数输入A和B接入相应的输入端口,并观察输出端口S和进位输出端口C的结果是否符合预期。
5. 实验结果根据我们的实验步骤,我们成功完成了一个4位二进制加法器的设计和实现。
通过输入不同的二进制数A和B,我们观察到输出端口S和进位输出端口C都能正确地计算出4位二进制数的和。
逻辑电路实验实验报告

一、实验名称逻辑电路实验二、实验目的1. 掌握基本的数字逻辑电路设计方法。
2. 理解并掌握常用的逻辑门及其组合电路。
3. 提高实验操作技能和观察能力。
4. 培养团队协作精神。
三、实验原理数字逻辑电路是构成数字系统的基本单元,主要由逻辑门、触发器等基本元件组成。
逻辑门是数字电路的基本单元,它按照一定的逻辑规则实现基本的逻辑运算。
本实验主要涉及以下逻辑门及其组合电路:1. 与门(AND):当所有输入信号都为高电平时,输出信号才为高电平。
2. 或门(OR):当至少一个输入信号为高电平时,输出信号才为高电平。
3. 非门(NOT):将输入信号取反。
4. 异或门(XOR):当输入信号不同时,输出信号为高电平。
四、实验器材1. 逻辑门实验板2. 逻辑笔3. 万用表4. 逻辑分析仪5. 示波器6. 计时器五、实验内容1. 与门、或门、非门、异或门的逻辑功能测试2. 组合逻辑电路设计3. 电路仿真与验证六、实验步骤1. 与门、或门、非门、异或门的逻辑功能测试(1)按照实验指导书,连接与门、或门、非门、异或门实验板。
(2)使用逻辑笔和万用表,测试各个逻辑门的输入、输出信号。
(3)记录测试结果,与理论值进行对比,分析实验误差。
2. 组合逻辑电路设计(1)根据设计要求,选择合适的逻辑门,绘制电路图。
(2)使用实验板,搭建组合逻辑电路。
(3)测试电路功能,验证设计是否正确。
3. 电路仿真与验证(1)使用逻辑分析仪或示波器,观察电路的输入、输出信号波形。
(2)分析波形,验证电路功能是否符合预期。
七、实验结果与分析1. 与门、或门、非门、异或门的逻辑功能测试实验结果如下:与门:当所有输入信号都为高电平时,输出信号才为高电平。
或门:当至少一个输入信号为高电平时,输出信号才为高电平。
非门:将输入信号取反。
异或门:当输入信号不同时,输出信号为高电平。
2. 组合逻辑电路设计(1)设计一个4位二进制加法器,包括两个输入端(A、B)和两个输出端(S、C)。
数字逻辑综合实验报告

一、实验目的本次实验旨在通过实际操作,加深对数字逻辑基本原理和设计方法的理解,提高学生在数字电路设计、仿真和调试方面的实践能力。
通过完成以下实验任务,使学生掌握以下技能:1. 理解数字逻辑电路的基本概念和原理。
2. 掌握数字逻辑电路的设计方法和步骤。
3. 学会使用仿真软件进行电路设计和仿真测试。
4. 掌握数字逻辑电路的调试和优化方法。
二、实验内容本次实验主要包含以下三个部分:1. 组合逻辑电路设计:设计一个四位加法器,并使用Logisim软件进行仿真测试。
2. 时序逻辑电路设计:设计一个简单的计数器,并使用Verilog语言进行描述和仿真。
3. 数字逻辑电路综合应用:设计一个简单的数字信号处理器,实现基本的算术运算。
三、实验步骤1. 组合逻辑电路设计(1)分析题目要求,确定设计目标和输入输出关系。
(2)根据输入输出关系,设计四位加法器的逻辑电路。
(3)使用Logisim软件搭建电路,并设置输入信号。
(4)观察仿真结果,验证电路功能是否正确。
2. 时序逻辑电路设计(1)分析题目要求,确定设计目标和状态转移图。
(2)使用Verilog语言描述计数器电路,包括模块定义、输入输出定义、状态定义和状态转移逻辑。
(3)使用仿真软件进行测试,观察电路在不同状态下的输出波形。
3. 数字逻辑电路综合应用(1)分析题目要求,确定设计目标和功能模块。
(2)设计数字信号处理器电路,包括算术运算单元、控制单元和存储单元等。
(3)使用仿真软件进行测试,验证电路能否实现基本算术运算。
四、实验结果与分析1. 组合逻辑电路设计实验结果:通过仿真测试,四位加法器电路功能正常,能够实现两个四位二进制数的加法运算。
分析:在设计过程中,遵循了组合逻辑电路设计的基本原则,确保了电路的正确性。
2. 时序逻辑电路设计实验结果:通过仿真测试,计数器电路功能正常,能够实现从0到9的计数功能。
分析:在设计过程中,正确描述了状态转移图,并使用Verilog语言实现了电路的功能。
4位二进制数加法器实验

《电子线路设计、实验、测试》实验报告实验名称:4位二进制数加法器实验院系:电子信息与通信学院专业班级:电信1401班姓名:XXX学号:xxxxxx时间:地点:南一楼指导教师:2016 年 4 月 13 日4位二进制加法器实验一.实验目的1.熟悉ISE软件的使用2.熟悉并初步掌握Verilog HDL描述电路的方法3.掌握用仿真波形验证电路功能的方法4.熟悉使用ISE软件创建文件并下载到basys2开发板上的过程二.实验内容用ISE软件对4位二进制全加器实验进行仿真,采用4位二进制数加法器的数据流描述方式,由于被加数A和加数B都是4位的,而低位的进位Cin为1位,所以运算的结果可能为5位,用{Cout,Sum}拼接起来表示。
然后对其进行仿真,最后创建约束文件,生成bit文件下载到basys2开发板上,对开发板进行操作。
三.实验原理除本位两个数相加外,还要加上从低位来的进位数,称为全加器。
图1为全加器的方框图。
图2全加器原理图。
被加数Ai、加数Bi从低位向本位进位Ci-1作为电路的输入,全加和Si与向高位的进位Ci作为电路的输出。
能实现全加运算功能的电路称为全加电路。
全加器的逻辑功能真值表如表1中所列。
表1 全加器逻辑功能真值表图1 全加器方框图图2 全加器原理图四位全加器四位全加器如图3所示,四位全加器是由半加器和一位全加器组建而成:图3四位全加器原理图四、实验步骤与要求1.创建一个子目录,并新建一个工程项目。
2.创建一个Verilog HDL文件,并将文件添加到工程项目中并编译整个项目,查看该电路所占用的逻辑单元(Logic Elements,LE)的数量。
3.对设计项目进行时序仿真,记录仿真波形图。
4.根据FPGA开发板使用说明书,对设计文件中的输入、输出信号分配引脚。
即使用开发板上的拨动开关代表电路的输入,用发光二极管(LED)代表电路的输出。
5.重新编译电路,并下载到FPGA器件中。
改变拨动开关的位置,并观察LED灯的亮、灭状态,测试电路的功能。
加法器实验报告

加法器实验报告加法器实验报告概述:本次实验旨在设计和实现一个加法器电路,通过对电路的搭建和测试,验证加法器的正确性和可行性。
加法器是计算机中最基本的算术运算器之一,其在数字逻辑电路中扮演着重要的角色。
1. 实验背景加法器是一种基本的数字逻辑电路,用于实现数字的加法运算。
在计算机中,加法器被广泛应用于算术逻辑单元(ALU)和中央处理器(CPU)等部件中,用于进行各种数值计算和逻辑运算。
因此,了解和掌握加法器的工作原理和设计方法对于理解计算机原理和数字电路设计具有重要意义。
2. 实验目的本次实验的主要目的是通过设计和实现一个4位二进制加法器电路,验证加法器的正确性和可行性。
具体要求如下:- 设计并搭建一个4位二进制加法器电路;- 对电路进行测试,验证其加法运算的正确性;- 分析电路的性能和优化空间。
3. 实验原理加法器是通过逻辑门电路实现的。
在本次实验中,我们将使用全加器电路来实现4位二进制加法器。
全加器是一种能够实现两个二进制位相加并考虑进位的电路。
通过将多个全加器连接起来,可以实现更高位数的二进制加法器。
4. 实验步骤4.1 设计加法器电路的逻辑功能首先,我们需要确定加法器电路的逻辑功能。
在这个实验中,我们需要实现两个4位二进制数的相加运算,并输出结果。
具体的逻辑功能可以通过真值表或逻辑表达式来描述。
4.2 搭建电路根据逻辑功能的要求,我们可以使用逻辑门电路来搭建加法器。
在本次实验中,我们将使用多个全加器电路来实现4位二进制加法器。
通过将多个全加器连接起来,可以实现更高位数的二进制加法器。
4.3 进行电路测试在搭建完电路后,我们需要对电路进行测试,以验证其加法运算的正确性。
可以通过输入一些测试用例,并比较输出结果与预期结果是否一致来进行测试。
5. 实验结果与分析通过对加法器电路的测试,我们可以得到加法器的输出结果。
通过比较输出结果与预期结果,可以验证加法器的正确性。
同时,我们还可以分析电路的性能和优化空间,例如进一步提高加法器的速度和减少功耗等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 4位二进制加法器的设计
2.1 实验目的
进一步熟悉Quartus Ⅱ的基本操作方法,并利用原理图输入设计方法设计简单组合电路,掌握层次化设计的方法,通过4位全加器的设计掌握利用EDA 工具进行电子系统设计的流程。
2.2 原理提示
一个4位二进制加法器可以由4个全加器构成,各全加器之间的进位以串行方式实现,即将低位的进位输出CO 与相邻的高一位全加器的进位位Ci 相连,最低进位位接“0”。
实验原理图如下。
2.3实验内容
采用Quartus Ⅱ基于图形的设计方法,在实验1的基础上,按层次化结构实现4位全加器的设计。
完成原理图输入、编译、进行波形仿真验证。
(仿真时要对所有输入、输出端进行)。
2.4实验步骤
(1) 为本项设计任务建立工程。
启动Quartus Ⅱ,新建一个工程,有关操作如下图。
将实验1中已设计好的原理图文件fualladd.bdf 拷贝到D:\0501\exp2下。
在实验1中fualladd.bdf 是顶层设计文件,而在本实验中,fualladd.bdf 将作为底层设计文件使用。
∑C i C o ∑C i C o ∑C i C o a 0b 0a 1b 1a 2b 2a 3b 3s 0s 1s 2s 3c o ∑C i C o 0
建立本工程的顶层设计。
点击“File/New”→“Block Diagram/Schematic File”→“OK”,将Block1.dbf 另存为add4. dbf。
add4. dbf是本工程的顶层设计文件。
(2)点击“File / Open…”将fualladd.bdf 文件打开。
(3)将fualladd.bdf制作成一个符号块,以便在add4. dbf中调用。
点击“File / Create/Update / Create Symble Files For Currenf Fils”,弹出对话框(文件名一栏应出现fualladd.bsf),点击“保存”。
于是,生成全加器的符号块文件fualladd.bsf。
(4)在add4. dbf的绘图区放置全加器符号。
右击add4. dbf的绘图区,弹出浮动菜单,选择“Insert / Symbol…”弹出如下对话框:(在实验1中是怎样放置一个符号的?在这里也能用吗?试试看)
按图操作。
结果在add4. dbf的绘图区放置了一个全加器符号。
(5)完成顶层设计。
按下图操作,完成4位二进制加法器的设计。
存盘。
操作说明:
符号的旋转
右击待旋转的符号,弹出浮动菜单,选择“Rotate by Degrees / 90”可反时针旋转90°。
粗线表示由多条信号线组成的一组线,称为总线。
而细线则表示单信号线。
总线的编辑方法1:见图示.
总线的编辑方法2:先画出单信号线,左击单信号线,使之选中;再在该线上右击,在弹出的对话框中选择“Bus Line”即可。
利用总线表示法可以方便地表示A[3..0]分别与带有标号的4条单信号线A[3]、A[2]、A[1]、A[0]相连。
在单信号线上加标号
左击单信号线,使之选中;再直接输入标号即可。
(5)编译。
(6)时序仿真
建立波形仿真文件。
对4位加法器电路进行验证,仿真波形如图所示,其中A[3..0],B[3..0]表示2个4位二进制加数输入,和由S[3..0]给出,进位位为Co。
试一试
点击上图中的“+”按钮,会怎样?
怎样给定A和B 的值?
2.5思考题
(1)说明顶层设计与底层设计之间的关系。
*(2)按照本实验介绍的方法与流程,完成两个32位二进制数相加的加法器的设计,给出原理图,并仿真。
(注:可将本实验作为一个符号块,在另一个顶层设计中调用)
2.6实验报告
(1)给出各层次的原理图、电路的仿真波形图和波形分析,分析实验结果。
(2)例举实验中遇到的问题及解决过程,由此得到的启发。