数字电子电路(四)
第一章 概述
第二章 数制与码制
第三章 逻辑代数
第四章 组合逻辑电路
第五章 触发器
第六章 时序逻辑电路
文章目录
一、概述
什么是组合逻辑电路?
- 组合逻辑电路的输出仅仅
取决于
电路当前的输入
- 信号是单向传输的,
由输出到输入没有任何反馈线
- 任何组合电路都可以只用逻辑门电路组成,且电路中
不包含任何记忆元件
二、组合逻辑电路分析及设计
逻辑电路的分析,就是找出给定逻辑电路输出和输入之间的逻辑关系,并指出电路的逻辑功能。
分析步骤
- 根据给定的逻辑电路,从输入端开始,逐级推导出输出端的逻辑函数表达式
- 根据输出函数表达式列出真值表
- 用文字概括出电路的逻辑功能。
例:分析下图所示组合逻辑电路的逻辑功能
-
逐级推导,写出表达式
P 1 = A B ‾ P 2 = B C ‾ P 3 = A C ‾ F = P 1 P 2 P 3 ‾ = A B ‾ ⋅ B C ‾ ⋅ A C ‾ ‾ = A B + B C + A C P1 = \overline{AB}\qquad P2=\overline{BC}\qquad P3=\overline{AC}\\ F = \overline{P1P2P3}=\overline{\overline{AB}·\overline{BC}·\overline{AC}}=AB+BC+AC P1=ABP2=BCP3=ACF=P1P2P3=AB⋅BC⋅AC=AB+BC+AC -
列出真值表
A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 -
分析功能
观察真值表,电路表示了一种“少数服从多数”的逻辑关系,因此可以将该电路概括为:三变量多数表决器
针对所要求的逻辑功能,通过逻辑抽象,依据选定的器件,找出输出和输入之间的逻辑表达式,并画出电路图
工程上的最佳设计,主要的衡量指标:
- 所用逻辑器件数目最少,器件的种类最少,且期间之间的连线最简单。这样的电路称“最小化”电路
- 满足速度要求,应使级数尽量少,以减少门电路的延迟
- 功耗小,工作性能稳定可靠
设计步骤:
- 逻辑抽象
- 画出真值表,写出相应的逻辑表达式
- 根据逻辑函数表达式画出逻辑电路图
例:某同学参加三类课程考试,规定如下:文化课程及格得2分,不及格得0分,专业理论课程及格得3分,不及格得0分;专业技能课程及格得5分,不及格得0分。总分大于6分则可顺利过关。
-
逻辑抽象
**输入信号:**A:文化课程,B:专业理论课,C:专业技能课(及格时为1,不及格为0)
**输出信号:**Y:表示过关情况
-
画出
真值表
写出相应得逻辑函数表达式
A B C Y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 F = A ‾ B C + A B ‾ C + A B C = A ‾ B C + A B C + A B ‾ C = B C + A B ‾ C = C ( B + A B ‾ ) = A C + B C F = \overline{A}BC+A\overline{B}C+ABC\\ =\overline{A}BC+ABC+A\overline{B}C\\ =BC + A\overline{B}C=C(B+A\overline{B})\\ =AC+BC F=ABC+ABC+ABC=ABC+ABC+ABC=BC+ABC=C(B+AB)=AC+BC
-
根据逻辑函数表达式
画出逻辑电路图
三、竞争与冒险
通常,对于组合逻辑电路得分析与设计,都是在理想的情况
下进行的,也就是假设
电路中没有延时
;而实际上,信号经过导线、逻辑门的传输,发生变化、产生输出是需要一定的过渡时间的,即信号只要经过电路中的连线、逻辑门,就会产生延迟。
什么是竞争与冒险?
**竞争:**当一个逻辑门的两个输入端的信号同时向相反方向变化时,聪明能干变化开始到达稳定状态所需的时间不同,称为竞争;
**冒险:**逻辑门因输入端的竞争而导致输出产生不应有的尖峰干扰脉冲(又称过渡干扰脉冲)的现象,称为冒险。
观察以下门电路,Gate1为非门,Gate2为与门,实现了逻辑F=AA'
理想情况下
输入输出的关系为:
但是由于门电路的输入到输出是一定会有时间延迟的,这个时间通常叫做电路的开关延迟,就会导致出现以下毛刺。(Gate1输入到输出有一定的延迟,导致A’信号就会滞后于A一段时间)
A‘信号滞后于A一段时间就会导致尖峰脉冲的出现:
以上的现象就被称为竞争-冒险现象。
如何判断电路是否存在竞争-冒险现象
-
代数法
:只要输出函数中出现互补信号
,就存在竞争-冒险的可能产生负向尖峰脉冲:
F = A + A ‾ F=A+\overline{A} F=A+A
产生正向尖峰脉冲:
F = A A ‾ F=A\overline{A} F=AA
-
卡诺图
:观察卡诺图中是否有两个圈相切但不相交
的情况,如有,则存在竞争-冒险现象
如何消除电路中的竞争-冒险现象
-
更改逻辑设计
- 消除互补乘积项(展开或与表达式使其成为与或表达式)
- 增加乘积项(无关项)避免互补项相加;
L = ( A + B ) ( A ‾ + C ) → L = A C + A ‾ B + B C L=(A+B)(\overline{A}+C)\rightarrow L=AC+\overline{A}B+BC L=(A+B)(A+C)→L=AC+AB+BC
-
*接入滤波电容
在逻辑电路较慢的速度下工作,为了消除竞争冒险,可以在输出端并联一个电容器,其容量为4-20pF,这时在输出端不会出现逻辑错误,该方法只能用于对波形和延迟时间要求不严格的情况
-
*引入选通脉冲
在输入信号变化,并有可能出现竞争冒险,选用一个选通信号将输出门封锁,等到所有输入信号都变为稳态后,再去掉封锁输出信号。这样就避免了电路输出端出现瞬时尖峰脉冲
四、常用组合逻辑器件
常用的中规模组合逻辑器件 = { 编码器 译码器 数据选择器 数据分配器 数值比较器 加法器 常用的中规模组合逻辑器件=\begin{cases} 编码器\\ 译码器\\ \boxed{数据选择器}\\ 数据分配器\\ \boxed{数值比较器}\\ \boxed{加法器} \end{cases} 常用的中规模组合逻辑器件=⎩ ⎨ ⎧编码器译码器数据选择器数据分配器数值比较器加法器
1、编码器(encoder)
在数字系统中,为了区分一系列不同的事物,将其中的每个事物用一个二值码来表示。
二进制编码器的结构框图
2、译码器
在数字系统中,将输入的二进制代码译成对应的高低电平信号或者其他代码。是编码的反操作,通常编码和译码是相依的。
常见的译码器有:2-4译码器、3-8译码器、4-16译码器
3、加法器
加法器 = { 一位加法器 { 半加器 ( 两个 1 位二进制数相加时,不考虑低位来的进位 ) 全加器 ( 两个 1 位二进制数相加时,考虑低位来的进位 ) 多位加法器 加法器=\begin{cases} \boxed{一位加法器}\begin{cases} \boxed{半加器}(两个1位二进制数相加时,不考虑低位来的进位)\\ \boxed{全加器}(两个1位二进制数相加时,考虑低位来的进位) \end{cases} \\多位加法器 \end{cases} 加法器=⎩ ⎨ ⎧一位加法器{半加器(两个1位二进制数相加时,不考虑低位来的进位)全加器(两个1位二进制数相加时,考虑低位来的进位)多位加法器
1)、半加器
输入:A、B;
输出:S为A、B相加的和;CO为进位输出。
半加器真值表
A | B | CO | S |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 1 | 0 |
S = A ‾ B + A B ‾ C = A B S=\overline{A}B+A\overline{B}\\ C=AB S=AB+ABC=AB
2)、全加器
再将两个多位二进制数相加时,除了最低位以外,每一位的加法运算都要考虑来自低位的进位
能够将被加数、加数和来自低位的进位这三个数加起来的运算电路称为全加器。
输入:A,B,Ci (被加数、加数和来自低位的进位)
输出:S为A、B相加的和;CO为进位输出
全加器真值表
A | B | Ci | S | CO |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
逻辑表达式
S
=
A
‾
B
‾
C
i
+
A
‾
B
C
i
‾
+
A
B
‾
C
i
‾
+
A
B
C
i
=
A
⊕
B
⊕
C
i
C
o
=
A
B
+
A
B
‾
C
i
+
A
‾
B
C
i
=
A
B
+
(
A
⊕
B
)
C
i
S=\overline{A}\overline{B}C_i+\overline{A}B\overline{C_i}+A\overline{B}\overline{C_i}+ABC_i=A⊕B⊕C_i\\ C_o=AB+A\overline{B}C_i+\overline{A}BC_i=AB+(A⊕B)C_i
S=ABCi+ABCi+ABCi+ABCi=A⊕B⊕CiCo=AB+ABCi+ABCi=AB+(A⊕B)Ci
3)、多位加法器
串行进位加法器:n位串行进位加法器是用n个全加器级联构成,这种电路最大的缺点是运行速度慢
。
提高运算速度,就必须设法减小由于进位信号逐级传递所耗费的时间。
由于第i位的进位输入信号(CI)i一定能由Ai-1Ai-2···A0和Bi-1Bi-2···B0唯一地确定。
根据这个原理,就可以通过逻辑电路实现得出每一位全加器的进位输入信号,而无需再从最低位开始向高位逐位传递进位信号了,这就有效地提高了运算速度。
采用这种结构形式的加法器称为超前进位(Carry Look-ahead)加法器
,也称为快速进位(Fast Carry)加法器。
4、数据选择器
数据选择器(Multiplexer,简称MUX)
数据选择器又称多路选择器。它有n位地址输入、2n位数据输入、1位输出。
数据选择器是一种数据开关,用于从多个数据源中选择其中一路传送到公共的数据线上,能够实现这种功能的逻辑电路称为数据选择器
。
1)、2选1数据选择器
2选1数据选择器的真值表
选择输入S | 输出Y |
---|---|
0 | D0 |
1 | D1 |
Y = S ‾ D 0 + S D 1 Y=\overline{S}D_0+SD_1 Y=SD0+SD1
2)、4选1数据选择器
D0~D3是数据输入端,也称为数据通道;
A1、A0是地址输入端,或称选择输入端;
Y是输出端;
E是使能端,低电平有效
4选1数据选择器真值表
S1 | S0 | Y |
---|---|---|
0 | 0 | D0 |
0 | 1 | D1 |
1 | 0 | D2 |
1 | 1 | D3 |
Y = D 0 S 1 ‾ S 0 ‾ + D 1 S 1 ‾ S 0 + D 2 S 1 S 0 ‾ + D 3 S 1 S 0 Y=D_0\overline{S_1}\overline{S_0}+D_1\overline{S_1}S_0+D_2S_1\overline{S_0}+D_3S_1S_0 Y=D0S1S0+D1S1S0+D2S1S0+D3S1S0
3)、8选1数据选择器
真值表
E | A2 | A1 | A0 | Y |
---|---|---|---|---|
1 | x | x | x | 0 |
0 | 0 | 0 | 0 | D0 |
0 | 0 | 0 | 1 | D1 |
0 | 0 | 1 | 0 | D2 |
0 | 0 | 1 | 1 | D3 |
0 | 1 | 0 | 0 | D4 |
0 | 1 | 0 | 1 | D5 |
0 | 1 | 1 | 0 | D6 |
0 | 1 | 1 | 1 | D7 |
Y = ∑ i = 0 7 m i D i = ( A 2 A 1 A 0 ) m ( D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7 ) T Y=\sum_{i=0}^7m_iD_i=(A_2A_1A_0)_m(D_0D_1D_2D_3D_4D_5D_6D_7)^T Y=i=0∑7miDi=(A2A1A0)m(D0D1D2D3D4D5D6D7)T
5、数值比较器
数值比较器 { 1 为比较器 2 位比较器 多位比较器 数值比较器\begin{cases} 1为比较器\\ 2位比较器\\ 多位比较器 \end{cases} 数值比较器⎩ ⎨ ⎧1为比较器2位比较器多位比较器
对两A、B进行比较的逻辑电路,比较结果有A>B
、A<B
、以及A=B
三种情况
1)、1位数值比较器
逻辑函数真值表
A | B | LA>B | LA<B | LA=B |
---|---|---|---|---|
0 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 |
F A > B = A B ‾ F A < B = A ‾ B F A = B = A ‾ B ‾ + A B F_{A>B}=A\overline{B}\qquad F_{A<B}=\overline{A}B\qquad F_{A=B}=\overline{A}\overline{B}+AB FA>B=ABFA<B=ABFA=B=AB+AB
2)、2位及多位数值比较器
设计思路:当高位(A1、B1)不相等时。无需比较低位(A0、B0),高位比较结果就是两个数的比较结果;当高位相等时,两数的比较结果由下一位(低位)比较的结果决定。
2位数值比较器真值表