组合逻辑课程设计4位二进制全加器全减器原创.docx
- 文档编号:24126430
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:18
- 大小:615.56KB
组合逻辑课程设计4位二进制全加器全减器原创.docx
《组合逻辑课程设计4位二进制全加器全减器原创.docx》由会员分享,可在线阅读,更多相关《组合逻辑课程设计4位二进制全加器全减器原创.docx(18页珍藏版)》请在冰豆网上搜索。
组合逻辑课程设计4位二进制全加器全减器原创
组合逻辑电路课程设计——
4位二进制全加器/全减器
作者:
学号:
课程设计题目要求:
1)使用74LS283构成4位二进制全加/全减器。
2)阐述设计思路。
3)列出真值表。
4)画出设计的逻辑图。
5)用VHDL对所画电路进行仿真。
摘要1
1总电路设计2
1.1硬件电路的设计2
1.2全加器(full-adder)3
1.2.1四位二级制加法器4
1.2.1.1串行进位加法器4
1.2.1.2超前进位加法器5
1.2.1.3超前位链结构加法器5
1.3全减器(full-substracter)5
1.4总电路设计6
2设计思路7
2.1全加器7
2.2全减器7
3真值表8
4逻辑图与仿真9
5软件程序的设计13
6结果分析与总结15
摘要
加法器是数字系统中产生数的和的装置。
加数和被加数为输入,和数与进
位为输出的装置为半加器。
若加数、被加数与低位的进位数为输入,而和数与进
位为输出则为全加器。
例如:
为了节省资源,减法器和硬件乘法器都可以用加法器来构成。
但宽位加法器的设计是很耗资源的,因此在实际的设计和相关饿得设计与开发中需要注意资源的利用率和进位速度两方面的问题,多位加法器的构成
主要有两种:
并行进位和串行进位。
并行进位加法器设有并行进位产生逻辑,运行速度比串行进位快;串行进位是将全加器采取并行级联或菊花链式级联构成多位加法器。
加法器也是常用作计算机算术逻辑部件,执行逻辑操作、移位与指令调用。
此外还可以用来表示各种数值,如:
BCD加三码,主要的加法器是以二
进制作运算。
本文将采用4位二进制并行加法器作为折中选择,所选加法器为74LS283
74LS283是4位二进制先行进位的加法器,它只用了几级逻辑来形成和及进位输出,故由其构成4位二进制全加器;而四位全减器可以用加法器简单的改造而来,最后本文采用VHDL对四位全加器/全减器进行仿真。
关键字
74LS283全加器、四位二进制、迭代电路、并行进位、串行进位、VHDL
1总电路设计
1.1硬件电路的设计
该4位二进制全加器以74LS283为核心,74LS283芯片引脚图如下图,本文采用先行进位方式,极提高了电路运行速度,下面是对4位全加器电路设计的具体分析。
CONNECTIONDIAGRAMDIP(TCPVIEW)
□山•-|-■pII・*j〜||■丄]J1I匸
)
1_?
J_tld_Ll_dl_L
WxB3A3A4B4F4
f?
日2A2A1斷GND
NOTE:
TheFlatpakversionhasthosaniopinoutstConnfictionOiagrfirn)asJieDutilIri-LmePackage.
图1.174LS283芯片引脚图
1.2全加器(full-adder)
全加器是针对超过一位的操作数相加,必须提供位与位之间的进位而设计的一种加法器,具有广泛而重要的应用。
它除了有加数位X和Y,还有来自低位的
进位Cin和输出S与给高位的进位Cout,具体满足下面等式:
%=+恫+
其中,如果有奇数个1,则S为1;如果输入有2个或2个以上的1,则
Cout为1。
全加器的功能表如下:
表1.2.1全加器的功能表
输入
输
出
输入
输
出
Cn
A
B
S
Cout
CI
A
B
S
Cout
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
逻辑表达式:
S=A®BeCin=\BCiti+ABC;,+ABCin+ABC(-ft
f剜=M+硏Ctn■+AB
实现全加器的电路图如下:
图1.2.2全加器简化模型图
CEN
全力II器
COLJT—
1.2.1四位二级制加法器
121.1串行进位加法器
四位二进制加法器为4个全加器的级联,每个处理一位。
最低有效位的进位输入通常置为0,每个全加器的进位输出连到高一位全加器的进位输入。
图1.121.1四位二进制加法器实现流程图
O
串行加法器
输入Input
A3A2A1A)
加数输入
B3B2B1B0
加数输入
Co
进位输入Cn
输出Output
S3S2S1S0
和数输入
C
进位输出Cout
121.2超前进位加法器
为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。
优点:
与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。
但是它的缺点就是电路比较复杂。
1.2.1.3超前位链结构加法器
%=ab+「("
令耳=佔产生进位PtAi~气产生传输信号,
四位全加器的进位链逻辑可以表示为如下:
C1=&1+匕5
G=6+P尹2+P?
P15
5=d+P尹2+P丹q+P*尹百
C4=C4+P4G3+P4P3Gl+P4P3P2G1+P4P3P2P1CD
1.3全减器(full-substracter)
全减器有两种构造方法:
1.全减器处理二进制算法的一位,其输入位为X(被减数),丫(减数)和
Bn(借位输入),其输入位为D(差)和Bout(借位输入),根据二进制减法表,可以写出如下等式:
0创=斤Xy卜Xx%+
这些等式非常类似于全加器中的等式,但不足为奇。
所以我们可以按照全加器的构造思路来构造全加器。
2.根据二进制补码的减法运算,X-Y可以通过加法操作来完成,也就是说,可以通过把丫的二进制补码加到X上来完成。
丫的二进制补码等于Y'+1其中丫’等于丫的各个位取反。
所以得出下式:
[v-y=x+(-r)=x+(r+i)
即全减器可以通过全加器来实现。
其逻辑图如下图:
图1.3.1全减器/全加器设计逻辑图
1.4总电路设计
图1.4全加器全减器总电路设计
2设计思路
2.1全加器
由上面对加法器的具体分析,我们分别假定两个4位二进制数分别为
A3AAA0、B3B2B1B0,利用VerilogHDL软件进行仿真,每个数位上的数值1、0用开关的高低电平表示,当开关打到红色点上时表示该位数值为1,反之如果打到蓝
色点上时为0,输出的四位二进制用S3S2S1S0表示,当输出的各位上亮红灯了该位输出为1,如果为蓝色则表示为0,Cout进位输入端,C4为进位输出端,以此进行仿真。
2.2全减器
首先将74LS283的B口的四个输入按1.3.1作优化,添加一个选择端select,通过该选择端来控制做加法还是做减法运算。
做减法运算时选择端select=1,各个与非门的输出与输入相反,达到了取反的目的,此时Cn=1,从而实现了减法器的功能。
做加法运算时选择端select=0,各个与非门的输出与输入相同,达到了保持不变的目的,此时时心=外部输入,从而实现了加法功能。
3真值表
根据上面对加法器的具体分析,下面给出的是4位二进制全加器的部分真值
表:
表3.14位二进制全加器真值表
A
A
A
A
R
B2
B1
Bo
Cn
S2
S
S0
Cout
0
0
0
0
0
0:
01
0:
0:
0:
0:
0:
0
0
0
0
0
0
0
0
0
01
11
0
01
01
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0:
01
1:
0:
0:
0:
1:
1
0
0
0
1
1
0
0
0
11
11
0
11
01
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0:
01
0:
1
0:
1
0:
1
0
0
0
1
0
0
01
11
01
01
01
11
01
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0:
1:
0
1:
1:
0
0
1
0
0
0
1
01
01
01
01
01
01
01
0
11
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1:
0:
1
1:
0:
0
0
1
0
0
1
0
11
01
01
01
1
1
01
1
01
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
01
01
11
01
01
01
11
1
11
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
01
01
1
1
01
01
1
0
1
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
表3.24位二进制全减器真值表
A
A
A1
A
B
B2
B1
B0
Cn
S2
S1
S0
Cout
0
0
0
0
0
0:
0[
0:
0:
0:
0:
0:
0
0
0
0
0
0
0
01
01
01
1I
01
01
01
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1:
0:
0
0:
1:
1
0
0
0
1
1
0
0I
0I
1I
1I
0I
1I
0I
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0:
1
0
1
0
1
0
0
0
1
0
0
0I
1I
0I
0I
0I
1I
0I
0
0I
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0:
01
0;
0;
0;
0;
0;
0
1I
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1:
01
01
01
1:
11
01
11
0
1
0
0
0
0
1
1
01
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0:
01
1:
0:
0:
0:
1:
1:
1:
1
0
1
0
1
0
0
11
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0:
01
1:
1:
0:
0:
1:
0:
1:
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
・・・
4逻辑图与仿真
F面是74LS283四位二进制全加器的逻辑电路图:
图4.174LS283四位二进制全加器的逻辑电路图
图4.1
vss
■■a■■■■■■uh■■a■ia■■■a■
割[
■■F・F・P•
—g^sr0——:
电■吨需':
…二…
0口
憧■勢心
图4.2
5软件程序的设计
采用VerilogHDL语言对设计的4位二进制全加器进行仿真,下面是具体
VerilogHDL程序:
第一步:
建立一个半加器的VHD程序。
Hadd_v.vhd
libraryieee;
useieee.std」ogic_1164.all;
useieee.std_logic_unsigned.all;
entityhadd_vis
port(a,b:
instd_logic;
s,c:
outstd_logic);
endhadd_v;
architectureaofhadd_vis
signaltemp:
std_logic_vector(1downto0);
begin
temp<=(‘O'&A)+B;
s<=temp(0);
c<=temp
(1);
enda;
编译通过
第二步:
建立一个全加器的VHD程序,fadd_v.vhdlibraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityfadd_vis
port(a,b,ci:
instd_logic;s,co:
outstd_logic);endfadd_v;
architectureaoffadd_vis
signaltemp:
std_logic_vector(1downto0);begin
temp<=(‘0'&a)+b+ci;
s<=temp(0);
co<=temp
(1);
enda;
编译通过。
第三步:
建立一个加入全加器半加器的VHD程序,为程序包add_v.vhd
LIBRARYieee;
USEieee.std_logic_1164.ALL;
PACKAGEadd_vIS
COMPONENThad_v
PORT(
a,b:
IN
s,c:
OUTENDCOMPONENT;
STD_LOGIC;
STD_LOGIC);
COMPONENTfadd_vPORT(a,b,ci:
INs,co:
OUTENDCOMPONENT;
ENDadd_v;
STD_LOGIC;
STD_LOGIC);
第四步:
四位加法器程序add4_v.VHD
libraryieee;
useieee.std_logic_1164.all;
useWore.add_v.all;
entityadd4_vis
port(A,B:
instd_logic_vector(3downto0);S:
outstd_logic_vector(3downto0);
Cout:
outstd_logic);
Endadd4_v;
Architecturexofadd4_vis
SignalN1,N2,N3:
std_logic;
begin
hO:
hadd_v
portmap(a=>A(0),b=>B(0),c=>N1);
h1:
fadd_v
portmap(a=>A
(1),b=>B
(1),s=>S
(1),co=>N2);
h2:
fadd_v
portmap(a=>A
(2),b=>B
(2),s=>S
(2),co=>N3);
h3:
fadd_v
portmap(a=>A(3),b=>B(3),s=>S(3),co=>cout);
endx;
结束。
6结果分析与总结
由上图可以看出仿真结果与实际的运算结果是相同的。
由仿真程序结果可知,设计的程序完成了四位全加器的功能,因此,该程序正确。
首先感老师的严谨教学与悉心指导。
通过本次课程设计,我加深了对所学知识的理解,并对某些知识进行很好地应用,如:
全加器、74LS283等。
同时完成
了74LS283构成4位二进制全加器的电路硬件设计和VHDL仿真,完成课程设
计的过程中也更加强化了自己查阅资料的能力,这有助于提高我们的自学能力,整个过程中我们还有请教其他同学。
总之,本次课程设计加深了我对数字逻辑设
计这门课的理解,更加激发了我的对数字逻辑设计这门课的兴趣,有利于我们后续课程的学习。
参考文献:
数字逻辑设计及应用,书艳/主编,电子科技大学
参考网址:
.shangxueba./ask/551388.html
.doc88./p-.html
wenku.baidu./link?
url=jBhliG2ncFgEkKRQbVKp9nQrdGdAcPvnneaCuudRX8EoQEEylrPc6dQgwMSZxmwN9cyhY9X1FxuKPEeowcidAgu4AEwhjjE7dAjguLG9i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 组合 逻辑 课程设计 二进制 全加器 全减器 原创
![提示](https://static.bdocx.com/images/bang_tan.gif)