组合逻辑课程设计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位全加器电路设计的具体分析。

图1.174LS283芯片引脚图

1.2全加器(full-adder )

全加器是针对超过一位的操作数相加,必须提供位与位之间的进位而设计的一种加法器,具有广泛而重要的应用。它除了有加数位X 和Y ,还有来自低位的进位C in 和输出S 与给高位的进位C out ,具体满足下面等式:

S =X ⊕Y ⊕Cin=X∙Y′∙Cin′+X′∙Y∙Cin′+X′∙Y′∙Cin+X∙Y∙Cin

Cout=X∙Y+X∙Cin+Y∙Cin

其中,如果有奇数个1,则S 为1;如果输入有2个或2个以上的1,则C out 为1。全加器的功能表如下:

表1.2.1全加器的功能表

S =A ⊕B ⊕Cin=A B′Cin+A′B Cin+A′B′Cin+AB Cin

Cout

实现全加器的电路图如下:

图1.2.1全加器等式电路图

= A+B Cin+AB

图1.2.2全加器简化模型图

1.2.1四位二级制加法器 1.2.1.1串行进位加法器

四位二进制加法器为4个全加器的级联,每个处理一位。最低有效位的进位输入通常置为0,每个全加器的进位输出连到高一位全加器的进位输入。

图1.1.2.1.1四位二进制加法器实现流程图

1.2.1.2超前进位加法器

为了提高运算速度,必须设法减小或消除由于进位信号逐级传递所消耗的时间,于是制成了超前进位加法器。 优点:与串行进位加法器相比,(特别是位数比较大的时候)超前进位加法器的延迟时间大大缩短了。但是它的缺点就是电路比较复杂。

1.2.1.3超前位链结构加法器

Cout=AB+Ci−1(A+B)

令Gi=AiBi 产生进位Pi=Ai+Bi产生传输信号, 四位全加器的进位链逻辑可以表示为如下: C1=G1+P1C0

C2=G2+P2G2+P2P1C0

C3=G3+P3G2+P3P2C1+P3P2P1C0

C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0

S =A ⊕B ⊕Ci−1

1.3全减器(full-substracter )

全减器有两种构造方法:

1. 全减器处理二进制算法的一位,其输入位为X (被减数),Y (减数)和

B in (借位输入),其输入位为D(差) 和B out (借位输入),根据二进制减法表,可以写出如下等式:

Bout=X′×Y+X′×Bin+Bin

这些等式非常类似于全加器中的等式,但不足为奇。所以我们可以按照全加器的构造思路来构造全加器。

2. 根据二进制补码的减法运算,X-Y 可以通过加法操作来完成,也就是说,

可以通过把Y 的二进制补码加到X 上来完成。Y 的二进制补码等于Y ’+1。其中Y ’等于Y 的各个位取反。所以得出下式:

X −Y =X + −Y =X +(Y′+1)

即全减器可以通过全加器来实现。其逻辑图如下图:

图1.3.1全减器/全加器设计逻辑图

1.4总电路设计

图1.4全加器全减器总电路设计

2设计思路

2.1全加器

由上面对加法器的具体分析, 我们分别假定两个4位二进制数分别为A 3A 2A 1A 0、B 3B 2B 1B 0, 利用Verilog HDL 软件进行仿真,每个数位上的数值1、0用开关的高低电平表示,当开关打到红色点上时表示该位数值为1,反之如果打到蓝色点上时为0,输出的四位二进制用S 3S 2S 1S 0表示,当输出的各位上亮红灯了该位输出为1,如果为蓝色则表示为0,C out 进位输入端,C 4为进位输出端,以此进行仿真。

2.2全减器

首先将74LS283的B 口的四个输入按1.3.1作优化,添加一个选择端select 。通过该选择端来控制做加法还是做减法运算。

做减法运算时选择端select=1,各个与非门的输出与输入相反,达到了取反的目的,此时C in =1,从而实现了减法器的功能。

做加法运算时选择端select=0,各个与非门的输出与输入相同,达到了保持不变的目的,此时时C in =外部输入,从而实现了加法功能。

3真值表

根据上面对加法器的具体分析,下面给出的是4位二进制全加器的部分真值表:

4逻辑图与仿真

下面是74LS283四位二进制全加器的逻辑电路图:

图4.174LS283四位二进制全加器的逻辑电路图

4.1

4.2

4.3

图4.4

5软件程序的设计

采用Verilog HDL 语言对设计的4位二进制全加器进行仿真,下面是具体Verilog HDL 程序:

第一步:建立一个半加器的VHD 程序。Hadd_v.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityhadd_v is

port(a,b: in std_logic;

s,c: out std_logic);

endhadd_v;

architecture a of hadd_v is

signal temp: std_logic_vector(1 downto 0);

begin

temp

&A)+B;

s

c

end a;

编译通过

第二步:建立一个全加器的VHD 程序,fadd_v.vhd

libraryieee;

use ieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityfadd_v is

port(a,b,ci: in std_logic;

s,co : out std_logic);

endfadd_v;

architecture a of fadd_v is

signal temp : std_logic_vector(1 downto 0);

begin

temp

s

