数字逻辑课件第7章分配和举例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Y
X Y0 Y1 Y2 Y3
0 Y0 / 0 Y2 / 0 Y0 / 0 Y2 / 0
1 Y1 / 0 Y1 / 0 Y3 / 0 Y0 / 1
Q2 Q1
X 00 01 11 10
编码
0 00 / 0 11 / 0 00 / 0 11 / 0
1 01 / 0 01 / 0 10 / 0 00 / 1
7.4 状态分配 对最小化状态表中用字符表示的状态进行编码的过程, 对最小化状态表中用字符表示的状态进行编码的过程,称 为状态分配。 为状态分配。 设状态数为n 触发器个数为K 设状态数为n,触发器个数为K,则n、K之间应满足下列关系: 之间应满足下列关系: K = [Log2 n]向上取整 选择编码方案 如果有两个状态,需要有一个触发器。可以有两个分配方案。 如果有两个状态,需要有一个触发器。可以有两个分配方案。 如果有n个状态,需要有K个触发器,可以有N 种分配方案: 如果有n个状态,需要有K个触发器,可以有NA种分配方案:
在每一种可能的输入条件下,对输出完全相同的那些现态, (即:在每一种可能的输入条件下,对输出完全相同的那些现态, 应进行相邻编码。) 应进行相邻编码。)
利用规则3 可改善输出函数卡诺图上列向“ 利用规则3,可改善输出函数卡诺图上列向“1” 方格的相邻情况,达到简化输出方程的目的。 方格的相邻情况,达到简化输出方程的目的。
求状态方程和输出方程, 求状态方程和输出方程, 触发器或JK触发器 用D触发器或 触发器 触发器或 实现。 实现。 也可用Verilog HDL建模。 建模。 也可用 建模
Y(t +1) / Z(t )
下面有关状态分配的介绍, 下面有关状态分配的介绍,不作为 教学要求,供学生自学时参考。 教学要求,供学生自学时参考。
X Y
A B C D
0 C/0 C/0 B/ 0 A/ 1
1 D/ 0 A/ 0 D/ 0 B/ 1
按照第一组编码方案设计( 触发器 触发器) 按照第一组编码方案设计(D触发器)
Q0 Q 1
0 1
0 A D
1 B C
Y(t +1) / Z(t )
按照第一组方案,得到的二进制 按照第一组方案, 状态表如下: 状态表如下:
S S0 S1
X
0 S0 / 0 S10 / 0 S0 / 0 S10 / 0 S0 / 0 S1 S1
1 /0 /0 化简
Y
X Y0 Y1
0 1 Y0 / 0 Y1 / 0 Y2 / 0 Y1 / 0
S10 S101 S1011
S101 / 0 S1011 / 1 S1 /0
Y2 Y0 / 0 Y3 / 0 Y3 Y2 / 0 Y0 / 1
例:对下列最小化状态表进行状态编码。 对下列最小化状态表进行状态编码。
X Y
A B C D
0 C/0 C/0 B/ 0 A/ 1
1 D/ 0 A/ 0 D/ 0 B/ 1
个状态, 位二进制, 解:有4个状态,需要 位二进制, 个状态 需要2位二进制 即需2个触发器,设为 Q2Q1。 即需 个触发器, 个触发器 1)按二进制自然码编码 ) Y A B C D Q2 Q1 0 0 1 1 0 1 0 1
Q1(t +1)Q0(t +1) / Z(t )
三种方案激励函数、 三种方案激励函数、输出函数比较
D1 = Q1 X + Q1Q0 + Q1Q0 X Z = Q1Q0
第一组方案
D0 = Q1 X + Q0 X + Q1Q0 X
第二组方案
D = Q1Q + Q0 X 1 0 D = Q1 X + Q X + Q Q0 X 0 0 1 Z = Q Q0 1
Q2 Q1 0 0 1 1
0 C/0 C/0 B/ 0 A/ 1
0 1 1 0
1 D/ 0 A/ 0 D/ 0 B/ 1
0 Q2Q1 00 11/ 0 01 11/ 0
11 01/ 0 10 00 / 1
X
1
10 / 0 00 / 0 10 / 0 01/ 1
Q2(t+1)Q1(t+1) / Z(t)
按照第二组方案,得到的二进制 按照第二组方案, 状态表如下: 状态表如下:
Q1Q0 X 0 A = 00 01/ 0 C = 01 11/ 0 B = 11 01/ 0 D = 10 00 / 1
1 10 / 0 10 / 0 00 / 0 11/ 1
D1 = Q1Q0 + Q0 X D = Q1 X + Q0 X + Q1Q0 X 0 Z = Q1Q0
Q1(t +1)Q0(t +1) / Z(t )wk.baidu.com
X Y
A B C D
0 C/0 C/0 B/ 0 A/ 1
1 D/ 0 A/ 0 D/ 0 B/ 1
按照第二组编码方案设计( 触发器 触发器) 按照第二组编码方案设计(D触发器)
Q0 0 Q 1 0 A 1 D
第二组
1 C B
Y(t +1) / Z(t )
第三组方案
D = Q1X + Q0 X 0 Z = Q1Q0
D1 = Q1X + Q0 X + Q1Q0
与项少,与项中的变量数少,有公共与项。 与项少,与项中的变量数少,有公共与项。
7.5 一般同步时序电路设计举例 序列检测器。(不可重) 例1:设计一个“1011”序列检测器。(不可重) :设计一个“ 序列检测器。(不可重 0/0 S0 1/0 1/0 S1 0/0 0/0 S10 1/0 S101 0/0 1/0 1/1 S1011 0/0
01/ Z
D
利用规则1 可改善次态卡诺图上列向1 利用规则1,可改善次态卡诺图上列向1方 格的相邻情况,达到简化激励方程的目的。 格的相邻情况,达到简化激励方程的目的。
规则2 在相邻的输入条件下,同一现态,次态相邻。 规则2:在相邻的输入条件下,同一现态,次态相邻。
(即:同一现态在相邻的输入条件下的次态,应进行相邻编码。) 同一现态在相邻的输入条件下的次态,应进行相邻编码。)
Q1 0 1 Q2 0 A B 1 D C
第一组
Q1 0 1 Q2 0 A C 1 D B
第二组
Q1 0 1 Q2 0 A C 1 B D
第三组
随着状态数的增加,编码方案的数量会大幅度增加, 随着状态数的增加,编码方案的数量会大幅度增加, 目前没有成熟的方法给出确定的编码方案, 目前没有成熟的方法给出确定的编码方案,往往需要设计 者的经验和方案之间的反复比较。 者的经验和方案之间的反复比较。
相邻法状态编码规则 规则1 在相同输入条件下,次态相同,现态相邻。 规则1:在相同输入条件下,次态相同,现态相邻。
(即:在相同输入条件下,具有相同次态的现态,应进行相邻编码) 在相同输入条件下,具有相同次态的现态,应进行相邻编码)
A B
01/ Z 01/ Z
G
01/ Z
C
Q2Q1 Q3 00 01 11 10 0 A C − − 1 B D − −
按照第三组方案,得到的二进制 按照第三组方案, 状态表如下: 状态表如下:
第三组
Q1Q0 X 0 A = 00 01/ 0 C = 01 10 / 0 D = 11 00 / 1 B = 10 01/ 0
1 11/ 0 11/ 0 10 / 1 00 / 0
D1 = Q1X + Q0 X + Q1Q0 D = Q1X + Q0 X 0 Z = Q1Q0
7.4 状态编码(状态分配) 状态编码(状态分配) 对最小化状态表中用字符表示的状态进行编码 的过程,称为状态编码(状态分配)。 的过程,称为状态编码(状态分配)。 状态编码
目的:构造卡诺图形式的二进制状态表。 目的:构造卡诺图形式的二进制状态表。 二进制状态表 触发器+组合逻辑 实现。 用传统的 触发器 组合逻辑 实现。 用Verilog HDL建模。 建模。 建模
第一组
Q1Q0 X 0 A = 00 11/ 0 B = 01 11/ 0 C = 11 01/ 0 D = 10 00 / 1
1 10 / 0 00 / 0 10 / 0 01/ 1
D1 = Q1 X + Q1Q0 + Q1Q0 X D0 = Q1 X + Q0 X + Q1Q0 X Z = Q1Q0
(2K )! NA = (2K − n)!
例如: 个状态,需要有2个触发器。可以有24种分配方案。 例如:4个状态,需要有2个触发器。可以有24种分配方案。 24种分配方案
(2K )! 22! NA = = = 24 (2K − n)! (22 − 4)!
24种状态编码方案见教材 页 24种状态编码方案见教材247页。最终可以归纳为以下三个 种状态编码方案见教材247 不等价的(完全独立)方案。 不等价的(完全独立)方案。 为了使状态之间的相邻关系一目了然, 为了使状态之间的相邻关系一目了然,通常将卡诺图 作为状态分配的工具。 作为状态分配的工具。
Q1(t +1)Q0(t +1) / Z(t )
X Y
A B C D
0 C/0 C/0 B/ 0 A/ 1
1 D/ 0 A/ 0 D/ 0 B/ 1
按照第三组编码方案设计( 触发器 触发器) 按照第三组编码方案设计(D触发器)
Q 0 0 Q 1 0 A 1 B
1 C D
Y(t +1) / Z(t )
Q2(t+1) = Q2Q1 X+ Q2 Q1 X+ Q2Q1X = Q2 • Q1 X + Q2 • (Q1 X+ Q1X) = Q2 • Q1 X + Q2 • (Q1 ⊕ X)
Q2(t+1)Q1(t+1)/Z
状态方程 触发器, 用D触发器,画图? 触发器 画图? 触发器, 用JK触发器,画图? 触发器 画图?
第一组
0 1 Q1 0 A C 1 D B
第二组
Q0
Q0 0 1 Q1 0 A C 1 B D
第三组
Y(t +1) / Z(t )
编码方案分析: 编码方案分析: •根据规则1,要求AB,AC相邻,第三组方案最好; 根据规则1 要求AB,AC相邻 第三组方案最好; 相邻, •根据规则2,要求CD,AC,BD,AB相邻,第三组方案最好; 根据规则2 要求CD,AC,BD,AB相邻 第三组方案最好; 相邻, •根据规则3,要求AB,AC、BC相邻,三组方案均可; 根据规则3 要求AB,AC、BC相邻 三组方案均可; 相邻, •规则1优先级高于规则2,规则3优先级最低,第三组方案应该为最好。 规则1优先级高于规则2 规则3优先级最低,第三组方案应该为最好。
Q1(t+1) = Q2Q1 + Q2 Q1X + Q2 Q1 X = (Q2 ⊕ X) • Q1 + Q2 • Q1
Z = Q2 Q1X
采用Verilog HDL建模 采用 建模
Q2 Q1
X 00 01 11 10
0 00 / 0 11 / 0 00 / 0 11 / 0
1 01 / 0 01 / 0 10 / 0 00 / 1
规则1的优先级高于规则2 如果没有大量的输出,规则3 规则1的优先级高于规则2,如果没有大量的输出,规则3 的优先级最低。 的优先级最低。
例1: 选择图示最小化状态表的最佳状态分配方案
X Y
A B C D
0 C/0 C/0 B/ 0 A/ 1
1 D/ 0 A/ 0 D/ 0 B/ 1
Q0 Q1 0 1 0 A B 1 D C
解决编码问题的一种常用方法——相邻状态分配法 相邻状态分配法 解决编码问题的一种常用方法
相邻法的基本思想: 相邻法的基本思想: 在选择状态编码时, 在选择状态编码时,尽可能使激励函数和输出函数 在卡诺图上的“ 方格处在相邻位置 方格处在相邻位置, 在卡诺图上的“1”方格处在相邻位置,从而有利于 激励函数和输出函数的化简,使所设计的电路最简。 激励函数和输出函数的化简,使所设计的电路最简。
X
Y(t +1) / Z(t )
0 Q2Q1 00 10 / 0 01 10 / 0
11 01/ 0 10 00 / 1
1
11/ 0 00 / 0 11/ 0 01/ 1
Q2(t+1)Q1(t+1) / Z(t)
2)按格雷码编码 ) Y A B C D
X Y
A B C D
编码方式不同, 编码方式不同, 二进制状态表不同。 二进制状态表不同。
00/ Z
A B
01/ Z
G
11/ Z
C
Q2Q1 Q3 00 01 11 10 0 A B C D 1 − − − −
利用规则2 利用规则2,可改善次态卡诺图上 行向“1”方格的相邻情况,达到简 方格的相邻情况, 行向“1”方格的相邻情况 化激励方程的目的。 化激励方程的目的。
10/ Z
D
规则3:输出完全相同,现态相邻。 规则 :输出完全相同,现态相邻。