半加器和全加器的设计
计算机组成原理-半加器实验报告
课程设计报告课程设计名称:计算机组成原理课程设计课程设计题目:半加器和全加器设计开发院(系):专业:班级:学号:姓名:指导教师:完成日期:目录1.1实验目的 (3)1.2 实验内容 (3)1.3 实验仪器及元件 (3)2.1 实验原理及电路图 (3)2.2 实验过程及结果记录 (4)2.3 实验结果分析 (6)3.1 思考 (6)3.2 收获感想 (6)B A B A⊕=1.1 实验目的1、掌握MAX +PLUS Ⅱ开发软件的安装和使用方法,能够初步运用此软件进行程序的编写、编译、逻辑综合和优化,以及进行功能和时序仿真2、掌握利用此软件进行程序的下载和适配以及与EDA 实验开发箱相结合进行硬件验证的方法3、掌握半加与全加的原理1.2 实验内容1、熟知MAX+plusII 设计流程2、设计一个半加器和一个全加器1.3 实验仪器及元件半加器:2个input A 、B ;一个AND2;一个XOR ;两个output 。
全加器:3个input ain 、bin 、cin ;两个设计好的半加器元件;一个OR2;两个output 。
2.1 实验原理及电路图半加器原理:只求本位和,不考虑低位的进位。
实现半加操作的电路叫做半加器。
状态表A 、B 为两个加数,C 为向高位的进位,C=AB , S 为半加和。
全加器原理:加数、加数以及低位的进位三者相加称为“全加”,实现全加操作的电路叫做全加器。
Ci-1:来自低位的进位 Ci :来自高位的进位2.2 实验过程及结果记录半加器基本实验步骤:为本项工程设计建立文件夹(文件夹名不能用中文和空格),文件夹取名adder ; 打开MAX+PLUS II ,输入设计项目和存盘,新建设计文件,选择打开原理图编辑器;点击鼠标右键,出现窗口选择“Enter Symbol ”输入一个元件,在接下来的窗口中输入元件名,点击OK 就可以出现实验所需的元件;将得出的元件在原理编辑窗口连接好,成为一个半加器;下面给出我实验中做出的半加器原理图:将半加器原理图存盘(存在第一步新建的文件夹中)、将设计项目设置成工程文件并对其进行Ai B iC i-C iS i编译。
实验五 半加器和全加器
实验五半加器和全加器实验五半加器和全加器一、实验目的1(掌握组合逻辑电路的分析和设计方法。
2(验证半加器、全加器、奇偶校验器的逻辑功能。
二、实验原理使用中、小规模集成门电路分析和设计组合逻辑电路是数字逻辑电路的任务之一。
本实验中有全加器的逻辑功能的测试,又有半加器、全加器的逻辑设计。
通过实验要求熟练掌握组合逻辑电路的分析和设计方法。
实验中使用的二输入端四异或门的电路型号为74LS86,四位二进制全加器的型号为74LS83A,其外引线排列及逻辑图如下:14 13 12 11 10 9 8VCC=1 =174LS86=1 =1GND1 2 3 4 5 6 774LS86引脚排列16 15 14 13 12 11 10 9C C GND B AΣ 44011 BΣ4174LS83AA 2A Σ AB V Σ B 4333CC221 2 3 4 5 6 7 874LS83引脚排列74LS83A是一个内部超前进位的高速四位二进制串行进位全加器,它接收两个四位二进制数(A~A,B~B),和一个进位输入(C),并对每一位产生二进制和14140 (Σ~Σ)输出,还有从最高有效位(第四位)产生的进位输出(C)。
该组件有144越过所有四个位产生内部超前进位的特点,提高了运算速度。
另外不需要对逻辑电平反相,就可以实现循环进位。
三、实验仪器和器件1(实验仪器(1)DZX-2B型电子学综合实验装置(2)万用表(MF47型)2(器件(1)74LS00(二输入端四与非门)(2)74LS86(二输入端四异或门)(3)74LS83(四位二进制全加器)(4)74LS54(双二双三输入端与或非门)四、实验内容1(设计用纯与非门组成的半加器,分析、验证其逻辑功能;解:?根据设计任务列出真值表输入输出A B Y C0 0 0 00 1 1 01 0 1 01 1 0 1?根据真值表写出逻辑表达式C=AB Y,AB,AB?对逻辑表达式进行化简Y =A?B C=AB?根据所用逻辑门的类型将化简后的逻辑表达式整理成符合要求的形式Y =A?B= C=AB,AB AAB,BAB?根据整理后的逻辑表达式画出逻辑图? Y2 & 接A 逻=AB Y? 辑1& & YY 1 接电Y=A AB 电2平 ? B 平& Y=B AB ?3 Y3 显Y=A?B 示 ? & C=AB C图5-1 半加器设计参考图?根据逻辑图装接实验电路,测试其逻辑功能并加以修正表5-1’(验证) 表5-1(分析)输入输出输入逐级输出Y B C B A B Y C A B YYYY C 1 2 3A 0 1 A 0 1 0 0 0 0 0 0 1 1 1 0 00 0 1 0 0 0 0 1 1 0 0 1 1 1 0 1 01 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 01 1 0 1 1 1 0 1 1 0 1 卡诺图Y= A?B C=AB 2(设计用异或门组成半加器,并测试其逻辑功能; 解:???步骤同上?根据所用逻辑门的类型将化简后的逻辑表达式整理成符合要求的形式Y =A?B C= AB,AB?根据整理后的逻辑表达式画出逻辑图?根据逻辑图装接实验电路,测试其逻辑功能并加以修正表5-2输入输出接接=1 A Y ? 逻电A B Y C 辑平显电0 0 0 0 平示 B ? C ? & & 0 1 1 0 图5-2测量由异或门组成的半加器的逻辑功能 1 0 1 01 1 0 12(设计用74LS54、74LS86、74LS00组成全加器,并测试其逻辑功能;解:?根据设计任务列出真值表输入输出 ?根据真值表写出逻辑表达式 Y C A B C 00 0 0 0 0 Y,ABC,ABC,ABC,ABC00000 1 0 1 0C,ABC,ABC,ABC,ABC00001 0 0 1 01 1 0 0 1 ?对逻辑表达式进行化简0 0 1 1 0,,,,,,,,Y,AB,ABC,AB,ABC,A,BC,A,BC0 1 1 0 1 00001 0 1 0 1 ,,,,,,,A,BC,A,BC,A,B,C0001 1 1 1 1,,,,,,C,ABC,C,AB,ABC,AB,A,BC0000?根据所用逻辑门的类型将化简后的逻辑表达式整理成符合要求的形式,, Y,A,B,C0,, C,AB,A,BC0?根据整理后的逻辑表达式画出逻辑图?根据逻辑图装接实验电路,测试其逻辑功能并加以修正表5-3接电平显示 C 输入输出 Y A B CY C 074LS00 & 0 0 0 0 0 ? 0 1 0 1 0 ?1 0 0 1 0 ?1 =1 =11 1 0 0 1 & & & & 0 0 1 1 0 1/2 74LS860 1 1 0 1 ? ? ? ? ? ? ? 1 0 1 0 1 ? A B C0 1 1 1 1 1 74LS54 接逻辑电平图5-34(分析四位二进制全加器74LS83A的逻辑功能;接电平显示Σ Σ Σ Σ 4321接接电“0” CC4 0 FAFAFAFA4 3 2 1 平或显“1” ? ? 示 ? ?74LS83A A/AA/AB/BB/B24 13 24 24接逻辑电平图5-4 分析四位二进制全加器74LS83A的逻辑功能表5-4输出输入C=0 C=1 00B/BA/A B/B A/A ΣΣΣΣCΣΣΣΣC24 2413131 2 3 4 4 1 2 3 4 4 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 0 0 0 1 0 10 1 1 0 1 0 0 1 0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 11 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 0 00 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 1 1 0 1 01 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1*5(用加法器74LS83A实现BCD码和余三码之间的相互转换。
半加器、全加器 实验指导书 任务书
组合逻辑电路半加器、全加器组装与测试【实训目的】1.掌握组合逻辑电路的功能测试。
2.用与非门、或非门设计实现半加器和全加器。
3.掌握数字电路集成芯片测试及示波器的使用方法。
4.了解74LS00、74LS86芯片的内部结构和功能。
5.进一步熟悉逻辑电路的设计和建立过程。
【制作安全规范】请每位同学阅读本题后,在后续的操作中严格遵守各条规范。
1.操作前,先清点和检查元件、工具及耗材等。
2.在操作过程中,注意设备和元件的规范放置,并规范使用万用表。
3.焊接时,注意焊接的用电安全,保护人身安全。
4.在电路板的指定处填写姓名,学号。
【元件清单】图1是本次课制作的电路的原理图(见后),表1是电路制作所用元件的清单。
请用图1和表1对元件包中的元件进行对照清点。
请大家注意,如果表1中所列元件在元件包中确有缺失,请举手向老师反映。
另外,元件包中的多余元件,作为备用元件,在制作过程中保管好,不得遗失!表1元件清单半加器、全加器序号器件类型器件参数图中标号数量12P接插件HDR-1X25V1 2发光二极管3MM红色L1,L2,L3,L4,L5,L66 4直插色环电阻390R2、R3、R5-R119 5直插色环电阻1K R1,R42 67*7自锁开关KET7X7S1,S22 72路编码开关CSW-2P SW11 83路编码开关CSW-3P SW21 9与非门74LS00U1,U3210异或门74LS86U2,U4212座子座子DIP14U1-U4413PCB 板子PCB 板子PCB板子1【实训内容及测试】一、半加器设计1、半加器分析:半加器(一位二进制)只考虑了两个加数本身,没有考虑由低位来的进位。
输入端有2个,分别为加数与被加数;输出端有2个,分别为和与进位。
2、半加器的真值表:3、半加器的逻辑表达式:4、逻辑电路与符号二、全加器设计1、全加器分析:半加器(一位二进制)全加器除考虑两个加数外,还考虑了低位的进位。
输入端有3个,分别为加数、被加数与低位进位。
(VHDL实验报告)一位半加器,全加器的设计
A
10
五、实验步骤
(一)半加器的设计
4、对设计文件进行仿真
4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在波形编辑窗 口中,选择要输入波形的输入端口。以 b 端口为例,右键单击 b ,依次选 择value--clock--period,将时间改为1us。然后重复此过程将 a 的时间改 成 2us (a的周期是b的2倍),再将输入端的D0--D3选择不同的周期(一次 要有所差别)。最后选择软件的 Fie>Save进行保存。
3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表 区点击鼠标右键,在弹出的右键菜单中选择 Insert Node or Bus… 命令,在弹出的 Insert Node or Bus 对话框界面中点击 Node Finder…按钮。在出现的 Node Finder 界面中的 Filter 列表中选 择 点击 List,在 Nodes Found 窗口出现所有信号的名称,点击中 间的按钮则 Selected Nodes 窗口下方出现被选择的端口名称。双击 OK按钮,完成设置,回到 Insert Node or Bus 对话框,双击OK按钮 ,所有的输入、输出端口将会在端口名列表区内显示出来。
5)按默认选项,点击NEXT出现新建工程以前所有的设定信息, 再点击FINISH完成新建工程的建立。
A
7
五、实验步骤
(一)半加器的设计
2、建立文本设计文件
1)选择File--New--Device Design Files--VHDL File,点击OK按钮,打开进入文本编辑器对话框。
2)在文本编辑器中输入对应VHDL程序代码,如下图 所示:
全加器的设计采用“元件例化语句”,故需建立两个VHDL文 本编辑对话框(一个顶层文件,一个底层文件)。在相应的编辑框中 输入相应的VHDL语句,再分别以各自的实体名进行保存。注意的是顶 层文件名应必须与工程名一致。此次实验底层文件为半加器VHDL语句 ,顶层文件为全加器VHDL语句,其语句分别如下两图所示:
(Multisim数电仿真)半加器和全加器
实验3.5半加器和全加器、实验目的:1. 学会用电子仿真软件Multisim7进行半加器和全加器仿真实验。
2 •学会用逻辑分析仪观察全加器波形:3. 分析二进制数的运算规律。
4. 掌握组合电路的分析和设计方法。
5. 验证全加器的逻辑功能。
、实验准备:组合电路的分析方法是根据所给的逻辑电路,写出其输入与输出之间的逻辑关系(逻辑函数表达式或真值表),从而评定该电路的逻辑功能的方法。
一般是首先对给定的逻辑电路,按逻辑门的连接方法,逐一写出相应的逻辑表达式,然后写出输出函数表达式,这样写出的逻辑函数表达式可能不是最简的,所以还应该利用逻辑代数的公式或者卡诺图进行简化。
再根据逻辑函数表达式写出它的真值表,最后根据真值表分析出函数的逻辑功能。
例如:要分析如图3.5.1所示电路的逻辑功能。
图3.5.11. 写输出函数丫的逻辑表达式:W 二AAB ABB ......................................... 3.5.1X =WWC WCC ....................................... 3.5.2丫= XXD XDD ........................................ 3.5.32. 进行化简:W = AAB ABB 二AB AB ................................................................... 3.5.4X =WC Wc 二 ABC ABC ABC ABC ............................................... 5.5 …..3.Y =XD X D 二A BCD ABCD ABCD ABCD逻辑图是一个检奇电路。
输入变量的取值中,有奇数个 1则有输出,否则 无输出。
组合电路的设计目的就是根据实际的逻辑问题,通过写出它的真值表和逻辑 函数表达式,最终找到实现这个逻辑电路的器件,将它们组成最简单的逻辑电路。
组合逻辑电路(半加器全加器及逻辑运算)
一种常见的实现方式是使 用异或门实现和S,使用 与门实现进位C。
半加器的性能分析
逻辑级数
半加器的逻辑级数通常较低,因 为它只涉及基本的逻辑运算。
可靠性
半加器的结构简单,因此具有较 高的可靠性。
延迟时间
由于逻辑级数较低,半加器的延 迟时间相对较短。
资源消耗
半加器使用的逻辑门数量相对较 少,因此在资源消耗方面较为经 济。
组合逻辑电路(半加器 全加器及逻辑运算)
• 组合逻辑电路概述 • 半加器原理与设计 • 全加器原理与设计 • 逻辑运算原理与设计 • 组合逻辑电路的分析与设计方法 • 组合逻辑电路在数字系统中的应用
目录
Part
01
组合逻辑电路概述
定义与特点
定义
无记忆性
组合逻辑电路是一种没有记忆功能的数字 电路,其输出仅取决于当前的输入信号, 而与电路过去的状态无关。
比较器
比较两个二进制数的大小关系,根 据比较结果输出相应的信号,可以 使用与门、或门和非门实现。
全加器
在半加器的基础上增加对进位的处理 ,使用与门、或门和异或门实现两个 一位二进制数带进位的加法运算。
多路选择器
根据选择信号的不同,从多个输 入信号中选择一个输出,可以使 用与门、或门和非门实现。
Part
用于实现控制系统的逻辑 控制、数据处理等功能。
Part
02
半加器原理与设计
半加器的基本原理
半加器是一种基本的组合 逻辑电路,用于实现两个 二进制数的加法运算。
它接收两个输入信号A和 B,并产生两个输出信号: 和S以及进位C。
半加器不考虑来自低位的进 位输入,因此只能处理两个 一位二进制数的加法。
组合逻辑电路的应用领域
实验二 vhdl半加器与全加器的设计与验证实验
北京邮电大学世纪学院<通信工程系数字电路实验>实验报告实验名称:VHDL半加器与全加器的设计与验证实验班级:姓名:专业:学号:实验室:实验组别:实验时间:审阅教师:评定成绩:实验题目基于 VHDL 的半加器与全加器的设计与验证实验一、实验目的1、学习 Quartus II 软件的使用;2、VHDL 半加器的设计与验证实验;3、VHDL 全加器的设计与验证实验;4、掌握模块的 VHDL 调用;5、学习基于 VHDL 的数字电路的设计。
二、预习内容1、VHDL 语言的基本结构;2、VHDL 语言的数据类型和运算操作符;3、VHDL 语言的主要描述语句;三、实验内容本实验主要运用 Quartus II 软件进行 VHDL 电路设计;内容一、VHDL 半加器的设计,包括电路设计并进行时序仿真验证,然后将电路设计进行实际电路的验证;内容二、VHDL 全加器的设计,在VHDL 程序中调用生成的半加器图形符号完成全加器设计,时序仿真验证后,将全加器电路进行实际电路的验证;本实验的重点和难点是 VHDL 语言的使用1、VHDL 半加器电路的设计2、VHDL 半加器电路的时序验证3、VHDL 全加器电路的设计4、全加器电路的时序验证四、实验结果分析对所设计的半加器电路、全加器电路进行实际电路的验证。
分析:五、思考题1、在采用 Quartus II 软件进行 VHDL 电路设计中,工程名、实体名、结构体名如何选取,实体名、结构体名是否可以任意选取,为什么?2、一个完整的 VHDL 语言程序通常包含那几部分?3、VHDL 结构体有那三种描述方式?六、总结。
第3章二进制半加器和全加器的VHDL设计
ENTITY h_adder IS
PORT (a, b : IN STD_LOGIC;
co, so : OUT STD_LOGIC); END ENTITY h_adder;
I113
ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; --定义标准逻辑位矢量
so co
0
0
1
0
1
0
0
1
现在你能否写出实现半 加器的VHDL程序呢?
异或 与
3.2 半加器及全加器的VHDL描述
⑤【例3-2】 LIBRARY IEEE; --半加器描述(1):真值表描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS
PORT (A, B : IN STD_LOGIC; co, soபைடு நூலகம்: OUT STD_LOGIC);
进位。
0
1
1
1
0
全加器能进行加数、 1
0
0
0
1
被加数和低位来的
1
0
1
1
0
进位信号相加,并
1
1
0
1
0
根据求和结果给出
1
1
1
1
1
该位的进位信号。
1位二进制全加器真值表
Sum=ain+bin+cin
思考:全加器是加数+被加数+进位,是三者加了两回
3.4 全加器的VHDL描述
u1 h_adder
net2
h_adder
逻辑运算符 AND
实验五全加器的设计及应用
实验五全加器的设计及应用一、实验目的(1)进一步加深组和电路的设计方式。
(2)会用真值表设计半加器和全加器电路,验证其逻辑功能。
(3)把握用数据选择器和译码器设计全加器的方式。
二、预习要求(1)依照表5-1利用与非门设计半加器电路。
(2)依照表5-2利用异或门及与非门设计全加器电路。
三、实验器材(1)实验仪器:数字电路实验箱、万用表;(2)实验器件:74LS04、74LS0八、74LS20、74LS3二、74LS8六、74LS13八、74LS153;四、实验原理1.半加器及全加器电子数字运算机最大体的任务之一确实是进行算术运算,在机械中的四那么运算——加、减、乘、除都是分解成加法运算进行的,因此加法器便成了运算机中最大体的运算单元。
(1)半加器只考虑了两个加数本身,而没有考虑由低位来的进位(或把低位来的进位看成0),称为半加,完成半加功能的电路为半加器。
框图如图5-1所示。
一名半加器的真值表如表5-1所示。
表5-1半加器真值表1位半加器S C i A i Bi 和数向高位进位加数被加数图5-1 半加器框图由真值表写逻辑表达式:⎩⎨⎧=⊕=+=i i i ii i i i i i B A C B A B A B A S '' 画出逻辑图,如图5-2所示:(a )逻辑图 (b )逻辑符号 图5-2 半加器(2)全加器能进行加数、被加数和低位来的进位信号相加,称为全加,完成全加功能的电路为全加器。
依照求和结果给出该位的进位信号。
即一名全加器有3个输入端:i A (被加数)、i B (加数)、1-i C (低位向本位的进位);2个输出端:i S (和数)、i C (向高位的进位)。
下面给出了用大体门电路实现全加器的设计进程。
1)列出真值表,如表5-2所示。
表5-2 全加器真值表从表5-2中看出,全加器中包括着半加器,当01=-i C 时,不考虑低位来的进位,确实是半加器。
而在全加器中1-i C 是个变量,其值可为0或1。
实验二组合逻辑电路(半加器、全加器)
实验⼆组合逻辑电路(半加器、全加器)
实验⼆组合逻辑电路(半加器、全加器)
⼀、实验⽬的:
1.加深理解组合逻辑电路的特点和⼀般分析⽅法;
2.熟悉组合逻辑电路的设计⽅法;
3.验证半加器、全加器的功能。
⼆、实验仪器、设备、元器件:
1.数字逻辑电路实验仪 1台
2.四2输⼊与⾮门74LS00芯⽚ 1⽚
3.四2输⼊异或门74LS86芯⽚ 1⽚
4.六反向器74LS04芯⽚ 1⽚
5.⽰波器或万⽤表
三、预习要求:
1.复习组合逻辑电路的分析和设计⽅法;
2.复习半加器、全加器的⼯作原理;
3.根据设计任务要求,设计组合逻辑电路,画出逻辑图。
四、实验内容和步骤:
1.测试半加器的逻辑功能
根据图2.1所⽰连接好电路。
输⼊A、B端分别接两个逻辑电平开关,输出端S、C接颜⾊不同的发光⼆极管。
观察当输⼊端A、B电平变化时,输出端S、C电平指⽰器的状态。
验证逻辑状态并填表。
图2.1由与⾮门组成的半加器电路表 2.1 逻辑真值表
写出逻辑表达式:Ci= C = 2.测试全加器的逻辑功能
1
- -
1
C1
2
3
A
74LS00 4
5
6
B
74LS00 1
2
3
A
74LS86 4
5
6
B
74LS86 8
9
10
C
74LS00 B
A
Ci-1
Si
Ci。
4.3 加法器解析
功能:实现两个四位二进制数相加。 特点:电路结构简单,但运算速度慢。
2.超前进位加法器
第四章 组合逻辑电路
通过逻辑电路事先得出每一位全加器的进位输入信号。 C3
超前进位电路
A3 B3 A2 B2 A1 B1 A0 B0 C0-1
CI
Σ
S3 S2 S1 S0
CI Σ
Σ CI
CI Σ
超前进位电路图
特点:运算速度快,电路比较复杂。
S i Ai Bi Ci 1 Ai Bi Ci 1 Ai Bi Ci 1 Ai Bi Ci 1
( Ai Bi )Ci 1 ( Ai Bi )Ci 1 Ai Bi Ci 1
Ci Ai Bi Ci 1 Ai Bi Ci 1 Ai Bi Ci 1 Ai Bi Ci 1
第四章 组合逻辑电路
4.3 加法器
• 定义
能够实现二进制加法运算的逻辑电路称为加法器。
• 分类
加法器 一位加法器
多位加法器
半加器 全加器
第四章 组合逻辑电路
4.3.1 半加器和全加器
• 定义 半加器:只能进行本位加数、被加数的加法运算 而不考虑相邻低位进位的逻辑部件。 全加器:能同时进行本位加数、被加数和相邻 低位的进位信号的加法运算的逻辑部件。
4.多位加法器的应用举例
例4.3.1 设计一个代码转换电路,将8421BCD码转换为 余3码,用74HC283实现。 解: (1) 依据逻辑功能,确定输入、输出变量 输入变量:8421BCD码DCBA 输出变量:余3码Y3Y2Y1Y0
第四章 组合逻辑电路
(2)真值表
例4.3.1的逻辑真值表 输入8421BCD码 输出余3码
Ai Bi ( Ai Bi )Ci-1
实验二半加器全加器
进位输出。
全加器的实现方式
01
全加器可以通过逻辑门电路实现,如与门、或门和 非门等。
02
具体实现方式可以根据实际需求选择不同的逻辑门 组合,以实现全加器的功能。
03
全加器在计算机中广泛应用于二进制数的加法运算 和进位处理。
04
实验步骤
设计半加器和全加器
确定输入和输出
半加器有2个输入和3个输出,全加器有3个输入和2个输 出。
结果分析
半加器分析
半加器的原理是通过异或门和与门实现两个 一位二进制数的加法运算,不考虑进位的情 况。通过实验结果可以看出,半加器能够正 确地实现两个一位二进制数的加法运算,并 输出正确的和以及进位。
全加器分析
全加器的原理是通过异或门、与门和一位全 加器实现两个一位二进制数的加法运算,同 时考虑进位的情况。通过实验结果可以看出, 全加器能够正确地实现两个一位二进制数的 加法运算,并输出正确的和、进位以及溢出。
将进位传递给下一位。
如果被加数的某一位与加数 的对应位相加结果为1,且低 位进位输入也为1,则相应的 低位进位输出端会输出1,表 示需要将进位传递给下一位。
全加器的实现方式
全加器可以通过逻辑门电路 实现,如AND门、OR门和 NOT门。
OR门用于处理被加数和加数 的对应位相加结果为1的情况。
AND门用于处理被加数和加 数的对应位相加结果为0的情 况。
检查电路功能
通过输入不同的二进制数,检查电路是否能够正确实现半加器和全加器的功能。
进行二进制数的加法运算
选择要加的二进制数
选择两个一位或两位的二进制 数进行加法运算。
输入二进制数
将选择的二进制数输入到半加 器或全加器中。
观察输出结果
全加器的设计实验报告
一、实验目的1. 掌握全加器的基本原理和设计方法。
2. 熟悉Quartus II软件的使用,包括原理图输入、编译、仿真和编程下载等操作。
3. 培养动手实践能力和团队合作精神。
二、实验原理全加器是一种能够处理两个二进制数相加,并考虑来自低位进位信号的组合逻辑电路。
一个n位全加器可以由n个1位全加器级联而成。
本实验设计一个1位全加器,其原理如下:1. 半加器:半加器是全加器的基础,它只考虑两个一位二进制数的相加,不考虑来自低位进位数的运算电路。
半加器的输出包括一个和位S和一个进位位C。
2. 全加器:全加器由两个半加器和一个或门组成。
当输入两个一位二进制数A和B以及一个来自低位的进位信号Cin时,全加器的输出包括一个和位S和一个进位位Cout。
全加器的逻辑表达式如下:S = A ⊕ B ⊕ CinCout = (A ∧ B) ∨ (B ∧ Cin) ∨ (A ∧ Cin)三、实验内容和步骤1. 创建工程:在Quartus II中创建一个新工程,命名为“全加器设计”。
2. 设计原理图:在原理图编辑窗口中,从元件库中分别选取两个半加器(HAdder)和一个或门(Or),并按照全加器的逻辑表达式连接起来。
3. 编译工程:完成原理图设计后,进行编译操作。
Quartus II将对原理图进行综合、实现和编程下载等步骤。
4. 仿真:在仿真环境中,通过输入不同的A、B和Cin值,观察全加器的输出S和Cout是否符合预期。
5. 下载编程:将编译好的程序下载到FPGA开发板上,通过硬件测试验证全加器的功能。
四、实验结果与分析1. 仿真结果:在仿真环境中,我们分别输入以下值进行测试:A B Cin0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1仿真结果显示,全加器的输出S和Cout与预期逻辑表达式相符。
2. 硬件测试结果:将编译好的程序下载到FPGA开发板上,通过硬件测试验证全加器的功能。
测试结果与仿真结果一致,说明全加器设计正确。
【可修改】组合逻辑电路设计之全加器、半加器.doc
班级 姓名 学号实验二 组合电路设计一、实验目的(1) 验证组合逻辑电路的功能 (2) 掌握组合逻辑电路的分析方法(3) 掌握用SSI 小规模集成器件设计组合逻辑电路的方法 (4) 了解组合逻辑电路集中竞争冒险的分析和消除方法 二、实验设备数字电路实验箱,数字万用表,74LS00,74LS86 三、实验原理 1.组合逻辑概念通常逻辑电路可分为组合逻辑电路和时序逻辑电路两大类。
组合逻辑电路又称组合电路,组合电路的输出只决定于当时的外部输入情况,与电路的过去状态无关。
因此,组合电路的特点是无“记忆性”。
在组成上组合电路的特点是由各种门电路连接而成,而且连接中没有反馈线存在。
所以各种功能的门电路就是简单的组合逻辑电路。
组合电路的输入信号和输出信号往往不只一个,其功能描述方法通常有函数表达式、真值表,卡诺图和逻辑图等几种。
实验中用到的74LS00和74LS86的引脚图如图所示。
2.组合电路的分析方法。
组合逻辑电路分析的任务是:对给定的电路求其逻辑功能,即求出该电路的输出与输入之间的关系,通常是用逻辑式或真值表来描述,有时也加上必须的文字说明。
分析一般分为一Vcc4B 4A4Y3B3A3Y1A1B1Y2A2B2YGND00 四2输入与非门下几个步骤:(1)由逻辑图写出输出端的逻辑表达式,简历输入和输出之间的关系。
(2)列出真值表。
(3)根据对真值表的分析,确定电路功能。
3.组合逻辑电路的设计方法。
组合逻辑电路设计的任务是:由给定的功能要求,设计出相应的逻辑电路。
一般设计的逻辑电路的过程如图:(1)通过对给定问题的分心,获得真值表。
在分析中要特别注意实际问题如何抽象为几个输入变量和几个输出变量直接的逻辑关系问题,其输出变量之间是否存在约束关系,从而过得真值表或简化真值表。
(2)通过卡诺图化简或逻辑代数化简得出最简与或表达式,必要时进行逻辑式的变更,最后画出逻辑图。
(3)根据最简逻辑表达式得到逻辑电路图。
四.实验内容。
半加器与全加器
半加器与全加器设计
一、半加器设计 2、半加器的真值表:
被加数A 0 0 加数B 0 1 和数S 0 1 进位数C 0 0
1 1
0 1
1 0
0 1
3、半加器的逻辑表达式:
S AB AB A B
C AB
半加器与全加器设计
一、半加器设计 4、半加器的图形编辑:
半加器与全加器设计
二、全加器设计 1、全加器分析: 半加器(一位二进制)全加器除考虑两个 加数外,还考虑了低位的进位 。 输入端有3个,分别为加数、被加数与低 位进位。 输入端有2个,分别为和与进位;
半加器与全加器设计
二、全加器设计 4、全加器的图形编辑:
半加器与全加器设计
三、用半加器元件进行全加器设计
半加器与全加器设计
二、全加器设计 2、全加器的真值表:
Ai
0 0 0 0 1 1
Bi
0 0 1 1 0 0
Ci-1
0 1 0 1 0 1
Si
0 1 1 0 1 0
Ci
0 0 0 1 0 1
1
1
1
1
0
1
0
1
1
1
半加器与全加器设计
二、全加器设计
3、全加器的逻辑表达式:
Si Ai Bi Ci 1
半加器一位二进制全加器除考虑两个半加器一位二进制全加器除考虑两个加数外还考虑了低位的进位加数外还考虑了低位的进位输入端有输入端有33个分别为加数被加数与低个分别为加数被加数与低与全加器设计
一、半加器设计 1、半加器分析: 半加器(一位二进制)只考虑了两个加数 本身,没有考虑由低位来的进位。 输入端有2个,分别为加数与被加数; 输出端有2个,分别为和与进位。
半加器全加器的工作原理和设计方法实验报告
一、实验目的1、学习和掌握半加器全加器的工作原理和设计方法。
2、熟悉EDA工具Quartus II的使用,能够熟练运用Vrilog HDL语言在Quartus II下进行工程开发、调试和仿真。
3、掌握组合逻辑电路在Quartus Ⅱ中的图形输入方法及文本输入方法,掌握层次化设计方法。
4、掌握半加器、全加器采用不同的描述方法。
二、实验内容1、完成半加器全加器的设计,包括原理图输入,编译、综合、适配、仿真等。
并将半加器电路设置成一个硬件符号入库2、建立更高层次的原理图设计,利用1位半加器构成1位全加器,并完成编译、综合、适配、仿真并硬件测试3、采用图形输入法设计1位加法器分别采用图形输入和文本输入方法,设计全加器4、实验报告:详细叙述1位全加法器的设计流程,给出各层次的原理图及其对应的仿真波形图,给出加法器的上时序分析情况,最后给出硬件测试流程和结果。
三、实验步骤1、建立一个Project。
2、编辑一个VHDL程序,要求用VHDL结构描述的方法设计一个半加器3、对该VHDL程序进行编译,修改错误。
4、建立一个波形文件。
(根据真值表)5、对该VHDL程序进行功能仿真和时序仿真四、实验现象任务1:半加器真值表描述方法代码如下:半加器是只考虑两个加数本身,而不考虑来自低位进位的逻辑电路S=A B+A B CO=AB代码如下:LIBRARY IEEE; --行为描述半加器 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder ISPORT(a,b:IN STD_LOGIC; so,co:OUT STD_LOGIC); END h_adder;Architecture FH1 OF h_adder ISSignal abc:STD_LOGIC_vector(1 downto 0); Beginabc<=a&b; --并 Process(abc) --进程 begincase abc isWHEN "00"=>SO<='0';CO<='0'; WHEN "01"=>SO<='1';CO<='0'; WHEN "10"=>SO<='1';CO<='0'; WHEN "11"=>SO<='0';CO<='1'; WHEN OTHERS =>NULL; END CASE; END PROCESS;END ARCHITECTURE FH1; 结果如下:逻辑图任务2:二进制加法运算规则描述代码如下:LIBRARY IEEE;--行为描述(抽象描述结构体的功能) USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder2 is --半加器PORT(A,B:IN STD_LOGIC;S,C0:OUT STD_LOGIC);END h_adder2;ARCHITECTURE be_half_adder OF h_adder2 IS BEGINPROCESS(A,B)BEGINIF(A='0' AND B='0') THEN S<='0';C0<='0';ELSIF(A='0' AND B='1') THENS<='1';C0<='0';ELSIF(A='1' AND B='0') THEN S<='1';C0<='0'; ELSES<='0';C0<='1';END IF;END PROCESS;END be_half_adder;结果如下:任务3:按逻辑表达式设计代码如下:LIBRARY IEEE; --行为描述半加器(按逻辑表达式)USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder3 ISPORT(a,b:IN STD_LOGIC;so,co:OUT STD_LOGIC);END h_adder3;Architecture FH1 OF h_adder3 ISBeginso<=a XOR b ;co<=a AND b;END ARCHITECTURE FH1;结果如下:任务4:用基本单元电路与或非描述半加器代码如下:library IEEE;use IEEE.STD_LOGIC_1164.all;entity h_adder4 isport(a:in STD_LOGIC;b:in STD_LOGIC;sum:out STD_LOGIC;co:out STD_LOGIC );end h_adder4;architecture ch4 of h_adder4 issignal c,d:std_logic;beginc<=a or b;d<=a nand b;co<=not d;sum<=c and d;end architecture ch4;结果如下:任务5 :结构描述代码如下:--h_adder5LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder5 ISPORT(A,B:IN STD_LOGIC;co,s: OUT STD_LOGIC);END ENTITY h_adder5;ARCHITECTURE mix OF h_adder5 IS COMPONENT xor21 ISPORT(i0,i1:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT;BEGINco<=A AND B;u1: xor21 PORT MAP(i0=>A,i1=>B,q=>s); --例化END ARCHITECTURE mix;--xor21--half_adder半加器,结构描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor21 ISPORT(i0,i1:IN STD_LOGIC;q: OUT STD_LOGIC);END ENTITY xor21;ARCHITECTURE behav OF xor21 ISBEGINq<=i0 XOR i1;END ARCHITECTURE behav;结果如下:五、实验体会通过这次实验,复习了VHDL语言的应用,通过五种不同的方式,进行半加器的设计,加深了对半加器的理解,及对五种方法的运用,真值表描述方法、二进制加法运算规则描述、按逻辑表达式设计、用基本单元电路与或非描述半加器、结构描述。
(Multisim数电仿真)半加器和全加器
实验3.5 半加器和全加器一、实验目的:1.学会用电子仿真软件Multisim7进行半加器和全加器仿真实验。
2.学会用逻辑分析仪观察全加器波形:3.分析二进制数的运算规律。
4. 掌握组合电路的分析和设计方法。
5.验证全加器的逻辑功能。
二、实验准备:组合电路的分析方法是根据所给的逻辑电路,写出其输入与输出之间的逻辑关系(逻辑函数表达式或真值表),从而评定该电路的逻辑功能的方法。
一般是首先对给定的逻辑电路,按逻辑门的连接方法,逐一写出相应的逻辑表达式,然后写出输出函数表达式,这样写出的逻辑函数表达式可能不是最简的,所以还应该利用逻辑代数的公式或者卡诺图进行简化。
再根据逻辑函数表达式写出它的真值W=..........................................3.5.1ABABABWCX=.........................................3.5.2WWCCXY=..........................................3.5.3XDDXD2.进行化简:AW+=....................................................3.5.4AB=+BABBAABX+WCW+=....................…..3.5.5C+=+ABCABCCABBCACDBBAXCYDXDAD+=++D++=DBCAABCCDB+...........................…...3.5.6A+A+BCDCDAABCDB3. 列真值表:4.功能说明:逻辑图是一个检奇电路。
输入变量的取值中,有奇数个 1 则有输出,否则无输出。
组合电路的设计目的就是根据实际的逻辑问题,通过写出它的真值表和逻辑函数表达式,最终找到实现这个逻辑电路的器件,将它们组成最简单的逻辑电路。
例如:设计半加器逻辑电路。
1. 进行逻辑抽象:如果不考虑的来自低位的进位将两个1位二进制数相加,称为半加。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
port (a,b :in std_logic;
c: out std_logic);
end component;
signal x:std_logic_vector(0 to 2);
begin
u1: h_adder1 port map(a,b,x(1),x(0));
u2: h_adder1 port map(x(1),cin,sum,x(2));
entity count10 is
port(clk,r,s :in std_logic;
data:in std_logic_vector(3 downto 0);
co :out std_logic;
q:buffer std_logic_vector(3 downto 0));
end count10;
u3: or23 port map(a=>x(0),b=>x(2),c=>cout);
end arch;
运行结果:
方法二:
运行结果:
实验二.四选一数据选择器的设计
1用case语句:
library ieee;
use ieee.std_logic_1164.all;
entity mux4_1ais
port(A,B,C,D :in std_logic_vector(3 downto 0);
entity dswq is
port(clk,dir : in std_logic;
q : buffer std_logic_vector(3 downto 0));
end;
architecture arch of dswq is
begin
process(clk,q,dir)
begin
if clk'event and clk ='1'
B when "01",
C when "10",
D when "11",
"ZZ"when others;
end arch;
运行结果:
4,用when语句设计:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
then if dir='0'
then q<=q+1;
else q<=q-1;
end if;
end if;
end process;
end arch;
运行结果:
异步清零,同步置数的同步8421BCD码计数器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
begin
s<=a xor b;c<=a and b;
end architecture one;
运行结果:
方法二:
运行结果:
2,全加器的设计
方法一:
library ieee;
use ieee.std_logic_1164.all;
entity f_adder1 is
port(a,b,cin :in std_logic;
end arch;
用with语句设计:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity mux4_1cis
port(A,B,C,D :in std_logic_vector(3 downto 0);
architecture arch of count10 is
begin
co<='1' when(q="1001")else '0';
process(clk,r)
begin
if(r='0')then q<="0000";
elsif (clk'event and clk='1') then
if(s='1')then q<=data;
sel :in std_logic_vector(1 downto 0);
q :out std_logic_vector(3 downto 0)
);
end mux4_1a;
architecture arch of mux4_1ais
begin
process(A,B,C,D,sel)
begin
case sel is
when "00"=> q<=A;
when "01"=> q<=B;
when "10"=> q<=C;
when "11"=> q<=D;
when others=> null;
end case;
end process;
end arch;
运行结果:
2,用if语句设计:
library ieee;
use ieee.std_logic_1164.all;
sum,cout :out std_logic);
end entity f_adder1;
architecture arch of f_adder1 is
component h_adder1
port( a,b :in std_logic;
s,c :out std_logic);
end component;
实验计,
方法一
library ieee ;
use ieee.std_logic_1164.all;
entity h_adder1 is
port(a,b :in std_logic;
c,s :out std_logic);
end entity h_adder1;
architecture one of h_adder1 is
entity mux4_1d is
port(A,B,C,D :in std_logic_vector(3 downto 0);
sel :in std_logic_vector(1 downto 0);
q :out std_logic_vector(3 downto 0)
);
end mux4_1d;
architecture arch of mux4_1d is
begin
process(A,B,C,D,sel)
begin
IF sel ="00" then q<=A;
elsif sel = "01" then q<=B;
elsif sel = "10" then q<=C;
elsif sel = "11" then q<=D;
end if
end process;
sel :in std_logic_vector(1 downto 0);
q :out std_logic_vector(3 downto 0)
);
end mux4_1c;
architecture arch of mux4_1cis
begin
with sel select
q<=A when "00",
elsif(q=9)then q<="0000";
else q<=q+1;
end if;
end if;
end process;
end arch;
运行结果:
entity mux4_1b is
port(A,B,C,D :in std_logic_vector(3 downto 0);
sel :in std_logic_vector(1 downto 0);
q :out std_logic_vector(3 downto 0)
);
end mux4_1b;
architecture arch of mux4_1b is
begin
q<=A when sel="00" else
B when sel="01" else
C when sel="10" else
D;
end arch;
运行结果:
实验三,可逆计数器的设计
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;