资源描述
物理与电子信息学院学年论文
组合逻辑电路的分析与仿真
秦瑜(学号:20121105488)
(物理与电子信息学院 12级电子信息工程班,内蒙古 呼和浩特 010022)
指导老师:刘淑琴
摘要:本文是对组合逻辑电路进行分析,分析组合电路的特点、功能以及表示方法,最后对组合逻辑电路的一个仿真。方法是通过对组合逻辑电路的仿真成功,实验是利用集成片以及现有的实验设备进行分析,了解其特点、功能。从而对组合逻辑电路有一个全新的认识。
关键词:组合逻辑电路;分析;仿真;功能;特点
中图分类号:TN79 文献标志码:B
1 引言
组合逻辑电路作为数字电路中两大逻辑电路之一,在数字电路中有着重要的作用,对组合逻辑电路的分析和设计是数字电路学习过程的重点内容。为缩短理论与实践的距离,提高灵活应用数字元器件的能力,组合逻辑电路通常有四步,设计完成画出符合功能要求的逻辑图,一般是把其转换成TTL与非门形式的逻辑图。然后研究用多少个,何种逻辑门、译码器、数据选择器,怎么实现组合逻辑电路。实践证明,只要把逻辑电路与选择实现功能器件相互对应输入输出的关系研判准确,就能按要求实现所设计电路的逻辑功能,减少器件数目,降低成本,提高电路的可靠性。
2 组合逻辑电路的特点
组合电路是由逻辑门(表示的数字器件)和电子元件组成的电路,电路中没有反馈,没有记忆元件。组合电路任一时刻的输出状态仅取决于该时刻各输入的状态组合,而和时间变量无关。从电路结构上看,组合电路是由常用门电路组合而成的,其中既无从输出到输入的反馈连接,也不包含可以存储信号的信号的记忆元件。其实,门电路也是组合电路,只不过因为它们的功能和电路结构都特别简单,所以使用中仅将其当做基本逻辑单元处理罢了。
3 组合逻辑电路的分析
组合逻辑电路的分析:由给定的组合逻辑电路图出发,分析其逻辑功能,求出输出函数的逻辑作用。即求出逻辑表达式和真值表。分析方法如下: 推导逻辑电路输出函数的逻辑表达式并化简。首先将逻辑图中各个门的输出都标上字母,然后从输入级开始,逐级推导出各个门的输出函数; 由逻辑表达式建立真值表。作真值表的方法是首先将输入信号的所有组合列表,然后将各组合代入输出函数得到输出信号值; 分析真值表,判断逻辑电路的作用,说出给定电路的基本功能。分析的目的或者是为了确定输入变量不同取值时功能是否满足要求;或者是为了变换电路的机构形式,例如将与或结构变换成与非-与非结构等;或者是为了得到输出函数的标准与或表达式,以便用中、大规模集成电路实现之;或者是为了在分析包括该电路的系统时,利用其功能的逻辑描述。
分析一般包括四个步骤:
图1 分析步骤框架图
4 分析举例
4.1 分析例题
一个双输入端、双输出端的组合逻辑电路如下图所示,分析该电路的功能。
图2 组合逻辑电路
解:(1)由逻辑图写出逻辑表达式,并进行化简和变换:
(2)列写真值表如下:
表1 真值表
输入
输出
A
B
S
C
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
(3)分析真值表可知,A,B都是0时,S为0,C也为0;当A,B有1个为1时,S为1,C为0;当A,B都是1时,S为0,C为1.这符合两个1位二进制数相加的原则,即A,B为两个加数,S是它们的和,C是向高位的进位。这种电路可用于实现两个1位二进制数的相加,实际上它是运算器中的基本单元电路,称为半加器。
对于比较简单的组合逻辑电路,有时也可用画波形图的方法进行分析。为了避免出错,通常是根据输入波形,逐级画出输出波形,最后根据逻辑图的输出端与输入端波形之间的关系确定功能。用画波形图的分析法对以上两个例题的分析结果分别如图所示。
图3 波形图
4.2 试分析如图所示组合电路的逻辑功能。
图4 逻辑电路图
解:根据组合逻辑电路分析步骤:
(1)图4有四个输入变量A、B、C、D,一个输出变量Y;根据图写出Y的逻辑表达式。
(2) 列出Y与A、B、C、D关系的真值表,如表由于Y的逻辑表达式不能再化简,
表2 真值表
(3)根据真值表说明组合电路功能。从表中,我们可以看出,当输入变量A、B、C、D中奇数个变量为逻辑1时,输出变量Y等于1,否则Y输出为0,所以图中电路是输入奇数为1校验器。
4.3 某雷达站有3部雷达A、B、C,其中A和B功率消耗相等,C的消耗功率是A的两倍。这些雷达由两台发电机X、Y供电,发电机X的最大输出功率等于雷达A的功率消耗,发电机Y的最大输出功率是雷达A和C的功率消耗总和。要求设计一个组合逻辑电路,能够根据各雷达的启动、关闭信号,以最省电的方式开、停电机。
解:根据组合逻辑电路的设计步骤:
(1)确定输入变量个数为3个,输出变量个数2个;
(2)输入变量为A、B、C,设定雷达启动状态为逻辑1,雷达关闭为逻辑0;输出变量为X、Y,设定电机开状态为逻辑1,关状态为逻辑0;
(3)根据输入与输出变量的逻辑关系,列真值表。
表3 真值表
(4)根据真值表,直接画卡诺图进行化简。卡诺图如图所示。
图5 卡诺图
(5)写出最简表达式
(6) 根据最简表达式画出逻辑电路图6如图所示。
组合逻辑电路是由组合函数实现的,那么用来表示逻辑函数的几种方法-真值表、卡洛图、逻辑表达式及时间图等,都可以用来表示组合电路的逻辑功能。
11
物理与电子信息学院学年论文
图6 逻辑电路图
组合逻辑电路的设计,通常以电路简单,所用器件最少为目标。在前面所介绍的用代数法和卡洛图法来化简函数,就是为了获得最简的形式,以便能用最少的门电路来组成逻辑电路。但是,由于在设计中普遍采用中、小规模集成电路(一片包括数个门至数十个门)产品,因此应根据具体情况,尽可能减少所用的器件数目的种类,这样可以使组装好的电路结构紧凑,达到工作可靠而且经济的目的。
组合逻辑电路按照逻辑功能特点不同划分为加法器、比较器、编码器、译码器、数据选择器和分配器、只读存储器等;按照使用基本开关元件不同又有CMOS、TTL等类型;按照集成度不同又可分为SSI、MSI、LSI、VLSI等。
在组合逻辑电路中,当输入信号改变状态时,输出端可能产生虚假信号,过渡干扰脉冲的现象就叫做竞争冒险。如果负载是对脉冲信号十分敏感的电路,那么就应采取措施消除竞争冒险。任何一个门电路只要有两个输入信号用时向相反方向变化,其输出端就可能产生干扰脉冲。检查一个组合电路中是否存在竞争冒险,有多种方法,其中最直观的方法就是逐级列出电路的真值表,并找出那些门的输入信号会产生竞争(一个从0变为1,而另一个同时从1变为0,然后判断是否会在整个电路的输出端产生干扰脉冲。如果可能产生则有竞争冒险,否则就没有)在有竞争冒险存在的情况下,而负载又是对脉冲敏感的电路,那么就应设法消除。消除竞争冒险的几种方法:引入封锁脉冲、引入选通脉冲、接入滤波电容、修改逻辑设计,增加冗余项。在这四种方法中前两种方法比较简单,而且不增加器件数目。但它们有一个共同的局限性,这就是必须找到一个封锁脉冲或选通脉冲,而且对这个脉冲的宽度和产生的时间是有严格要求的。接入滤波电容的方法同样也具有简单易行的优点,它的缺点是导致输出波形的边沿变坏,这在有些情况下是不可取的。至于修改逻辑设计的方法,如果运用得当,有时可以收到最理想的结果。
5 组合逻辑电路的VHDL描述及其仿真
5.1 3线-8线译码器的VHDL描述
LIBRARY IEEE;
USE IEEE,STD_LOGIC_1164,ALL;
ENTITY decoder38 IS
POTR(a:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
Y:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END decoder 38;
ARCHITECTURE one OF decoder38 IS
BEGIN
PROCESS(a)
BEGIN
CASE a IS
WHEN"000"=>y<="00000001";
WHEN"001"=>y<="00000010";
WHEN"010"=>y<="00000100";
WHEN"011"=>y<="00001000";
WHEN"100"=>y<="00010000";
WHEN"101"=>y<="00100000";
WHEN"110"=>y<="01000000";
WHEN"111"=>y<="10000000";
WHEN OTHERS=>null;
END CASE;
END PROCESS;
END one;
3线-8线译码器的仿真波形如图所示
图7 3线-8线译码器的仿真波形
5.2 8线-3线优先编码器的VHDL描述
LIBRARY IEEE;
USE IEEE,STD_LOGIC_1164,ALL;
ENTITY encoder83 IS
POTR(d:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
encode:OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );
END encoder83;
ARCHITECTURE one OF encoder83 IS
BEGIN
encode<="111" when d(7)='1'else
"110" when d(6)='1'else
"101" when d(5)='1'else
"100" when d(4)='1'else
"011" when d(3)='1'else
"010" when d(2)='1'else
"001" when d(1)='1'else
"000" when d(0)='1';
END one;
8线-3线优先编码器的仿真波形如图所示
图8 8线-3线优先编码器仿真波形
5.3 4选1数据选择器的VHDL描述
LIBRARY IEEE;
USE IEEE,STD_LOGIC_1164,ALL;
ENTITY mux41 is
PORT(a,b,c,d:IN STD_LOGIC;
s:IN STD_LOGIC_VECTOR(1 DOWNTO 0);
z :OUT STD_LOGIC);
END mux41;
ARCHITECTURE one OF mux41 IS
BEGIN
PROCESS(s,a,b,c,d)
BEGIN
CASE s IS
WHEN"00"=>z<=a;
WHEN"01"=>z<=b;
WHEN"10"=>z<=c;
WHEN"11"=>z<=d;
WHEN OTHERS=>z<='x';
END CASE;
END PROCESS;
END one;
4选1数据选择器的仿真波形如图所示
图9 4选1数据选择器的仿真波形
6 总结
本篇是基于对数字电路中组合逻辑电路的特点及其功能,分析方法的认识。首先组合逻辑电路一般是由惹干个基本逻辑单元组合而成的,它的特点是不论任何时候,输出信号仅仅取决于当时的输入信号,而与电路原来所处的状态无关。它的基础是逻辑代数和门电路。 显而易见,符合这个特点的电路是非常多的,重要的问题在于必须掌握组合逻辑电路的特点、一些重要概念和分析、设计、设计的一般思路。在分析给定的组合逻辑电路时,可以逐级地写出输出的逻辑表达式,然后进行化简,力求获得一个最简单的逻辑表达式,以使输出与输入之间的逻辑关系能一目了然。在组合逻辑电路的设计中值得注意的是,在许多情况下,如果用中规模集成电路实现组合函数,则可以取得事半功倍的效果。这里需要补充的就是在负载电路对脉冲信号敏感时,需检查电路中是否存在竞争冒险。如果发现有竞争冒险存在,则应采取措施加以消除。如果负载电路只接受输出的直流电平信号,则这一步可以省略。其次在分析组合逻辑电路中化简逻辑表达式具有十分重要的意义,因为表达式化简恰当与否,将决定能否得到最经济的逻辑电路。在最后得到的电路中,使用的器件数目应当最少,而每个门电路的输入端又不能过多,如果是用MSI进行设计,则实现的均是标准与或式或标准与非-与非式,因而化简的重要性就不那么突出了。最后是根据自己在实验中以及在查略资料中得出的一些心得体会,用于课后加强知识训练。
组合逻辑电路的分析与仿真
参考文献:
[1]余孟尝. 数字电子技术基础简明教程(第三版).北京市西城区德化大街4号 北京联兴盛业印刷股份有限公司,2006年7月,起止页码 142-223页.
展开阅读全文