co

end a;

编译通过。

第三步:建立一个加入全加器半加器的VHD 程序,为程序包add_v.vhd LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

PACKAGE add_v IS

COMPONENT had_v

PORT(

a,b :IN STD_LOGIC;

s,c :OUT STD_LOGIC);

END COMPONENT;

COMPONENT fadd_v

PORT(

a,b,ci :IN STD_LOGIC;

s,co :OUT STD_LOGIC);

END COMPONENT;

END add_v;

第四步:四位加法器程序add4_v.VHD

libraryieee;

use ieee.std_logic_1164.all;

useWore.add_v.all;

entity add4_v is

port(A,B:instd_logic_vector(3 downto 0);

S:outstd_logic_vector(3 downto 0);

Cout:outstd_logic);

End add4_v;

Architecture x of add4_v is

Signal N1,N2,N3:std_logic;

begin

h0:hadd_v

port map(a=>A(0),b=>B(0),c=>N1);

h1:fadd_v

port map(a=>A(1),b=>B(1),s=>S(1),co=>N2);

h2:fadd_v

port map(a=>A(2),b=>B(2), s=>S(2),co=>N3);

h3:fadd_v

port map(a=>A(3),b=>B(3), s=>S(3),co=>cout);

end x;

结束。

6结果分析与总结

由上图可以看出仿真结果与实际的运算结果是相同的。

由仿真程序结果可知,设计的程序完成了四位全加器的功能,因此,该程序正确。

首先感谢老师的严谨教学与悉心指导。通过本次课程设计,我加深了对所学知识的理解,并对某些知识进行很好地应用,如:全加器、74LS283等。同时完成了74LS283构成4位二进制全加器的电路硬件设计和VHDL 仿真,完成课程设计的过程中也更加强化了自己查阅资料的能力,这有助于提高我们的自学能力,整个过程中我们还有请教其他同学。总之,本次课程设计加深了我对数字逻辑设计这门课的理解,更加激发了我的对数字逻辑设计这门课的兴趣,有利于我们后续课程的学习。

参考文献:

数字逻辑设计及应用,姜书艳/主编,电子科技大学出版社

参考网址:


相关内容

  • 四位二进制全加全减器

    数字逻辑设计及应用 课程设计报告 组合逻辑设计 题目:使用74LS83构成4位二进制全加\全减器. 具体要求:1)列出真值表: 2)画出逻辑图: 3)用Verilog HDL进行仿真: 1. 设计思路及原理分析 全加器是除本位数字相加外,还 ...


  • 实用数字电子技术项目教程

    实用数字电子技术项目教程(中职中专电子技术应用专业系列教材) 本书坚持"以能力为本位,以职业实践为主线,以项目课程为主体的模块化专业课程体系"的总体设计要求,以典型电路的制作.装配和能力测试为基本目标,打破了传统学科体系 ...


  • 利用MSI设计组合逻辑电路

    实验二 利用MSI设计组合逻辑电路 2015 信息科学与技术学院 一.实验目的: 1. 熟悉编码器.译码器.数据选择器等组合逻辑功能模块的功能与使用方法. 2. 掌握用MSI设计的组合逻辑电路的方法. 二.实验仪器及器件: 1. 数字电路实 ...


  • 数字电子技术实验指导书2013

    <数字电子技术> 验指导书 安阳工学院 实 电子信息与电气工程学院 实验要求 一.实验前必须充分预习,完成指定的预习任务. 二.用仪器和实验箱前必须了解其性能.操作方法及注意事项,在操作时应严格 遵守. 三.实验时接线要认真,相 ...


  • 数字电路 实验

    <数字逻辑技术>实验 参考教材 <电子技术基础实验–分析.调试.综合设计> 王传新主编,高等教育出版社 实验要求及注意事项 1.实验前必须预习实验内容,做到思路清晰,实验任务明确. 2.实验时认真阅读实验指导书,按电 ...


  • 利用与非门或异或门构成全加器

    利用与非门设计全加器以及异或门 1.利用与非门设计半加器 U1B AN BN SN C 0s 1.0s 2.0s Time 3.0s 4.0s 2.利用与非门设计全加器 AN BN CN-1 SNALL Cnall 0s 0.5s 1.0s ...


  • [数字电子技术]总结复习

    <数字电子技术>复习 一.主要知识点总结和要求 1.数制.编码其及转换:要求:能熟练在10进制.2进制.8进制.16进 制.8421BCD .格雷码之间进行相互转换. 举例1:(37.25)10= ( )2= ( )16= ( ...


  • 数字电子技术复习题

    一.填空题 1. 二进制数10111111对应的十六进制数为,十进制数为. 2. 8421BCD码中的1000 3. 逻辑函数F =A +B +C D 的非函数F =A B C +D . 4. TTL 三态输出门电路有 低电平 . 高电平 ...


  • 数字电路习题

    一.填空题:(每空3分,共15分) 1.逻辑函数有四种表示方法,它们分别是( 真值表.).( 逻辑图式 ).( .逻辑表达 )和( .卡诺图 ). 2.将2004个"1"异或起来得到的结果是( 0 ). 3.由555定时 ...