第五章 同步时逻辑电路.ppt
文本预览下载声明
5.3.3 状态编码 状态编码:是指给最小化状态表中用字母或数字表示的状态,指定一个二进制代码,形成二进制状态表。状态编码也称状态分配,或者状态赋值。 状态编码的任务是: ①确定状态编码的长度(即二进制代码的位数,或者说所需触发器个数); ②寻找一种最佳的或接近最佳的状态分配方案。以便使所设计的时序电路最简单。 一、确定二进制代码的位数 设最小化状态表的状态数为N ,状态编码的长度为m,则状态数N与状态编码长度m的关系为 2m-1 N ≤ 2m 例如,若某状态表的状态数N = 7,则状态分配时,二进制 代码的位数应为 m = 3。或者说状态变量个数为3。 二、确定状态分配方案 状态与代码之间的对应关系可以有许多种。一般说来,用m 位二进制代码的2m种组合来对N个状态进行分配时,可能出现的 状态分配方案数Ks为 例如,当 N = 4, m= 2时,K S = 24。 一种常用方法称为相邻分配法。 相邻分配法的基本思想是:在选择状态编码时,尽可能使激励函数和输出函数在卡诺图上的“1”方格处在相邻位置,从而有利于激励函数和输出函数的化简。 相邻分配法的状态编码原则如下: ① 次态相同,现态相邻。(即在相同输入条件下,具有相同次态的现态应尽可能分配相邻的二进制代码;) ② 同一现态,次态相邻。(即在相邻输入条件下,同一现态的次态应尽可能分配相邻的二进制代码;) ③ 输出相同,现态相邻。(即在每一种输入取值下均具有相同输出的现态应尽可能分配相邻的二进制代码。) 某些状态表常常出现不能同时满足3条原则的情况。此时, 可按从①至③的优先顺序考虑。 此外,从电路实际工作状态考虑,一般将初始状态分配 “0”状态。 三、举例 例 对如下状态表进行状态编码(设A为初始状态)。 现态 次态/输出 x=0 x=1 A C/1 B/0 B A/0 A/1 C A/1 D/1 D D/1 C/0 解 所示状态表中,状态数N = 4,故状态编码的长度应为 m=2。即实现该状态表的功能需要两个触发器。 根据相邻法的编码原则,4个状态的 相邻关系如下: 根据原则①,状态B和C应分配相邻的 二进制代码; 根据原则②,状态B和C、A和D、C和 D应分配相邻的二进制代码; 根据原则③,状态A和D应分配相邻的 二进制代码。 综合①~③可知,状态分配时要求满 足B和C、A和D、C和D相邻。 在进行状态分配时,为了使状态之间 的相邻关系一目了然,通常将卡诺图作为 状态分配的工具。 假定状态变量用y2y1表示,并将A分配“0”,一种满足上述相邻关系的分配方案 如右图所示。即状态A、B、C、D的状态 编码依次为y2y1的取值00、01、11、10。 现态 次态/输出 x=0 x=1 A C/1 B/0 B A/0 A/1 C A/1 D/1 D D/1 C/0 将状态表中的状态A、B、C、D分别用编码00、01、11、10代替,即可得到该状态表的二进制状态表如右下表所示。 注意:满足分配原则的方案通常可以有多种,设计者可从中任选一种。 现态 y2y1 次态y2(n+1)y1(n+1)/输出 x=0 x=1 00 11/0 01/0 01 00/0 00/1 11 00/1 10/1 10 10/0 11/0 现态 次态/输出 x=0 x=1 A C/1 B/0 B A/0 A/1 C A/1 D/1 D D/1 C/0 5.3.4 确定激励函数和输出函数并画出逻辑电路图 任务:根据二进制状态表和所选触发器的激励表,求出触发器的激励函数表达式和电路的输出函数表达式,并予以化简。以便用适当的逻辑门和所选定的触发器构成实现给定逻辑功能的逻辑电路。 根据二进制状态表和触发器激励表,求激励函数和输出函数的最简表达式一般分为两步: ●列出激励函数和输出函数真值表; ●用卡诺图化简后写出最简表达式。 例 用J-K触发器和适当的逻辑门实现如下二进制状态表的 功能。 现态 y2y1 次态y2(n+1)y1(n+1)/输出 x=0 x=1 00 11/0 01/0 01 00/0 00/1 10 01/0 11/0 11 00/1 10/1 解 根
显示全部