数字逻辑基础复旦大学信息学院教科书:
陈光梦,数字逻辑基础,复旦大学出版社参考书:
1、阎石,数字电子技术基础,高教出版社
2、康华光,电子技术基础(数字部分),高教出版社
3、(美) Stanley G.Burns Paul R,Bond,电子电路原理
(下册)机械工业出版社
4,数字逻辑基础学习指导与教学参考,陈光梦,王勇
5、唐竞新,数字电子技术基础解题指南,清华大学出版社前言一、半导体与数字集成电路:
1,1947年晶体管发明引起了电子学的一次革命,晶体管是约翰 ·巴丁、沃尔特 ·布雷登和威廉 ·肖克莱共同发明,该发明促成了计算机、通信等方面的飞速发展。鉴于它的重要价值,这些人共同获得了 1956年的诺贝尔物理学奖。
2、五十年代末,德克萨斯仪器公司的基尔白、仙童半导体公司的诺依斯等人研究实现了集成电路。以后集成度越来越高,出现了超大规模集成电路,这是电子学的又一次革命,也是近代科学技术发展的新的标志。
3、在通信、电子系统广泛应用推动下,集成工艺的尺寸不断缩小。按集成度分为,SSI( 1-10门,逻辑门电路)、
MSI( 10—100门,计数器、移位寄存器器 ),
LSI( 100—1000门,小型存储器,8位算术逻辑单元)、
VLSI( 1000—100万门,大型存储器、微处理器 )、
ULSI( 超过 100万门,可编程逻辑器件、多功能集成电路)
4、根据处理的是数字量还是模拟量,集成电路分成模拟电路与数字电路。
5、数字电路特点:信息表示形式统一、可靠性高、便于计算机处理、尺寸小价格低廉、可以大规模集成。
7、数字电路分类:逻辑集成电路、存储器、各类 ASIC
二、本课程主要内容简介:
1、数字逻辑的基本理论:逻辑代数
2、无记忆的逻辑电路:组合逻辑电路
3、有记忆的逻辑电路:触发器及时序逻辑电路(同步和异步)
4、数字系统和可编程逻辑器件:软件实验、
后续课程学习数字逻辑基础第一章 逻辑代数基础本章要求:
掌握逻辑代数的基本公式和基本定理
掌握逻辑函数的化简方法
1.1 逻辑代数概述逻辑代数的历史:
爱尔兰数学家乔治 ·布尔在 1849年创立布尔代数。
后来得到香农等人的发展和应用,形成了一个完整的理论体系。
随着电子技术和计算机技术的发展,布尔代数在数字逻辑电路的分析和设计中得到了广泛的应用,统称为逻辑代数。
二值逻辑:
在一个二值逻辑关系中,
其条件和结论只能取对立的两个值,例如是和非、对和错、真和假等等。
注意点:
在逻辑代数中,通常用,1‖代表“真”,
用,0‖代表“假”。
二值逻辑的 ―1‖与,0‖是逻辑概念,仅代表真与假,没有数量大小。
在数字逻辑中,有时也用,1‖与,0‖表示二进制数。这仅仅是一种代码,实际的运算规律还是依照逻辑运算进行。
常用二 - 十进制代码:
十进制码 二进制码( 8421码) 余三码 余三循环码 移位码 5211码 5421码
0 0000 0011 0010 00000 0000 0000
1 0001 0100 0110 00001 0001 0001
2 0010 0101 0111 00011 0100 0010
3 0011 0110 0101 00111 0101 0011
4 0100 0111 0100 01111 0111 0100
5 0101 1000 1100 11111 1000 1000
6 0110 1001 1101 11110 1001 1001
7 0111 1010 1111 11100 1100 1010
8 1000 1011 1110 11000 1101 1011
9 1001 1100 1010 10000 1111 1100
用一个逻辑表达式来描述一个逻辑关系问题 。
逻辑条件 → 输入变量 ( 自变量 )
逻辑结论 → 输出变量 ( 因变量 )
),( BAfY?
逻辑函数:
真值表 逻辑函数式逻辑图 卡诺图硬件描述语言( HDL)
逻辑函数的表示方法:
以上四种表示方法可以相互转换,
各有特定用途。
硬件描述语言不但可以表示逻辑函数,还可以描述逻辑系统。
真 值 表:
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
A B Y
逻辑函数:基本逻辑运算
与 Y = A · B
或 Y = A + B
非 Y = A A A
A + B
A · B
逻辑函数:,与” 运算
A B Y = A·B
0 0 0
0 1 0
1 0 0
1 1 1
A B Y
逻辑函数:,或” 运算
A B Y = A+ B
0 0 0
0 1 1
1 0 1
1 1 1
A
B
Y
逻辑函数:,非”运算
A Y
0 1
1 0
AY =
A Y
逻辑函数,反函数两个逻辑函数互为反函数,是指两个逻辑函数对于输入变量的任意取值,其输出逻辑值都 相反 。下面真值表中 F 和 G 互为反函数。
A B F(A,B) G(A,B)
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
逻辑函数,复合逻辑运算
BABA
1.与非
2.或非
3.异或
4.同或
ABY?
BAY
BAY
Y = A⊙ B BABA
复合逻辑运算的真值表
AB A+B BA?A B A⊙ B
0 0 1 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 0 0 1
逻辑图:基本逻辑单元
( GB4728.12-85)
& 1 1
逻辑与 逻辑或 逻辑非
& 1 =1
与非 或非 异或
=
同或与 或 非与非 或非 异或 同或逻辑图:符号标注规定
&
总限定符号
&?1 =1 = 外部逻辑状态逻辑约定小圈表示逻辑非也可采用极性指示符内部逻辑状态所有逻辑符号都由方框(或方框的组合)
和标注在方框内的总限定符号组成逻辑图:组合形式
&
≥1
A
B
C
Y
≥1
&
A
B
C
Y
≥1
一般表示法 组合表示法
A
C
B
Y Y
)()( CBBAY
逻辑图:国外符号对照(一)
1
&
1
或门与门非门旧 符号 美、日常用符号 国标符号
GB4728.12-85
逻辑图:国外符号对照(二)
异或门
&
与非门
1
或非门异或非门
=1
=
1.2 逻辑代数的基本定理一,变量与常量的运算 (0-1律 ):
A · 1 = A A + 0 = A
A · 0 = 0 A + 1 = 1
二、等幂律,A · A = A A+A = A
三、互补律,A · = 0 A+ = 1
四、自反律,= AA
A A
五、交换律:
AB = BA A+B = B+A
六、结合律:
A(BC) = (AB)C A+(B+C) = (A+B)+C
七、分配律:
A(B+C) = AB+AC A+BC = (A+B)(A+C)
八、反演律( De Morgan定理 ),
BABABAAB
逻辑代数的基本定理(一):
代入定理在任何一个逻辑等式中,若将其中一个 逻辑变量全部 用另一个 逻辑函数 代替,则等式仍然成立。
例:若 Y=AC + BC,C = P + Q
则 Y = A (P + Q) + B (P + Q)
逻辑代数的基本定理(二):
反演定理对于任何一个逻辑函数式,将其中的所有逻辑符号,+,,,·” 交换,
所有逻辑常量,1,,,0,交换,
所有逻辑变量取反。不改变原来的运算顺序。
这样得到的逻辑函数是原来逻辑函数的反函数。
例:
1))((
0
DCBAY
DCBAY
对偶定理对偶关系,逻辑符号,+,和,·”
逻辑常量,1,和,0,
对偶式,所有逻辑符号,+,,,·” 交换所有逻辑常量,1,,,0,交换若两个函数相等,则由他们的对偶式形成的两个函数也相等。
例:
逻辑代数的基本定理(三):
1))((
0)(
DCCACAD
DCCACDA
注意点:
反演定理:描述原函数和反函数的关系
(两个函数之间的关系)
对偶定理:描述原函数构成的逻辑等式和对偶函数构成的逻辑等式的关系(两个命题之间的关系)
在一般情况下,一个逻辑函数的反函数和对偶函数是不同的常用逻辑恒等式:
,( )
,( )
,
,( ) ( )
A A B A A A B A
A A B A B A A B A B
A A B A B A A B A B
A B A B B A B A B B
一,吸 收 律常用逻辑恒等式:
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
A B A C B C A B A C
A B A C B C A B A C
A B A C B CD A B A C
A B A C B C D A B A C
二,冗 余 律
1.3 逻辑函数的化简与形式转换目标函数形式(原因:实际电路的需要)
与-或形式
或-与形式
与非-与非形式
或非-或非形式
与或非形式
混合形式
BABA?
))(( BABA
BABA?
BABA
BAAB?
)( BAAB?
目标函数的要求:
逻辑电路的数量最少(面积约束)
逻辑电路的级数最少(速度约束)
电路稳定可靠 (避免竞争-冒险)
具体问题具体分析,没有一成不变的规定代数法化简逻辑函数:
公式法化简可以适用于任何场合,但是通常没有一定的规律可循,需要敏锐的观察力和一定的技巧。
最常用的化简手段是吸收律、冗余律和反演律。
代数法化简逻辑函数的例子
()
Y A B C A B C A B
A B A B A
Y A B C A B C A B
A B A B
B
例 一,化 简 函 数解,利 用,将 原 式 化 简,
代数法化简逻辑函数的例子
()
()
Y A B A CD B CD
A B A A
Y A B A CD B CD
A B A B CD
A B A B CD
AB
AB
例 二,化 简 函 数解,利 用,将 原 式 化 简代数法化简逻辑函数的例子 1
( ) ( )
( ) ( ) ( )
Y A B B C B C A B
AA
Y A B B C A A B C A B C C
A B B C A B C A B C A B C A B C
A B A B C B C A B C A B C A B C
A B B C A C
例 三,化 简 函 数解,利 用,在 原 式 中 添 加 一 些 项,然 后 化 简代数法化简逻辑函数的例子
=
Y A B C A C B C D
A B A C B C A B A C
Y A B C A C B C D
A B C A C B C B C D
A B C A C C A B A C B A
例 四,化 简 函 数解,利 用 冗 余 率 化 简
( ) ( )
逻辑函数形式转换的例子
* ( ) ( )
( * ) *
( ) ( ) ( ) ( )
Y A B CD
Y A B C D
A C B C A D B D
YY
A C B C A D B D
以 逻 辑 函 数 + 为 例,
例 一,将,与 - 或,函 数 化 为,或 - 与,式利 用 对 偶 定 理 实 现 之,
逻辑函数形式转换的例子 Y A B C D
Y A B C D
A B C D
例 二,将,与 - 或,函 数 +
转 化 为,与 非 - 与 非,式利 用 两 次 求 反,将 原 式 转 换,
+
逻辑函数形式转换的例子
( * ) *
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
Y A B CD
YY
A C B C A D B D
A C B C A D B D
A C B C A D B D
例 三,将,与 - 或,函 数 +
化 为,或 非 - 或 非,式解,先 利 用 对 偶 定 理 变 成,或 与,式,再 两 次 求 反逻辑函数形式转换的例子
( ) ( )
Y A B CD
Y A B CD
A B CD
A B C D
A C B C A D B D
例 四,将,与 - 或,函 数 +
化 为,与 或 非,式解,利 用 两 次 求 反,将 原 式 转 换
+
逻辑函数的卡诺图表示和卡诺图化简法:
特点:
图形化简法
标准的表达方式
规律的化简过程
变量数目有限制(最多 5~ 6个)
最小项:
在 n个逻辑变量的逻辑函数中,若 m为包含 n个因子的乘积项(逻辑与),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,
则称 m为这 n个变量的最小项。
例:
记为 m2
记为 m5
记为 m7abc
cba
cba
abccbacbaabcf)(
最大项:
在 n个逻辑变量的逻辑函数中,若 M为包含 n个因子的和项(逻辑或),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,
则称 M为这 n个变量的最大项。
例:
记为 M2
记为 M5
记为 M7 cba
cba
cba
cbacbacbaabcf
))()(()(
最小项与最大项的比较:
以 3变量函数为例:
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
77
66
55
44
33
22
11
00
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
逻辑函数的两种标准表达式:
最小项之和形式,简称为积之和形式
最大项之积形式,简称为和之积形式
10),...,,(
12
0
21 ormxxxf i
i
iin
n
=,
=
10)(),...,,(
12
0
21 orMxxxf i
i
iin
n
=,
=
最小项和最大项的性质:
对于一个具有 n个变量的逻辑问题,在输入变量的任意一种取值情况下,总有:
一、必有且仅有一个最小项的逻辑值为 1;必有且仅有一个最大项的逻辑值为 0。
二、任意 2个不同的最小项之积为 0;任意两个不同的最大项之和为 1。即三、全体最小项之和为 1;全体最大项之积为 0。即四、下标相同的最大项和最小项互补。即
1,0 jiji MMmm
12
0
12
0
0,1
nn
i
i
i
i Mm
ii Mm?
标准表达式的关系:
性质 1、一个逻辑函数的两种标准逻辑表达式之间,存在以下关系:
若 则性质 2、一个逻辑函数与其反函数的逻辑表达式之间,存在以下关系:
若 则
imF jMF
imF iMF
将逻辑函数化成标准形式,
要求按积之和形式展开函数,可以将 非最小项的积项 乘以形如 的项,其中 A 是那个非最小项的积项中缺少的输入变量,然后展开,最后合并相同的最小项。
要求按和之积形式展开函数,可以将 非最大项的和项 加上形如 的项,其中 A 是那个非最大项的和项中缺少的输入变量,然后展开,最后合并相同的最大项。
AA?
AA?
卡诺图:
BC
A 00 01 11 10
0
1
0 1 3 2
64 5 7
B
A 0 1
0
1
0 1
2 3
CD
AB
00 01 11 10
0 1 3 2
64 5 7
00
01
11
10
12 13 15 14
108 9 11
特点:
每个方格代表一个最小项或者最大项。
变量排列按照相邻规则进行,即在卡诺图中相邻的方格在逻辑上也相邻。(相邻的意义:两个最小项或最大项之间只有一个变量发生变化)
卡诺图的填法:
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
)12,10,7,6,3,2,1(
)15,14,13,11,9,8,5,4,0(),,,( 4321
M
mxxxxf
最小项填 1
最大项填 0
卡诺图化简法根据相邻的方格在逻辑上也相邻的原理,只要相邻的方格满足以下条件:
一、逻辑值相同;
二、小方格数为 个。
就可以将相邻的方格合并为一个 卡诺圈 。
卡诺圈越大,可以消去的变量越多,最后得到的逻辑函数越简单。
若卡诺圈包含的小方格数为 个,而这个逻辑函数具有 m个变量,则这个卡诺圈对应的项中包含的变量数目为 m–n个。
n2
n2
卡诺图的圈法( SOP):
圈,1”,包含 个方格、尽可能大、不遗漏
n2
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
X 1 X 2 X 3
X 1 X 4
X 2 X 3 X 4
X 1 X 2 X 3
41321321432 xxxxxxxxxxxf
卡诺图的圈法( POS):
圈,0”,包含 个方格、尽可能大、不遗漏n2
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
X 2 + X 3 + X 4
X 1 + X 3
X 1 + X 2 + X 4
X 1 + X 2 + X 3 + X 4
))()()(( 314324321421 xxxxxxxxxxxxf
卡诺图化简法的要点:
将逻辑函数化为标准形式(或真值表)
填卡诺图
圈卡诺圈(满足 个方格要求、尽可能大、
不遗漏)
根据卡诺圈写出化简后的逻辑函数
若有必要,运用反演律对所得结果进行变换
n2
卡诺图化简的例(一)
12(,,,) (,,,)
( 3,4,6,1 1,1 2,1 4 ) ( 0,1,2,5,8,1 0,1 3 )
F f a b c d F f a b c d
mm
0
01
1001
10
00 01 11 10
00
10
11
01
ab
0
0
01
1
0
0
cd
1
10
0010
01
00 01 11 10
00
10
11
01
ab
1
0
10
0
0
1
cd
卡诺图化简的例(二)
34(,,,) (,,,)
( 0,1,2,5,8,1 0,1 3 ) ( 3,5,7,9,1 1)
F f a b c d F f a b c d
MM
0
01
1101
10
00 01 11 10
00
10
11
01
ab
0
1
01
1
1
0
cd
1
11
1001
01
00 01 11 10
00
10
11
01
ab
1
1
10
1
0
1
cd
卡诺图化简法的一些术语
蕴涵:逻辑函数的“与或”表达式中的各项
质蕴涵,不能再与其他蕴涵合并的蕴涵
必要质蕴涵:包含一个或多个唯一的最小项的质蕴涵
覆盖:包含了逻辑函数中所有最小项的一些蕴涵之“或”
非冗余覆盖:其中每一个蕴涵都是必不可少的覆盖
最小覆盖:包含蕴涵个数最少,每个蕴涵中包含的最小项又较多的非冗余覆盖最小覆盖的不唯一性,X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 1
01 1 1
00
01
11
10
0 1 1 0
10 0 1
一个逻辑函数,其最小覆盖总是由必要质蕴涵和部分质蕴涵组成,所以它的最小覆盖可能不是惟一的,即它的最简逻辑表达式可能不是惟一的。
绿色:必要质蕴涵红色和黑色:质蕴涵最小覆盖:
绿色+红色或:绿色+黑色利用卡诺图运算来进行逻辑化简逻辑函数 → 卡诺图逻辑函数的运算 → 卡诺图的运算卡诺图的运算 → 对应的方格进行运算证明(以“与”运算为例):
1 1 2 2
1 2 1 2
1 2 1 2
12
,,
i i i i
i i i i
i i i i i i j
i i j
i i i
i
f m f m
f f m m
m m m
m
设 则 有
CD
00 01 11 10
1 1 1 1
11 1 1
00
01
11
10
1 1 1
11 1
AB
CD
00 01 11 10
11 1 1
00
01
11
10
1 1 1 1
AB
CD
00 01 11 10
11 1 1
00
01
11
10
1 1 1
AB
Y B C DA
·=
·=
)14,13,12,7,6,5,4(),,,( mDCBAY
BADBCBY
C D ABY
常规化简运算化简卡诺图运算的一些有关规律:
0重心,0号方格(即全部变量为 0的方格)
1重心,号方格(即全部变量为 1的方格)
包含 0重心但不包含 1重心的质蕴涵,其表达式全部用反变量标注
包含 1重心但不包含 0重心的质蕴涵,其表达式全部用原变量标注
既不包含 0重心也不包含 1重心的质蕴涵,其表达式中一定既有原变量又有反变量
目标函数是与非形式并要求全部用原变量表达时,
围绕 1重心进行。其中卡诺圈圈 1,阻塞圈圈 0
目标函数是或非形式并要求全部用原变量表达时,
围绕 0重心进行,其中卡诺圈圈 0,阻塞圈圈 1
12?n
不完全确定的逻辑函数的化简,
不完全确定的逻辑函数:
由 n 个逻辑变量构成的逻辑函数中,有效的逻辑状态数小于 个。那些无效的状态或者是不可能出现,或者无意义。
n2
这些无效的状态被称为任意项,或称为无关项、约束项、禁止项,等等任意项的处理:
任意项的值既可为 1也可为 0
带有任意项的逻辑函数在化简时既可以将任意项圈入卡诺圈,也可以不圈入卡诺圈适当地将一些任意项圈入卡诺圈,可以使化简的结果得到极大的简化
X 3 X 4
X 1 X 2
00 01 11 10
1 1
00
01
11
10
d 1 1
d 1 d
d
黄色:不考虑任意项红色:考虑任意项例
0
10
0110
01
00 01 11 10
00
10
11
01
uv
d
1
dd
d
1
0
wx
56(,,,) (,,,)
( 2,3,4,5,1 3,1 5 ) ( 1,5,7,9,1 3,1 5 )
( 8,9,1 0,1 1 ) ( 8,1 0,1 1,1 4 )
F f a b c d F f u v w x
mm
dd
0
10
0011
10
00 01 11 10
00
10
11
01
ab
d
1
dd
0
d
1
cd
注意点:
任意项的表现形式除了直接用最小项形式表示外,还经常用逻辑表达式表示,称为约束方程对于用约束方程给出的逻辑问题,一般要将约束条件改写成用最小项表示的任意项形式,
才能用卡诺图进行化简例如,A =1,B =1这种输入状态不可能出现,
可记为 AB=0。在卡诺图中就是对应 AB=11的最小项为任意项使用异或函数的卡诺图化简,
异或运算的性质
ABBA
CBACBACBA )()(
AAAA 1,0
1,0 AAAA
BABABA
异或(同或)函数的卡诺图:
,棋盘格”特征
异或 函数的棋盘格特征,0号方格等于 0
同或 函数的棋盘格特征,0号方格等于 1
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1 1
1
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1 1
1
同或函数异或函数利用异或函数化简的例子(一)
1
00
0010
00
00 01 11 10
00
10
11
01
ab
0
1
10
0
0
0
cd
))(( dbcaP dcbW
0
01
0101
01
00 01 11 10
00
10
11
01
ab
0
1
10
0
1
1
cd
利用异或函数化简的例子(二)
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1
1 2 3 4 1 3
( 1,2,4,7,8,1 3 )
( ) ( )
fm
X X X X X X
先补成异或形式
(黄色格子)
再利用运算法去除多输出逻辑函数的化简:
考虑公共蕴涵的使用
公共蕴涵也是越大越好
有时在寻找公共蕴涵过程中会有多种可能的方案出现,这时要根据实际情况作一定的取舍,部分地要依赖于人为的经验寻找公共蕴涵的过程:
单独化简。
观察在多个输出函数中的公共最小项。如果多输出函数比较复杂,这个过程也可以借助表格进行 。
将相邻的公共最小项合并成公共蕴涵(画公共卡诺圈),同时,将在单独化简的卡诺图中包含公共蕴涵的质蕴涵(卡诺圈)划去 。
检查覆盖情况:在卡诺图中观察是否存在未被圈入的最小项。如果没有任何其他最小项未被圈入(完成覆盖),则可以认为化简完成。否则要重新划分卡诺圈,将未被包含的最小项圈入。
第一章概要(一):
逻辑代数是借助符号、利用数学方法研究逻辑推理和逻辑计算的一个数学分支。二值逻辑的逻辑变量只包含 0和 1,它们表示两个对立的逻辑状态。
基本的逻辑运算有“与”、“或”、“非”三种,可以由此得到各种复合逻辑运算。逻辑代数运算借用了普通代数的某些运算符号,但是运算规律和其中的含义与代数运算迥然不同。为了进行逻辑运算,必须熟练掌握 1.2.1节的基本公式。另外,掌握 1.2.2节的辅助公式和 1.2.3节的基本定理,对于提高逻辑运算的速度和证明逻辑等式是极为有用的。
第一章概要(二):
逻辑函数有真值表、逻辑表达式、逻辑图和卡诺图四种表达形式,它们各具特点并且可以相互转换,可以根据使用的需要合理选用。
逻辑函数的化简是本章的重点。有代数法和图形法两种基本化简方法:公式法化简可以适用于任何场合,
但是通常没有一定的规律可循,需要敏锐的观察力和一定的技巧。卡诺图化简法可以按照一定的步骤进行,
但是只适用于变量数目较少的场合。在卡诺图化简过程中也有一些技巧性的手段,比较重要的有卡诺图运算法和影射变量卡诺图化简法。
第一章概要(三):
由于实际的逻辑系统为了获得最好的性能,可以由各种不同类型的逻辑电路构成,所以逻辑化简的目标形式可以是多种多样的,我们在本章讨论了几种常见的形式。可以通过一定的方法得到需要的逻辑函数形式:
包括在卡诺图化简后利用反演定理转换以及直接进行卡诺图运算化简等。
随着计算机辅助设计软件的发展,利用计算机软件进行逻辑化简已经越来越成熟。计算机化简的基本手段是表格法和代数法。
数字逻辑基础第二章 组合逻辑电路本章要求:
掌握组合逻辑电路的基本分析方法和一般设计过程
掌握常见逻辑模块的功能及其使用
掌握实际逻辑电路中冒险现象的形成原理及其防止
2.1 组合逻辑电路的分析组合逻辑的结构:
组合逻辑电路输入信号输出信号组合逻辑电路(简称组合电路)任意时刻的输出信号仅取决于该时刻的输入信号,与信号作用前电路原来的状态无关
=1
=1
=1
A
B
A
B
Y
Y 1
Y 2
&
&
&
&A
B
Y
Y 1
Y 2
Y 3
组合逻辑的例:两种异或门结构半加器
&
&
&
&A
B
S
1
Co
A B Co S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
全加器
Ci A B Co S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
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
全加器的结构
&
&
&
&A
B S
&
&
&
&
Ci
&
Co
Co 1
Co 2
两个半加器的组合:
加数 1+加数 2+进位=和,进位 1,或” 进位 2=进位常用组合逻辑模块
组合逻辑模块是一些基本的逻辑单元
熟悉组合逻辑模块的结构与功能,可以帮助分析复杂的逻辑结构
在设计逻辑电路时,可以从逻辑模块出发进行设计将输入的某种代码(通常为二进制码),转换为事件或另一种代码输出的过程,称为译码。
转换为事件输出的译码器,是编码器的逆过程。
转换为另一种代码输出的译码器,根据两个代码之间的关系,可以有各种不同的译码器。
常见的译码器:
转换为事件输出的译码器,3-8译码器、等等。
转换为另一种代码输出的译码器:( LED) 七段译码器,BCD译码器、等等。
译码器
3-8译码器( 74LS138)
Y3
&
&
11
11
11
1
Y1
Y0
A2
S2
A0
A1
&
&
Y2
Y7
&
&
Y5
Y4
&
&
Y6
&
S3
S1
S
A2
S2
A0
A1
S3
S1
&
Y3
Y1
Y0
Y2
Y7
Y5
Y4
Y6
0
1
2
3
4
5
6
7
1
2
4
EN
B I N/ OCT
使能相关输 入 输 出
S1 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 x x x x 1 1 1 1 1 1 1 1
x 1 x x x 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1 1 1
1 0 1 0 0 1 1 1 1 0 1 1 1
1 0 1 0 1 1 1 1 1 1 0 1 1
1 0 1 1 0 1 1 1 1 1 1 0 1
1 0 1 1 1 1 1 1 1 1 1 1 0
32 SS?
3- 8译码器的真值表编码器将输入信号(事件),用一个代码表示(输出)的过程,称为编码。
编码器有普通编码器和优先编码器两种。
普通编码器在同一个时刻只能允许有一个输入(单个事件)。
优先编码器允许多个事件同时发生,按照事先设定的优先级,确定输出代码。
8-3优先编码器
&
Y0
Y1
Y2
≥1
& ≥ 1
& ≥1
&
&
11
1
11
11
11
1
1
1
EX
Ys
I0
I1
I2
I3
I4
I5
I6
I7
S
Y0
Y1
Y2
EX
Ys
I0
I1
I2
I3
I4
I5
I6
I7
S
6 /Z 1 6
7 /Z 1 7
4 /Z 1 4
5 /Z 1 5
2 /Z 1 2
3 /Z 1 3
0 /Z 1 0
1 /Z 1 1
≥1
16
17
14
15
12
13
10
11
1a
2a
4a
a
18
H PR/B I N
E Na /V18
互连关联或关联
s I7 I6 I5 I4 I3 I2 I1 I0 Y2Y1Y0
0 0 X X X X X X X 0 0 0
0 1 0 X X X X X X 0 0 1
0 1 1 0 X X X X X 0 1 0
0 1 1 1 0 X X X X 0 1 1
0 1 1 1 1 0 X X X 1 0 0
0 1 1 1 1 1 0 X X 1 0 1
0 1 1 1 1 1 1 0 X 1 1 0
0 1 1 1 1 1 1 1 0 1 1 1
1 X X X X X X X X 1 1 1
8- 3优先编码器的真值表数据选择器从多个输入逻辑信号中选出一个逻辑信号送到输出端的器件,也称为多路器。
一个数据选择器连接 m个输入,由 n个选择变量决定这 m个输入中的哪一个被送到输出端。
这里 m = 2n。
2选 1数据选择器 &
Y
≥1
I 0
I 1
S
0
1
MU X
I 0
I 1
S
Y
G
0
1
与关联
10 SIISY
&
Y
≥1
1
11
11
11
Y
I0
I1
I2
I3
I4
I5
I6
I7
S0
1
S1
S2
En
0
2
}
G
0
7
EN
0
1
2
3
4
5
6
7
M UX
I0
I1
I2
I3
I4
I5
I6
I7
S0
S1
S2
En
Y
Y
8选 1数据选择器
7
0i
ii ImENY
2.2 组合逻辑电路的设计
基于门电路的设计基本的设计方法。
基于组合逻辑模块的设计利用组合电路模块实现主要功能,辅以门电路,结构比较简单。
运算电路设计需要熟悉二进制运算的特点,采用迭代设计。
一、基于门电路的设计方法逻辑抽象确定输入输出关系定义输入输出变量逻辑函数表达式真值表化简与变换逻辑图
(电路图)
例 1
设计一个带控制端的 3位输入代码检测电路。
当控制端 P为 0时,输入 >3并且 <6
时输出为 1;
当控制端 P为 1时,输入 <6时输出为 1 。
要求完成最简设计。
例 1的解:真值表
P ABC Y
0 000 0
0 001 0
0 010 0
0 011 0
0 100 1
0 101 1
0 110 0
0 111 0
P ABC Y
1 000 1
1 001 1
1 010 1
1 011 1
1 100 1
1 101 1
1 110 0
1 111 0
0 0 0 0
1 1 0 0
BA
PC
1 1 0 0
1 1 1 1
00
01
11
10
00 01 11 10
Y C B PC
例 1的解:卡诺图,化简例 1的解:利用卡诺图运算的方案
0 0 0 0
1 1 0 0
BA
PC
1 1 0 0
1 1 1 1
00
01
11
10
00 01 11 10
BCPBCC
BCPCY
)(
&B
P
C
Y
&
&
&
例 2
Dec Bin Gray
B3B2B1B0 G3G2G1G0
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
Dec Bin Gray
B3B2B1B0 G3G2G1G0
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
设计一个 4位格雷码和二进制码的相互转换电路。
例 2的解:格雷码转换到二进制码的卡诺图
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1 1 1
1 1 1 1
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
B2 B1 B0
G3 = B3,G2~G0 转换到 B2~B0 的转换关系如上面卡诺图所示
01012123233,,,GBBGBBGGBGB
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1 1 1
1 1 1 1
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
G2 G1 G0
G3 = B3,B2~B0 转换到 G2~G0 的转换关系如上面卡诺图所示
01012123233,,,BBGBBGBBGBG
例 2的解:二进制码转换到格雷码的卡诺图
S
Y 3
&
≥1
X 3
X 0
X 1
X 2
=1
&
≥1
=1
=1
Y 2
Y 1
Y 0
以 S 作为选择端,S=0,G → B; S=1,B → G
3 3 2 3 2
1 2 1 0 1 0
,
,
Y X Y X X
Y Y X Y Y X
3 3 2 3 2
1 2 1 0 1 0
,
,
Y X Y X X
Y X X Y X X
1 2 2 1
0 1 1 0
()
()
Y S Y S X X
Y S Y S X X
S=0
S=1
例 2的解:结果合成后的 Y1和 Y2
例 3
某特种录音机,具有下列功能:
按下 A轨键,磁带正转;按下 B轨键,磁带反转按下高速键,磁带高速转,方向由 A,B轨键确定按下快退键,磁带高速反转,方向由 A,B轨键确定试设计控制电路解:此问题的逻辑抽象为:
输入,A= 1,0表示 A 轨运行、停止
B=1,0表示 B 轨运行、停止
F= 1,0表示高速、常速
R= 1,0表示磁带高速反转、常速输出,M=1,0表示电机运转、停止
RL1=1,0表示电机反转、正转
RL2=1,0表示电机高速、常速根据上述逻辑抽象,可以得到真值表如下:
A
A轨
B
B轨
F
高速前进
R
高速后退
M
1/0
转 /停
RL1
1/0
反 /正
RL2
1/0
高 /常
0 0 x x 0 d d
1 0 0 0 1 0 0
1 0 0 1 1 1 1
1 0 1 0 1 0 1
1 0 1 1 0 d d
0 1 0 0 1 1 0
0 1 0 1 1 0 1
0 1 1 0 1 1 1
0 1 1 1 0 d d
1 1 x x 0 d d
AB
FR
00
01
00 01 11 10
11
10
1 1 1
1 1 1
AB
FR
00
01
00 01 11 10
11
10
d d d d
1 d 1
d d d d
1 d
AB
FR
00
01
00 01 11 10
11
10
d d d d
1 d 1
d d d d
1 d 1
M R L 1 R L 2
RFRL
BRRBRL
FRABBAM
2
)(1
)()(
以上只是一种方案,可能有其他方案二、基于组合逻辑模块的设计方法
1、用数据选择器构成组合电路
0
1
} G
0
3
0
1
2
3
M U X
1
c
0
c
b
a
Y
1 0 1 01 0 0 0 1 1 2 1 0 3(,,)
( ) 1 ( ) ( ) 0 ( )
iY S S I S S I S S I S S I S S I
a b a b c a b a b c
a b a b c a b c
0
2}
G
0
7
0
1
2
3
4
5
6
7
MU X
C 1
0
1
B
A
C 2
Z
B
一般而言,用 2n选 1数据选择器实现 n+1个输入变量的逻辑函数需要且仅需要一个非门。
例,
2 1 2
2 1 1 21
1 2 1 2 1
2
22
1 1 1 2
12
1 2 1 2
11
22
22
11
( ) ( ) ( ) ( )
( ) ( )
( ) ( ) 0
( ) 1 ( )
Z C C A B C C A B C C A B C C A B
C C A B C C A B C C A B
C C A C C B C C A B
C C A B
C C A B C C A B
C C A B C C A
C C A C C A B
1 2 1 2
( ) ( )C C A B C C A B
0
2}
G
0
7
0
1
2
3
4
5
6
7
MU X
C 1
1
1
0
1
0
0
C 1
B
A
C 2
Z
特定条件下,用 2n选 1数据选择器实现 n+1个输入变量的逻辑函数可以不需要非门。
仍以前例说明:
2 1 2
2 1 1 21
1 2 1 2 1
2
22
1 1 1 2
12
2
2 2 1 1
22
21
22
1
22
2
( ) ( ) ( ) ( )
1
1 0
Z C C A B C C A B C C AB C C A B
C C A B C C A B C C A B
C C A C C B C C AB
C C A B
C A B C A B C C A B C
C A B C AB C C A B
C A B C C A B
C A B C AB
C
2
2 2 1
10
0
A B C A B
C A B C AB C
化简无 C1的非以 C1作为数据端
2、用译码器构成组合电路
&
S
Co
B
0
Ci
A
0
1
&
0
1
2
3
4
5
6
7
1
2
4
EN
B I N /O C T
&
76537653
74217421
YYYYmmmmC
YYYYmmmmS
o
例:
全加器电路三、运算电路设计
1、加法器
A
B
& ≥1
=1
Ci
S
Co
=1具有最短延时的全加器电路单元电路辅助输出辅助输入主输入主输出迭代设计原理
CoCi
Σ
CoCi
Σ
CoCi
Σ
CoCi
Σ
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
S 0 S 1 S 2 S 3 C O3
C i0
具有串行进位的 4位二进制加法器
1 1 1 1
0 0 0 1
1 1 1 0
1 1 0 1 0 1
2 2 2 1
2 2 1 2 1 0 2 1 0 1
3 3 3 2
3 3 2 3 2 1 3 2 1 0 3 2 1 0
()
i i i i i i i i
i i i
i i i
i i i i i i i
C A B A C B C A B A B C G P C
C G P C
C G P C
G P G P P C
C G P C
G P G P P G P P P C
C G P C
G P G P P G P P P G P P P P C
G A B
P A B
其 中,称 为 进 位 产 生 信 号
,称 为 进 位 传 播 信 号
1
加法器的超前进位
CI - 1
CG 0 CI - 1
&
&
&
&
CG 1
CG 2
CG 3
CP 3
CP 2
CP 1
CP 0
CO 0
CO 1
CO 2
C G 4
C P 4
CG 0
CG 1
CG 2
CG 3
CP 0
CP 1
CP 2
CP 3
C P G
CP 4
CG 4
CO 2
CO 1
CO 0
& 1
1
1
1
4位超前进位电路
A
B
=1
1
&
&
C
S
CP
CG
配合超前进位电路的全加器迭代单元全加器迭代单元
S 0
全加器迭代单元
S 1
全加器迭代单元
S 2
全加器迭代单元
S 3
超前进位产生电路
A 0 A 3A 2A 1B 0 B 1 B 3B 2
C- 1
G 0 G 1 G 3G 2P 0 P 1 P 3P 2C 0 C 1 C 2
G 4 P 4
C- 1
Σ
0
3
0
3
P
Q
0
3
Σ
CI
CP
CG
带超前进位的 4位加法器利用加法器实现组合逻辑例:设计一个能将
BCD码转换为余 3码的代码转换器
8421BCD 码
DCBA
余 3 码
Y
3
Y
2
Y
1
Y
0
0000 001 1
0001 0100
0010 0101
001 1 01 10
0100 01 1 1
0101 1000
01 10 1001
01 1 1 1010
1000 101 1
1001 1 100
分析:
由余 3码与 BCD码的代码表可知,余 3码的 函数表达式 为:
Y3Y2Y1Y0=DCBA+0011
四位全加器
C0
C B A 1
A0A1A2A3 B0B1B2B3
0 0
C4 S0S1S2S3
Y0Y1Y2Y3
D
利用 4位全加器实现余 3码
0011
BCD码
2、减法器
XY
Bi 00 01 11 10
0
1
0 1 0 1
01 0 1
0 1 0 0
01 1 1
0
1
XY
Bi 00 01 11 10
D
Bo
iO BYXDB),(
全减器 X
Y
& ≥1
=1
Bi
D
Bo
=1
二进制补码
一个包含符号位在内为 n位的有符号二进制数,正数用原码表示,负数用补码表示。
正数和零,x = a;负数,。其中
a是该有符号数的绝对值。
补码的求法:绝对值 按位取反再加 1
2 nxa
将被减数作为加法器的一个加数,将减数以补码形式相加(按位取反再加 1:按位取“非”,同时将最低位的进位置成逻辑 1),就实现了二进制减法。
CI
Σ
P
0
0
3
3
Q
CO
0
3
Σ
CI
Σ
P
0
0
3
3
Q
CO
0
3
Σ
A /S
A 0
=1
=1
=1
=1
=1
=1
=1
=1
A 1
A 2
A 3
B 0
A 4
A 5
A 6
A 7
B 1
B 2
B 3
B 4
B 5
B 6
B 7
D 4
D 5
D 6
D 7
D 0
D 1
D 2
D 3
C O / B O
多位减法器
3、乘法器乘数 A A3 A2 A1 A0
乘数 B B3 B2 B1 B0
——————————————————————
部分积 P30 P20 P10 P00
部分积 P31 P21 P11 P01
部分积 P32 P22 P12 P02
部分积 P33 P23 P13 P03
——————————————————————
最后积 P7 P6 P5 P4 P3 P2 P1 P0
MU
A 3 B 3
MU
A 2 B 3
MU
A 1 B 3
MU
A 0 B 3
MU
A 3 B 2
MU
A 2 B 2
MU
A 1 B 2
MU
A 0 B 2
MU
A 3 B 1
MU
A 2 B 1
MU
A 1 B 1
MU
A 0 B 1
MU
A 3 B 0
MU
A 2 B 0
MU
A 1 B 0
MU
A 0 B 0
0
0
0
0
0000
P 7 P 6 P 5 P 4 P 3 P 2 P 1 P 0
Σ
MU &
CICO
4、除法器
10101 商除数 B 0101 ) 01101011 被除数 A
- 0101
0011 够减,商 =1,余数 R0 = A – B
- 0000
0110 不够减,商 =0,余数 R1 = R0
- 0101
0011 够减,商 =1,余数 R2 = R0–B/4
- 0000
0111 不够减,商 =0,余数 R3 = R2
- 0101
010 够减,商 =1,余数 R4 = R2–B/16
第一步:试商
BRR iii 211
当 Ri ≥ 0时,够减,商等于 1,将此余数保留到下一次。
下一个余数为
BRR iii 11 2 1
当 Ri < 0时,不够减,商等于 0,应该将余数恢复为原来的余数。下一个余数为
BRR iii 111 2 1
BBBRR iiiii 11 2 1221,)21(由于
,所以上式就是
BRBBRR iiiiii 111 2 12 1)21(
加减交替法:
1,第一次运算时从被除数的最高位开始减去除数,
得到余数。
2,若某次余数为正数(符号位为 0),则对应的商为 1,下一步运算时减去右移一位的除数得到新的余数;若某次余数为负数(符号位为 1),则对应的商为 0,下一步运算时加上右移一位的除数得到新的余数。
3,重复第二步运算,直到余数小于除数为止。
加减交替法的运算步骤二进制除法的运算规律,用二进制补码运算来做减法。若结果是正数,则符号位为 0,并且产生符号位的进位(进位为 1) ;若结果是负数,则符号位为 1,并且不产生符号位的进位(进位为 0)。所以,符号位的进位就是所求的商。
10101 商
0101 ) 01101011
+ 1011 加 B的补码(减 B)
100011 符号位 =0,符号位进位 =1(商 =1)
+ 1011 够减,加 B/2的补码(减 B/2)
011100 符号位 =1,符号位进位 =0(商 =0)
+ 0101 不够减,加 B/4
100011 符号位 =0,符号位进位 =1(商 =1)
+ 1011 加 B/8的补码(减 B/8)
011101 符号位 =1,符号位进位 =0(商 =0)
+ 0101 不够减,加 B/16
10010 符号位 =0,符号位进位 =1(商 =1)
B 3
DU
Σ
DU =1
CICO
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
A 7 A 6 A 5 A 4
A 3
A 2
A 1
B 3
DU
B 2
DU
B 1
DU
B 0
DU
A 0
Q 0Q 1Q 2Q 3Q 4
1
5、数字比较器数据比较器有两组输入变量,它将输入的两组逻辑变量看成是两个二进制数 A与 B,然后对这两个二进制数进行数值比较。比较的结果有三种情况,A>B,A<B和 A=B。
输 入 输 出
A B A>B A=B A<B
0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0
1位数字比较器的真值表辅 助 输 入 输 入 辅 助 输 出
Ai-1>Bi-1 Ai-1=Bi-1 Ai-1<Bi-1 Ai Bi Ai>Bi Ai=Bi Ai<Bi
0 1 0 0 0 0 1 0
1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 1
x x x 0 1 0 0 1
x x x 1 0 1 0 0
0 1 0 1 1 0 1 0
1 0 0 1 1 1 0 0
0 0 1 1 1 0 0 1
比较器的迭代单元的真值表
][)(][
][)(][
][)(][
11
11
11
iiiiiiii
iiiiii
iiiiiiii
BABABABA
BABABA
BABABABA
1,每个输出由两部分组成:本位比较结果和低位比较结果的进位。
2,本位比较相等的条件为 A,B的“同或”再“与”低位比较相等的结果。
3,输出 [Ai > Bi] 的条件有两个:第一个条件是本位结果满足 Ai > Bi,另一个条件是本位的比较结果相等时,低位比较结果 Ai-1 > Bi-1。这两个条件任意满足一个即可,所以是“或”关系。
4,输出 [Ai < Bi] 的结构与 [Ai > Bi] 类似。
&
A 3
B 3
&
&
&
≥1
& ≥1
&
≥1
&
≥1
&
&
&
A 2
B 2
A 1
B 1
A 0
B 0
A - 1 >B - 1
A - 1 =B - 1
A 3 <B 3
A 3 >B 3
A 3 =B 3
P < Q
P > Q
P = Q
C O M P
P
0
0
3
3
Q
<
>
=
A - 1 <B - 1
≥1&
≥1E 3
E 2
E 1
E 0
算术逻辑单元算术逻辑单元( Arithmetic Logic Unit,简称 ALU)是数字计算机中的一个核心运算部件。通常这个单元的输入被称为操作数,操作数可以是二进制数、十进制数或逻辑变量。
进入 ALU的操作数可以执行算术和逻辑运算。可执行的算术运算有两个操作数的加法(有进位和没有进位)、减法
(有借位和没有借位)、单个操作数的加 1、减 1、以及数值比较等等;某些 ALU还可以执行两个操作数的乘法、除法。可执行的逻辑运算一般均按位进行,有两个操作数的
“与”、“或”、“与非”、“或非”、“异或”、“异或非”和单个操作数的“非”等等。
2.3 数字集成电路的特性
Rc
V c c
Rb
e
c
b
v i
v o
v o
v i
截止状态放大状态饱和状态晶体管的开关作用:
V DD
d
sg
g
s
d
v i v o
v o
v i
n 沟道场效应管
p 沟道场效应管
p 沟道场效应管导通
n 沟道场效应管导通场效应管的开关作用:
数字集成电路的逻辑电平:
TTL,电源电压,+5V
逻辑低电平,0~ 0.7V
逻辑高电平,2.4~5V
输出逻辑电平:低电平,<0.5V
高电平,>2.7V
CMOS:电源电压,3.3V,5V
逻辑低电平,0~ 1/3 电源电压逻辑高电平,2/3 电源电压~电源电压输出逻辑电平:低电平,<0.1电源电压高电平,>0.9电源电压数字集成电路的输出电流与扇出:
TTL:低电平输出电流,-8 ~ -20 mA
高电平输出电流,0.4 ~ 1 mA
扇出,10 ~ 20
CMOS:低电平输出电流,0.5 ~ 24 mA
高电平输出电流,0.5 ~ 24 mA
扇出极大。
数字集成电路的动态响应特性:
随着集成电路技术的发展,数字集成电路的响应时间越来越短。早期的电路,大约 TTL 为
15ns,CMOS则大约有 100ns,目前已经普遍缩短到几 ns,最短的在 1~ 2ns。
数字集成电路的输出结构:
除了上面所讨论的常规输出结构以外,还有一些特殊的输出结构:
三态输出结构。
开路输出结构。
EN
1
L 型开路输出 H 型开路输出内部无上拉 内部有上拉 内部无下拉 内部有下拉集成数字逻辑电路芯片
2.4 组合逻辑电路中的竞争-冒险两级或非门电路波形图 (B=0)
t2+ 2tpd
A
A
L t2t1 t3 t4
t2+ tpd
tpd
1
A
B
1
1 2
ABAL +
0 AAL +
AB=0
毛刺竞争与冒险:
当一个门的输入有两个或两个以上变量发生改变时,由于这些变量(信号)是经过不同路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为 竞争 。
竞争的结果若导致 冒险(险象) 发生(如上例中的毛刺),并造成错误的后果,则称这种竞争为临界竞争 ;竞争的结果不导致冒险发生,或虽有冒险发生,但不影响系统的工作,则称这种竞争为 非临界竞争 。
冒险的类型从冒险的波形上,可分为 静态和动态冒险 。
输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出产生了毛刺,这种冒险称为 静态冒险 。 若输出的稳态值为 0,出现了正的尖脉冲毛刺,则称为 静态 0冒险 ;若输出稳态值为 1,出现了负的尖脉冲毛刺,则称为 静态 1冒险 。
输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为 动态冒险 。
0 0
1 1 1
0
静态 0冒险 静态 1冒险由 1变 0 由 0变 1
动态冒险检查竞争-冒险的方法:
1、输入可以转换成的形式
2、在卡诺图上可以观察到相切的卡诺圈以上方法只有在 每个瞬时只有一个输入发生状态改变 的条件下才适用。
AAYAAY 或
&
A
B
Y
&
≥1
& C
1
1
1
X 3
X 0
X 1
X 2
X 3 X 2
X 1 X 0
00
01
00 01 11 10
1 1
1
1
11
1 1
11
10
A
B
C
1
相切点消除竞争-冒险的方法:
1,在输出端对地接入一个小电容 。优点是简单易行,而缺点是增加了输出电压波形的上升时间和下降时间,使波形变坏,并且完全无法在集成电路内部实现。
2、修改逻辑设计。 增加冗余项 可以消除竞争 -冒险,但是适用范围仍然很有限,只能消除由于单个输入发生变化引起的竞争-冒险。
3、在电路中 引入选通脉冲 。可以消除所有的冒险(包括静态冒险和动态冒险),并且容易实现,但需注意:这时正常的输出信号也将变成脉冲信号,而且它们的宽度与选通脉冲相同。
无险象的电路有险象的电路
CAABD +=
A
B
C
&
&
&
1
D
A
B
C &
&
1 &
&
D
AAD +=
当 B=C=1时
BCCAABD ++=
11?++= AAD
增加冗余项消除冒险当 B=C=1时冗余项有相切的卡诺图 加冗余项的卡诺图
BCCAABD ++=CAABD +=
卡诺图法
B C
A
00 01 11 10
0 0 1 1 0
1 0 0 1 1
BC
A
00 01 11 10
0 0 1 1 0
1 0 0 1 1
增加冗余项消除冒险相切点 相切点被消除
A
B
L
C
D
1
1
取样脉冲
A
B
C
&
&
&
1
&
D
L
利用取样脉冲克服冒险取样脉冲 原来的冒险取样后的输出数字逻辑基础第三章 触发器本章要求:
掌握触发器的基本类型及其状态描述
了解触发器的结构与工作原理
掌握触发器的基本应用电路
3.1 触发器的基本类型及其状态描述触发器:具有记忆功能的逻辑单元触发器( Flip-Flop):由时钟信号触发引起输出状态改变,并且该状态在下一次被触发之前始终不会改变的器件。
锁存器( Latch):输出状态不是由时钟信号触发,或者虽然由时钟信号触发但在时钟信号的某个电平下输出会随着输入改变而改变的器件。
四类触发器,RS,JK,D和 T触发器
R-S 触发器
S R Qn+1
1 0 1
0 1 0
0 0 Qn
1 1?
&
&
G1
G2
S
R
Q
Q
G3
G4
S
R
Q
Q
≥1
≥1
R
S
R
S
真值表与状态方程
nn QRSQ 1
Qn Qn+1SR=00 SR=01 SR=11 SR=10
0 0 0 d 1
1 1 0 d 1
RS触发器的状态表
Qn Qn+1 S R
0 0 0 d
0 1 1 0
1 0 0 1
1 1 d 0
RS触发器的激励表
&
&
S
R
Q
Q 1R
1S
Cp
C1
&
&
带同步时钟的 RS触发器及其逻辑符号(同步锁存器)
Cp
S
R
Q
带同步时钟的 RS触发器的波形
JK触发器
J K Qn+1
1 0 1
0 1 0
0 0 Qn
1 1 Qn
nnn QKQJQ 1
真值表与状态方程
Qn Qn+1JK=00 JK=01 JK=11 JK=10
0 0 0 1 1
1 1 0 0 1
状态表
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
激励表
D触发器
Qn Qn+1 D
0 0 0
0 1 1
1 0 0
1 1 1
Qn
Qn+1
D=0 D=1
0 0 1
1 0 1
D Qn+1
0 0
1 1DQ n1
激励表状态表
T触发器 T Q
n+1
0 Qn
1 Qn
Qn
Qn+1
T=0 T=1
0 0 1
1 1 0
Qn Qn+1 T
0 0 0
0 1 1
1 0 1
1 1 0
nnn QTQTQ 1
状态表 激励表触发器的转换四种触发器可以相互转换一般情况下,触发器的转换需要增加组合电路两种转换方法:
1、比较法比较两个触发器的状态方程,找出转换关系
2、卡诺图法将转换前的触发器的激励用转换后的输入以及输出表示,并利用卡诺图化简。
比较法的例子:将 JK 触发器转换成 D 触发器
JK 触发器的状态方程:
nnn QKQJQ 1
DQ n1
D 触发器的状态方程转换过程:
11
11
1
)(
nn
nn
n
QDDQ
QQD
DQ
DKDJ,
卡诺图法的例子:将 RS 触发器转换为 JK 触发器解:求转换网络,就是求
),,(),,,( nn QKJfRQKJfS
JK 触发器的次态卡诺图表示了在 JK 的各种输入情况下的次态,RS 触发器的激励表表示了初、次态转换情况下 RS 输入的值。所以,将 RS 触发器的激励表代入 JK
触发器的次态卡诺图,可以得到从 RS触发器转换到 JK
触发器的转换关系。
JK
Qn
00 01 11 10
d d 0 0
00 1 1
0
1
JK
Qn
00 01 11 10
0 0 1 1
dd 0 0
0
1
nKQR? nQJS?
JK
Qn 00 01 11 10
0 0 1 1
11 0 0
0
1
Qn Qn+1 R S
0 0 d 0
0 1 0 1
1 0 1 0
1 1 0 d
nnn QKQJQ 1
JK 触发器的次态卡诺图 RS 触发器的激励表都是从初态 0到次态 0
3.2 触发器的结构及其工作原理四种类型的触发器可以相互转换。
JK触发器和 D触发器的功能最为完善。尤其是 JK触发器,可以比较方便地构成其它各个类型的触发器。
在商品集成电路触发器中,较多的是 JK触发器和 D触发器。
RS触发器作为所有触发器的基本构成部分,
较多地出现在数字集成电路的内部结构中。
D锁存器
CP
&
&
&
&
D
1
Q
Q
CP
D Q
QC1
1D
CP
D
Q
D锁存器的时序图动作特点:
在控制端 CP等于逻辑 1期间,输出 Q的状态随着输入 D的改变而改变;在控制端 CP等于逻辑 0期间,输出 Q的状态被锁存。被锁存的状态是控制信号 CP从逻辑 1到逻辑 0转变时刻的输入 D的状态。
由于在 CP =1时,输出和输入的关系似乎是“透明”的,
所以这个锁存器也被称为透明锁存器。
不实用的 JK锁存器的结构
CP
&
&
&
&
J
K
Q
Q
当 JK = 11时,在 CP=1 期间,JK 锁存器将不断空翻。
能够保证触发器正常翻转的时钟脉冲的宽度应该不小于
2tpd。但是,为了避免再次翻转,CP脉冲的宽度又不能大于 3tpd。这个条件实际上是无法实现的,所以实际电路中只有 RS锁存器和 D锁存器,并不存在 JK锁存器。
主从触发器
CP
&
&
&
&
S
1
Q
Q
CP
S Q
Q
C1
1S
&
&
&
&
R
R 1R
Q'
Q'
主从型 RS触发器的结构和图形符号
CP
S
R
Q'
Q'
Q
Q
CP
&
&
&
&
J
1
Q
Q
CP
J Q
Q
C1
1J
&
&
&
&K
K 1K
Q'
Q'
主从型 JK触发器的结构和图形符号
C
P
J
Q'
K
Q'
Q
Q
干扰脉冲
{错误的输出
Q
Q
{无干扰的输出主从触发器的动作特点:
在 CP=1 期间采样,输出保持不变;
在 CP=0 期间输出,停止采样。
由于采样过程发生在整个 CP=1 期间,所以要求在此期间输入保持稳定。否则将产生错误输出。
边沿触发器一、维持 -阻塞触发器
CP
&
&
S Q
Q
&
&
R
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
维持 -阻塞结构的 RS触发器,
若在 CP脉冲上升沿前后一个很短的时间,SR = 01或 10,则触发器的输出状态按照这个激励输入而改变,并在整个 CP脉冲周期内得到保持,不会因为激励输入的改变而改变。
若在 CP脉冲上升沿前后一个很短的时间,SR = 00或 11,则触发器的输出状态或者可能在 CP = 1期间改变,或者不确定。
CP
&
&
D
Q
Q
&
&
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
1D
C1
Q
Q
CP
D
维持 -阻塞结构的 D触发器,
通过将 RS触发器转换为 D触发器,可以保证 S和 R永远互补,从而避免了 RS触发器的输出不确定现象。
由于 RS总是互补,所以可以省略一根阻塞线。
输出状态取决于 CP信号上升沿前后瞬间的激励输入 D的状态。
&
&
Q
Q
G1
G2
G3
G4
CP
&
&
& G6
& G5S
R
R’
S’
置 1维持线置 0维持线
L1
L2
CP
&
&
D
Q
Q
&
&
&
&
1D
C1
Q
Q
CP
D
SD
RD
SD
RD
S
R
带直接置位和直接复位的维持 -阻塞型 D触发器,
通过直接置位端 SD 和直接复位端 RD (也称异步置位和异步复位),可以将触发器进行预置(即在整个系统开始运行之前设置触发器的初始状态)或强行复位。
CP
&
&
K
Q
Q
&
&
&
SD
RD
≥1&
J
1J
C1
Q
Q
CP
J
SD
K
S
1K
RD R
维持 -阻塞型 JK触发器
nn QKQJD
维持 -阻塞型的 JK触发器不能直接用维持 -阻塞型 RS触发器转换,原因是维持 -阻塞 RS触发器的功能不完善。
但是可以通过将 D触发器转换为 JK触发器的办法来构成维持 -阻塞型 JK触发器。
二、基于门电路的延时特性构成的边沿触发器
CP
K
Q
Q
&
RD
≥1&
J
1J
C1
Q
Q
CP
J
K 1K
RD R
≥1&
&
G1
G3
G2
G4
当一个信号经过两个延时不一样的途径到达同一个门电路的输入端时,该门电路的输出在输入信号的特定边沿上产生一个冒险 ——毛刺信号。
可以利用这种基于门电路的延时特性的脉冲输出作为 CP的边沿检测信号,并利用这个特性构成边沿触发器。
三、主从结构的边沿触发器如果在主从结构的触发器中,主触发器始终“跟随”
激励输入的变化,但是不记录(即不会发生触发器触发),则有以下工作过程:
一、在主触发器开通期间虽然主触发器的输出可能在变化,但由于从触发器此时封锁,不会影响触发器的最后输出。
二、在主触发器由开通向封锁转换的瞬间,主触发器可以将转换前瞬间的输出(反映了转换前瞬间的激励输入)传递给从触发器,使得从触发器的输出同转换前瞬间的输入相关。
三、在主触发器封锁期间,输入对从触发器的输出没有影响,使得从触发器的输出保持转换后的状态。
CP
D Q
Q
1
1
CP
G1
G2
G3
G4
&
&
1
1
G5
G6
G7
G8
&
&
CP
CP
基于 CMOS传输门的主从结构边沿 D触发器
C
J
Q
C
&
&
&
&
C
C
1
Q
1
1 1
CP C
C
R D
S D
≥1
≥1
≥1
≥1
≥1
≥1
&
K
1J
C1
Q
Q
CP
J
SD
RD
S
R
K 1K
CMOS边沿触发 JK触发器边沿触发器的动态特性 CP
D
Q
t PD
t S t H
t c l o c k
时钟周期 Tclock:能够使触发器正常工作的时钟脉冲周期。通常以它的倒数即时钟频率 fclock来描述一个触发器的动态特性。
建立时间 tS:激励输入在时钟脉冲有效边沿之前具有稳定的逻辑电平所必需的时间。
保持时间 tH:激励输入在时钟脉冲有效边沿之后需要继续保持稳定的逻辑电平的时间。
传输延迟时间 tPD:从时钟脉冲有效边沿之后到触发器输出达到稳定所需要的时间。
CP
&
&
D
Q
Q
&
&
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
建立时间至少要 2个门电路延时时间。
保持时间至少为 1个门电路的延时时间。
传输延时至少需要 3个门电路的延时时间。
CP脉冲的周期至少需要 5个门电路的延时。
维持 -阻塞型门电路延时型
CP
K
Q
Q
&
≥1&
J
≥1&
&
G1
G3
G2
G4
建立时间至少为 2个门电路延时。
保持时间可以为 0。
传输延时至少需要 1个与或非门电路的延时时间。
CP脉冲的周期应该是建立时间和传输延时之和,即至少为 3个门电路的延时时间。
主从型
CP
D Q
Q
1
1
CP
G1
G2
G3
G4
&
&
1
1
G5
G6
G7
G8
&
&
CP
CP
建立时间应该是 G3和 G1的延时时间之和。
激励输入的保持时间可以为 0。
激励输入需要经过 G7,G5才能到达输出,所以传输延时至少需要这两个门的延时时间。
触发器进入“记忆”状态需要 CP保持到正反馈建立起来,
所以时钟脉冲的最短周期应该大于 2个非门的延时加上 2
个传输门的延时。
触发器结构 系列 时钟频率 建立时间 保持时间 传输延时维持 -阻塞
74 25MHz 20ns 5ns 17ns
LS 25MHz 20ns 5ns 19ns
S 75MHz 3ns 2ns 6ns
F 100MHz 2ns 1ns 7ns
门电路延时
74 30MHz 20ns 0 20ns
LS 30MHz 20ns 0 15ns
S 80MHz 3ns 0 4.5ns
F 110MHz 4ns 0 5ns
主从边沿
4000 4MHz 20ns 20ns 175ns
HC 25MHz 25ns 0 44ns
HCT 22MHz 15ns 0 35ns
边沿触发器的典型动态特性参数各种触发器的开关特性
若要基本 RS触发器可靠地翻转,R= 1或 S= 1的时间应大于 2倍的门的传输延时 tpd
同步 RS触发器会出现空翻现象,主从、边沿触发器克服了空翻问题
时钟脉冲宽度不能太窄,必须保证触发器能够可靠地翻转
直接置 0,1脉冲的脉宽不可太窄,以确保可靠地置 0或置 1
一些触发器的翻转时刻对应于时钟脉冲的上升沿,而另一些对应于下降沿,由触发器内部的电路结构决定抗干扰能力的比较
1、主从型触发器在时钟脉冲为 1期间,不允许输入信号改变(主从型 D触发器除外 ),
其抗干扰能力差
2、维持阻塞型触发器要求在建立时间开始到保持时间结束期间,输入信号不发生变化,
而它的建立和保持时间是较短的,故其抗干扰能力较主从型的要好
3、某些边沿触发器仅在时钟脉冲触发沿之前的建立时间内,不允许输入信号改变,其抗干扰性最好
3.3 触发器的简单应用计数器计数是数字电路的一个基本功能。一个计数器通常由一组触发器构成,该组触发器按照预先给定的顺序改变其状态。
同步计数器( Synchronous Counter):
所有触发器的状态改变是在同一个时钟脉冲的同一个有效边沿上发生。
异步计数器( Asynchronous Counter):
计数器中的每个触发器的时钟部分或全部不同。
1D
C1CP
Q0 Q1 Q2 Q3
1D
C1
1D
C1
1D
C1
二进制异步加法计数器 (行波计数器)
计数器实际上由 n个 T ' 触发器构成。第一个 T ' 触发器的 C
端连接系统时钟,其后每一级触发器都将前级触发器的输出(或输出的非)作为本级的时钟输入。
CP
Q0
Q1
Q2
Q3
1D
C1CP
Q0 Q1 Q2 Q3
1D
C1
1D
C1
1D
C1
二进制异步减法计数器 (行波计数器)
CP
Q0
Q1
Q2
Q3
关于行波计数器,比较容易混淆的是加法计数与减法计数对应的时钟来源以及触发沿 的组合关系。通过波形图可以很方便地确定这些问题,现将它们的组合情况列表如下:
Q
Q
上升沿触发 下降沿触发加法计数 后级时钟来自前级的 后级时钟来自前级的 Q
减法计数 后级时钟来自前级的 Q 后级时钟来自前级的注意在应用上表的时候,所有触发器都以 Q 作为计数器的输出。若以触发器的 作为计数器的输出,则加法计数和减法计数的关系恰恰颠倒。
Q
行波计数器的时钟和计数状态的关系行波计数器计数过程中的不稳定暂态问题,
由于二进制异步计数器的的时钟信号是前后级串联的,所以到达每个触发器的时钟信号不是同时的。这也是为何将它称为异步计数器的原因。也有将它称为行波计数器( Ripple Counter)的。
因为每个触发器的时钟不同步,结果造成在 CP有效边沿以后的一段时刻内计数值可能发生混乱。
例如,计数从 7到 8的转换过程,实际的转换为:
0111→0110→0100→0000→1000 。
环型计数器
CP
Q0
Q1
Q2
Q3
1D
C1
CP
Q0 Q1 Q2 Q3
S
1D
C1
R
1D
C1
R
1D
C1
R
1D
C1
R
RS T
Q4
Q4
复位 1 2 3 4 0 1
RS T
扭环型计数器
CP
Q0
Q1
Q2
Q3
1D
C1
CP
Q0 Q1 Q2 Q3
R
1D
C1
R
1D
C1
R
1D
C1
R
1D
C1
RRS T
Q4
Q4
RS T
1 2 3 4 5 6 7 8 9 00
寄存器( Register)
寄存器由一组触发器构成,主要功能是存储数据。因为一个触发器可以存储一位二进制数,所以要存储 n位二进制数,需要 n个触发器。
根据输入或输出的模式,可分为并行方式和串行方式。
并行方式,n位二进制数一次存入或读出。只需要一个时钟脉冲即可完成数据操作,但是需要 n根输入和输出数据线。
串行方式,n位二进制数以每次一位、分成 n次存入或读出。只需要 1根输入和输出数据线,但要使用 n个时钟脉冲完成输入或输出操作。
将两种模式加以交叉,可以得到四种不同模式的寄存器:并行输入 /并行输出;串行输入 /串行输出;并行输入 /串行输出以及串行输入 /
串行输出。
1D
C1
1D
C1
DI 0
DI n - 1
DO 0
DO n - 1
CP
C1
1DDI 0
DI n - 1
CP
DI 1
DO 0
DO n - 1
DO 1
并行输入 /并行输出寄存器结构和图形符号公共控制框
C
P
Q n - 1
Q n - 2
D OU T (Q 0 )
1D
C1
C
P
1D
C1
1D
C1
1 2 nn -10
D IN
Q 0Q n - 2Q n - 1
D OU
T
n +1
d a ta 0
d a ta 0
d a ta 0
d a ta 0
d a ta 1
d a ta 1
d a ta 1
d a ta 1
d a ta 2
d a ta 2
D I N (D n -1 ) d a ta ( n - 1)
d a ta ( n - 1)
d a ta ( n - 2)
d a ta ( n - 2)
d a ta ( n - 2)
d a ta ( n - 1)d a ta ( n - 3)
移位寄存器结构和输出波形左移与右移:
一般将一个数据的最高位记为 MSB( Most
Significant Bit),最低位记为 LSB( Least
Significant Bit)。
若首先移入或移出移位寄存器的是 MSB,则称该操作为左移。反之,若首先移入或移出移位寄存器的是 LSB,则称该操作为右移。
具体执行哪种操作取决于最高位位置的指定。
累加器( Accumulator)
寄存器加法器
CL
K
B
A
A
寄存器
AL U
CL
K
B
A
A
控制
( a ) 基本结构 ( b ) 采用 AL U 的结构本章概要触发器的基本特性是:
1、具有两个稳定的输出状态,
2、可以在输入信号的作用下改变状态。
所以,触发器具有记忆作用。
按照逻辑功能的不同,触发器可以分为 RS、
JK,D和 T四种类型。不同逻辑功能的触发器之间可以相互转换。
按照电路结构的不同,触发器可以分为同步触发器和异步触发器两大类,其中同步触发器又可以分为锁存器、主从触发器和边沿触发器三种类型。
必须分清这两种分类的区别:逻辑功能表示触发器的输出状态与输入的逻辑关系,电路结构决定了触发器的动作特点。所以,相同的电路结构类型可以构成不同逻辑功能的触发器,相同逻辑功能的触发器也可能有不同的电路结构类型。
由于触发器是时序逻辑电路中的一个及其重要的部件,熟练掌握触发器的逻辑功能和动作特性是十分必要的。
直接运用触发器可以构成异步计数器和各种寄存器。这些单元电路广泛应用在各种电子设备和计算机中。
数字逻辑基础第四章 同步时序电路本章要求:
掌握同步时序电路的基本分析过程
掌握同步时序电路的设计原理
掌握状态表的化简过程组合电路记忆电路
x 1
x m
z 1
z n
Y 1
Y r
y 1
y r
4.1 时序电路的描述注:这是一个一般的结构,在实际的逻辑中可以合并某些输出和状态,也可以没有输入。
输入变量 输出变量状态变量
(现态)
状态变量
(次态)
同步时序电路和异步时序电路
同步时序电路,记忆电路一般由触发器构成,记忆电路中所有触发器状态的变化都是在同一时钟信号操作下同时发生的。触发器的时钟信号不计在输入之内。
异步时序电路,记忆电路可以由触发器构成,也可以由组合电路的反馈构成。记忆电路 状态的变化不是同时发生的,可能有公共的时钟信号,也可能没有公共的时钟信号。
现态与次态概念时钟状态时刻 t k t k +1 t k +2
当前状态 次态 当前状态 次态以两次驱动(在同步时序逻辑中就是时钟)的间隔时间作为时序电路的定时单位,把某个间隔时刻 tk 作为,当前时刻,,将下一个间隔时刻 tk+1 称为,次时刻,。
对于“当前时刻”和“次时刻”的表述,都是相对于时刻 tk 而言。当前时刻的状态为 现态,次时刻的状态为 次态 。
驱动信号时序电路的状态方程与输出方程
)](),([)(
)](),([)(
2
1
kkk
kkk
ttft
ttft
yxz
yxY
意义:
次态是输入与现态的函数(一般情况,也可以无输入)
输出是输入与现态的函数(一般情况,也可以无输入)
注意点:
Y 是次态变量,通常是一个隐含的变量,不一定是触发器的激励输入。只有记忆电路全部是 D 触发器时,次态才与激励相同。
1J
C1
X Z
CP
1K
1J
C1
1K
&
1
&
&
J1
J2
K1
K2
Q1
Q2
例 1 状态机
JK 触发器,Q1,Q2 是现态,X 是输入。
Z 是输出,仅是现态的函数。
次态隐含在 J1,K1,J2,K2 中。
1D
&
&
&
Q 3
Q 2
Q 1
Q 0
CP
≥1
≥1
≥1
C 1
C 1
C 1
C 1
1D
1D
1D
例 2 计数器
D 触发器,无输入,
Q0 ~ Q3 为状态同时也是输出。
次态是 D0 ~ D3,可以通过组合逻辑显式地写出。
米利模型和摩尔模型组合电路记忆电路
(触发器)
输入变量 组合电路激励状态变量输出变量时钟
x
z
y
)](),([)(
)](),([)(
2
1
kkk
kkk
ttft
ttft
yxY
yxz
米利( Mealy)模型某时刻的输出是该时刻的输入和电路状态的函数
)](),([)(
)]([)(
2
1
kkk
kk
ttft
tft
yxY
yz
摩尔 (Moore)模型组合电路记忆电路
(触发器)
输入变量 组合电路激励状态变量输出变量时钟
x
z
y
某时刻的输出仅是该时刻电路状态的函数,
与该时刻的输入无关 。
米利模型和摩尔模型的区别:
一、米利模型的输出直接同输入有关,所以在输入变化时,
不管状态是否改变,输出立即产生变化。即输入不仅影响次态,同时影响输出。
二、摩尔模型的输出只同状态有关,所以在整个状态保持期间保持输出不变。输入的变化只影响次态。
三、根据上述情况,若输入与时钟同步,则两种模型的输出在整个时钟周期内均保持不变,但米利模型比摩尔模型提前一个时钟周期改变输出。
四、若输入存在干扰,一般不会影响摩尔模型的输出,但可以影响米利模型的输出。
状态转换表现态 次态 / 输出输入 1 输入 2 输入 n
现态 1 次态 11 / 输出 11 次态 12 / 输出 12 次态 1n / 输出 1n
现态 2 次态 21 / 输出 21 次态 22 / 输出 22 次态 2n / 输出 2n
现态 m 次态 m1 / 输出 m1 次态 m2 / 输出 m2 次态 mn / 输出 mn
以表格的形式描述现态、输入与次态、输出的关系。
米利模型的表格形式是:
摩尔模型的表格形式是:
现态 次态 输出输入 1 输入 2 输入 n
现态 1 次态 11 次态 12 次态 1n 输出 1
现态 2 次态 21 次态 22 次态 2n 输出 2
现态 m 次态 m1 次态 m2 次态 mn 输出 m
以信号流图形式显示状态转换关系。
米利模型形式将输出写在转换线上,摩尔模型形式将输出写在状态圈内。
状态转换图状态状态状态输入/ 输出输入/ 输出输入/ 输出输入/ 输出输入/ 输出输入/ 输出状态
/ 输出状态
/ 输出状态
/ 输出输入输入输入输入输入输入米利模型 摩尔模型状态转换图的特点
状态转换图中每个状态射出的状态转换线的根数同系统输入的组合数相同,转换条件包含了所有的输入组合。例如某系统输入组合有 3种,00、
01和 10,则无论哪个模型,每个状态射出的状态转换线都是 3根,分别对应 3个输入组合。这个特点常常被用来检查状态转换图的正确性。
摩尔模型的状态数通常大于米利模型的状态数。
形成这个特点的原因是由于米利模型中一个状态可以对应多个输出,而摩尔模型一个状态只能对应一个输出。
例自动售饮料机。可以投入 1元或 5角的硬币,饮料 1.5元 一杯。
当先后投入的硬币满 1元 5角后,机器送出一杯饮料;当投入的硬币满 2元后,机器送出一杯饮料以及送出一个 5角硬币。
作出上述自动售饮料机问题的状态转换图和状态转换表。
分析 1:
输出,设 Z1 =1→ 输出饮料; Z2 =1→ 输出找零。所有的输出情况为 Z1Z2 = 00,Z1Z2 = 10,Z1Z2 = 11。
输入,当前投入的币值,X1X2 = 00、币值为 0; X1X2 = 01、
币值为 5角; X1X2 = 10、币值为 1元。
状态,记录已经投入的币值,S0= 0,S1 = 5角,S2 = 1元。
S
0
S
1
S
2
00 /00
00 /00 00 /00
01 /00
10 /10
01 /00
10 /00
01 /10
10 /11
X
1
X
2
/ Z
1
Z
2
米利模型的状态图初始状态已收 0.5元状态投币 0.5元已收 1元状态输出饮料投币 1元现态次态 / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 10
S0 S0 /00 S1 /00 S2 /00
S1 S1 /00 S2 /00 S0 /10
S2 S2 /00 S0 /10 S0 /11
米利模型的状态转换表分析 2:
输出,设 Z1=1→ 输出饮料; Z2=1→ 输出找零。所有的输出情况为 Z1Z2 = 00,Z1Z2 = 10,Z1Z2 = 11。
输入,当前投入的币值,X1X2 = 00、币值为 0;
X1X2 = 01、币值为 5角; X1X2 = 10、币值为 1元。
状态,记录已经投入的币值,S0= 0,S1= 5角、
S2 = 1元,S2 = 1.5元,S2 = 2元。
S 0 /00
S 1 /00
S 2 /00
00
00
01
01
01
10
S 3 /10
S 4 /11
10
10
01
00
00
01
10
10
00
摩尔模型的状态图初始状态已收 0.5元状态输出饮料已收 1.5元状态现态 次态 输出Z
1Z2X1X2 = 00 X1X2 = 01 X1X2 = 10
S0 S0 S1 S2 00
S1 S1 S2 S3 00
S2 S2 S3 S4 00
S3 S0 S1 S2 10
S4 S0 S1 S2 11
摩尔模型的状态转换表时钟状态输入
S 2 S 0
S 3状态输出输出
S 2
米利模型摩尔模型
X 2
Z 1
Z 1
两个模型的时序图状态:已经投入的硬币总值为 1元输入:再投入 1个 5角硬币输出:一杯饮料,即 Z1 =1
米利模型的输出 摩尔模型的输出两种基本模型的相互转换
1、摩尔模型转换为米利模型
将摩尔模型状态转换表的最后一列输出去掉。
在每个次态后面加上,/输出,。其中的输出对应于该次态在原模型中的输出。
观察修改后的状态转换表,合并相同的状态。
2、米利模型转换为摩尔模型
输出同类状态:
所有指向某个状态的状态转换线都具有相同的输出 。
这种类型的状态,次态和输出是统一的,所以只要将所有指向这个状态的状态转换线上的输出改写到表示状态的圆圈中,就可以将米利模型转换为摩尔模型。
输出非同类状态:
指向某个状态的状态转换线具有几个不同的输出 。
显然这个状态转换成摩尔模型后将对应几个状态,所以按照下列步骤改画这种类型的状态:一、将此状态分成几个新状态。每个新状态对应一个输出,写在表示新状态的圆圈中。二、按照不同的输出,将原来的状态转换线分别改画成指向具有对应输出的新状态。 三、原来从输出非同类状态出发的所有状态转换线,都应该在每个新状态中重新画出来,并且它们的目的状态应该与原来的相同。
4.2 同步时序电路的分析
根据给定的电路,确定电路的类型。列出触发器的激励方程。
将激励方程代入触发器的特征方程,写出电路的状态方程。同时写出电路的输出方程。
由状态方程和输出方程,列出电路的状态转换表或状态转换图。
分析电路的状态转换表或状态转换图,得到电路的功能表示或者相应的时序图。如果已知电路的功能,可以通过这一步的分析,验证电路功能的正确性。
1D
C1
1D
C1
&X
CP
Z
Q2
Q1
米利型电路。
1
1
2
1
1
121
2
1
21
1
1
21
,
,
,
QQXQ
QDXD
DQDQ
QXQZ
nn
nn
输出方程:
D触发器:
激励方程:
次态方程:
例 1
现态 次态 /输出 次态 /输出状态编号
Q1Q2 X=0 X=1
00 00/0 10/0 S0
01 00/0 10/0 S1
10 01/0 11/0 S2
11 01/0 11/1 S3
状态转换表
S0
S1
S3S2
0/0
1/1
1/0
1/0 0/0
0/0
0/0
1/0
CP
X
Z
S0 S2S0 S1S3S3S2S0S1
状态转换图和时序图例 2
1J
C1
&
X
CP
Z
Q2
Q1
&
&1 1K
1J
C1
1K
摩尔型电路。
输出方程:
JK触发器:
激励方程:
次态方程,2121211211
122121
1
21
,
,,,
QXQQXQXQQXQQ
XQKXJXKXQJ
QKQJQ
QQZ
nn
n
状态转换表
Q1Q2 X=0 X=1 Z
00 00 01 0 S0
01 00 10 0 S1
10 00 11 0 S2
11 00 11 1 S3
现态 次态 输出 编号
S 0 /
0
S 1 /
0
S 3 /
1
S 2 /
0
1
11
0
1
0
0
0
CP
X
Z
S0 S1S0 S0S3S2S1S0S0
状态转换图和时序图例 3
1J
C
1
X Z
CP
1K
1J
C
1
1K
&
1
&
&
J1
J2
K1
K2
Q1
Q2
摩尔型电路。
输出方程:
JK触发器:
激励方程:
次态方程,212121211
1221121
1
21
,
,,,
QXQQXQQXQQ
XQKXJQKXQJ
QKQJQ
QQZ
nn
n
S 0 /0
S 1 /0
S 2 /1
0
1
0
0
1
0
1
1
S 3 /0
S0,Q1Q2=00
S1,Q1Q2=01
S2,Q1Q2=11
S3,Q1Q2=10
CP
X
Z
S 0 S 1 S 1 S 1 S 1 S 1 S 1S 2 S 2 S 2S 0 S 0S 0
状态转换图和时序图例 4 串行加法器
BAR
ABS
激励方程
&
&1
1
C1
1S
1R
& ≥ 1
CP
A
B
Z
状态方程、输出方程和时序图
BAQBAABQBAABQZ
BQAQABQBAABQRSQ
nnn
nnnnn
)()(
)(1
CP
A
Z
B
1 5432 6
Q
0
1
00
000
0
0
0
01
111
1111
1
1
0
0 1
Z'
Z ''
常见的同步时序电路分析
D
D
Q
A
Q
B
CP
Q
C
Q
D
=1
D=1
D=1
&
D
A
D
B
D
C
D
D
&
1
CBADnD
BACnC
ABnB
AnA
QQQQQ
QQQQ
QQQ
QQ
)1(
)1(
)1(
)1(
1、计数器类电路
4位二进制同步加法计数器状态方程:
0 ( 1 ) 0
1
( 1 )
0
( ),0
n
i
i n i j
j
QQ
Q Q Q i
二进制同步加法计数器的状态方程的一般形式时序图
CP
Q
A
Q
D
Q
C
Q
B
带同步置数、同步复位、保持等多种功能的
4位二进制同步加法计数器
D
&
D
Q A
Q B
CP
≥1
=1
& ≥1
Q C
Q D
D
C
B
A
E NP
E NT
L OAD
CLR
(8)
(4)
(2)
(1)1,5 D
C5/2,3,4 +
M1
M2
G3
G4
5,CT= 0
3,CT= 1 5
CTRDIV 1 6
Q A
Q B
Q C
Q D
RCO
RCO
CP
D
C
B
A
E NP
E NT
L OAD
CLR
=1
&
D
& ≥1
=1
&
D
& ≥1
=1
&
1
&
1
≥1
≥1
1
≥1
D A '
D B '
D C '
D D '
D A
D B
D C
D D
≥1
≥1
1
0
'
' ( )
' [ ( ) ( ) ],
nn
A A
i
nj n
j
D LO A D C LR n LO A D C LR D
D E N P E N T Q
D E N P E N T Q Q n A
利用与或门作为数据选择器实现多种逻辑功能转换
CLR LOAD ENP ENT 功能
0 X X X 复位(清零)
1 0 X X 加载(置数)
1 1 1 1 计数
1 1 0 X 保持
1 1 X 0 保持说明:
用,与或门,构成数据选择器 (或者它的变形 ),用控制端来控制 数据选择器,
对触发器激励端的输入信号加以选择,
从而构成不同的工作模式。这是实现多功能时序逻辑电路的一个常用手段。
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,C T =0
3,C T =1 5
C T R D I V 1 6
CP
并行输入
E N P
H
L O A D
C L R
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,C T =0
3,C T =1 5
C T R D I V 1 6
D 0 ~ D 3 D 4 ~ D 7Q 0 ~ Q 3 Q 4 ~ Q 7
并行输入计数输出 计数输出联往高位二进制加法计数器的串联
CBADnD
BACnC
ABnB
AnA
QQQQQ
QQQQ
QQQ
QQ
)1(
)1(
)1(
)1(
0),(
1
0
)1(
0)1(0
iQQQ
QQ
i
j
jini
n
二进制减法计数器状态方程二进制减法计数器的状态方程的一般形式与加法计数器的差别仅在于这个“非”
D
&
D
Q A
Q B
CP
≥1
&
≥1
Q C
Q D
D
C
B
A
E N P
E N T
L O A D
U / D
RCO
&
&
&
1
≥1
Q A '
Q B '
Q C '
Q D '
& ≥1
& ≥1
=1
=1
&
D
&
D
≥1
&
≥1
&
& ≥1
& ≥1
=1
=1
&
1
可逆计数器实现同步置数、保持等多功能的与或门实现可逆计数的与或门用二进制同步计数器构成其他进制计数器
A、同步置数法
(8 )
(4 )
(2 )
(1 )1,5 D
C5 /2,3,4 +
M1
M2
G3
G4
5,CT= 0
3,CT= 1 5
CTR DI V 1 6
Q A
Q B
Q C
Q D
RCO
CP
D=0
C=0
B = 1
A=1
ENP
ENT
LO AD
CLR
1
"1 "
"1 "
"1 "
15 3 414
利用进位信号进行同步置数,跳过若干状态。
例如 DCBA= 0011= 3,
则有以下时序图:
CP
Q
B、同步复位法
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,CT =0
3,CT =1 5
C TR D IV 1 6
Q A
Q B
Q C
Q D
RCO
CP
D
C
B
A
EN P
EN T
LO A D
C LR
1
"1"
"1"
"1"
8
4
2
1
B IN /H EX
n
利用输出译码进行同步复位,跳过若干状态。
例如 n= 12,
则有以下时序图:
12 0 111
CP
Q
C
P
CP
1D
C1
1D
C1
1D
C1
1D
C1
1D
C1
P1 P2 P3 P4 P5
P1
P2
P3
P4
P5
≥1
2、移位寄存器类电路单活跃( One-hot)电路通用移位寄存器
CP
≥1
C1
1R Q 0
1
1
R D
1S1
&
R
≥1
C1
1R Q 1
1S1
& R
≥1
C1
1R Q 2
1S1
& R
≥1
C1
1R Q 3
1S1
& R
1 1PE
P 0
P 1
P 2
P 3
J
K
Q 3
M1
1,2 J
1,2 K
C 2 / 1
1,2 D
R
1,2 D
Q 0
Q 1
Q 2
Q 3
Q 3
CP
R D
PE
P 0
P 1
P 2
P 3
J
K
SRG 4
右移方式关联并行输入串行输入实现多功能的与或门
CP
≥1
C1
1D A / Q A
1
1
R D
R
1
&
G1
D S A
M
3,4 D
5,1 3
C 4 / 1 → / 2 ←
1,4 D
R
2,4 D
3,4 D
Q A
CP
R D
0
1
S R G 8
EN
≥1
C1
1D
R
EN
≥1
C1
1D
R
EN
≥1
C1
1D
R
EN
&
&
&
&
B / Q B
G / Q G
H / Q H
Q A
Q H
D S H
1
1 1
G2
&
S0
S1
中间4 组触发器未画出
Z5
Z6
Z 1 2
6,1 3
1 2,1 3
Q H
}
0
3
&
3 E N 1 3
A / Q A
B / Q B
C / Q C
D / Q D
E / Q E
F / Q F
G / Q G
H / Q H
D S H
D S A
G1
G2
S0
S1
3,4 D
4.3 同步时序电路设计设计一个同步时序电路的一般步骤
确定采用何种模型
状态转换表或状态转换图
化简冗余状态
状态编码
确定触发器类型,状态激励表
触发器的激励方程,电路的输出方程
最终的逻辑电路图例 1:设计 101序列检测电路采用摩尔模型,状态转换图:
S 0 /0 S 1 /0 S 2 /00
1
S 3 /1
0
1
0
1
1 0
已是最简状态,无需化简状态编码如下,S0= 00,S1= 01,S2= 10,S3= 11
问题:输入序列为,101”时,输出,1”
状态 状态(编码) 次态(编码) 输出X = 0 X = 1
S0 Q1Q0 = 00 00 01 0
S1 Q1Q0 = 01 10 01 0
S2 Q1Q0 = 10 00 11 0
S3 Q1Q0 = 11 10 01 1
输入激励 J1K1,J0K0
Q1Q0 = 00 Q1Q0 = 01 Q1Q0 = 10 Q1Q0 = 11
X = 0 0d,0d 1d,d1 d1,0d d0,d1
X = 1 0d,1d 0d,d0 d0,1d d1,d0
状态转换表采用 JK触发器的状态激励表
Q 1 Q 0
X 00 01 11 10
0 1 d d
d0 0 d
0
1
J 1
Q 1 Q 0
X 00 01 11 10
d d 0 1
0d d 1
0
1
K 1
Q 1 Q 0
X 00 01 11 10
0 d d 0
11 d d
0
1
J 0
Q 1 Q 0
X 00 01 11 10
d 1 1 d
dd 0 0
0
1
K 0
激励函数
XKXJ
XQQXKQXJ
00
00101
,
,
01QQZ?
输出函数逻辑图
1J
&
1
Q 0
CP
≥1
C 1
1K
1J
Q 1
C 1
1K
&
X
& Z
例 2:设计 8进制计数器状态转换表状态 Q2Q1Q0 Q2(n+1)Q1(n+1)Q0(n+1)
S0 000 001
S1 001 010
S2 010 011
S3 011 100
S4 100 101
S5 101 110
S6 110 111
S7 111 000
采用 D触发器的激励卡诺图
Q 1 Q 0
Q2 00 01 11 10
0 0 1 0
11 1 0
0
1
D2
Q 1 Q 0
Q2 00 01 11 10
0 1 0 1
10 1 0
0
1
D1
Q 1 Q 0
Q2 00 01 11 10
1 0 0 1
11 0 0
0
1
D0
2 1 0 2 22 1 0
1 1 0
0 0
D Q Q Q Q Q Q Q
D Q Q
DQ
激励方程
&
Q 2
Q 1
Q 0
CP
=1
≥1
C 1
C 1
C 1
1D
1D
1D
逻辑图带有冗余状态的同步时序电路设计一个具有 n个状态的同步时序电路,如果 n不是恰巧等于 2m,一般总有 2m-n个冗余状态。
这些冗余状态在设计时必须加以处理。
若处理不当,会造成严重后果。
例 1:自动售饮料机
S 0
S 1
S 2
0 0 / 0 0
0 0 / 0 0 0 0 / 0 0
0 1 / 0 0
1 0 / 1 0
0 1 / 0 0
1 0 / 0 0
0 1 / 1 0
1 0 / 1 1
X 1 X 2 / Z 1 Z 2
米利模型,
状态转换图:
已是最简状态,无需化简状态编码如下,S0 = 00,S1= 01,S2= 11
S3=10是冗余状态。
现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 =
00
X1X2 =
01
X1X2 =
11
X1X2 =
10
S0 00 00/ 00 01/ 00 dd / dd 11 / 00
S1 01 01/ 00 11 / 00 dd / dd 00 / 10
S2 11 11 / 00 00/ 10 dd / dd 00/ 11
S3 10 dd / dd dd / dd dd / dd dd / dd
采用 D触发器设计
Qn+1=D
直接从上表得到激励表状态转换表
X 1 X 2
Q 1 Q 2
00 01 11 10
0 0 d 1
00 1 d
00
01
D 1
X 1 X 2
00 01 11 10
0 1 d 1
01 1 d
D 2
X 1 X 2
00 01 11 10
0 0 d 0
10 0 d
Z 1
X 1 X 2
00 01 11 10
0 0 d 0
00 0 d
Z 2
1 0 d 0
dd d d
1 0 d 0
dd d d
0 1 d 1
dd d d
0 0 d 1
dd d d
Q 1 Q 2
Q 1 Q 2 Q 1 Q 2
11
10
00
01
11
10
00
01
11
10
00
01
11
10
激励与输出卡诺图
112
12211
12212122
122212111
XQZ
XQXQZ
XQXQXXQD
XQXQQXXQD
激励函数与输出函数疑问,冗余状态是 Q1Q2 = 10,我们将此冗余状态代入上式。看输出方程:当 Q1Q2 = 10时,若输入 X1 = 1,
则 Z1 = 0,Z2 = 1。若输入 X2 = 1,则 Z1 = 1,Z2 = 0。换句话说,若系统进入冗余状态,那么投入 1圆硬币将没有饮料但有 5角找零;而只要投入 5角硬币,将会得到一杯饮料?
现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 11 X1X2 = 10
S0 00 00/ 00 01/ 00 11 / 00 11 / 00
S1 01 01/ 00 11 / 00 11 / 10 00 / 10
S2 11 11 / 00 00/ 10 00 / 11 00/ 11
S3 10 10 / 00 00 / 10 11 / 11 11 / 01
错误的冗余状态:
例如,X1X2 = 00,则 S3?S3
发生错误的原因:
按照上面化简后的激励函数重新得到实际的状态转换表现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 11 X1X2 = 10
S0 00 00 / 00 01 / 00 dd / dd 11 / 00
S1 01 01 / 00 11 / 00 dd / dd 00 / 10
S2 11 11 / 00 00 / 10 dd / dd 00 / 11
S3 10 00 / 00 01 / 00 dd / dd 11 / 00
修改方法:将冗余状态的次态和输出按照实际情况填入合理的值,修改后的状态转换表如下。按照此表进行设计,没有不合理的冗余状态。
由于输入 X1X2 = 11不可能发生,所以有关 X1X2 = 11的次态和输出不作调整。
例 2:五进制计数器现态 Q2Q1Q0 Q2(n+1)Q1(n+1)Q0(n+1)
S0 000 001
S1 001 010
S2 010 011
S3 011 100
S4 100 000
S5 101 000
S6 110 000
S7 111 000
为了避免出现自启动问题,在开始设计时将冗余状态指向 S0
Q 1 Q 0
Q 2 00 01 11 10
0 0 1 0
00 0 0
0
1
D 2
Q 1 Q 0
00 01 11 10
0 1 0 1
00 0 0
D 1
Q 1 Q 0
00 01 11 10
1 0 0 1
00 0 0
D 0
Q 2 Q 2
0
1
0
1
卡诺图中红色的 0是原来设计的冗余项。但是按照原来的设计,卡诺圈太小。所以可以修改设计,按照上图加大卡诺圈
(蓝色),相当于改变次态,仍然满足自启动要求。 S 2
S 3
S 4
S 1
S 6
S 0
S 5
有效循环
S 7
1,如果问题要求所有冗余状态都具有特定的输出和次态,则在开始进行设计时,除了明确不可能出现的状态以外,应该将所有的冗余状态的输出和次态考虑在状态转换表或状态转换图中。这样得到的设计可以满足问题的原始要求。
2,如果问题只要求满足自启动条件,则可以以任意项方式处理冗余状态,但是最后要进行自启动检查。
3,也可以以确定方式处理冗余状态,但可能得到的结果不是比较好的结果,所以应该进行优化检查。
4,无论上述哪种方法,若在检查后发现问题,都需要按照检查的结果重新修改设计。
冗余状态的处理规则现态 Q3Q2Q1Q0 Q3(n+1)Q2(n+1)Q1(n+1)Q0(n+1)
S0 0000 0001
S1 0001 0010
S2 0010 0011
S3 0011 0100
S4 0100 0101
S5 0101 0110
S6 0110 0111
S7 0111 1000
S8 1000 1001
S9 1001 0000
S10 1010 dddd
S11 1011 dddd
S12 1100 dddd
S13 1101 dddd
S14 1110 dddd
S15 1111 dddd
例:
十进制计数器问题
3102103
21020212
103101
00
QQQQQQD
QQQQQQQD
QQQQQD
QD
自启动检查:通过
S0
S1
S2
S6
S5
S4
S3
S 1 0
S9
S8
S7
S 1 1
S 1 4
S 1 3 S 1 2
S 1 5
用算法状态机方法设计同步时序电路状态名称摩尔型输出米利型输出输入条件0 1
状态框 判断框 条件输出框算法状态机方法是从计算机程序设计者那里借用了流程图的一些符号,构成算法状态机图( ASM图)。
ASM图的主要包括以下 3种元件
S0
已收 0 元输出饮料投0,5 元
01
S1
已收 0,5 元投1 元投0,5 元
S2
已收 1 元
1
投1 元
0
0
投0,5 元
1 1
输出饮料
1 0
0
投1 元
01
输出找零售饮料机的 ASM图
S 0
S 1
S 2
00 /00
00 /00 00 /00
01 /00
10 /10
01 /00
10 /00
01 /10
10 /11
X
1
X
2
/ Z
1
Z
2
售饮料机的状态转换图
S 0
X 1
01
S 1 X 2
S 2
1 0
S 3
S 1
S 0
S 3
1d 00
01
X 1 X 2
S 2
A S M 图 状态转换图优先级的处理例:反应时间测试电路该电路用来测量短跑运动员的反应速度,要求时间测量精确到毫秒。由于运动员的反应时间不可能小于 200ms,所以要求当反应时间小于 200ms时,要给出犯规信号。
晶体振荡器模1 0 0 0
计数器
1k Hz
计数控制电路
D A TA
锁存译码显示时钟发令枪运动员计数允许计数器清零计数值锁存时间阈值、计数值=20 0ms
G U N
A TH
C LR
EN
CP
LATC H
犯规指示
F OUL
LIM EN
系统复位
R S T
S 0 ( 准备)
CLR
ATH
01
S 4 ( 犯规)
FOUL
GUN
S 1 ( 计数1 )
EN
ATH
1
1 0
0
LIMEN
01
S 2 ( 计数2 )
EN
ATH
01
S 3 ( 锁存)
LATCH
RST
1 0
S 4 /
0001
S 0 /
1000
S 1 /
0100
00dd
1dd d
dddd
S 2 /
0100
S 3 /
0010
A TH / G U N / LIM EN / R ST
0d0d
ddd0
ddd1
1dd d
01dd
0d1d
1dd d
0dd d
C LR / EN / LA TC H / F OU L输出输入状态转换图状态分配时序电路的状态由状态变量(时序电路中记忆电路的输出)组合确定,将每个状态对应的状态变量组合分配一个唯一的二进制码的过程称为进行状态分配。
在时序电路设计中必须进行状态分配。分配之后用以代表状态变量的实际二进制码对于最终实现电路的代价有着重要影响。
状态分配问题没有通解。但是根据前人的经验,
按照一定的分配规则,可以得到比较好的分配结果。
!)!2(
)!12(
mn
S m
m
)!2(
)!2(
n
S m
m
用 m个状态变量实现 n个状态时,可能的状态分配数将等价的状态分配方案剔除后,以下函数给出了不等价的状态分配方案数。
状态分配规则 1
对于在相同输入条件下有相同次态的所有状态,在进行状态分配后,应当能形成一个质蕴含。 A
E
D
C
B
A
DC
B
Q 2 Q 1
Q 3
01
01
01
01
状态分配规则 2
对于一个现态的所有次态,在进行状态分配后,
最好能够形成一个质蕴含。
A
E
D
C
B
B EDC
Q 2 Q 1
Q 3
状态分配规则 3
有相同输出的状态最好给予相邻的状态分配。
对于状态分配的说明:
1、上述 3个规则,是一些经验规律,大部分情况下适用,
可能有不适用的例子。
2、对于大部分状态机,不可能全部满足 3条规则,只能按照实际情况运用。规则 1比规则 2的优先级要高,规则
3的优先级最低。除了涉及有大量输出的情况之外,一般很少考虑规则 3。有些资料根本就忽略规则 3。
例子参见讲义例 4- 13。
4.4 时序电路的状态化简一、完全描述状态表的化简
“完全描述”是指在给定的输入条件下,表中所有的次态和输出均有确定值。
完全描述状态表的例:
现态次态 / 输出
X=0 X=1
S0 S0/0 S2/0
S1 S0/0 S2/0
S2 S1/0 S3/1
S3 S1/0 S3/0
状态的等价,
设某一时序电路(系统)内的两个状态 Si 和 Sj,如果用任意序列的输入加到此电路上,从 Si 或 Sj 出发所得到的输出序列都相同,则称状态 Si 和状态 Sj 等价。
可以证明,为了判别两个状态是否等价,所输入的任意序列只需要有限长度。具体地说,对于具有 n个状态的电路,最多只需要输入 n-1个符号的任意输入序列,即可判别两个状态的等价与否。
等价的传递性,
若 Si 等价于 Sj,而 Sj 等价于 Sk,则 Si 等价于 Sk。
划分等价状态的规律:
1、如果某两个状态对应的输出不同,则它们显然是不等价的。
2、如果某两个状态在相同的输入下有相同的输出,并且次状态完全相等或为原状态时,这两个状态等价。
3、如果某两个状态在相同的输入下有相同的输出,但是次状态不相同,则此二状态等价与否还得视它们的次状态是否等价而定。
化简的方法:隐含表法
S 2
S 6S 5S 4S 3S 2S 1
S 7
S 6
S 5
S 4
S 3
S 1 S 3
S 7 S 6
S 5 S 3
S 7 S 6
S 2
S 6S 5S 4S 3S 2S 1
S 7
S 6
S 5
S 4
S 3
1,输出不同,肯定不等价,在相应的小方格中记以,× ‖号。
2,输出相同,并且在相同的输入下次态相同,或者仍为原状态对。肯定等价,在对应的小方格中记以,√‖号 。
状态 次态 输出X=0 X=1 X=0 X=1
S1 S1 S7 0 1
S2 S2 S4 0 0
S3 S4 S5 1 0
S4 S7 S5 1 1
S5 S5 S7 0 1
S6 S6 S4 0 0
S7 S3 S6 0 13,输出相同,次态不同,记录次态对。
4,观察该次态对是否等价(等价传递)。若是则钩,若非则叉。
最后将所有等价态合并,就得到化简后的状态表。
对于上例,由于状态 S1 与 S5 等价,状态 S2 与 S6 等价,所以可以将这 4 个状态化简成 2 个状态,而其余 3个状态则无法进一步化简。
原状态 化简后 状态 次态 输出X=0 X=1 X=0 X=1
S1,S5 SA SA SE 0 1
S7 SE SC SB 0 1
S2,S6 SB SB SD 0 0
S3 SC SD SA 1 0
S4 SD SE SA 1 1
二、不完全描述状态表的化简不完全描述状态表:表中某些状态在某些输入情况下的次态或输出没有确定的值,它们可以取 0也可以取 1,
相容:
1,输出相容,
如果两个输出序列的每一对有确定值的对应输出均相同,则称此两输出相容。
例,
00111
01110
11010
dZ
dZ
dZ
k
j
i
Zi与 Zj相容,Zj与 Zk也相容 。 而 Zi与 Zk则不相容。可见,相容不具有传递性 。
2,状态相容,
两个状态 Si 和 Sj,如果用所有允许的输入序列的输入加到此系统上,从 Si 或 Sj 出发所得到的输出序列都相容,则称状态 Si 和状态 Sj 相容(所谓允许的输入序列指的是除去最后的输入外,其余各个输入所对应的下一个状态都是确定的,当然最后输入的下一个状态也可以是确定的,只有在这样的允许的输入序列作用下,相应的状态序列才不会中断)。
简单不相容,在相同输入下,状态 Si 和 Sj 输出不相容。
简单相容,对于任意输入,输出相容,有确定值的次状态相等或者仍为原状态。
若两个状态的输出相容,有确定值的次态不同,但是该次态对是简单相容的,则称此两个状态 潜在相容 。
状态 次态 输出X=0 X=1
S1 S3 d 1
S2 d S3 d
S3 d S2 d
S4 S4 d 0
S5 S5 S4 d
例:用 隐含表化简简单不相容简单相容简单相容简单相容简单相容简单相容简单相容
S 2
S 4S 3S 2S 1
S 5
S 4
S 3
S 3 S 5 S 2 S 4S 3 S 4
步骤 1、寻找相容关系打钩的为简单相容,打叉的为简单不相容。
其余三个状态对,既不是简单相容,也不是简单不相容。写上它们 有确定值的次态对 。
由于相容不具有传递性,所以不能简单地由简单相容外推两个不简单相容的状态是否相容。
例如上表中,S1与 S3相容,S3与 S4相容,但是 S1与 S4简单不相容。
同样,也不能推断上表中写上次态对的 3个方格,S1与
S5,S2与 S5以及 S3与 S5的相容性。
考察上述 3个状态对的次态对是否相容:其中两个次态对简单相容,一个次态对的次态对简单相容(潜在相容),所以上述 3个状态对均潜在相容。
步骤 2、寻找最大相容类集合所谓最大相容类集合,是含有不被其它相容类集合所覆盖的相容的一组状态或状态对。寻找最大相容类集合的目的是要将全体状态划分为尽可能少的组,
每组内的状态都彼此相容。
利用合并图来寻找最大相容类集合:
合并图是将状态表中所有的状态以点的形式画在一个圆周上,然后将所有的相容状态对(包括潜在相容对)用直线连接起来。若在一组状态点中两两之间都有连线,表示该组状态中所有状态两两相容,
可以形成最大相容类。在图形上,它们将形成一个内部两两相连的最大的多边形,该多边形的各个顶点就形成一个最大相容类集合。
S1
S5
S4S3
S2
在本例题中,共有 5个状态,构成的相容状态对有:
{S1,S2},{S1,S3},{S1,S5}
{S2,S3},{S2,S4},{S2,S5}
{S3,S4},{S3,S5}
{S4,S5}
最大相容类集合:
{ S1,S2,S3,S5 } 和 { S2,S3,S4,S5 }
S 2
S 4S 3S 2S 1
S 5
S 4
S 3
S 3 S 5 S 2 S 4S 3 S 4
潜在相容步骤 3、构成简化状态表由上面得到的最大相容类集合 {A},{B},…,{K} 可能有状态重叠,
所以可以用其中的一部分作为一个简化状态。若用 {A'} 表示 {A}
的一个子集,{B'} 表示 {B} 的一个子集,等,则可以用 {A'},
{B'},…,{K'} 中的一部分 {A'},{B'},…,{N'}作为化简后的状态。其中 {A'},{B'},…,{N'} 应满足下列三个条件:
1,覆盖化,{A'},{B'},…,{N'}中必须包含原状态表中所有的状态。
2,最小化,由 {A'},{B'},…,{N'}构成的状态数目最少。
也就是说,若在第一步得到 k个最大相容类集合,最后的简化状态个数可以小于 k。
3,闭合性,{A'},{B'},…,{N'}中任何一个新状态,它所包含的几个原来的状态在一定的输入下对应的次状态必须属于合并后的同一状态。否则简化表的次状态无法确定。
回到原来的例子:
已经得到 2个最大相容类集合,分别是
{ S1,S2,S3,S5 } { S2,S3,S4,S5 }
根据前面所说的三个条件中的前面二个 ——覆盖性 和 最小化考虑,选取上述 2个最大相容类集合中的部分子集,可以按下面的组合来选取简化后的状态组合:
(1) { S1,S5 } { S2,S3,S4 }
(2) { S1 } { S2,S3,S4,S5 }
(3) { S1,S2 } { S3,S4,S5 }
(4) { S1,S2,S3 } { S4,S5 }
上述 4个组合,每个组合中都包含了原来的所有状态,所以都满足覆盖性要求。这样组合以后的简化状态只有 2个,并且不可能进一步减少,所以满足最小化要求。
但是,方案 (1)和 (3)均不满足 闭合性 。
以方案 (1)为例,原始问题 S1,S5在输入 X = 0时对应的次状态分别为 S3和 S5。但如果按照 方案 (1)简化以后,S1和 S5将合并成一个状态,而它们的次状态 S3和 S5将分属于化简后的两个不同状态,这样一来,在化简后的状态表中新状态 { S1,S5 }
在输入 X = 0时的次态将无法选择。
状态 次态X=0
S1 S3
S5 S5
化简后的状态 次态X=0
SA={S1,S5} SA(S5)? SB(S3)?
SB={S2,S3,S4}
原始的状态转换关系 方案( 1)的状态转换关系反之,方案 (2)和 (4)则可以满足上述三个条件。所以这两种简化方案是可取的。假定取第二种方案,以 SA代替 { S1 }而以 SB代替 { S2,S3,S4,S5 },于是本问题的状态转换表便简化成只有两个状态,如下表所示。
状态次态输出X=0 X=1
SA SB d 1
SB SB SB 0
数字逻辑基础第五章 异步时序电路异步时序电路的分类
基本型异步时序电路依靠电路反馈记忆状态,输入信号为电平型信号。
脉冲性异步时序电路依靠触发器记忆状态,输入为脉冲信号
(时钟信号),但是没有统一的时钟,并且将时钟作为显式的输入对待。
5.1 基本型异步时序电路分析
基本型异步时序电路的模型组合电路延时
x 1
x m
z 1
z n
Y 1
Y r
y 1
y r
延时输入变量系统状态 激励状态输出变量系统总态
{x1,...xm,y1,...yr}
基本型异步时序逻辑模型的描述
基本型异步时序电路的稳定条件是 y = Y。换句话说,在系统达到稳定以后,Y和 y总是相同的。
正因为如此,在基本型异步时序电路中不能将 y和
Y分别看作现态和次态。
)()(
),(
),(
2
1
ttt
f
f
Yy
yxz
yxY
基本型异步时序电路分析的例子
&
&
&
X 1
X 2
RE S
Y 1
Y 2
y 1
y 2
1
&
&
&
1
激励状态系统状态 假想的延时环节系统总态
2122
1211
yyxY
yyxY
1RES?
y1y2 Y1 Y2x
1x2=00 x1x2=01 x1x2=10 x1x2=11
00 00 01 10 11
01 01 01 01 01
10 10 10 10 10
11 11 11 11 11
时的 激励函数 和 状态流程表稳定状态
Y与 y相同非稳定状态
Y与 y不同状态转换过程
0000
dd01
dd10
01
10
00
dd
dd
状态转换图功能,类似抢答器初始总态基本型异步时序电路状态转换的特点
假定所有输入中每次只有一个输入发生改变,所以没有类似 00→11 的状态转换。
输入改变以后,到达的总态如果是不稳定总态,则状态转换过程将继续进行,直到到达稳定总态。
基本型异步时序电路分析的一般过程激励方程输出方程状态流程表标出稳定状态状态转换图或时序图电路功能描述正确区分各变量之间的关系 作状态转换图要包含所有稳定状态和所有转换途径作时序图时要考虑实际的输入情况结合实际的输入情况讨论电路的功能另一个例子的分析
电路
&
&
X 1
X 2
Y 1
Y 2
y 1
y 2
1
&
&
1
z
&
&
激励状态输入输出
激励函数和状态流程表
22112
112122211
yxyxY
yxyyxyxxY
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
00
0001 01
10
00 111110
11110100
00 00
初始状态共有 8个稳定状态
状态转换图 0000
1100 1111
0110
1011
1101
0101
1000
01
00
11
00
01
10
10
11
10
01
10
11
00
01
00
11
包含所有稳定状态和所有转换途径
在特定输入条件下的时序图
x 1
x 2
Y 2
Y 1
y 1
y 2
z
t 1 t 2 t 3t 0 t 8t 7t 6t 5t 4 t 11t 10t 9 t 12
11 yxz?
在输入 x1x2 = 00,01,11,10,00,01,11,01,11,10,00,10,00序列下,
x1x2y1y2 = 0000,0110,1111,1011,0000,0110,1111,0101,1101,
1000,0000,1000,0000
功能描述若在输入 x2为逻辑 1期间,输入 x1发生 0到 1的变化
(上升沿),则在随后的 x1第一个逻辑 1期间输出等于逻辑 0,其余时间均输出逻辑 1。
若输入 x2为逻辑 0,则无论输入 x1如何变化,输出总是逻辑 1。
5.2 基本型异步时序电路中的竞争与冒险
竞争的例子
&
&
X 1
X 2
Y 1
Y 2
y 1
y 2
1
&
&
1
&
&
1
&11122
212111211
yxyxY
xxyyxyxxY
发生竞争的总态转换过程
输入序列:
00→10→11→01→11
总态转换:
0000→1011→1111→
0110→?
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
00
01
00
10
10
111100
0101
01 11
01
10
10
临界竞争与非临界竞争
基本型异步时序电路在某个输入作用下,
从一个稳定状态转换到另一个稳定状态时,
如果有 多于一个的状态变量需要同时发生变化,则称电路存在竞争。
如果电路最终达到的稳定状态依赖于状态变量变化的次序,则称为临界竞争;
如果最终达到的稳定状态相同,则称为非临界竞争。
临界竞争的判别
在状态转换表中选择一个稳定总态,然后从这个稳定状态向某个相邻列转移。
考察在该列内的状态转换过程。若此转换过程中所有的转换途径都能够到达同一个稳定状态,则此转换过程不发生临界竞争。
改变输入变量以及改变初始稳定总态,重复上两步的判别。直至遍历从所有的稳定总态出发的每种可能的转换途径。
临界竞争的例子 1
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
11
11
01
10
01
01
111110
1100
11 00
00
00
00
不同的转换次序导致不同的结果:临界竞争不同的转换次序,相同的结果:非临界竞争临界竞争的例子 2
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
11
1100
11
01
00
11
状态循环,无法达到最终稳定状态。这是一种特殊的临界竞争临界竞争的消除
在电路中插入可控延迟元件
修改状态流程表中的非稳定状态,使得循环的结果到达目标状态
采用相邻的状态分配来消除临界竞争
增加状态变量修改状态流程表
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
01
11
1100
11
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
01
11
1000
11
有临界竞争 无临界竞争修改原则:不改变最终结果在原问题中,11是对应于 10的次状态,最终结果要求转换到 11。
相邻的状态分配
相邻状态:
相邻状态分配:
使每个稳定态与它的激励态相邻,可以避免临界竞争。
00 01
1110
000
011
010 110
111
100
101001
相邻状态分配的例子
x 1 x 2
s 00 01 11 10
D
C
B
A
A
AA
B
BBB
BB
C
C
D
D
DD
D
A
B
D
C
00
1110
01
x 1 x 2
s 00 01 11 10
01
11
10
00
00
0000
10
101010
1010
11
11
01
01
0101
01
当系统在状态 A发生输入改变( 00→01 )时,
激励态为 B,为了不发生临界竞争,要求 A与
B相邻。
原始问题 要求的相邻关系相邻编码后的状态流程表增加状态变量
原始问题
x 1 x 2
s 00 01 11 10
D
C
B
A
A
A A
D
ABB C
B
C
C
D
D
DB
C
A B
D C
原始问题的相邻关系复杂,无法采用相邻编码达到无临界竞争
增加状态变量后,做到相邻编码 x 1 x 2 = 0 0 = 0 1 = 1 1 = 1 0
D
C
B
A
G
F
E
000
001
100
A
101
110
011
010
y 1 y 2 y 3
A
A
A
B
B B
B
E
C C
DD
DD
C
C
FF
G
000
000
000
000001 001
001
001
010 010
010
010
100 100
100100
011
110 110
101
x 1 x 2 x 1 x 2 x 1 x 2
Y 1 Y 2 Y 3
A B
D C
G
F
E
000
101
110
011
010100
001
增加了 3个中间状态,使得所有状态转换都是相邻的
5.3 基本型异步时序电路设计限制与要求
每次只允许一个输入变量发生改变
每次输入发生改变后,必须等待电路稳定后方可允许下一个输入发生变化
无冒险
无临界竞争基本型异步时序电路设计的一般过程原始问题状态转换图状态流程表化简状态分配激励函数输出函数逻辑图注意状态转换的相邻性,使得状态转换不发生临界竞争。
不能存在冒险自然语言描述,
也可以用波形图或其他方式描述例,试用逻辑门电路实现一个下降沿触发的 T触发器 。
这里的 T触发器与触发器一章中讨论的 T触发器略有不同,它只有一个输入端 T,在 T端发生负跳变就引起触发器翻转 。 我们可以画出该触发器的输入输出波形如下:
x
z
t 1 t 2 t 3t 0 t 4 t 10t 9t 8t 7t 5 t 6
时刻 t0 ~ t1( 或 t4 ~ t5) 为状态 A,t1 ~ t2为状态 B,t2 ~ t3为状态 C,t3 ~ t4为状态 D,一共 4个状态。由此得到的状态转换图和状态流程表如下:
X = 0
D
C
B
A
状态
A / 0
激励态/ 输出
CD
BA
1 / 0
0 / 1
0 / 0
1 / 1
1 / 0
0 / 11 / 1
0 / 0
D / 1
D / 1
B / 0
B / 0
A / 0
C / 1
C / 1
X = 1
T触发器的状态转换表状态激励态 /输出
X=0 X=1
00 00/0 01/0
01 11/1 01/0
11 11/1 10/1
10 00/0 10/1
激励态Y 1
0
11
11 0
00
x
y 1 y 2
00 101101
1
0 0
00
11 0
11
x
y 1 y 2
00 101101
1
0
激励态Y 2
输出z
1
21122
21121
Yz
yyyxyxY
yyxyyxY
&
x
Y 1
Y 2
y 1
y 2
z
&
&
&
&
&
&
1
1
例 设计一个异步时序电路,它有两个输入端 x
1x2,
一个输出端 z。当输入 x1x2 = 00时,输出 z =
0。若在 x1由 0变 1时 x2已经是逻辑 1,即 x2在
x1之前变为 1,则输出 z = x1x2。若 x1在 x2之前变为 1则输出 z= 0。
x 2
z
t 1 t 2 t 3t 0 t 4 t 9t 8t 7t 5 t 6
x 1
GFEADCBA A
状态转换图与状态流程表
X = 0 0
D
C
B
A
状态激励态
C/1 D/0B /0
A/0
01
11
01 00
10
00
X = 0 1
输出
X = 1 1 X = 1 0
G
F
E
D
C
B
A
G
F
E
G /0F /0E /0
00
00
10
00
11 01
10
11
11
B
B
A
A
A
A
C
F
C
F
EG
0
0
0
0
0
0
1D
E-
-
-
-
-
-
-
由于不允许同时改变两个输入变量,这些状态不可能经过化简
DCBA E F
D
C
B
G
E
F
D,E
B,G
B,G
C,F
C,F
B,G
C,F
B,G
D,E
C,F C,F C,F
A
D
C
B
G
E
F
S0
S2
S1
满足最小化、覆盖化和闭合性三个条件,从上述 3个最大相容类中选择 3个子集 {A,B,G},{C} 和 {D,E,F}来作为化简后的状态,记为 S0,S1和 S2
化简以后的状态流程表状态 激励态 输出x
1x2=00 x1x2=01 x1x2=11 x1x2=10
S0 S0 S0 S1 S2 0
S1 – S0 S1 S2 1
S2 S0 S0 S2 S2 0
状态分配
S1S0
S2
01
S3
00
10 11
原来的相邻关系修改后的相邻关系状态 y1y2 激励态 Y1Y2 输出 zx
1x2=00 x1x2=01 x1x2=11 x1x2=10
S0 00 00 00 01 10 0
S1 01 – 00 01 11 1
S3 11 – – – 10 1
S2 10 00 00 10 10 0
为了使状态相邻,增加过渡状态激励方程、输出方程 和逻辑图
2
2111212
21111
yz
yyxyxxY
xxyxY
&
x1
Y 1
Y 2
y 1
y 2
z
&
&
&
&
&
1
1
x2
5.4 脉冲型异步时序电路的分析和设计
脉冲型异步时序电路与同步时序电路的相同点
都以触发器作为记忆单元
都具有米利与摩尔两种模型,结构类似
脉冲型异步时序电路
触发器具有不同的时钟
时钟信号作为输入处理
同步时序电路
全部触发器具有统一的时钟
时钟信号是默认的,不作为输入处理脉冲型异步时序电路分析的例子
激励方程与输出方程
触发器的输入方程
x
Q 2Q 1
1D
&
z
C1
1D
C1
&D 1 D 2
CP 1 CP 2
212221,,QxQzQDQD
cp1 = x,cp2 = xQ1
脉冲型异步时序电路的特点
状态方程
121
22222222)1(2
11121111)1(1
,xQcpxcp
cpQcpQcpQcpDQ
cpQcpQcpQcpDQ
n
n
在脉冲型异步时序电路中触发器的 cp表达式中,
只有当表达式右端的逻辑函数产生对该触发器有效的触发时,表达式左边的 cp = 1。
状态转换表
Q2Q1 cp2cp1 Q2(n+1)Q1(n+1) I=0 I=1 I=0 I=1
00 00 01 00 01
01 00 11 01 11
11 00 11 11 00
10 00 01 10 10
I = 1,输入 x 的下降沿
I = 0,除了输入 x 下降沿以外的所有时刻
状态转换图和时序图
11
10
01000 / 0
1 / 01 / 1
0 / 0
0 / 0
0 / 0
1 / 0
1 / 0
I / z
x
Q 2
Q 1
D 1
z
CP 2
CP 1
I =1
脉冲型异步时序电路的设计原始问题分析状态转换图状态转换表化简状态分配激励函数 逻辑图可能包含触发器的时钟信号的选择自然语言描述,
也可以用波形图或其他方式描述输出函数设计例 1
试用 T触发器设计满足下列功能的脉冲型异步时序电路。电路的功能描述是:只有当输入脉冲序列为 x1→ x1→ x2的情况下,在输入 x2的同时输出 z;
其余情况下都没有输出。
T触发器是指只有一个 T输入端的触发器。该触发器的状态方程如下:
tQtQQ n 1
问题分析
米利模型
定义系统状态:
状态 A:原始状态;
状态 B:已经输入序列为 x1;
状态 C:已经输入序列为 x1→ x1,在此状态下输入 x2可以产生输出。
状态转换图
A C
B
x
1
/ 0
x / z
x
1
/ 0
x
2
/ 1
x
1
/ 0
x
2
/ 0
x
2
/ 0
注意:由于异步时序电路限制每次只有一个输入变量变化,所以从某状态出发的状态转换线的数目与输入变量的数目相等对比:同步时序电路一般是输入变量的组合
状态编码和状态转换表现态 次态 / 输出 y1y2 Y1Y2 / zx
1 x2 x1 x2
A B/0 A/0 00 01/0 00/0
B C/0 A/0 01 10/0 00/0
C C/0 A/1 10 10/0 00/1
注意:所有输入没有组合状态!
激励卡诺图和输出卡诺图
y1y2 Y1Y2 / zx
1 x2
00 01/0 00/0
01 10/0 00/0
10 10/0 00/1
Q Qn+1 t
0 0 0
0 1 1
1 1 0
1 0 1
x
1
y
1
y
2
10
11
01
00
x
2
10
11
01
000
1
1 0
1
0
00
10
0 1
d ddd
t
1
t
2
10
11
01
00
1
0
0
0
0
0
dd
z
y
1
y
2
y
1
y
2
x
1
x
2
x
1
x
2
状态转换表
T触发器的激励表激励卡诺图 输出卡诺图注意:所有输入没有组合状态,卡诺圈不能将不同的输入圈在一起!
激励函数、输出函数和逻辑图
12
22112
12211
yxz
yxyxt
yxyxt
x1
y1
T
&
z
&
x2
y1
≥1
y2
T
&
&
≥1
T1
T2
设计例 2:异步计数器
试用 JK触发器设计一个 12进制异步加法计数器
问题分析 x
y 1
y 0
y 3
y 2
0 01110987654321 1
计数器类问题具有固定的时序,所以用时序图分析比较容易
状态转换表 状态 y3y2y1y0 Y3Y2Y1Y0S
0 0000 0001
S1 0001 0010
S2 0010 0011
S3 0011 0100
S4 0100 0101
S5 0101 0110
S6 0110 0111
S7 0111 1000
S8 1000 1001
S9 1001 1010
S10 1010 1011
S11 1011 0000
电路结构
x
1J
C1
y
0
1K
1J
C1
y
1
1K
1J
C1
y
2
1K
1J
C1
y
3
1K
输出变量输入变量问题:每个触发器的时钟、激励如何获得?
触发器 0 触发器 1 触发器 2 触发器 3
时钟的选择原则
x
y 1
y 0
y 3
y 2
0 01110987654321 1
1、在触发器的状态发生改变时必须有时钟信号,并且该时钟信号具有相同的极性(即都是正跳变或者都是负跳变)。
2、在触发器不发生状态改变时的时钟信号越少越好。
以 y3 为例,cp3 必须在这两个时刻出现,具有相同的极性,
且越少越好。所以选 y1 作为 cp3 。
本例时钟的选择 x
y 1
y 0
y 3
y 2
0 01110987654321 1
cp0 = x,cp1 = y0,cp2 = y1,cp0 = y1
由于 Y0 在每个 cp0 有效时都翻转,所以触发器 0
只要简单地接成 T′触发器即可。
同理,触发器 1 也只要简单地接成 T′触发器。
激励卡诺图(触发器 2、触发器 3)
y
3
y
2
10
11
01
00
0
J
2
y
1
y
0
00 01 11 10
10
11
01
00
d
K
2
00 01 11 10
1d
d1
10
11
01
00
d
J
3
00 01 11 10
10
11
01
00
1
K
3
00 01 11 10
d1
d0
y
1
y
0
y
1
y
0
y
1
y
0
y
3
y
2
y
3
y
2
y
3
y
2
此激励卡诺图的获得过程与同步时序电路的过程类似。
不同之处在于,
触发器 2、触发器 3的时钟是 y1的下降沿,而 y1
的下降沿只有在状态 S3、
S7,S11才出现,所以在卡诺图中只有这 3个状态有效,其余状态均作为任意态处理。
激励函数和逻辑图
0 0 1 1
2 3 2 3 2 3
1,1
,1,,1
J K J K
J y K J y K
x
1J
C1
y 0
1K
1J
C1
y 1
1K
1J
C1
y 2
1K
1J
C1
y 3
1K
1
1111
1
陈光梦,数字逻辑基础,复旦大学出版社参考书:
1、阎石,数字电子技术基础,高教出版社
2、康华光,电子技术基础(数字部分),高教出版社
3、(美) Stanley G.Burns Paul R,Bond,电子电路原理
(下册)机械工业出版社
4,数字逻辑基础学习指导与教学参考,陈光梦,王勇
5、唐竞新,数字电子技术基础解题指南,清华大学出版社前言一、半导体与数字集成电路:
1,1947年晶体管发明引起了电子学的一次革命,晶体管是约翰 ·巴丁、沃尔特 ·布雷登和威廉 ·肖克莱共同发明,该发明促成了计算机、通信等方面的飞速发展。鉴于它的重要价值,这些人共同获得了 1956年的诺贝尔物理学奖。
2、五十年代末,德克萨斯仪器公司的基尔白、仙童半导体公司的诺依斯等人研究实现了集成电路。以后集成度越来越高,出现了超大规模集成电路,这是电子学的又一次革命,也是近代科学技术发展的新的标志。
3、在通信、电子系统广泛应用推动下,集成工艺的尺寸不断缩小。按集成度分为,SSI( 1-10门,逻辑门电路)、
MSI( 10—100门,计数器、移位寄存器器 ),
LSI( 100—1000门,小型存储器,8位算术逻辑单元)、
VLSI( 1000—100万门,大型存储器、微处理器 )、
ULSI( 超过 100万门,可编程逻辑器件、多功能集成电路)
4、根据处理的是数字量还是模拟量,集成电路分成模拟电路与数字电路。
5、数字电路特点:信息表示形式统一、可靠性高、便于计算机处理、尺寸小价格低廉、可以大规模集成。
7、数字电路分类:逻辑集成电路、存储器、各类 ASIC
二、本课程主要内容简介:
1、数字逻辑的基本理论:逻辑代数
2、无记忆的逻辑电路:组合逻辑电路
3、有记忆的逻辑电路:触发器及时序逻辑电路(同步和异步)
4、数字系统和可编程逻辑器件:软件实验、
后续课程学习数字逻辑基础第一章 逻辑代数基础本章要求:
掌握逻辑代数的基本公式和基本定理
掌握逻辑函数的化简方法
1.1 逻辑代数概述逻辑代数的历史:
爱尔兰数学家乔治 ·布尔在 1849年创立布尔代数。
后来得到香农等人的发展和应用,形成了一个完整的理论体系。
随着电子技术和计算机技术的发展,布尔代数在数字逻辑电路的分析和设计中得到了广泛的应用,统称为逻辑代数。
二值逻辑:
在一个二值逻辑关系中,
其条件和结论只能取对立的两个值,例如是和非、对和错、真和假等等。
注意点:
在逻辑代数中,通常用,1‖代表“真”,
用,0‖代表“假”。
二值逻辑的 ―1‖与,0‖是逻辑概念,仅代表真与假,没有数量大小。
在数字逻辑中,有时也用,1‖与,0‖表示二进制数。这仅仅是一种代码,实际的运算规律还是依照逻辑运算进行。
常用二 - 十进制代码:
十进制码 二进制码( 8421码) 余三码 余三循环码 移位码 5211码 5421码
0 0000 0011 0010 00000 0000 0000
1 0001 0100 0110 00001 0001 0001
2 0010 0101 0111 00011 0100 0010
3 0011 0110 0101 00111 0101 0011
4 0100 0111 0100 01111 0111 0100
5 0101 1000 1100 11111 1000 1000
6 0110 1001 1101 11110 1001 1001
7 0111 1010 1111 11100 1100 1010
8 1000 1011 1110 11000 1101 1011
9 1001 1100 1010 10000 1111 1100
用一个逻辑表达式来描述一个逻辑关系问题 。
逻辑条件 → 输入变量 ( 自变量 )
逻辑结论 → 输出变量 ( 因变量 )
),( BAfY?
逻辑函数:
真值表 逻辑函数式逻辑图 卡诺图硬件描述语言( HDL)
逻辑函数的表示方法:
以上四种表示方法可以相互转换,
各有特定用途。
硬件描述语言不但可以表示逻辑函数,还可以描述逻辑系统。
真 值 表:
A B Y
0 0 0
0 1 0
1 0 0
1 1 1
A B Y
逻辑函数:基本逻辑运算
与 Y = A · B
或 Y = A + B
非 Y = A A A
A + B
A · B
逻辑函数:,与” 运算
A B Y = A·B
0 0 0
0 1 0
1 0 0
1 1 1
A B Y
逻辑函数:,或” 运算
A B Y = A+ B
0 0 0
0 1 1
1 0 1
1 1 1
A
B
Y
逻辑函数:,非”运算
A Y
0 1
1 0
AY =
A Y
逻辑函数,反函数两个逻辑函数互为反函数,是指两个逻辑函数对于输入变量的任意取值,其输出逻辑值都 相反 。下面真值表中 F 和 G 互为反函数。
A B F(A,B) G(A,B)
0 0 0 1
0 1 0 1
1 0 0 1
1 1 1 0
逻辑函数,复合逻辑运算
BABA
1.与非
2.或非
3.异或
4.同或
ABY?
BAY
BAY
Y = A⊙ B BABA
复合逻辑运算的真值表
AB A+B BA?A B A⊙ B
0 0 1 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 0 0 1
逻辑图:基本逻辑单元
( GB4728.12-85)
& 1 1
逻辑与 逻辑或 逻辑非
& 1 =1
与非 或非 异或
=
同或与 或 非与非 或非 异或 同或逻辑图:符号标注规定
&
总限定符号
&?1 =1 = 外部逻辑状态逻辑约定小圈表示逻辑非也可采用极性指示符内部逻辑状态所有逻辑符号都由方框(或方框的组合)
和标注在方框内的总限定符号组成逻辑图:组合形式
&
≥1
A
B
C
Y
≥1
&
A
B
C
Y
≥1
一般表示法 组合表示法
A
C
B
Y Y
)()( CBBAY
逻辑图:国外符号对照(一)
1
&
1
或门与门非门旧 符号 美、日常用符号 国标符号
GB4728.12-85
逻辑图:国外符号对照(二)
异或门
&
与非门
1
或非门异或非门
=1
=
1.2 逻辑代数的基本定理一,变量与常量的运算 (0-1律 ):
A · 1 = A A + 0 = A
A · 0 = 0 A + 1 = 1
二、等幂律,A · A = A A+A = A
三、互补律,A · = 0 A+ = 1
四、自反律,= AA
A A
五、交换律:
AB = BA A+B = B+A
六、结合律:
A(BC) = (AB)C A+(B+C) = (A+B)+C
七、分配律:
A(B+C) = AB+AC A+BC = (A+B)(A+C)
八、反演律( De Morgan定理 ),
BABABAAB
逻辑代数的基本定理(一):
代入定理在任何一个逻辑等式中,若将其中一个 逻辑变量全部 用另一个 逻辑函数 代替,则等式仍然成立。
例:若 Y=AC + BC,C = P + Q
则 Y = A (P + Q) + B (P + Q)
逻辑代数的基本定理(二):
反演定理对于任何一个逻辑函数式,将其中的所有逻辑符号,+,,,·” 交换,
所有逻辑常量,1,,,0,交换,
所有逻辑变量取反。不改变原来的运算顺序。
这样得到的逻辑函数是原来逻辑函数的反函数。
例:
1))((
0
DCBAY
DCBAY
对偶定理对偶关系,逻辑符号,+,和,·”
逻辑常量,1,和,0,
对偶式,所有逻辑符号,+,,,·” 交换所有逻辑常量,1,,,0,交换若两个函数相等,则由他们的对偶式形成的两个函数也相等。
例:
逻辑代数的基本定理(三):
1))((
0)(
DCCACAD
DCCACDA
注意点:
反演定理:描述原函数和反函数的关系
(两个函数之间的关系)
对偶定理:描述原函数构成的逻辑等式和对偶函数构成的逻辑等式的关系(两个命题之间的关系)
在一般情况下,一个逻辑函数的反函数和对偶函数是不同的常用逻辑恒等式:
,( )
,( )
,
,( ) ( )
A A B A A A B A
A A B A B A A B A B
A A B A B A A B A B
A B A B B A B A B B
一,吸 收 律常用逻辑恒等式:
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
A B A C B C A B A C
A B A C B C A B A C
A B A C B CD A B A C
A B A C B C D A B A C
二,冗 余 律
1.3 逻辑函数的化简与形式转换目标函数形式(原因:实际电路的需要)
与-或形式
或-与形式
与非-与非形式
或非-或非形式
与或非形式
混合形式
BABA?
))(( BABA
BABA?
BABA
BAAB?
)( BAAB?
目标函数的要求:
逻辑电路的数量最少(面积约束)
逻辑电路的级数最少(速度约束)
电路稳定可靠 (避免竞争-冒险)
具体问题具体分析,没有一成不变的规定代数法化简逻辑函数:
公式法化简可以适用于任何场合,但是通常没有一定的规律可循,需要敏锐的观察力和一定的技巧。
最常用的化简手段是吸收律、冗余律和反演律。
代数法化简逻辑函数的例子
()
Y A B C A B C A B
A B A B A
Y A B C A B C A B
A B A B
B
例 一,化 简 函 数解,利 用,将 原 式 化 简,
代数法化简逻辑函数的例子
()
()
Y A B A CD B CD
A B A A
Y A B A CD B CD
A B A B CD
A B A B CD
AB
AB
例 二,化 简 函 数解,利 用,将 原 式 化 简代数法化简逻辑函数的例子 1
( ) ( )
( ) ( ) ( )
Y A B B C B C A B
AA
Y A B B C A A B C A B C C
A B B C A B C A B C A B C A B C
A B A B C B C A B C A B C A B C
A B B C A C
例 三,化 简 函 数解,利 用,在 原 式 中 添 加 一 些 项,然 后 化 简代数法化简逻辑函数的例子
=
Y A B C A C B C D
A B A C B C A B A C
Y A B C A C B C D
A B C A C B C B C D
A B C A C C A B A C B A
例 四,化 简 函 数解,利 用 冗 余 率 化 简
( ) ( )
逻辑函数形式转换的例子
* ( ) ( )
( * ) *
( ) ( ) ( ) ( )
Y A B CD
Y A B C D
A C B C A D B D
YY
A C B C A D B D
以 逻 辑 函 数 + 为 例,
例 一,将,与 - 或,函 数 化 为,或 - 与,式利 用 对 偶 定 理 实 现 之,
逻辑函数形式转换的例子 Y A B C D
Y A B C D
A B C D
例 二,将,与 - 或,函 数 +
转 化 为,与 非 - 与 非,式利 用 两 次 求 反,将 原 式 转 换,
+
逻辑函数形式转换的例子
( * ) *
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
Y A B CD
YY
A C B C A D B D
A C B C A D B D
A C B C A D B D
例 三,将,与 - 或,函 数 +
化 为,或 非 - 或 非,式解,先 利 用 对 偶 定 理 变 成,或 与,式,再 两 次 求 反逻辑函数形式转换的例子
( ) ( )
Y A B CD
Y A B CD
A B CD
A B C D
A C B C A D B D
例 四,将,与 - 或,函 数 +
化 为,与 或 非,式解,利 用 两 次 求 反,将 原 式 转 换
+
逻辑函数的卡诺图表示和卡诺图化简法:
特点:
图形化简法
标准的表达方式
规律的化简过程
变量数目有限制(最多 5~ 6个)
最小项:
在 n个逻辑变量的逻辑函数中,若 m为包含 n个因子的乘积项(逻辑与),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,
则称 m为这 n个变量的最小项。
例:
记为 m2
记为 m5
记为 m7abc
cba
cba
abccbacbaabcf)(
最大项:
在 n个逻辑变量的逻辑函数中,若 M为包含 n个因子的和项(逻辑或),且其中每个逻辑变量都以原变量或反变量的形式出现一次并仅仅出现一次,
则称 M为这 n个变量的最大项。
例:
记为 M2
记为 M5
记为 M7 cba
cba
cba
cbacbacbaabcf
))()(()(
最小项与最大项的比较:
以 3变量函数为例:
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
CBAMCBAm
77
66
55
44
33
22
11
00
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
最大项:最小项:
逻辑函数的两种标准表达式:
最小项之和形式,简称为积之和形式
最大项之积形式,简称为和之积形式
10),...,,(
12
0
21 ormxxxf i
i
iin
n
=,
=
10)(),...,,(
12
0
21 orMxxxf i
i
iin
n
=,
=
最小项和最大项的性质:
对于一个具有 n个变量的逻辑问题,在输入变量的任意一种取值情况下,总有:
一、必有且仅有一个最小项的逻辑值为 1;必有且仅有一个最大项的逻辑值为 0。
二、任意 2个不同的最小项之积为 0;任意两个不同的最大项之和为 1。即三、全体最小项之和为 1;全体最大项之积为 0。即四、下标相同的最大项和最小项互补。即
1,0 jiji MMmm
12
0
12
0
0,1
nn
i
i
i
i Mm
ii Mm?
标准表达式的关系:
性质 1、一个逻辑函数的两种标准逻辑表达式之间,存在以下关系:
若 则性质 2、一个逻辑函数与其反函数的逻辑表达式之间,存在以下关系:
若 则
imF jMF
imF iMF
将逻辑函数化成标准形式,
要求按积之和形式展开函数,可以将 非最小项的积项 乘以形如 的项,其中 A 是那个非最小项的积项中缺少的输入变量,然后展开,最后合并相同的最小项。
要求按和之积形式展开函数,可以将 非最大项的和项 加上形如 的项,其中 A 是那个非最大项的和项中缺少的输入变量,然后展开,最后合并相同的最大项。
AA?
AA?
卡诺图:
BC
A 00 01 11 10
0
1
0 1 3 2
64 5 7
B
A 0 1
0
1
0 1
2 3
CD
AB
00 01 11 10
0 1 3 2
64 5 7
00
01
11
10
12 13 15 14
108 9 11
特点:
每个方格代表一个最小项或者最大项。
变量排列按照相邻规则进行,即在卡诺图中相邻的方格在逻辑上也相邻。(相邻的意义:两个最小项或最大项之间只有一个变量发生变化)
卡诺图的填法:
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
)12,10,7,6,3,2,1(
)15,14,13,11,9,8,5,4,0(),,,( 4321
M
mxxxxf
最小项填 1
最大项填 0
卡诺图化简法根据相邻的方格在逻辑上也相邻的原理,只要相邻的方格满足以下条件:
一、逻辑值相同;
二、小方格数为 个。
就可以将相邻的方格合并为一个 卡诺圈 。
卡诺圈越大,可以消去的变量越多,最后得到的逻辑函数越简单。
若卡诺圈包含的小方格数为 个,而这个逻辑函数具有 m个变量,则这个卡诺圈对应的项中包含的变量数目为 m–n个。
n2
n2
卡诺图的圈法( SOP):
圈,1”,包含 个方格、尽可能大、不遗漏
n2
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
X 1 X 2 X 3
X 1 X 4
X 2 X 3 X 4
X 1 X 2 X 3
41321321432 xxxxxxxxxxxf
卡诺图的圈法( POS):
圈,0”,包含 个方格、尽可能大、不遗漏n2
X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 0
01 1 0
00
01
11
10
0 1 1 1
01 1 1
X 2 + X 3 + X 4
X 1 + X 3
X 1 + X 2 + X 4
X 1 + X 2 + X 3 + X 4
))()()(( 314324321421 xxxxxxxxxxxxf
卡诺图化简法的要点:
将逻辑函数化为标准形式(或真值表)
填卡诺图
圈卡诺圈(满足 个方格要求、尽可能大、
不遗漏)
根据卡诺圈写出化简后的逻辑函数
若有必要,运用反演律对所得结果进行变换
n2
卡诺图化简的例(一)
12(,,,) (,,,)
( 3,4,6,1 1,1 2,1 4 ) ( 0,1,2,5,8,1 0,1 3 )
F f a b c d F f a b c d
mm
0
01
1001
10
00 01 11 10
00
10
11
01
ab
0
0
01
1
0
0
cd
1
10
0010
01
00 01 11 10
00
10
11
01
ab
1
0
10
0
0
1
cd
卡诺图化简的例(二)
34(,,,) (,,,)
( 0,1,2,5,8,1 0,1 3 ) ( 3,5,7,9,1 1)
F f a b c d F f a b c d
MM
0
01
1101
10
00 01 11 10
00
10
11
01
ab
0
1
01
1
1
0
cd
1
11
1001
01
00 01 11 10
00
10
11
01
ab
1
1
10
1
0
1
cd
卡诺图化简法的一些术语
蕴涵:逻辑函数的“与或”表达式中的各项
质蕴涵,不能再与其他蕴涵合并的蕴涵
必要质蕴涵:包含一个或多个唯一的最小项的质蕴涵
覆盖:包含了逻辑函数中所有最小项的一些蕴涵之“或”
非冗余覆盖:其中每一个蕴涵都是必不可少的覆盖
最小覆盖:包含蕴涵个数最少,每个蕴涵中包含的最小项又较多的非冗余覆盖最小覆盖的不唯一性,X 3 X 4
X 1 X 2
00 01 11 10
1 0 0 1
01 1 1
00
01
11
10
0 1 1 0
10 0 1
一个逻辑函数,其最小覆盖总是由必要质蕴涵和部分质蕴涵组成,所以它的最小覆盖可能不是惟一的,即它的最简逻辑表达式可能不是惟一的。
绿色:必要质蕴涵红色和黑色:质蕴涵最小覆盖:
绿色+红色或:绿色+黑色利用卡诺图运算来进行逻辑化简逻辑函数 → 卡诺图逻辑函数的运算 → 卡诺图的运算卡诺图的运算 → 对应的方格进行运算证明(以“与”运算为例):
1 1 2 2
1 2 1 2
1 2 1 2
12
,,
i i i i
i i i i
i i i i i i j
i i j
i i i
i
f m f m
f f m m
m m m
m
设 则 有
CD
00 01 11 10
1 1 1 1
11 1 1
00
01
11
10
1 1 1
11 1
AB
CD
00 01 11 10
11 1 1
00
01
11
10
1 1 1 1
AB
CD
00 01 11 10
11 1 1
00
01
11
10
1 1 1
AB
Y B C DA
·=
·=
)14,13,12,7,6,5,4(),,,( mDCBAY
BADBCBY
C D ABY
常规化简运算化简卡诺图运算的一些有关规律:
0重心,0号方格(即全部变量为 0的方格)
1重心,号方格(即全部变量为 1的方格)
包含 0重心但不包含 1重心的质蕴涵,其表达式全部用反变量标注
包含 1重心但不包含 0重心的质蕴涵,其表达式全部用原变量标注
既不包含 0重心也不包含 1重心的质蕴涵,其表达式中一定既有原变量又有反变量
目标函数是与非形式并要求全部用原变量表达时,
围绕 1重心进行。其中卡诺圈圈 1,阻塞圈圈 0
目标函数是或非形式并要求全部用原变量表达时,
围绕 0重心进行,其中卡诺圈圈 0,阻塞圈圈 1
12?n
不完全确定的逻辑函数的化简,
不完全确定的逻辑函数:
由 n 个逻辑变量构成的逻辑函数中,有效的逻辑状态数小于 个。那些无效的状态或者是不可能出现,或者无意义。
n2
这些无效的状态被称为任意项,或称为无关项、约束项、禁止项,等等任意项的处理:
任意项的值既可为 1也可为 0
带有任意项的逻辑函数在化简时既可以将任意项圈入卡诺圈,也可以不圈入卡诺圈适当地将一些任意项圈入卡诺圈,可以使化简的结果得到极大的简化
X 3 X 4
X 1 X 2
00 01 11 10
1 1
00
01
11
10
d 1 1
d 1 d
d
黄色:不考虑任意项红色:考虑任意项例
0
10
0110
01
00 01 11 10
00
10
11
01
uv
d
1
dd
d
1
0
wx
56(,,,) (,,,)
( 2,3,4,5,1 3,1 5 ) ( 1,5,7,9,1 3,1 5 )
( 8,9,1 0,1 1 ) ( 8,1 0,1 1,1 4 )
F f a b c d F f u v w x
mm
dd
0
10
0011
10
00 01 11 10
00
10
11
01
ab
d
1
dd
0
d
1
cd
注意点:
任意项的表现形式除了直接用最小项形式表示外,还经常用逻辑表达式表示,称为约束方程对于用约束方程给出的逻辑问题,一般要将约束条件改写成用最小项表示的任意项形式,
才能用卡诺图进行化简例如,A =1,B =1这种输入状态不可能出现,
可记为 AB=0。在卡诺图中就是对应 AB=11的最小项为任意项使用异或函数的卡诺图化简,
异或运算的性质
ABBA
CBACBACBA )()(
AAAA 1,0
1,0 AAAA
BABABA
异或(同或)函数的卡诺图:
,棋盘格”特征
异或 函数的棋盘格特征,0号方格等于 0
同或 函数的棋盘格特征,0号方格等于 1
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1 1
1
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1 1
1
同或函数异或函数利用异或函数化简的例子(一)
1
00
0010
00
00 01 11 10
00
10
11
01
ab
0
1
10
0
0
0
cd
))(( dbcaP dcbW
0
01
0101
01
00 01 11 10
00
10
11
01
ab
0
1
10
0
1
1
cd
利用异或函数化简的例子(二)
X 3 X 4
X 1 X 2
00 01 11 10
1
100
01
11
10
1
1
1
1
1 2 3 4 1 3
( 1,2,4,7,8,1 3 )
( ) ( )
fm
X X X X X X
先补成异或形式
(黄色格子)
再利用运算法去除多输出逻辑函数的化简:
考虑公共蕴涵的使用
公共蕴涵也是越大越好
有时在寻找公共蕴涵过程中会有多种可能的方案出现,这时要根据实际情况作一定的取舍,部分地要依赖于人为的经验寻找公共蕴涵的过程:
单独化简。
观察在多个输出函数中的公共最小项。如果多输出函数比较复杂,这个过程也可以借助表格进行 。
将相邻的公共最小项合并成公共蕴涵(画公共卡诺圈),同时,将在单独化简的卡诺图中包含公共蕴涵的质蕴涵(卡诺圈)划去 。
检查覆盖情况:在卡诺图中观察是否存在未被圈入的最小项。如果没有任何其他最小项未被圈入(完成覆盖),则可以认为化简完成。否则要重新划分卡诺圈,将未被包含的最小项圈入。
第一章概要(一):
逻辑代数是借助符号、利用数学方法研究逻辑推理和逻辑计算的一个数学分支。二值逻辑的逻辑变量只包含 0和 1,它们表示两个对立的逻辑状态。
基本的逻辑运算有“与”、“或”、“非”三种,可以由此得到各种复合逻辑运算。逻辑代数运算借用了普通代数的某些运算符号,但是运算规律和其中的含义与代数运算迥然不同。为了进行逻辑运算,必须熟练掌握 1.2.1节的基本公式。另外,掌握 1.2.2节的辅助公式和 1.2.3节的基本定理,对于提高逻辑运算的速度和证明逻辑等式是极为有用的。
第一章概要(二):
逻辑函数有真值表、逻辑表达式、逻辑图和卡诺图四种表达形式,它们各具特点并且可以相互转换,可以根据使用的需要合理选用。
逻辑函数的化简是本章的重点。有代数法和图形法两种基本化简方法:公式法化简可以适用于任何场合,
但是通常没有一定的规律可循,需要敏锐的观察力和一定的技巧。卡诺图化简法可以按照一定的步骤进行,
但是只适用于变量数目较少的场合。在卡诺图化简过程中也有一些技巧性的手段,比较重要的有卡诺图运算法和影射变量卡诺图化简法。
第一章概要(三):
由于实际的逻辑系统为了获得最好的性能,可以由各种不同类型的逻辑电路构成,所以逻辑化简的目标形式可以是多种多样的,我们在本章讨论了几种常见的形式。可以通过一定的方法得到需要的逻辑函数形式:
包括在卡诺图化简后利用反演定理转换以及直接进行卡诺图运算化简等。
随着计算机辅助设计软件的发展,利用计算机软件进行逻辑化简已经越来越成熟。计算机化简的基本手段是表格法和代数法。
数字逻辑基础第二章 组合逻辑电路本章要求:
掌握组合逻辑电路的基本分析方法和一般设计过程
掌握常见逻辑模块的功能及其使用
掌握实际逻辑电路中冒险现象的形成原理及其防止
2.1 组合逻辑电路的分析组合逻辑的结构:
组合逻辑电路输入信号输出信号组合逻辑电路(简称组合电路)任意时刻的输出信号仅取决于该时刻的输入信号,与信号作用前电路原来的状态无关
=1
=1
=1
A
B
A
B
Y
Y 1
Y 2
&
&
&
&A
B
Y
Y 1
Y 2
Y 3
组合逻辑的例:两种异或门结构半加器
&
&
&
&A
B
S
1
Co
A B Co S
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
全加器
Ci A B Co S
0 0 0 0 0
0 0 1 0 1
0 1 0 0 1
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
全加器的结构
&
&
&
&A
B S
&
&
&
&
Ci
&
Co
Co 1
Co 2
两个半加器的组合:
加数 1+加数 2+进位=和,进位 1,或” 进位 2=进位常用组合逻辑模块
组合逻辑模块是一些基本的逻辑单元
熟悉组合逻辑模块的结构与功能,可以帮助分析复杂的逻辑结构
在设计逻辑电路时,可以从逻辑模块出发进行设计将输入的某种代码(通常为二进制码),转换为事件或另一种代码输出的过程,称为译码。
转换为事件输出的译码器,是编码器的逆过程。
转换为另一种代码输出的译码器,根据两个代码之间的关系,可以有各种不同的译码器。
常见的译码器:
转换为事件输出的译码器,3-8译码器、等等。
转换为另一种代码输出的译码器:( LED) 七段译码器,BCD译码器、等等。
译码器
3-8译码器( 74LS138)
Y3
&
&
11
11
11
1
Y1
Y0
A2
S2
A0
A1
&
&
Y2
Y7
&
&
Y5
Y4
&
&
Y6
&
S3
S1
S
A2
S2
A0
A1
S3
S1
&
Y3
Y1
Y0
Y2
Y7
Y5
Y4
Y6
0
1
2
3
4
5
6
7
1
2
4
EN
B I N/ OCT
使能相关输 入 输 出
S1 A2 A1 A0 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7
0 x x x x 1 1 1 1 1 1 1 1
x 1 x x x 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 1 1 1
1 0 0 0 1 1 0 1 1 1 1 1 1
1 0 0 1 0 1 1 0 1 1 1 1 1
1 0 0 1 1 1 1 1 0 1 1 1 1
1 0 1 0 0 1 1 1 1 0 1 1 1
1 0 1 0 1 1 1 1 1 1 0 1 1
1 0 1 1 0 1 1 1 1 1 1 0 1
1 0 1 1 1 1 1 1 1 1 1 1 0
32 SS?
3- 8译码器的真值表编码器将输入信号(事件),用一个代码表示(输出)的过程,称为编码。
编码器有普通编码器和优先编码器两种。
普通编码器在同一个时刻只能允许有一个输入(单个事件)。
优先编码器允许多个事件同时发生,按照事先设定的优先级,确定输出代码。
8-3优先编码器
&
Y0
Y1
Y2
≥1
& ≥ 1
& ≥1
&
&
11
1
11
11
11
1
1
1
EX
Ys
I0
I1
I2
I3
I4
I5
I6
I7
S
Y0
Y1
Y2
EX
Ys
I0
I1
I2
I3
I4
I5
I6
I7
S
6 /Z 1 6
7 /Z 1 7
4 /Z 1 4
5 /Z 1 5
2 /Z 1 2
3 /Z 1 3
0 /Z 1 0
1 /Z 1 1
≥1
16
17
14
15
12
13
10
11
1a
2a
4a
a
18
H PR/B I N
E Na /V18
互连关联或关联
s I7 I6 I5 I4 I3 I2 I1 I0 Y2Y1Y0
0 0 X X X X X X X 0 0 0
0 1 0 X X X X X X 0 0 1
0 1 1 0 X X X X X 0 1 0
0 1 1 1 0 X X X X 0 1 1
0 1 1 1 1 0 X X X 1 0 0
0 1 1 1 1 1 0 X X 1 0 1
0 1 1 1 1 1 1 0 X 1 1 0
0 1 1 1 1 1 1 1 0 1 1 1
1 X X X X X X X X 1 1 1
8- 3优先编码器的真值表数据选择器从多个输入逻辑信号中选出一个逻辑信号送到输出端的器件,也称为多路器。
一个数据选择器连接 m个输入,由 n个选择变量决定这 m个输入中的哪一个被送到输出端。
这里 m = 2n。
2选 1数据选择器 &
Y
≥1
I 0
I 1
S
0
1
MU X
I 0
I 1
S
Y
G
0
1
与关联
10 SIISY
&
Y
≥1
1
11
11
11
Y
I0
I1
I2
I3
I4
I5
I6
I7
S0
1
S1
S2
En
0
2
}
G
0
7
EN
0
1
2
3
4
5
6
7
M UX
I0
I1
I2
I3
I4
I5
I6
I7
S0
S1
S2
En
Y
Y
8选 1数据选择器
7
0i
ii ImENY
2.2 组合逻辑电路的设计
基于门电路的设计基本的设计方法。
基于组合逻辑模块的设计利用组合电路模块实现主要功能,辅以门电路,结构比较简单。
运算电路设计需要熟悉二进制运算的特点,采用迭代设计。
一、基于门电路的设计方法逻辑抽象确定输入输出关系定义输入输出变量逻辑函数表达式真值表化简与变换逻辑图
(电路图)
例 1
设计一个带控制端的 3位输入代码检测电路。
当控制端 P为 0时,输入 >3并且 <6
时输出为 1;
当控制端 P为 1时,输入 <6时输出为 1 。
要求完成最简设计。
例 1的解:真值表
P ABC Y
0 000 0
0 001 0
0 010 0
0 011 0
0 100 1
0 101 1
0 110 0
0 111 0
P ABC Y
1 000 1
1 001 1
1 010 1
1 011 1
1 100 1
1 101 1
1 110 0
1 111 0
0 0 0 0
1 1 0 0
BA
PC
1 1 0 0
1 1 1 1
00
01
11
10
00 01 11 10
Y C B PC
例 1的解:卡诺图,化简例 1的解:利用卡诺图运算的方案
0 0 0 0
1 1 0 0
BA
PC
1 1 0 0
1 1 1 1
00
01
11
10
00 01 11 10
BCPBCC
BCPCY
)(
&B
P
C
Y
&
&
&
例 2
Dec Bin Gray
B3B2B1B0 G3G2G1G0
0 0000 0000
1 0001 0001
2 0010 0011
3 0011 0010
4 0100 0110
5 0101 0111
6 0110 0101
7 0111 0100
Dec Bin Gray
B3B2B1B0 G3G2G1G0
8 1000 1100
9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
设计一个 4位格雷码和二进制码的相互转换电路。
例 2的解:格雷码转换到二进制码的卡诺图
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1 1 1
1 1 1 1
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
G 3 G 2
G 1 G 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
B2 B1 B0
G3 = B3,G2~G0 转换到 B2~B0 的转换关系如上面卡诺图所示
01012123233,,,GBBGBBGGBGB
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1 1 1
1 1 1 1
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
B 3 B 2
B 1 B 0
00
01
00 01 11 10
11
10
1 1
1 1
1 1
1 1
G2 G1 G0
G3 = B3,B2~B0 转换到 G2~G0 的转换关系如上面卡诺图所示
01012123233,,,BBGBBGBBGBG
例 2的解:二进制码转换到格雷码的卡诺图
S
Y 3
&
≥1
X 3
X 0
X 1
X 2
=1
&
≥1
=1
=1
Y 2
Y 1
Y 0
以 S 作为选择端,S=0,G → B; S=1,B → G
3 3 2 3 2
1 2 1 0 1 0
,
,
Y X Y X X
Y Y X Y Y X
3 3 2 3 2
1 2 1 0 1 0
,
,
Y X Y X X
Y X X Y X X
1 2 2 1
0 1 1 0
()
()
Y S Y S X X
Y S Y S X X
S=0
S=1
例 2的解:结果合成后的 Y1和 Y2
例 3
某特种录音机,具有下列功能:
按下 A轨键,磁带正转;按下 B轨键,磁带反转按下高速键,磁带高速转,方向由 A,B轨键确定按下快退键,磁带高速反转,方向由 A,B轨键确定试设计控制电路解:此问题的逻辑抽象为:
输入,A= 1,0表示 A 轨运行、停止
B=1,0表示 B 轨运行、停止
F= 1,0表示高速、常速
R= 1,0表示磁带高速反转、常速输出,M=1,0表示电机运转、停止
RL1=1,0表示电机反转、正转
RL2=1,0表示电机高速、常速根据上述逻辑抽象,可以得到真值表如下:
A
A轨
B
B轨
F
高速前进
R
高速后退
M
1/0
转 /停
RL1
1/0
反 /正
RL2
1/0
高 /常
0 0 x x 0 d d
1 0 0 0 1 0 0
1 0 0 1 1 1 1
1 0 1 0 1 0 1
1 0 1 1 0 d d
0 1 0 0 1 1 0
0 1 0 1 1 0 1
0 1 1 0 1 1 1
0 1 1 1 0 d d
1 1 x x 0 d d
AB
FR
00
01
00 01 11 10
11
10
1 1 1
1 1 1
AB
FR
00
01
00 01 11 10
11
10
d d d d
1 d 1
d d d d
1 d
AB
FR
00
01
00 01 11 10
11
10
d d d d
1 d 1
d d d d
1 d 1
M R L 1 R L 2
RFRL
BRRBRL
FRABBAM
2
)(1
)()(
以上只是一种方案,可能有其他方案二、基于组合逻辑模块的设计方法
1、用数据选择器构成组合电路
0
1
} G
0
3
0
1
2
3
M U X
1
c
0
c
b
a
Y
1 0 1 01 0 0 0 1 1 2 1 0 3(,,)
( ) 1 ( ) ( ) 0 ( )
iY S S I S S I S S I S S I S S I
a b a b c a b a b c
a b a b c a b c
0
2}
G
0
7
0
1
2
3
4
5
6
7
MU X
C 1
0
1
B
A
C 2
Z
B
一般而言,用 2n选 1数据选择器实现 n+1个输入变量的逻辑函数需要且仅需要一个非门。
例,
2 1 2
2 1 1 21
1 2 1 2 1
2
22
1 1 1 2
12
1 2 1 2
11
22
22
11
( ) ( ) ( ) ( )
( ) ( )
( ) ( ) 0
( ) 1 ( )
Z C C A B C C A B C C A B C C A B
C C A B C C A B C C A B
C C A C C B C C A B
C C A B
C C A B C C A B
C C A B C C A
C C A C C A B
1 2 1 2
( ) ( )C C A B C C A B
0
2}
G
0
7
0
1
2
3
4
5
6
7
MU X
C 1
1
1
0
1
0
0
C 1
B
A
C 2
Z
特定条件下,用 2n选 1数据选择器实现 n+1个输入变量的逻辑函数可以不需要非门。
仍以前例说明:
2 1 2
2 1 1 21
1 2 1 2 1
2
22
1 1 1 2
12
2
2 2 1 1
22
21
22
1
22
2
( ) ( ) ( ) ( )
1
1 0
Z C C A B C C A B C C AB C C A B
C C A B C C A B C C A B
C C A C C B C C AB
C C A B
C A B C A B C C A B C
C A B C AB C C A B
C A B C C A B
C A B C AB
C
2
2 2 1
10
0
A B C A B
C A B C AB C
化简无 C1的非以 C1作为数据端
2、用译码器构成组合电路
&
S
Co
B
0
Ci
A
0
1
&
0
1
2
3
4
5
6
7
1
2
4
EN
B I N /O C T
&
76537653
74217421
YYYYmmmmC
YYYYmmmmS
o
例:
全加器电路三、运算电路设计
1、加法器
A
B
& ≥1
=1
Ci
S
Co
=1具有最短延时的全加器电路单元电路辅助输出辅助输入主输入主输出迭代设计原理
CoCi
Σ
CoCi
Σ
CoCi
Σ
CoCi
Σ
A 0 B 0 A 1 B 1 A 2 B 2 A 3 B 3
S 0 S 1 S 2 S 3 C O3
C i0
具有串行进位的 4位二进制加法器
1 1 1 1
0 0 0 1
1 1 1 0
1 1 0 1 0 1
2 2 2 1
2 2 1 2 1 0 2 1 0 1
3 3 3 2
3 3 2 3 2 1 3 2 1 0 3 2 1 0
()
i i i i i i i i
i i i
i i i
i i i i i i i
C A B A C B C A B A B C G P C
C G P C
C G P C
G P G P P C
C G P C
G P G P P G P P P C
C G P C
G P G P P G P P P G P P P P C
G A B
P A B
其 中,称 为 进 位 产 生 信 号
,称 为 进 位 传 播 信 号
1
加法器的超前进位
CI - 1
CG 0 CI - 1
&
&
&
&
CG 1
CG 2
CG 3
CP 3
CP 2
CP 1
CP 0
CO 0
CO 1
CO 2
C G 4
C P 4
CG 0
CG 1
CG 2
CG 3
CP 0
CP 1
CP 2
CP 3
C P G
CP 4
CG 4
CO 2
CO 1
CO 0
& 1
1
1
1
4位超前进位电路
A
B
=1
1
&
&
C
S
CP
CG
配合超前进位电路的全加器迭代单元全加器迭代单元
S 0
全加器迭代单元
S 1
全加器迭代单元
S 2
全加器迭代单元
S 3
超前进位产生电路
A 0 A 3A 2A 1B 0 B 1 B 3B 2
C- 1
G 0 G 1 G 3G 2P 0 P 1 P 3P 2C 0 C 1 C 2
G 4 P 4
C- 1
Σ
0
3
0
3
P
Q
0
3
Σ
CI
CP
CG
带超前进位的 4位加法器利用加法器实现组合逻辑例:设计一个能将
BCD码转换为余 3码的代码转换器
8421BCD 码
DCBA
余 3 码
Y
3
Y
2
Y
1
Y
0
0000 001 1
0001 0100
0010 0101
001 1 01 10
0100 01 1 1
0101 1000
01 10 1001
01 1 1 1010
1000 101 1
1001 1 100
分析:
由余 3码与 BCD码的代码表可知,余 3码的 函数表达式 为:
Y3Y2Y1Y0=DCBA+0011
四位全加器
C0
C B A 1
A0A1A2A3 B0B1B2B3
0 0
C4 S0S1S2S3
Y0Y1Y2Y3
D
利用 4位全加器实现余 3码
0011
BCD码
2、减法器
XY
Bi 00 01 11 10
0
1
0 1 0 1
01 0 1
0 1 0 0
01 1 1
0
1
XY
Bi 00 01 11 10
D
Bo
iO BYXDB),(
全减器 X
Y
& ≥1
=1
Bi
D
Bo
=1
二进制补码
一个包含符号位在内为 n位的有符号二进制数,正数用原码表示,负数用补码表示。
正数和零,x = a;负数,。其中
a是该有符号数的绝对值。
补码的求法:绝对值 按位取反再加 1
2 nxa
将被减数作为加法器的一个加数,将减数以补码形式相加(按位取反再加 1:按位取“非”,同时将最低位的进位置成逻辑 1),就实现了二进制减法。
CI
Σ
P
0
0
3
3
Q
CO
0
3
Σ
CI
Σ
P
0
0
3
3
Q
CO
0
3
Σ
A /S
A 0
=1
=1
=1
=1
=1
=1
=1
=1
A 1
A 2
A 3
B 0
A 4
A 5
A 6
A 7
B 1
B 2
B 3
B 4
B 5
B 6
B 7
D 4
D 5
D 6
D 7
D 0
D 1
D 2
D 3
C O / B O
多位减法器
3、乘法器乘数 A A3 A2 A1 A0
乘数 B B3 B2 B1 B0
——————————————————————
部分积 P30 P20 P10 P00
部分积 P31 P21 P11 P01
部分积 P32 P22 P12 P02
部分积 P33 P23 P13 P03
——————————————————————
最后积 P7 P6 P5 P4 P3 P2 P1 P0
MU
A 3 B 3
MU
A 2 B 3
MU
A 1 B 3
MU
A 0 B 3
MU
A 3 B 2
MU
A 2 B 2
MU
A 1 B 2
MU
A 0 B 2
MU
A 3 B 1
MU
A 2 B 1
MU
A 1 B 1
MU
A 0 B 1
MU
A 3 B 0
MU
A 2 B 0
MU
A 1 B 0
MU
A 0 B 0
0
0
0
0
0000
P 7 P 6 P 5 P 4 P 3 P 2 P 1 P 0
Σ
MU &
CICO
4、除法器
10101 商除数 B 0101 ) 01101011 被除数 A
- 0101
0011 够减,商 =1,余数 R0 = A – B
- 0000
0110 不够减,商 =0,余数 R1 = R0
- 0101
0011 够减,商 =1,余数 R2 = R0–B/4
- 0000
0111 不够减,商 =0,余数 R3 = R2
- 0101
010 够减,商 =1,余数 R4 = R2–B/16
第一步:试商
BRR iii 211
当 Ri ≥ 0时,够减,商等于 1,将此余数保留到下一次。
下一个余数为
BRR iii 11 2 1
当 Ri < 0时,不够减,商等于 0,应该将余数恢复为原来的余数。下一个余数为
BRR iii 111 2 1
BBBRR iiiii 11 2 1221,)21(由于
,所以上式就是
BRBBRR iiiiii 111 2 12 1)21(
加减交替法:
1,第一次运算时从被除数的最高位开始减去除数,
得到余数。
2,若某次余数为正数(符号位为 0),则对应的商为 1,下一步运算时减去右移一位的除数得到新的余数;若某次余数为负数(符号位为 1),则对应的商为 0,下一步运算时加上右移一位的除数得到新的余数。
3,重复第二步运算,直到余数小于除数为止。
加减交替法的运算步骤二进制除法的运算规律,用二进制补码运算来做减法。若结果是正数,则符号位为 0,并且产生符号位的进位(进位为 1) ;若结果是负数,则符号位为 1,并且不产生符号位的进位(进位为 0)。所以,符号位的进位就是所求的商。
10101 商
0101 ) 01101011
+ 1011 加 B的补码(减 B)
100011 符号位 =0,符号位进位 =1(商 =1)
+ 1011 够减,加 B/2的补码(减 B/2)
011100 符号位 =1,符号位进位 =0(商 =0)
+ 0101 不够减,加 B/4
100011 符号位 =0,符号位进位 =1(商 =1)
+ 1011 加 B/8的补码(减 B/8)
011101 符号位 =1,符号位进位 =0(商 =0)
+ 0101 不够减,加 B/16
10010 符号位 =0,符号位进位 =1(商 =1)
B 3
DU
Σ
DU =1
CICO
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
B 3
DU
B 2
DU
B 1
DU
B 0
DU
A 7 A 6 A 5 A 4
A 3
A 2
A 1
B 3
DU
B 2
DU
B 1
DU
B 0
DU
A 0
Q 0Q 1Q 2Q 3Q 4
1
5、数字比较器数据比较器有两组输入变量,它将输入的两组逻辑变量看成是两个二进制数 A与 B,然后对这两个二进制数进行数值比较。比较的结果有三种情况,A>B,A<B和 A=B。
输 入 输 出
A B A>B A=B A<B
0 0 0 1 0
0 1 0 0 1
1 0 1 0 0
1 1 0 1 0
1位数字比较器的真值表辅 助 输 入 输 入 辅 助 输 出
Ai-1>Bi-1 Ai-1=Bi-1 Ai-1<Bi-1 Ai Bi Ai>Bi Ai=Bi Ai<Bi
0 1 0 0 0 0 1 0
1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 1
x x x 0 1 0 0 1
x x x 1 0 1 0 0
0 1 0 1 1 0 1 0
1 0 0 1 1 1 0 0
0 0 1 1 1 0 0 1
比较器的迭代单元的真值表
][)(][
][)(][
][)(][
11
11
11
iiiiiiii
iiiiii
iiiiiiii
BABABABA
BABABA
BABABABA
1,每个输出由两部分组成:本位比较结果和低位比较结果的进位。
2,本位比较相等的条件为 A,B的“同或”再“与”低位比较相等的结果。
3,输出 [Ai > Bi] 的条件有两个:第一个条件是本位结果满足 Ai > Bi,另一个条件是本位的比较结果相等时,低位比较结果 Ai-1 > Bi-1。这两个条件任意满足一个即可,所以是“或”关系。
4,输出 [Ai < Bi] 的结构与 [Ai > Bi] 类似。
&
A 3
B 3
&
&
&
≥1
& ≥1
&
≥1
&
≥1
&
&
&
A 2
B 2
A 1
B 1
A 0
B 0
A - 1 >B - 1
A - 1 =B - 1
A 3 <B 3
A 3 >B 3
A 3 =B 3
P < Q
P > Q
P = Q
C O M P
P
0
0
3
3
Q
<
>
=
A - 1 <B - 1
≥1&
≥1E 3
E 2
E 1
E 0
算术逻辑单元算术逻辑单元( Arithmetic Logic Unit,简称 ALU)是数字计算机中的一个核心运算部件。通常这个单元的输入被称为操作数,操作数可以是二进制数、十进制数或逻辑变量。
进入 ALU的操作数可以执行算术和逻辑运算。可执行的算术运算有两个操作数的加法(有进位和没有进位)、减法
(有借位和没有借位)、单个操作数的加 1、减 1、以及数值比较等等;某些 ALU还可以执行两个操作数的乘法、除法。可执行的逻辑运算一般均按位进行,有两个操作数的
“与”、“或”、“与非”、“或非”、“异或”、“异或非”和单个操作数的“非”等等。
2.3 数字集成电路的特性
Rc
V c c
Rb
e
c
b
v i
v o
v o
v i
截止状态放大状态饱和状态晶体管的开关作用:
V DD
d
sg
g
s
d
v i v o
v o
v i
n 沟道场效应管
p 沟道场效应管
p 沟道场效应管导通
n 沟道场效应管导通场效应管的开关作用:
数字集成电路的逻辑电平:
TTL,电源电压,+5V
逻辑低电平,0~ 0.7V
逻辑高电平,2.4~5V
输出逻辑电平:低电平,<0.5V
高电平,>2.7V
CMOS:电源电压,3.3V,5V
逻辑低电平,0~ 1/3 电源电压逻辑高电平,2/3 电源电压~电源电压输出逻辑电平:低电平,<0.1电源电压高电平,>0.9电源电压数字集成电路的输出电流与扇出:
TTL:低电平输出电流,-8 ~ -20 mA
高电平输出电流,0.4 ~ 1 mA
扇出,10 ~ 20
CMOS:低电平输出电流,0.5 ~ 24 mA
高电平输出电流,0.5 ~ 24 mA
扇出极大。
数字集成电路的动态响应特性:
随着集成电路技术的发展,数字集成电路的响应时间越来越短。早期的电路,大约 TTL 为
15ns,CMOS则大约有 100ns,目前已经普遍缩短到几 ns,最短的在 1~ 2ns。
数字集成电路的输出结构:
除了上面所讨论的常规输出结构以外,还有一些特殊的输出结构:
三态输出结构。
开路输出结构。
EN
1
L 型开路输出 H 型开路输出内部无上拉 内部有上拉 内部无下拉 内部有下拉集成数字逻辑电路芯片
2.4 组合逻辑电路中的竞争-冒险两级或非门电路波形图 (B=0)
t2+ 2tpd
A
A
L t2t1 t3 t4
t2+ tpd
tpd
1
A
B
1
1 2
ABAL +
0 AAL +
AB=0
毛刺竞争与冒险:
当一个门的输入有两个或两个以上变量发生改变时,由于这些变量(信号)是经过不同路径产生的,使得它们状态改变的时刻有先有后,这种时差引起的现象称为 竞争 。
竞争的结果若导致 冒险(险象) 发生(如上例中的毛刺),并造成错误的后果,则称这种竞争为临界竞争 ;竞争的结果不导致冒险发生,或虽有冒险发生,但不影响系统的工作,则称这种竞争为 非临界竞争 。
冒险的类型从冒险的波形上,可分为 静态和动态冒险 。
输入信号变化前后,输出的稳态值是一样的,但在输入信号变化时,输出产生了毛刺,这种冒险称为 静态冒险 。 若输出的稳态值为 0,出现了正的尖脉冲毛刺,则称为 静态 0冒险 ;若输出稳态值为 1,出现了负的尖脉冲毛刺,则称为 静态 1冒险 。
输入信号变化前后,输出的稳态值不同,并在边沿处出现了毛刺,称为 动态冒险 。
0 0
1 1 1
0
静态 0冒险 静态 1冒险由 1变 0 由 0变 1
动态冒险检查竞争-冒险的方法:
1、输入可以转换成的形式
2、在卡诺图上可以观察到相切的卡诺圈以上方法只有在 每个瞬时只有一个输入发生状态改变 的条件下才适用。
AAYAAY 或
&
A
B
Y
&
≥1
& C
1
1
1
X 3
X 0
X 1
X 2
X 3 X 2
X 1 X 0
00
01
00 01 11 10
1 1
1
1
11
1 1
11
10
A
B
C
1
相切点消除竞争-冒险的方法:
1,在输出端对地接入一个小电容 。优点是简单易行,而缺点是增加了输出电压波形的上升时间和下降时间,使波形变坏,并且完全无法在集成电路内部实现。
2、修改逻辑设计。 增加冗余项 可以消除竞争 -冒险,但是适用范围仍然很有限,只能消除由于单个输入发生变化引起的竞争-冒险。
3、在电路中 引入选通脉冲 。可以消除所有的冒险(包括静态冒险和动态冒险),并且容易实现,但需注意:这时正常的输出信号也将变成脉冲信号,而且它们的宽度与选通脉冲相同。
无险象的电路有险象的电路
CAABD +=
A
B
C
&
&
&
1
D
A
B
C &
&
1 &
&
D
AAD +=
当 B=C=1时
BCCAABD ++=
11?++= AAD
增加冗余项消除冒险当 B=C=1时冗余项有相切的卡诺图 加冗余项的卡诺图
BCCAABD ++=CAABD +=
卡诺图法
B C
A
00 01 11 10
0 0 1 1 0
1 0 0 1 1
BC
A
00 01 11 10
0 0 1 1 0
1 0 0 1 1
增加冗余项消除冒险相切点 相切点被消除
A
B
L
C
D
1
1
取样脉冲
A
B
C
&
&
&
1
&
D
L
利用取样脉冲克服冒险取样脉冲 原来的冒险取样后的输出数字逻辑基础第三章 触发器本章要求:
掌握触发器的基本类型及其状态描述
了解触发器的结构与工作原理
掌握触发器的基本应用电路
3.1 触发器的基本类型及其状态描述触发器:具有记忆功能的逻辑单元触发器( Flip-Flop):由时钟信号触发引起输出状态改变,并且该状态在下一次被触发之前始终不会改变的器件。
锁存器( Latch):输出状态不是由时钟信号触发,或者虽然由时钟信号触发但在时钟信号的某个电平下输出会随着输入改变而改变的器件。
四类触发器,RS,JK,D和 T触发器
R-S 触发器
S R Qn+1
1 0 1
0 1 0
0 0 Qn
1 1?
&
&
G1
G2
S
R
Q
Q
G3
G4
S
R
Q
Q
≥1
≥1
R
S
R
S
真值表与状态方程
nn QRSQ 1
Qn Qn+1SR=00 SR=01 SR=11 SR=10
0 0 0 d 1
1 1 0 d 1
RS触发器的状态表
Qn Qn+1 S R
0 0 0 d
0 1 1 0
1 0 0 1
1 1 d 0
RS触发器的激励表
&
&
S
R
Q
Q 1R
1S
Cp
C1
&
&
带同步时钟的 RS触发器及其逻辑符号(同步锁存器)
Cp
S
R
Q
带同步时钟的 RS触发器的波形
JK触发器
J K Qn+1
1 0 1
0 1 0
0 0 Qn
1 1 Qn
nnn QKQJQ 1
真值表与状态方程
Qn Qn+1JK=00 JK=01 JK=11 JK=10
0 0 0 1 1
1 1 0 0 1
状态表
Qn Qn+1 J K
0 0 0 X
0 1 1 X
1 0 X 1
1 1 X 0
激励表
D触发器
Qn Qn+1 D
0 0 0
0 1 1
1 0 0
1 1 1
Qn
Qn+1
D=0 D=1
0 0 1
1 0 1
D Qn+1
0 0
1 1DQ n1
激励表状态表
T触发器 T Q
n+1
0 Qn
1 Qn
Qn
Qn+1
T=0 T=1
0 0 1
1 1 0
Qn Qn+1 T
0 0 0
0 1 1
1 0 1
1 1 0
nnn QTQTQ 1
状态表 激励表触发器的转换四种触发器可以相互转换一般情况下,触发器的转换需要增加组合电路两种转换方法:
1、比较法比较两个触发器的状态方程,找出转换关系
2、卡诺图法将转换前的触发器的激励用转换后的输入以及输出表示,并利用卡诺图化简。
比较法的例子:将 JK 触发器转换成 D 触发器
JK 触发器的状态方程:
nnn QKQJQ 1
DQ n1
D 触发器的状态方程转换过程:
11
11
1
)(
nn
nn
n
QDDQ
QQD
DQ
DKDJ,
卡诺图法的例子:将 RS 触发器转换为 JK 触发器解:求转换网络,就是求
),,(),,,( nn QKJfRQKJfS
JK 触发器的次态卡诺图表示了在 JK 的各种输入情况下的次态,RS 触发器的激励表表示了初、次态转换情况下 RS 输入的值。所以,将 RS 触发器的激励表代入 JK
触发器的次态卡诺图,可以得到从 RS触发器转换到 JK
触发器的转换关系。
JK
Qn
00 01 11 10
d d 0 0
00 1 1
0
1
JK
Qn
00 01 11 10
0 0 1 1
dd 0 0
0
1
nKQR? nQJS?
JK
Qn 00 01 11 10
0 0 1 1
11 0 0
0
1
Qn Qn+1 R S
0 0 d 0
0 1 0 1
1 0 1 0
1 1 0 d
nnn QKQJQ 1
JK 触发器的次态卡诺图 RS 触发器的激励表都是从初态 0到次态 0
3.2 触发器的结构及其工作原理四种类型的触发器可以相互转换。
JK触发器和 D触发器的功能最为完善。尤其是 JK触发器,可以比较方便地构成其它各个类型的触发器。
在商品集成电路触发器中,较多的是 JK触发器和 D触发器。
RS触发器作为所有触发器的基本构成部分,
较多地出现在数字集成电路的内部结构中。
D锁存器
CP
&
&
&
&
D
1
Q
Q
CP
D Q
QC1
1D
CP
D
Q
D锁存器的时序图动作特点:
在控制端 CP等于逻辑 1期间,输出 Q的状态随着输入 D的改变而改变;在控制端 CP等于逻辑 0期间,输出 Q的状态被锁存。被锁存的状态是控制信号 CP从逻辑 1到逻辑 0转变时刻的输入 D的状态。
由于在 CP =1时,输出和输入的关系似乎是“透明”的,
所以这个锁存器也被称为透明锁存器。
不实用的 JK锁存器的结构
CP
&
&
&
&
J
K
Q
Q
当 JK = 11时,在 CP=1 期间,JK 锁存器将不断空翻。
能够保证触发器正常翻转的时钟脉冲的宽度应该不小于
2tpd。但是,为了避免再次翻转,CP脉冲的宽度又不能大于 3tpd。这个条件实际上是无法实现的,所以实际电路中只有 RS锁存器和 D锁存器,并不存在 JK锁存器。
主从触发器
CP
&
&
&
&
S
1
Q
Q
CP
S Q
Q
C1
1S
&
&
&
&
R
R 1R
Q'
Q'
主从型 RS触发器的结构和图形符号
CP
S
R
Q'
Q'
Q
Q
CP
&
&
&
&
J
1
Q
Q
CP
J Q
Q
C1
1J
&
&
&
&K
K 1K
Q'
Q'
主从型 JK触发器的结构和图形符号
C
P
J
Q'
K
Q'
Q
Q
干扰脉冲
{错误的输出
Q
Q
{无干扰的输出主从触发器的动作特点:
在 CP=1 期间采样,输出保持不变;
在 CP=0 期间输出,停止采样。
由于采样过程发生在整个 CP=1 期间,所以要求在此期间输入保持稳定。否则将产生错误输出。
边沿触发器一、维持 -阻塞触发器
CP
&
&
S Q
Q
&
&
R
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
维持 -阻塞结构的 RS触发器,
若在 CP脉冲上升沿前后一个很短的时间,SR = 01或 10,则触发器的输出状态按照这个激励输入而改变,并在整个 CP脉冲周期内得到保持,不会因为激励输入的改变而改变。
若在 CP脉冲上升沿前后一个很短的时间,SR = 00或 11,则触发器的输出状态或者可能在 CP = 1期间改变,或者不确定。
CP
&
&
D
Q
Q
&
&
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
1D
C1
Q
Q
CP
D
维持 -阻塞结构的 D触发器,
通过将 RS触发器转换为 D触发器,可以保证 S和 R永远互补,从而避免了 RS触发器的输出不确定现象。
由于 RS总是互补,所以可以省略一根阻塞线。
输出状态取决于 CP信号上升沿前后瞬间的激励输入 D的状态。
&
&
Q
Q
G1
G2
G3
G4
CP
&
&
& G6
& G5S
R
R’
S’
置 1维持线置 0维持线
L1
L2
CP
&
&
D
Q
Q
&
&
&
&
1D
C1
Q
Q
CP
D
SD
RD
SD
RD
S
R
带直接置位和直接复位的维持 -阻塞型 D触发器,
通过直接置位端 SD 和直接复位端 RD (也称异步置位和异步复位),可以将触发器进行预置(即在整个系统开始运行之前设置触发器的初始状态)或强行复位。
CP
&
&
K
Q
Q
&
&
&
SD
RD
≥1&
J
1J
C1
Q
Q
CP
J
SD
K
S
1K
RD R
维持 -阻塞型 JK触发器
nn QKQJD
维持 -阻塞型的 JK触发器不能直接用维持 -阻塞型 RS触发器转换,原因是维持 -阻塞 RS触发器的功能不完善。
但是可以通过将 D触发器转换为 JK触发器的办法来构成维持 -阻塞型 JK触发器。
二、基于门电路的延时特性构成的边沿触发器
CP
K
Q
Q
&
RD
≥1&
J
1J
C1
Q
Q
CP
J
K 1K
RD R
≥1&
&
G1
G3
G2
G4
当一个信号经过两个延时不一样的途径到达同一个门电路的输入端时,该门电路的输出在输入信号的特定边沿上产生一个冒险 ——毛刺信号。
可以利用这种基于门电路的延时特性的脉冲输出作为 CP的边沿检测信号,并利用这个特性构成边沿触发器。
三、主从结构的边沿触发器如果在主从结构的触发器中,主触发器始终“跟随”
激励输入的变化,但是不记录(即不会发生触发器触发),则有以下工作过程:
一、在主触发器开通期间虽然主触发器的输出可能在变化,但由于从触发器此时封锁,不会影响触发器的最后输出。
二、在主触发器由开通向封锁转换的瞬间,主触发器可以将转换前瞬间的输出(反映了转换前瞬间的激励输入)传递给从触发器,使得从触发器的输出同转换前瞬间的输入相关。
三、在主触发器封锁期间,输入对从触发器的输出没有影响,使得从触发器的输出保持转换后的状态。
CP
D Q
Q
1
1
CP
G1
G2
G3
G4
&
&
1
1
G5
G6
G7
G8
&
&
CP
CP
基于 CMOS传输门的主从结构边沿 D触发器
C
J
Q
C
&
&
&
&
C
C
1
Q
1
1 1
CP C
C
R D
S D
≥1
≥1
≥1
≥1
≥1
≥1
&
K
1J
C1
Q
Q
CP
J
SD
RD
S
R
K 1K
CMOS边沿触发 JK触发器边沿触发器的动态特性 CP
D
Q
t PD
t S t H
t c l o c k
时钟周期 Tclock:能够使触发器正常工作的时钟脉冲周期。通常以它的倒数即时钟频率 fclock来描述一个触发器的动态特性。
建立时间 tS:激励输入在时钟脉冲有效边沿之前具有稳定的逻辑电平所必需的时间。
保持时间 tH:激励输入在时钟脉冲有效边沿之后需要继续保持稳定的逻辑电平的时间。
传输延迟时间 tPD:从时钟脉冲有效边沿之后到触发器输出达到稳定所需要的时间。
CP
&
&
D
Q
Q
&
&
&
&
维持线阻塞线维持线
G1
G2
G3
G4
G5
G6
建立时间至少要 2个门电路延时时间。
保持时间至少为 1个门电路的延时时间。
传输延时至少需要 3个门电路的延时时间。
CP脉冲的周期至少需要 5个门电路的延时。
维持 -阻塞型门电路延时型
CP
K
Q
Q
&
≥1&
J
≥1&
&
G1
G3
G2
G4
建立时间至少为 2个门电路延时。
保持时间可以为 0。
传输延时至少需要 1个与或非门电路的延时时间。
CP脉冲的周期应该是建立时间和传输延时之和,即至少为 3个门电路的延时时间。
主从型
CP
D Q
Q
1
1
CP
G1
G2
G3
G4
&
&
1
1
G5
G6
G7
G8
&
&
CP
CP
建立时间应该是 G3和 G1的延时时间之和。
激励输入的保持时间可以为 0。
激励输入需要经过 G7,G5才能到达输出,所以传输延时至少需要这两个门的延时时间。
触发器进入“记忆”状态需要 CP保持到正反馈建立起来,
所以时钟脉冲的最短周期应该大于 2个非门的延时加上 2
个传输门的延时。
触发器结构 系列 时钟频率 建立时间 保持时间 传输延时维持 -阻塞
74 25MHz 20ns 5ns 17ns
LS 25MHz 20ns 5ns 19ns
S 75MHz 3ns 2ns 6ns
F 100MHz 2ns 1ns 7ns
门电路延时
74 30MHz 20ns 0 20ns
LS 30MHz 20ns 0 15ns
S 80MHz 3ns 0 4.5ns
F 110MHz 4ns 0 5ns
主从边沿
4000 4MHz 20ns 20ns 175ns
HC 25MHz 25ns 0 44ns
HCT 22MHz 15ns 0 35ns
边沿触发器的典型动态特性参数各种触发器的开关特性
若要基本 RS触发器可靠地翻转,R= 1或 S= 1的时间应大于 2倍的门的传输延时 tpd
同步 RS触发器会出现空翻现象,主从、边沿触发器克服了空翻问题
时钟脉冲宽度不能太窄,必须保证触发器能够可靠地翻转
直接置 0,1脉冲的脉宽不可太窄,以确保可靠地置 0或置 1
一些触发器的翻转时刻对应于时钟脉冲的上升沿,而另一些对应于下降沿,由触发器内部的电路结构决定抗干扰能力的比较
1、主从型触发器在时钟脉冲为 1期间,不允许输入信号改变(主从型 D触发器除外 ),
其抗干扰能力差
2、维持阻塞型触发器要求在建立时间开始到保持时间结束期间,输入信号不发生变化,
而它的建立和保持时间是较短的,故其抗干扰能力较主从型的要好
3、某些边沿触发器仅在时钟脉冲触发沿之前的建立时间内,不允许输入信号改变,其抗干扰性最好
3.3 触发器的简单应用计数器计数是数字电路的一个基本功能。一个计数器通常由一组触发器构成,该组触发器按照预先给定的顺序改变其状态。
同步计数器( Synchronous Counter):
所有触发器的状态改变是在同一个时钟脉冲的同一个有效边沿上发生。
异步计数器( Asynchronous Counter):
计数器中的每个触发器的时钟部分或全部不同。
1D
C1CP
Q0 Q1 Q2 Q3
1D
C1
1D
C1
1D
C1
二进制异步加法计数器 (行波计数器)
计数器实际上由 n个 T ' 触发器构成。第一个 T ' 触发器的 C
端连接系统时钟,其后每一级触发器都将前级触发器的输出(或输出的非)作为本级的时钟输入。
CP
Q0
Q1
Q2
Q3
1D
C1CP
Q0 Q1 Q2 Q3
1D
C1
1D
C1
1D
C1
二进制异步减法计数器 (行波计数器)
CP
Q0
Q1
Q2
Q3
关于行波计数器,比较容易混淆的是加法计数与减法计数对应的时钟来源以及触发沿 的组合关系。通过波形图可以很方便地确定这些问题,现将它们的组合情况列表如下:
Q
Q
上升沿触发 下降沿触发加法计数 后级时钟来自前级的 后级时钟来自前级的 Q
减法计数 后级时钟来自前级的 Q 后级时钟来自前级的注意在应用上表的时候,所有触发器都以 Q 作为计数器的输出。若以触发器的 作为计数器的输出,则加法计数和减法计数的关系恰恰颠倒。
Q
行波计数器的时钟和计数状态的关系行波计数器计数过程中的不稳定暂态问题,
由于二进制异步计数器的的时钟信号是前后级串联的,所以到达每个触发器的时钟信号不是同时的。这也是为何将它称为异步计数器的原因。也有将它称为行波计数器( Ripple Counter)的。
因为每个触发器的时钟不同步,结果造成在 CP有效边沿以后的一段时刻内计数值可能发生混乱。
例如,计数从 7到 8的转换过程,实际的转换为:
0111→0110→0100→0000→1000 。
环型计数器
CP
Q0
Q1
Q2
Q3
1D
C1
CP
Q0 Q1 Q2 Q3
S
1D
C1
R
1D
C1
R
1D
C1
R
1D
C1
R
RS T
Q4
Q4
复位 1 2 3 4 0 1
RS T
扭环型计数器
CP
Q0
Q1
Q2
Q3
1D
C1
CP
Q0 Q1 Q2 Q3
R
1D
C1
R
1D
C1
R
1D
C1
R
1D
C1
RRS T
Q4
Q4
RS T
1 2 3 4 5 6 7 8 9 00
寄存器( Register)
寄存器由一组触发器构成,主要功能是存储数据。因为一个触发器可以存储一位二进制数,所以要存储 n位二进制数,需要 n个触发器。
根据输入或输出的模式,可分为并行方式和串行方式。
并行方式,n位二进制数一次存入或读出。只需要一个时钟脉冲即可完成数据操作,但是需要 n根输入和输出数据线。
串行方式,n位二进制数以每次一位、分成 n次存入或读出。只需要 1根输入和输出数据线,但要使用 n个时钟脉冲完成输入或输出操作。
将两种模式加以交叉,可以得到四种不同模式的寄存器:并行输入 /并行输出;串行输入 /串行输出;并行输入 /串行输出以及串行输入 /
串行输出。
1D
C1
1D
C1
DI 0
DI n - 1
DO 0
DO n - 1
CP
C1
1DDI 0
DI n - 1
CP
DI 1
DO 0
DO n - 1
DO 1
并行输入 /并行输出寄存器结构和图形符号公共控制框
C
P
Q n - 1
Q n - 2
D OU T (Q 0 )
1D
C1
C
P
1D
C1
1D
C1
1 2 nn -10
D IN
Q 0Q n - 2Q n - 1
D OU
T
n +1
d a ta 0
d a ta 0
d a ta 0
d a ta 0
d a ta 1
d a ta 1
d a ta 1
d a ta 1
d a ta 2
d a ta 2
D I N (D n -1 ) d a ta ( n - 1)
d a ta ( n - 1)
d a ta ( n - 2)
d a ta ( n - 2)
d a ta ( n - 2)
d a ta ( n - 1)d a ta ( n - 3)
移位寄存器结构和输出波形左移与右移:
一般将一个数据的最高位记为 MSB( Most
Significant Bit),最低位记为 LSB( Least
Significant Bit)。
若首先移入或移出移位寄存器的是 MSB,则称该操作为左移。反之,若首先移入或移出移位寄存器的是 LSB,则称该操作为右移。
具体执行哪种操作取决于最高位位置的指定。
累加器( Accumulator)
寄存器加法器
CL
K
B
A
A
寄存器
AL U
CL
K
B
A
A
控制
( a ) 基本结构 ( b ) 采用 AL U 的结构本章概要触发器的基本特性是:
1、具有两个稳定的输出状态,
2、可以在输入信号的作用下改变状态。
所以,触发器具有记忆作用。
按照逻辑功能的不同,触发器可以分为 RS、
JK,D和 T四种类型。不同逻辑功能的触发器之间可以相互转换。
按照电路结构的不同,触发器可以分为同步触发器和异步触发器两大类,其中同步触发器又可以分为锁存器、主从触发器和边沿触发器三种类型。
必须分清这两种分类的区别:逻辑功能表示触发器的输出状态与输入的逻辑关系,电路结构决定了触发器的动作特点。所以,相同的电路结构类型可以构成不同逻辑功能的触发器,相同逻辑功能的触发器也可能有不同的电路结构类型。
由于触发器是时序逻辑电路中的一个及其重要的部件,熟练掌握触发器的逻辑功能和动作特性是十分必要的。
直接运用触发器可以构成异步计数器和各种寄存器。这些单元电路广泛应用在各种电子设备和计算机中。
数字逻辑基础第四章 同步时序电路本章要求:
掌握同步时序电路的基本分析过程
掌握同步时序电路的设计原理
掌握状态表的化简过程组合电路记忆电路
x 1
x m
z 1
z n
Y 1
Y r
y 1
y r
4.1 时序电路的描述注:这是一个一般的结构,在实际的逻辑中可以合并某些输出和状态,也可以没有输入。
输入变量 输出变量状态变量
(现态)
状态变量
(次态)
同步时序电路和异步时序电路
同步时序电路,记忆电路一般由触发器构成,记忆电路中所有触发器状态的变化都是在同一时钟信号操作下同时发生的。触发器的时钟信号不计在输入之内。
异步时序电路,记忆电路可以由触发器构成,也可以由组合电路的反馈构成。记忆电路 状态的变化不是同时发生的,可能有公共的时钟信号,也可能没有公共的时钟信号。
现态与次态概念时钟状态时刻 t k t k +1 t k +2
当前状态 次态 当前状态 次态以两次驱动(在同步时序逻辑中就是时钟)的间隔时间作为时序电路的定时单位,把某个间隔时刻 tk 作为,当前时刻,,将下一个间隔时刻 tk+1 称为,次时刻,。
对于“当前时刻”和“次时刻”的表述,都是相对于时刻 tk 而言。当前时刻的状态为 现态,次时刻的状态为 次态 。
驱动信号时序电路的状态方程与输出方程
)](),([)(
)](),([)(
2
1
kkk
kkk
ttft
ttft
yxz
yxY
意义:
次态是输入与现态的函数(一般情况,也可以无输入)
输出是输入与现态的函数(一般情况,也可以无输入)
注意点:
Y 是次态变量,通常是一个隐含的变量,不一定是触发器的激励输入。只有记忆电路全部是 D 触发器时,次态才与激励相同。
1J
C1
X Z
CP
1K
1J
C1
1K
&
1
&
&
J1
J2
K1
K2
Q1
Q2
例 1 状态机
JK 触发器,Q1,Q2 是现态,X 是输入。
Z 是输出,仅是现态的函数。
次态隐含在 J1,K1,J2,K2 中。
1D
&
&
&
Q 3
Q 2
Q 1
Q 0
CP
≥1
≥1
≥1
C 1
C 1
C 1
C 1
1D
1D
1D
例 2 计数器
D 触发器,无输入,
Q0 ~ Q3 为状态同时也是输出。
次态是 D0 ~ D3,可以通过组合逻辑显式地写出。
米利模型和摩尔模型组合电路记忆电路
(触发器)
输入变量 组合电路激励状态变量输出变量时钟
x
z
y
)](),([)(
)](),([)(
2
1
kkk
kkk
ttft
ttft
yxY
yxz
米利( Mealy)模型某时刻的输出是该时刻的输入和电路状态的函数
)](),([)(
)]([)(
2
1
kkk
kk
ttft
tft
yxY
yz
摩尔 (Moore)模型组合电路记忆电路
(触发器)
输入变量 组合电路激励状态变量输出变量时钟
x
z
y
某时刻的输出仅是该时刻电路状态的函数,
与该时刻的输入无关 。
米利模型和摩尔模型的区别:
一、米利模型的输出直接同输入有关,所以在输入变化时,
不管状态是否改变,输出立即产生变化。即输入不仅影响次态,同时影响输出。
二、摩尔模型的输出只同状态有关,所以在整个状态保持期间保持输出不变。输入的变化只影响次态。
三、根据上述情况,若输入与时钟同步,则两种模型的输出在整个时钟周期内均保持不变,但米利模型比摩尔模型提前一个时钟周期改变输出。
四、若输入存在干扰,一般不会影响摩尔模型的输出,但可以影响米利模型的输出。
状态转换表现态 次态 / 输出输入 1 输入 2 输入 n
现态 1 次态 11 / 输出 11 次态 12 / 输出 12 次态 1n / 输出 1n
现态 2 次态 21 / 输出 21 次态 22 / 输出 22 次态 2n / 输出 2n
现态 m 次态 m1 / 输出 m1 次态 m2 / 输出 m2 次态 mn / 输出 mn
以表格的形式描述现态、输入与次态、输出的关系。
米利模型的表格形式是:
摩尔模型的表格形式是:
现态 次态 输出输入 1 输入 2 输入 n
现态 1 次态 11 次态 12 次态 1n 输出 1
现态 2 次态 21 次态 22 次态 2n 输出 2
现态 m 次态 m1 次态 m2 次态 mn 输出 m
以信号流图形式显示状态转换关系。
米利模型形式将输出写在转换线上,摩尔模型形式将输出写在状态圈内。
状态转换图状态状态状态输入/ 输出输入/ 输出输入/ 输出输入/ 输出输入/ 输出输入/ 输出状态
/ 输出状态
/ 输出状态
/ 输出输入输入输入输入输入输入米利模型 摩尔模型状态转换图的特点
状态转换图中每个状态射出的状态转换线的根数同系统输入的组合数相同,转换条件包含了所有的输入组合。例如某系统输入组合有 3种,00、
01和 10,则无论哪个模型,每个状态射出的状态转换线都是 3根,分别对应 3个输入组合。这个特点常常被用来检查状态转换图的正确性。
摩尔模型的状态数通常大于米利模型的状态数。
形成这个特点的原因是由于米利模型中一个状态可以对应多个输出,而摩尔模型一个状态只能对应一个输出。
例自动售饮料机。可以投入 1元或 5角的硬币,饮料 1.5元 一杯。
当先后投入的硬币满 1元 5角后,机器送出一杯饮料;当投入的硬币满 2元后,机器送出一杯饮料以及送出一个 5角硬币。
作出上述自动售饮料机问题的状态转换图和状态转换表。
分析 1:
输出,设 Z1 =1→ 输出饮料; Z2 =1→ 输出找零。所有的输出情况为 Z1Z2 = 00,Z1Z2 = 10,Z1Z2 = 11。
输入,当前投入的币值,X1X2 = 00、币值为 0; X1X2 = 01、
币值为 5角; X1X2 = 10、币值为 1元。
状态,记录已经投入的币值,S0= 0,S1 = 5角,S2 = 1元。
S
0
S
1
S
2
00 /00
00 /00 00 /00
01 /00
10 /10
01 /00
10 /00
01 /10
10 /11
X
1
X
2
/ Z
1
Z
2
米利模型的状态图初始状态已收 0.5元状态投币 0.5元已收 1元状态输出饮料投币 1元现态次态 / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 10
S0 S0 /00 S1 /00 S2 /00
S1 S1 /00 S2 /00 S0 /10
S2 S2 /00 S0 /10 S0 /11
米利模型的状态转换表分析 2:
输出,设 Z1=1→ 输出饮料; Z2=1→ 输出找零。所有的输出情况为 Z1Z2 = 00,Z1Z2 = 10,Z1Z2 = 11。
输入,当前投入的币值,X1X2 = 00、币值为 0;
X1X2 = 01、币值为 5角; X1X2 = 10、币值为 1元。
状态,记录已经投入的币值,S0= 0,S1= 5角、
S2 = 1元,S2 = 1.5元,S2 = 2元。
S 0 /00
S 1 /00
S 2 /00
00
00
01
01
01
10
S 3 /10
S 4 /11
10
10
01
00
00
01
10
10
00
摩尔模型的状态图初始状态已收 0.5元状态输出饮料已收 1.5元状态现态 次态 输出Z
1Z2X1X2 = 00 X1X2 = 01 X1X2 = 10
S0 S0 S1 S2 00
S1 S1 S2 S3 00
S2 S2 S3 S4 00
S3 S0 S1 S2 10
S4 S0 S1 S2 11
摩尔模型的状态转换表时钟状态输入
S 2 S 0
S 3状态输出输出
S 2
米利模型摩尔模型
X 2
Z 1
Z 1
两个模型的时序图状态:已经投入的硬币总值为 1元输入:再投入 1个 5角硬币输出:一杯饮料,即 Z1 =1
米利模型的输出 摩尔模型的输出两种基本模型的相互转换
1、摩尔模型转换为米利模型
将摩尔模型状态转换表的最后一列输出去掉。
在每个次态后面加上,/输出,。其中的输出对应于该次态在原模型中的输出。
观察修改后的状态转换表,合并相同的状态。
2、米利模型转换为摩尔模型
输出同类状态:
所有指向某个状态的状态转换线都具有相同的输出 。
这种类型的状态,次态和输出是统一的,所以只要将所有指向这个状态的状态转换线上的输出改写到表示状态的圆圈中,就可以将米利模型转换为摩尔模型。
输出非同类状态:
指向某个状态的状态转换线具有几个不同的输出 。
显然这个状态转换成摩尔模型后将对应几个状态,所以按照下列步骤改画这种类型的状态:一、将此状态分成几个新状态。每个新状态对应一个输出,写在表示新状态的圆圈中。二、按照不同的输出,将原来的状态转换线分别改画成指向具有对应输出的新状态。 三、原来从输出非同类状态出发的所有状态转换线,都应该在每个新状态中重新画出来,并且它们的目的状态应该与原来的相同。
4.2 同步时序电路的分析
根据给定的电路,确定电路的类型。列出触发器的激励方程。
将激励方程代入触发器的特征方程,写出电路的状态方程。同时写出电路的输出方程。
由状态方程和输出方程,列出电路的状态转换表或状态转换图。
分析电路的状态转换表或状态转换图,得到电路的功能表示或者相应的时序图。如果已知电路的功能,可以通过这一步的分析,验证电路功能的正确性。
1D
C1
1D
C1
&X
CP
Z
Q2
Q1
米利型电路。
1
1
2
1
1
121
2
1
21
1
1
21
,
,
,
QQXQ
QDXD
DQDQ
QXQZ
nn
nn
输出方程:
D触发器:
激励方程:
次态方程:
例 1
现态 次态 /输出 次态 /输出状态编号
Q1Q2 X=0 X=1
00 00/0 10/0 S0
01 00/0 10/0 S1
10 01/0 11/0 S2
11 01/0 11/1 S3
状态转换表
S0
S1
S3S2
0/0
1/1
1/0
1/0 0/0
0/0
0/0
1/0
CP
X
Z
S0 S2S0 S1S3S3S2S0S1
状态转换图和时序图例 2
1J
C1
&
X
CP
Z
Q2
Q1
&
&1 1K
1J
C1
1K
摩尔型电路。
输出方程:
JK触发器:
激励方程:
次态方程,2121211211
122121
1
21
,
,,,
QXQQXQXQQXQQ
XQKXJXKXQJ
QKQJQ
QQZ
nn
n
状态转换表
Q1Q2 X=0 X=1 Z
00 00 01 0 S0
01 00 10 0 S1
10 00 11 0 S2
11 00 11 1 S3
现态 次态 输出 编号
S 0 /
0
S 1 /
0
S 3 /
1
S 2 /
0
1
11
0
1
0
0
0
CP
X
Z
S0 S1S0 S0S3S2S1S0S0
状态转换图和时序图例 3
1J
C
1
X Z
CP
1K
1J
C
1
1K
&
1
&
&
J1
J2
K1
K2
Q1
Q2
摩尔型电路。
输出方程:
JK触发器:
激励方程:
次态方程,212121211
1221121
1
21
,
,,,
QXQQXQQXQQ
XQKXJQKXQJ
QKQJQ
QQZ
nn
n
S 0 /0
S 1 /0
S 2 /1
0
1
0
0
1
0
1
1
S 3 /0
S0,Q1Q2=00
S1,Q1Q2=01
S2,Q1Q2=11
S3,Q1Q2=10
CP
X
Z
S 0 S 1 S 1 S 1 S 1 S 1 S 1S 2 S 2 S 2S 0 S 0S 0
状态转换图和时序图例 4 串行加法器
BAR
ABS
激励方程
&
&1
1
C1
1S
1R
& ≥ 1
CP
A
B
Z
状态方程、输出方程和时序图
BAQBAABQBAABQZ
BQAQABQBAABQRSQ
nnn
nnnnn
)()(
)(1
CP
A
Z
B
1 5432 6
Q
0
1
00
000
0
0
0
01
111
1111
1
1
0
0 1
Z'
Z ''
常见的同步时序电路分析
D
D
Q
A
Q
B
CP
Q
C
Q
D
=1
D=1
D=1
&
D
A
D
B
D
C
D
D
&
1
CBADnD
BACnC
ABnB
AnA
QQQQQ
QQQQ
QQQ
)1(
)1(
)1(
)1(
1、计数器类电路
4位二进制同步加法计数器状态方程:
0 ( 1 ) 0
1
( 1 )
0
( ),0
n
i
i n i j
j
Q Q Q i
二进制同步加法计数器的状态方程的一般形式时序图
CP
Q
A
Q
D
Q
C
Q
B
带同步置数、同步复位、保持等多种功能的
4位二进制同步加法计数器
D
&
D
Q A
Q B
CP
≥1
=1
& ≥1
Q C
Q D
D
C
B
A
E NP
E NT
L OAD
CLR
(8)
(4)
(2)
(1)1,5 D
C5/2,3,4 +
M1
M2
G3
G4
5,CT= 0
3,CT= 1 5
CTRDIV 1 6
Q A
Q B
Q C
Q D
RCO
RCO
CP
D
C
B
A
E NP
E NT
L OAD
CLR
=1
&
D
& ≥1
=1
&
D
& ≥1
=1
&
1
&
1
≥1
≥1
1
≥1
D A '
D B '
D C '
D D '
D A
D B
D C
D D
≥1
≥1
1
0
'
' ( )
' [ ( ) ( ) ],
nn
A A
i
nj n
j
D LO A D C LR n LO A D C LR D
D E N P E N T Q
D E N P E N T Q Q n A
利用与或门作为数据选择器实现多种逻辑功能转换
CLR LOAD ENP ENT 功能
0 X X X 复位(清零)
1 0 X X 加载(置数)
1 1 1 1 计数
1 1 0 X 保持
1 1 X 0 保持说明:
用,与或门,构成数据选择器 (或者它的变形 ),用控制端来控制 数据选择器,
对触发器激励端的输入信号加以选择,
从而构成不同的工作模式。这是实现多功能时序逻辑电路的一个常用手段。
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,C T =0
3,C T =1 5
C T R D I V 1 6
CP
并行输入
E N P
H
L O A D
C L R
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,C T =0
3,C T =1 5
C T R D I V 1 6
D 0 ~ D 3 D 4 ~ D 7Q 0 ~ Q 3 Q 4 ~ Q 7
并行输入计数输出 计数输出联往高位二进制加法计数器的串联
CBADnD
BACnC
ABnB
AnA
QQQQQ
QQQQ
QQQ
)1(
)1(
)1(
)1(
0),(
1
0
)1(
0)1(0
iQQQ
i
j
jini
n
二进制减法计数器状态方程二进制减法计数器的状态方程的一般形式与加法计数器的差别仅在于这个“非”
D
&
D
Q A
Q B
CP
≥1
&
≥1
Q C
Q D
D
C
B
A
E N P
E N T
L O A D
U / D
RCO
&
&
&
1
≥1
Q A '
Q B '
Q C '
Q D '
& ≥1
& ≥1
=1
=1
&
D
&
D
≥1
&
≥1
&
& ≥1
& ≥1
=1
=1
&
1
可逆计数器实现同步置数、保持等多功能的与或门实现可逆计数的与或门用二进制同步计数器构成其他进制计数器
A、同步置数法
(8 )
(4 )
(2 )
(1 )1,5 D
C5 /2,3,4 +
M1
M2
G3
G4
5,CT= 0
3,CT= 1 5
CTR DI V 1 6
Q A
Q B
Q C
Q D
RCO
CP
D=0
C=0
B = 1
A=1
ENP
ENT
LO AD
CLR
1
"1 "
"1 "
"1 "
15 3 414
利用进位信号进行同步置数,跳过若干状态。
例如 DCBA= 0011= 3,
则有以下时序图:
CP
Q
B、同步复位法
(8 )
(4 )
(2 )
(1 )1,5 D
C 5 /2,3,4 +
M1
M2
G3
G4
5,CT =0
3,CT =1 5
C TR D IV 1 6
Q A
Q B
Q C
Q D
RCO
CP
D
C
B
A
EN P
EN T
LO A D
C LR
1
"1"
"1"
"1"
8
4
2
1
B IN /H EX
n
利用输出译码进行同步复位,跳过若干状态。
例如 n= 12,
则有以下时序图:
12 0 111
CP
Q
C
P
CP
1D
C1
1D
C1
1D
C1
1D
C1
1D
C1
P1 P2 P3 P4 P5
P1
P2
P3
P4
P5
≥1
2、移位寄存器类电路单活跃( One-hot)电路通用移位寄存器
CP
≥1
C1
1R Q 0
1
1
R D
1S1
&
R
≥1
C1
1R Q 1
1S1
& R
≥1
C1
1R Q 2
1S1
& R
≥1
C1
1R Q 3
1S1
& R
1 1PE
P 0
P 1
P 2
P 3
J
K
Q 3
M1
1,2 J
1,2 K
C 2 / 1
1,2 D
R
1,2 D
Q 0
Q 1
Q 2
Q 3
Q 3
CP
R D
PE
P 0
P 1
P 2
P 3
J
K
SRG 4
右移方式关联并行输入串行输入实现多功能的与或门
CP
≥1
C1
1D A / Q A
1
1
R D
R
1
&
G1
D S A
M
3,4 D
5,1 3
C 4 / 1 → / 2 ←
1,4 D
R
2,4 D
3,4 D
Q A
CP
R D
0
1
S R G 8
EN
≥1
C1
1D
R
EN
≥1
C1
1D
R
EN
≥1
C1
1D
R
EN
&
&
&
&
B / Q B
G / Q G
H / Q H
Q A
Q H
D S H
1
1 1
G2
&
S0
S1
中间4 组触发器未画出
Z5
Z6
Z 1 2
6,1 3
1 2,1 3
Q H
}
0
3
&
3 E N 1 3
A / Q A
B / Q B
C / Q C
D / Q D
E / Q E
F / Q F
G / Q G
H / Q H
D S H
D S A
G1
G2
S0
S1
3,4 D
4.3 同步时序电路设计设计一个同步时序电路的一般步骤
确定采用何种模型
状态转换表或状态转换图
化简冗余状态
状态编码
确定触发器类型,状态激励表
触发器的激励方程,电路的输出方程
最终的逻辑电路图例 1:设计 101序列检测电路采用摩尔模型,状态转换图:
S 0 /0 S 1 /0 S 2 /00
1
S 3 /1
0
1
0
1
1 0
已是最简状态,无需化简状态编码如下,S0= 00,S1= 01,S2= 10,S3= 11
问题:输入序列为,101”时,输出,1”
状态 状态(编码) 次态(编码) 输出X = 0 X = 1
S0 Q1Q0 = 00 00 01 0
S1 Q1Q0 = 01 10 01 0
S2 Q1Q0 = 10 00 11 0
S3 Q1Q0 = 11 10 01 1
输入激励 J1K1,J0K0
Q1Q0 = 00 Q1Q0 = 01 Q1Q0 = 10 Q1Q0 = 11
X = 0 0d,0d 1d,d1 d1,0d d0,d1
X = 1 0d,1d 0d,d0 d0,1d d1,d0
状态转换表采用 JK触发器的状态激励表
Q 1 Q 0
X 00 01 11 10
0 1 d d
d0 0 d
0
1
J 1
Q 1 Q 0
X 00 01 11 10
d d 0 1
0d d 1
0
1
K 1
Q 1 Q 0
X 00 01 11 10
0 d d 0
11 d d
0
1
J 0
Q 1 Q 0
X 00 01 11 10
d 1 1 d
dd 0 0
0
1
K 0
激励函数
XKXJ
XQQXKQXJ
00
00101
,
,
01QQZ?
输出函数逻辑图
1J
&
1
Q 0
CP
≥1
C 1
1K
1J
Q 1
C 1
1K
&
X
& Z
例 2:设计 8进制计数器状态转换表状态 Q2Q1Q0 Q2(n+1)Q1(n+1)Q0(n+1)
S0 000 001
S1 001 010
S2 010 011
S3 011 100
S4 100 101
S5 101 110
S6 110 111
S7 111 000
采用 D触发器的激励卡诺图
Q 1 Q 0
Q2 00 01 11 10
0 0 1 0
11 1 0
0
1
D2
Q 1 Q 0
Q2 00 01 11 10
0 1 0 1
10 1 0
0
1
D1
Q 1 Q 0
Q2 00 01 11 10
1 0 0 1
11 0 0
0
1
D0
2 1 0 2 22 1 0
1 1 0
0 0
D Q Q Q Q Q Q Q
D Q Q
DQ
激励方程
&
Q 2
Q 1
Q 0
CP
=1
≥1
C 1
C 1
C 1
1D
1D
1D
逻辑图带有冗余状态的同步时序电路设计一个具有 n个状态的同步时序电路,如果 n不是恰巧等于 2m,一般总有 2m-n个冗余状态。
这些冗余状态在设计时必须加以处理。
若处理不当,会造成严重后果。
例 1:自动售饮料机
S 0
S 1
S 2
0 0 / 0 0
0 0 / 0 0 0 0 / 0 0
0 1 / 0 0
1 0 / 1 0
0 1 / 0 0
1 0 / 0 0
0 1 / 1 0
1 0 / 1 1
X 1 X 2 / Z 1 Z 2
米利模型,
状态转换图:
已是最简状态,无需化简状态编码如下,S0 = 00,S1= 01,S2= 11
S3=10是冗余状态。
现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 =
00
X1X2 =
01
X1X2 =
11
X1X2 =
10
S0 00 00/ 00 01/ 00 dd / dd 11 / 00
S1 01 01/ 00 11 / 00 dd / dd 00 / 10
S2 11 11 / 00 00/ 10 dd / dd 00/ 11
S3 10 dd / dd dd / dd dd / dd dd / dd
采用 D触发器设计
Qn+1=D
直接从上表得到激励表状态转换表
X 1 X 2
Q 1 Q 2
00 01 11 10
0 0 d 1
00 1 d
00
01
D 1
X 1 X 2
00 01 11 10
0 1 d 1
01 1 d
D 2
X 1 X 2
00 01 11 10
0 0 d 0
10 0 d
Z 1
X 1 X 2
00 01 11 10
0 0 d 0
00 0 d
Z 2
1 0 d 0
dd d d
1 0 d 0
dd d d
0 1 d 1
dd d d
0 0 d 1
dd d d
Q 1 Q 2
Q 1 Q 2 Q 1 Q 2
11
10
00
01
11
10
00
01
11
10
00
01
11
10
激励与输出卡诺图
112
12211
12212122
122212111
XQZ
XQXQZ
XQXQXXQD
XQXQQXXQD
激励函数与输出函数疑问,冗余状态是 Q1Q2 = 10,我们将此冗余状态代入上式。看输出方程:当 Q1Q2 = 10时,若输入 X1 = 1,
则 Z1 = 0,Z2 = 1。若输入 X2 = 1,则 Z1 = 1,Z2 = 0。换句话说,若系统进入冗余状态,那么投入 1圆硬币将没有饮料但有 5角找零;而只要投入 5角硬币,将会得到一杯饮料?
现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 11 X1X2 = 10
S0 00 00/ 00 01/ 00 11 / 00 11 / 00
S1 01 01/ 00 11 / 00 11 / 10 00 / 10
S2 11 11 / 00 00/ 10 00 / 11 00/ 11
S3 10 10 / 00 00 / 10 11 / 11 11 / 01
错误的冗余状态:
例如,X1X2 = 00,则 S3?S3
发生错误的原因:
按照上面化简后的激励函数重新得到实际的状态转换表现态 编码Q
1Q2
次态 Q1(N+1)Q2(N+1) / 输出 Z1Z2
X1X2 = 00 X1X2 = 01 X1X2 = 11 X1X2 = 10
S0 00 00 / 00 01 / 00 dd / dd 11 / 00
S1 01 01 / 00 11 / 00 dd / dd 00 / 10
S2 11 11 / 00 00 / 10 dd / dd 00 / 11
S3 10 00 / 00 01 / 00 dd / dd 11 / 00
修改方法:将冗余状态的次态和输出按照实际情况填入合理的值,修改后的状态转换表如下。按照此表进行设计,没有不合理的冗余状态。
由于输入 X1X2 = 11不可能发生,所以有关 X1X2 = 11的次态和输出不作调整。
例 2:五进制计数器现态 Q2Q1Q0 Q2(n+1)Q1(n+1)Q0(n+1)
S0 000 001
S1 001 010
S2 010 011
S3 011 100
S4 100 000
S5 101 000
S6 110 000
S7 111 000
为了避免出现自启动问题,在开始设计时将冗余状态指向 S0
Q 1 Q 0
Q 2 00 01 11 10
0 0 1 0
00 0 0
0
1
D 2
Q 1 Q 0
00 01 11 10
0 1 0 1
00 0 0
D 1
Q 1 Q 0
00 01 11 10
1 0 0 1
00 0 0
D 0
Q 2 Q 2
0
1
0
1
卡诺图中红色的 0是原来设计的冗余项。但是按照原来的设计,卡诺圈太小。所以可以修改设计,按照上图加大卡诺圈
(蓝色),相当于改变次态,仍然满足自启动要求。 S 2
S 3
S 4
S 1
S 6
S 0
S 5
有效循环
S 7
1,如果问题要求所有冗余状态都具有特定的输出和次态,则在开始进行设计时,除了明确不可能出现的状态以外,应该将所有的冗余状态的输出和次态考虑在状态转换表或状态转换图中。这样得到的设计可以满足问题的原始要求。
2,如果问题只要求满足自启动条件,则可以以任意项方式处理冗余状态,但是最后要进行自启动检查。
3,也可以以确定方式处理冗余状态,但可能得到的结果不是比较好的结果,所以应该进行优化检查。
4,无论上述哪种方法,若在检查后发现问题,都需要按照检查的结果重新修改设计。
冗余状态的处理规则现态 Q3Q2Q1Q0 Q3(n+1)Q2(n+1)Q1(n+1)Q0(n+1)
S0 0000 0001
S1 0001 0010
S2 0010 0011
S3 0011 0100
S4 0100 0101
S5 0101 0110
S6 0110 0111
S7 0111 1000
S8 1000 1001
S9 1001 0000
S10 1010 dddd
S11 1011 dddd
S12 1100 dddd
S13 1101 dddd
S14 1110 dddd
S15 1111 dddd
例:
十进制计数器问题
3102103
21020212
103101
00
QQQQQQD
QQQQQQQD
QQQQQD
QD
自启动检查:通过
S0
S1
S2
S6
S5
S4
S3
S 1 0
S9
S8
S7
S 1 1
S 1 4
S 1 3 S 1 2
S 1 5
用算法状态机方法设计同步时序电路状态名称摩尔型输出米利型输出输入条件0 1
状态框 判断框 条件输出框算法状态机方法是从计算机程序设计者那里借用了流程图的一些符号,构成算法状态机图( ASM图)。
ASM图的主要包括以下 3种元件
S0
已收 0 元输出饮料投0,5 元
01
S1
已收 0,5 元投1 元投0,5 元
S2
已收 1 元
1
投1 元
0
0
投0,5 元
1 1
输出饮料
1 0
0
投1 元
01
输出找零售饮料机的 ASM图
S 0
S 1
S 2
00 /00
00 /00 00 /00
01 /00
10 /10
01 /00
10 /00
01 /10
10 /11
X
1
X
2
/ Z
1
Z
2
售饮料机的状态转换图
S 0
X 1
01
S 1 X 2
S 2
1 0
S 3
S 1
S 0
S 3
1d 00
01
X 1 X 2
S 2
A S M 图 状态转换图优先级的处理例:反应时间测试电路该电路用来测量短跑运动员的反应速度,要求时间测量精确到毫秒。由于运动员的反应时间不可能小于 200ms,所以要求当反应时间小于 200ms时,要给出犯规信号。
晶体振荡器模1 0 0 0
计数器
1k Hz
计数控制电路
D A TA
锁存译码显示时钟发令枪运动员计数允许计数器清零计数值锁存时间阈值、计数值=20 0ms
G U N
A TH
C LR
EN
CP
LATC H
犯规指示
F OUL
LIM EN
系统复位
R S T
S 0 ( 准备)
CLR
ATH
01
S 4 ( 犯规)
FOUL
GUN
S 1 ( 计数1 )
EN
ATH
1
1 0
0
LIMEN
01
S 2 ( 计数2 )
EN
ATH
01
S 3 ( 锁存)
LATCH
RST
1 0
S 4 /
0001
S 0 /
1000
S 1 /
0100
00dd
1dd d
dddd
S 2 /
0100
S 3 /
0010
A TH / G U N / LIM EN / R ST
0d0d
ddd0
ddd1
1dd d
01dd
0d1d
1dd d
0dd d
C LR / EN / LA TC H / F OU L输出输入状态转换图状态分配时序电路的状态由状态变量(时序电路中记忆电路的输出)组合确定,将每个状态对应的状态变量组合分配一个唯一的二进制码的过程称为进行状态分配。
在时序电路设计中必须进行状态分配。分配之后用以代表状态变量的实际二进制码对于最终实现电路的代价有着重要影响。
状态分配问题没有通解。但是根据前人的经验,
按照一定的分配规则,可以得到比较好的分配结果。
!)!2(
)!12(
mn
S m
m
)!2(
)!2(
n
S m
m
用 m个状态变量实现 n个状态时,可能的状态分配数将等价的状态分配方案剔除后,以下函数给出了不等价的状态分配方案数。
状态分配规则 1
对于在相同输入条件下有相同次态的所有状态,在进行状态分配后,应当能形成一个质蕴含。 A
E
D
C
B
A
DC
B
Q 2 Q 1
Q 3
01
01
01
01
状态分配规则 2
对于一个现态的所有次态,在进行状态分配后,
最好能够形成一个质蕴含。
A
E
D
C
B
B EDC
Q 2 Q 1
Q 3
状态分配规则 3
有相同输出的状态最好给予相邻的状态分配。
对于状态分配的说明:
1、上述 3个规则,是一些经验规律,大部分情况下适用,
可能有不适用的例子。
2、对于大部分状态机,不可能全部满足 3条规则,只能按照实际情况运用。规则 1比规则 2的优先级要高,规则
3的优先级最低。除了涉及有大量输出的情况之外,一般很少考虑规则 3。有些资料根本就忽略规则 3。
例子参见讲义例 4- 13。
4.4 时序电路的状态化简一、完全描述状态表的化简
“完全描述”是指在给定的输入条件下,表中所有的次态和输出均有确定值。
完全描述状态表的例:
现态次态 / 输出
X=0 X=1
S0 S0/0 S2/0
S1 S0/0 S2/0
S2 S1/0 S3/1
S3 S1/0 S3/0
状态的等价,
设某一时序电路(系统)内的两个状态 Si 和 Sj,如果用任意序列的输入加到此电路上,从 Si 或 Sj 出发所得到的输出序列都相同,则称状态 Si 和状态 Sj 等价。
可以证明,为了判别两个状态是否等价,所输入的任意序列只需要有限长度。具体地说,对于具有 n个状态的电路,最多只需要输入 n-1个符号的任意输入序列,即可判别两个状态的等价与否。
等价的传递性,
若 Si 等价于 Sj,而 Sj 等价于 Sk,则 Si 等价于 Sk。
划分等价状态的规律:
1、如果某两个状态对应的输出不同,则它们显然是不等价的。
2、如果某两个状态在相同的输入下有相同的输出,并且次状态完全相等或为原状态时,这两个状态等价。
3、如果某两个状态在相同的输入下有相同的输出,但是次状态不相同,则此二状态等价与否还得视它们的次状态是否等价而定。
化简的方法:隐含表法
S 2
S 6S 5S 4S 3S 2S 1
S 7
S 6
S 5
S 4
S 3
S 1 S 3
S 7 S 6
S 5 S 3
S 7 S 6
S 2
S 6S 5S 4S 3S 2S 1
S 7
S 6
S 5
S 4
S 3
1,输出不同,肯定不等价,在相应的小方格中记以,× ‖号。
2,输出相同,并且在相同的输入下次态相同,或者仍为原状态对。肯定等价,在对应的小方格中记以,√‖号 。
状态 次态 输出X=0 X=1 X=0 X=1
S1 S1 S7 0 1
S2 S2 S4 0 0
S3 S4 S5 1 0
S4 S7 S5 1 1
S5 S5 S7 0 1
S6 S6 S4 0 0
S7 S3 S6 0 13,输出相同,次态不同,记录次态对。
4,观察该次态对是否等价(等价传递)。若是则钩,若非则叉。
最后将所有等价态合并,就得到化简后的状态表。
对于上例,由于状态 S1 与 S5 等价,状态 S2 与 S6 等价,所以可以将这 4 个状态化简成 2 个状态,而其余 3个状态则无法进一步化简。
原状态 化简后 状态 次态 输出X=0 X=1 X=0 X=1
S1,S5 SA SA SE 0 1
S7 SE SC SB 0 1
S2,S6 SB SB SD 0 0
S3 SC SD SA 1 0
S4 SD SE SA 1 1
二、不完全描述状态表的化简不完全描述状态表:表中某些状态在某些输入情况下的次态或输出没有确定的值,它们可以取 0也可以取 1,
相容:
1,输出相容,
如果两个输出序列的每一对有确定值的对应输出均相同,则称此两输出相容。
例,
00111
01110
11010
dZ
dZ
dZ
k
j
i
Zi与 Zj相容,Zj与 Zk也相容 。 而 Zi与 Zk则不相容。可见,相容不具有传递性 。
2,状态相容,
两个状态 Si 和 Sj,如果用所有允许的输入序列的输入加到此系统上,从 Si 或 Sj 出发所得到的输出序列都相容,则称状态 Si 和状态 Sj 相容(所谓允许的输入序列指的是除去最后的输入外,其余各个输入所对应的下一个状态都是确定的,当然最后输入的下一个状态也可以是确定的,只有在这样的允许的输入序列作用下,相应的状态序列才不会中断)。
简单不相容,在相同输入下,状态 Si 和 Sj 输出不相容。
简单相容,对于任意输入,输出相容,有确定值的次状态相等或者仍为原状态。
若两个状态的输出相容,有确定值的次态不同,但是该次态对是简单相容的,则称此两个状态 潜在相容 。
状态 次态 输出X=0 X=1
S1 S3 d 1
S2 d S3 d
S3 d S2 d
S4 S4 d 0
S5 S5 S4 d
例:用 隐含表化简简单不相容简单相容简单相容简单相容简单相容简单相容简单相容
S 2
S 4S 3S 2S 1
S 5
S 4
S 3
S 3 S 5 S 2 S 4S 3 S 4
步骤 1、寻找相容关系打钩的为简单相容,打叉的为简单不相容。
其余三个状态对,既不是简单相容,也不是简单不相容。写上它们 有确定值的次态对 。
由于相容不具有传递性,所以不能简单地由简单相容外推两个不简单相容的状态是否相容。
例如上表中,S1与 S3相容,S3与 S4相容,但是 S1与 S4简单不相容。
同样,也不能推断上表中写上次态对的 3个方格,S1与
S5,S2与 S5以及 S3与 S5的相容性。
考察上述 3个状态对的次态对是否相容:其中两个次态对简单相容,一个次态对的次态对简单相容(潜在相容),所以上述 3个状态对均潜在相容。
步骤 2、寻找最大相容类集合所谓最大相容类集合,是含有不被其它相容类集合所覆盖的相容的一组状态或状态对。寻找最大相容类集合的目的是要将全体状态划分为尽可能少的组,
每组内的状态都彼此相容。
利用合并图来寻找最大相容类集合:
合并图是将状态表中所有的状态以点的形式画在一个圆周上,然后将所有的相容状态对(包括潜在相容对)用直线连接起来。若在一组状态点中两两之间都有连线,表示该组状态中所有状态两两相容,
可以形成最大相容类。在图形上,它们将形成一个内部两两相连的最大的多边形,该多边形的各个顶点就形成一个最大相容类集合。
S1
S5
S4S3
S2
在本例题中,共有 5个状态,构成的相容状态对有:
{S1,S2},{S1,S3},{S1,S5}
{S2,S3},{S2,S4},{S2,S5}
{S3,S4},{S3,S5}
{S4,S5}
最大相容类集合:
{ S1,S2,S3,S5 } 和 { S2,S3,S4,S5 }
S 2
S 4S 3S 2S 1
S 5
S 4
S 3
S 3 S 5 S 2 S 4S 3 S 4
潜在相容步骤 3、构成简化状态表由上面得到的最大相容类集合 {A},{B},…,{K} 可能有状态重叠,
所以可以用其中的一部分作为一个简化状态。若用 {A'} 表示 {A}
的一个子集,{B'} 表示 {B} 的一个子集,等,则可以用 {A'},
{B'},…,{K'} 中的一部分 {A'},{B'},…,{N'}作为化简后的状态。其中 {A'},{B'},…,{N'} 应满足下列三个条件:
1,覆盖化,{A'},{B'},…,{N'}中必须包含原状态表中所有的状态。
2,最小化,由 {A'},{B'},…,{N'}构成的状态数目最少。
也就是说,若在第一步得到 k个最大相容类集合,最后的简化状态个数可以小于 k。
3,闭合性,{A'},{B'},…,{N'}中任何一个新状态,它所包含的几个原来的状态在一定的输入下对应的次状态必须属于合并后的同一状态。否则简化表的次状态无法确定。
回到原来的例子:
已经得到 2个最大相容类集合,分别是
{ S1,S2,S3,S5 } { S2,S3,S4,S5 }
根据前面所说的三个条件中的前面二个 ——覆盖性 和 最小化考虑,选取上述 2个最大相容类集合中的部分子集,可以按下面的组合来选取简化后的状态组合:
(1) { S1,S5 } { S2,S3,S4 }
(2) { S1 } { S2,S3,S4,S5 }
(3) { S1,S2 } { S3,S4,S5 }
(4) { S1,S2,S3 } { S4,S5 }
上述 4个组合,每个组合中都包含了原来的所有状态,所以都满足覆盖性要求。这样组合以后的简化状态只有 2个,并且不可能进一步减少,所以满足最小化要求。
但是,方案 (1)和 (3)均不满足 闭合性 。
以方案 (1)为例,原始问题 S1,S5在输入 X = 0时对应的次状态分别为 S3和 S5。但如果按照 方案 (1)简化以后,S1和 S5将合并成一个状态,而它们的次状态 S3和 S5将分属于化简后的两个不同状态,这样一来,在化简后的状态表中新状态 { S1,S5 }
在输入 X = 0时的次态将无法选择。
状态 次态X=0
S1 S3
S5 S5
化简后的状态 次态X=0
SA={S1,S5} SA(S5)? SB(S3)?
SB={S2,S3,S4}
原始的状态转换关系 方案( 1)的状态转换关系反之,方案 (2)和 (4)则可以满足上述三个条件。所以这两种简化方案是可取的。假定取第二种方案,以 SA代替 { S1 }而以 SB代替 { S2,S3,S4,S5 },于是本问题的状态转换表便简化成只有两个状态,如下表所示。
状态次态输出X=0 X=1
SA SB d 1
SB SB SB 0
数字逻辑基础第五章 异步时序电路异步时序电路的分类
基本型异步时序电路依靠电路反馈记忆状态,输入信号为电平型信号。
脉冲性异步时序电路依靠触发器记忆状态,输入为脉冲信号
(时钟信号),但是没有统一的时钟,并且将时钟作为显式的输入对待。
5.1 基本型异步时序电路分析
基本型异步时序电路的模型组合电路延时
x 1
x m
z 1
z n
Y 1
Y r
y 1
y r
延时输入变量系统状态 激励状态输出变量系统总态
{x1,...xm,y1,...yr}
基本型异步时序逻辑模型的描述
基本型异步时序电路的稳定条件是 y = Y。换句话说,在系统达到稳定以后,Y和 y总是相同的。
正因为如此,在基本型异步时序电路中不能将 y和
Y分别看作现态和次态。
)()(
),(
),(
2
1
ttt
f
f
Yy
yxz
yxY
基本型异步时序电路分析的例子
&
&
&
X 1
X 2
RE S
Y 1
Y 2
y 1
y 2
1
&
&
&
1
激励状态系统状态 假想的延时环节系统总态
2122
1211
yyxY
yyxY
1RES?
y1y2 Y1 Y2x
1x2=00 x1x2=01 x1x2=10 x1x2=11
00 00 01 10 11
01 01 01 01 01
10 10 10 10 10
11 11 11 11 11
时的 激励函数 和 状态流程表稳定状态
Y与 y相同非稳定状态
Y与 y不同状态转换过程
0000
dd01
dd10
01
10
00
dd
dd
状态转换图功能,类似抢答器初始总态基本型异步时序电路状态转换的特点
假定所有输入中每次只有一个输入发生改变,所以没有类似 00→11 的状态转换。
输入改变以后,到达的总态如果是不稳定总态,则状态转换过程将继续进行,直到到达稳定总态。
基本型异步时序电路分析的一般过程激励方程输出方程状态流程表标出稳定状态状态转换图或时序图电路功能描述正确区分各变量之间的关系 作状态转换图要包含所有稳定状态和所有转换途径作时序图时要考虑实际的输入情况结合实际的输入情况讨论电路的功能另一个例子的分析
电路
&
&
X 1
X 2
Y 1
Y 2
y 1
y 2
1
&
&
1
z
&
&
激励状态输入输出
激励函数和状态流程表
22112
112122211
yxyxY
yxyyxyxxY
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
00
0001 01
10
00 111110
11110100
00 00
初始状态共有 8个稳定状态
状态转换图 0000
1100 1111
0110
1011
1101
0101
1000
01
00
11
00
01
10
10
11
10
01
10
11
00
01
00
11
包含所有稳定状态和所有转换途径
在特定输入条件下的时序图
x 1
x 2
Y 2
Y 1
y 1
y 2
z
t 1 t 2 t 3t 0 t 8t 7t 6t 5t 4 t 11t 10t 9 t 12
11 yxz?
在输入 x1x2 = 00,01,11,10,00,01,11,01,11,10,00,10,00序列下,
x1x2y1y2 = 0000,0110,1111,1011,0000,0110,1111,0101,1101,
1000,0000,1000,0000
功能描述若在输入 x2为逻辑 1期间,输入 x1发生 0到 1的变化
(上升沿),则在随后的 x1第一个逻辑 1期间输出等于逻辑 0,其余时间均输出逻辑 1。
若输入 x2为逻辑 0,则无论输入 x1如何变化,输出总是逻辑 1。
5.2 基本型异步时序电路中的竞争与冒险
竞争的例子
&
&
X 1
X 2
Y 1
Y 2
y 1
y 2
1
&
&
1
&
&
1
&11122
212111211
yxyxY
xxyyxyxxY
发生竞争的总态转换过程
输入序列:
00→10→11→01→11
总态转换:
0000→1011→1111→
0110→?
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
00
01
00
10
10
111100
0101
01 11
01
10
10
临界竞争与非临界竞争
基本型异步时序电路在某个输入作用下,
从一个稳定状态转换到另一个稳定状态时,
如果有 多于一个的状态变量需要同时发生变化,则称电路存在竞争。
如果电路最终达到的稳定状态依赖于状态变量变化的次序,则称为临界竞争;
如果最终达到的稳定状态相同,则称为非临界竞争。
临界竞争的判别
在状态转换表中选择一个稳定总态,然后从这个稳定状态向某个相邻列转移。
考察在该列内的状态转换过程。若此转换过程中所有的转换途径都能够到达同一个稳定状态,则此转换过程不发生临界竞争。
改变输入变量以及改变初始稳定总态,重复上两步的判别。直至遍历从所有的稳定总态出发的每种可能的转换途径。
临界竞争的例子 1
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
11
11
01
10
01
01
111110
1100
11 00
00
00
00
不同的转换次序导致不同的结果:临界竞争不同的转换次序,相同的结果:非临界竞争临界竞争的例子 2
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
00
11
1100
11
01
00
11
状态循环,无法达到最终稳定状态。这是一种特殊的临界竞争临界竞争的消除
在电路中插入可控延迟元件
修改状态流程表中的非稳定状态,使得循环的结果到达目标状态
采用相邻的状态分配来消除临界竞争
增加状态变量修改状态流程表
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
01
11
1100
11
x 1 x 2
y 1 y 2
00 01 11 10
10
11
01
00
01
11
1000
11
有临界竞争 无临界竞争修改原则:不改变最终结果在原问题中,11是对应于 10的次状态,最终结果要求转换到 11。
相邻的状态分配
相邻状态:
相邻状态分配:
使每个稳定态与它的激励态相邻,可以避免临界竞争。
00 01
1110
000
011
010 110
111
100
101001
相邻状态分配的例子
x 1 x 2
s 00 01 11 10
D
C
B
A
A
AA
B
BBB
BB
C
C
D
D
DD
D
A
B
D
C
00
1110
01
x 1 x 2
s 00 01 11 10
01
11
10
00
00
0000
10
101010
1010
11
11
01
01
0101
01
当系统在状态 A发生输入改变( 00→01 )时,
激励态为 B,为了不发生临界竞争,要求 A与
B相邻。
原始问题 要求的相邻关系相邻编码后的状态流程表增加状态变量
原始问题
x 1 x 2
s 00 01 11 10
D
C
B
A
A
A A
D
ABB C
B
C
C
D
D
DB
C
A B
D C
原始问题的相邻关系复杂,无法采用相邻编码达到无临界竞争
增加状态变量后,做到相邻编码 x 1 x 2 = 0 0 = 0 1 = 1 1 = 1 0
D
C
B
A
G
F
E
000
001
100
A
101
110
011
010
y 1 y 2 y 3
A
A
A
B
B B
B
E
C C
DD
DD
C
C
FF
G
000
000
000
000001 001
001
001
010 010
010
010
100 100
100100
011
110 110
101
x 1 x 2 x 1 x 2 x 1 x 2
Y 1 Y 2 Y 3
A B
D C
G
F
E
000
101
110
011
010100
001
增加了 3个中间状态,使得所有状态转换都是相邻的
5.3 基本型异步时序电路设计限制与要求
每次只允许一个输入变量发生改变
每次输入发生改变后,必须等待电路稳定后方可允许下一个输入发生变化
无冒险
无临界竞争基本型异步时序电路设计的一般过程原始问题状态转换图状态流程表化简状态分配激励函数输出函数逻辑图注意状态转换的相邻性,使得状态转换不发生临界竞争。
不能存在冒险自然语言描述,
也可以用波形图或其他方式描述例,试用逻辑门电路实现一个下降沿触发的 T触发器 。
这里的 T触发器与触发器一章中讨论的 T触发器略有不同,它只有一个输入端 T,在 T端发生负跳变就引起触发器翻转 。 我们可以画出该触发器的输入输出波形如下:
x
z
t 1 t 2 t 3t 0 t 4 t 10t 9t 8t 7t 5 t 6
时刻 t0 ~ t1( 或 t4 ~ t5) 为状态 A,t1 ~ t2为状态 B,t2 ~ t3为状态 C,t3 ~ t4为状态 D,一共 4个状态。由此得到的状态转换图和状态流程表如下:
X = 0
D
C
B
A
状态
A / 0
激励态/ 输出
CD
BA
1 / 0
0 / 1
0 / 0
1 / 1
1 / 0
0 / 11 / 1
0 / 0
D / 1
D / 1
B / 0
B / 0
A / 0
C / 1
C / 1
X = 1
T触发器的状态转换表状态激励态 /输出
X=0 X=1
00 00/0 01/0
01 11/1 01/0
11 11/1 10/1
10 00/0 10/1
激励态Y 1
0
11
11 0
00
x
y 1 y 2
00 101101
1
0 0
00
11 0
11
x
y 1 y 2
00 101101
1
0
激励态Y 2
输出z
1
21122
21121
Yz
yyyxyxY
yyxyyxY
&
x
Y 1
Y 2
y 1
y 2
z
&
&
&
&
&
&
1
1
例 设计一个异步时序电路,它有两个输入端 x
1x2,
一个输出端 z。当输入 x1x2 = 00时,输出 z =
0。若在 x1由 0变 1时 x2已经是逻辑 1,即 x2在
x1之前变为 1,则输出 z = x1x2。若 x1在 x2之前变为 1则输出 z= 0。
x 2
z
t 1 t 2 t 3t 0 t 4 t 9t 8t 7t 5 t 6
x 1
GFEADCBA A
状态转换图与状态流程表
X = 0 0
D
C
B
A
状态激励态
C/1 D/0B /0
A/0
01
11
01 00
10
00
X = 0 1
输出
X = 1 1 X = 1 0
G
F
E
D
C
B
A
G
F
E
G /0F /0E /0
00
00
10
00
11 01
10
11
11
B
B
A
A
A
A
C
F
C
F
EG
0
0
0
0
0
0
1D
E-
-
-
-
-
-
-
由于不允许同时改变两个输入变量,这些状态不可能经过化简
DCBA E F
D
C
B
G
E
F
D,E
B,G
B,G
C,F
C,F
B,G
C,F
B,G
D,E
C,F C,F C,F
A
D
C
B
G
E
F
S0
S2
S1
满足最小化、覆盖化和闭合性三个条件,从上述 3个最大相容类中选择 3个子集 {A,B,G},{C} 和 {D,E,F}来作为化简后的状态,记为 S0,S1和 S2
化简以后的状态流程表状态 激励态 输出x
1x2=00 x1x2=01 x1x2=11 x1x2=10
S0 S0 S0 S1 S2 0
S1 – S0 S1 S2 1
S2 S0 S0 S2 S2 0
状态分配
S1S0
S2
01
S3
00
10 11
原来的相邻关系修改后的相邻关系状态 y1y2 激励态 Y1Y2 输出 zx
1x2=00 x1x2=01 x1x2=11 x1x2=10
S0 00 00 00 01 10 0
S1 01 – 00 01 11 1
S3 11 – – – 10 1
S2 10 00 00 10 10 0
为了使状态相邻,增加过渡状态激励方程、输出方程 和逻辑图
2
2111212
21111
yz
yyxyxxY
xxyxY
&
x1
Y 1
Y 2
y 1
y 2
z
&
&
&
&
&
1
1
x2
5.4 脉冲型异步时序电路的分析和设计
脉冲型异步时序电路与同步时序电路的相同点
都以触发器作为记忆单元
都具有米利与摩尔两种模型,结构类似
脉冲型异步时序电路
触发器具有不同的时钟
时钟信号作为输入处理
同步时序电路
全部触发器具有统一的时钟
时钟信号是默认的,不作为输入处理脉冲型异步时序电路分析的例子
激励方程与输出方程
触发器的输入方程
x
Q 2Q 1
1D
&
z
C1
1D
C1
&D 1 D 2
CP 1 CP 2
212221,,QxQzQDQD
cp1 = x,cp2 = xQ1
脉冲型异步时序电路的特点
状态方程
121
22222222)1(2
11121111)1(1
,xQcpxcp
cpQcpQcpQcpDQ
cpQcpQcpQcpDQ
n
n
在脉冲型异步时序电路中触发器的 cp表达式中,
只有当表达式右端的逻辑函数产生对该触发器有效的触发时,表达式左边的 cp = 1。
状态转换表
Q2Q1 cp2cp1 Q2(n+1)Q1(n+1) I=0 I=1 I=0 I=1
00 00 01 00 01
01 00 11 01 11
11 00 11 11 00
10 00 01 10 10
I = 1,输入 x 的下降沿
I = 0,除了输入 x 下降沿以外的所有时刻
状态转换图和时序图
11
10
01000 / 0
1 / 01 / 1
0 / 0
0 / 0
0 / 0
1 / 0
1 / 0
I / z
x
Q 2
Q 1
D 1
z
CP 2
CP 1
I =1
脉冲型异步时序电路的设计原始问题分析状态转换图状态转换表化简状态分配激励函数 逻辑图可能包含触发器的时钟信号的选择自然语言描述,
也可以用波形图或其他方式描述输出函数设计例 1
试用 T触发器设计满足下列功能的脉冲型异步时序电路。电路的功能描述是:只有当输入脉冲序列为 x1→ x1→ x2的情况下,在输入 x2的同时输出 z;
其余情况下都没有输出。
T触发器是指只有一个 T输入端的触发器。该触发器的状态方程如下:
tQtQQ n 1
问题分析
米利模型
定义系统状态:
状态 A:原始状态;
状态 B:已经输入序列为 x1;
状态 C:已经输入序列为 x1→ x1,在此状态下输入 x2可以产生输出。
状态转换图
A C
B
x
1
/ 0
x / z
x
1
/ 0
x
2
/ 1
x
1
/ 0
x
2
/ 0
x
2
/ 0
注意:由于异步时序电路限制每次只有一个输入变量变化,所以从某状态出发的状态转换线的数目与输入变量的数目相等对比:同步时序电路一般是输入变量的组合
状态编码和状态转换表现态 次态 / 输出 y1y2 Y1Y2 / zx
1 x2 x1 x2
A B/0 A/0 00 01/0 00/0
B C/0 A/0 01 10/0 00/0
C C/0 A/1 10 10/0 00/1
注意:所有输入没有组合状态!
激励卡诺图和输出卡诺图
y1y2 Y1Y2 / zx
1 x2
00 01/0 00/0
01 10/0 00/0
10 10/0 00/1
Q Qn+1 t
0 0 0
0 1 1
1 1 0
1 0 1
x
1
y
1
y
2
10
11
01
00
x
2
10
11
01
000
1
1 0
1
0
00
10
0 1
d ddd
t
1
t
2
10
11
01
00
1
0
0
0
0
0
dd
z
y
1
y
2
y
1
y
2
x
1
x
2
x
1
x
2
状态转换表
T触发器的激励表激励卡诺图 输出卡诺图注意:所有输入没有组合状态,卡诺圈不能将不同的输入圈在一起!
激励函数、输出函数和逻辑图
12
22112
12211
yxz
yxyxt
yxyxt
x1
y1
T
&
z
&
x2
y1
≥1
y2
T
&
&
≥1
T1
T2
设计例 2:异步计数器
试用 JK触发器设计一个 12进制异步加法计数器
问题分析 x
y 1
y 0
y 3
y 2
0 01110987654321 1
计数器类问题具有固定的时序,所以用时序图分析比较容易
状态转换表 状态 y3y2y1y0 Y3Y2Y1Y0S
0 0000 0001
S1 0001 0010
S2 0010 0011
S3 0011 0100
S4 0100 0101
S5 0101 0110
S6 0110 0111
S7 0111 1000
S8 1000 1001
S9 1001 1010
S10 1010 1011
S11 1011 0000
电路结构
x
1J
C1
y
0
1K
1J
C1
y
1
1K
1J
C1
y
2
1K
1J
C1
y
3
1K
输出变量输入变量问题:每个触发器的时钟、激励如何获得?
触发器 0 触发器 1 触发器 2 触发器 3
时钟的选择原则
x
y 1
y 0
y 3
y 2
0 01110987654321 1
1、在触发器的状态发生改变时必须有时钟信号,并且该时钟信号具有相同的极性(即都是正跳变或者都是负跳变)。
2、在触发器不发生状态改变时的时钟信号越少越好。
以 y3 为例,cp3 必须在这两个时刻出现,具有相同的极性,
且越少越好。所以选 y1 作为 cp3 。
本例时钟的选择 x
y 1
y 0
y 3
y 2
0 01110987654321 1
cp0 = x,cp1 = y0,cp2 = y1,cp0 = y1
由于 Y0 在每个 cp0 有效时都翻转,所以触发器 0
只要简单地接成 T′触发器即可。
同理,触发器 1 也只要简单地接成 T′触发器。
激励卡诺图(触发器 2、触发器 3)
y
3
y
2
10
11
01
00
0
J
2
y
1
y
0
00 01 11 10
10
11
01
00
d
K
2
00 01 11 10
1d
d1
10
11
01
00
d
J
3
00 01 11 10
10
11
01
00
1
K
3
00 01 11 10
d1
d0
y
1
y
0
y
1
y
0
y
1
y
0
y
3
y
2
y
3
y
2
y
3
y
2
此激励卡诺图的获得过程与同步时序电路的过程类似。
不同之处在于,
触发器 2、触发器 3的时钟是 y1的下降沿,而 y1
的下降沿只有在状态 S3、
S7,S11才出现,所以在卡诺图中只有这 3个状态有效,其余状态均作为任意态处理。
激励函数和逻辑图
0 0 1 1
2 3 2 3 2 3
1,1
,1,,1
J K J K
J y K J y K
x
1J
C1
y 0
1K
1J
C1
y 1
1K
1J
C1
y 2
1K
1J
C1
y 3
1K
1
1111
1