同步时序电路

同/异步时序电路

oJbneKG4x1E5rHP.png

  • 同步时序电路:记忆电路一般由触发器构成,记忆电路中所有触发器状态的变化都是在同一时钟信号操作下同时发生的。

  • 异步时序电路:记忆电路可以由触发器构成,也可以由组合电路的反馈构成。记忆电路状态的变化不是同时发生的,可能有公共的时钟信号,也可能没有公共的时钟信号

  • 同步时序电路的输出不仅与当前的输入有关,还与电路当前的状态有关。

现态与次态

  • 以两次驱动(在同步时序逻辑中就是时钟)的间隔时间作为时序电路的定时单位,把某个间隔时刻作为“当前时刻” \(t_k\),将下一个间隔时刻称为“次时刻” \(t_{k+1}\)。 对于“当前时刻”和“次时刻”的表述,都是相对于时刻 \(t_k\) 而言。当前时刻的状态为现态,次时刻的状态为次态

lRvuzeE961UZFYy.png

状态方程与输出方程

  • 状态方程:次态是输入与现态的函数(一般情况,也可以无输入)

  • 输出方程:输出是输入与现态的函数(一般情况,也可以无输入)

米利模型和摩尔模型

  • 输入变量:源于时序电路外部的变量
  • 输出变量:由时序电路输出的变量
  • 状态变量:当记忆(存储)元件采用触发器时, 状态变量即为触发器输出
  • 激励变量:指触发器的输入变量
  • 状态:由触发器输出Q唯一定义
  • 状态变量X与状态Y的关系:\(2^X=Y\)

米利模型

L3FySvlGT4u6NHc.png

  • 某时刻的输出是该时刻的输入和电路状态的函数

摩尔模型

  • 某时刻的输出仅是该时刻电路状态的函数, 与该时刻的输入无关
    mGx7sMRVz95oWIH.png

两者的区别

  • 米利模型的输出直接同输入有关,所以在输入变化时, 不管状态是否改变,输出立即产生变化。即输入不仅影响次态,同时影响输出
  • 摩尔模型的输出只同状态有关,所以在整个状态保持期间保持输出不变。输入的变化只影响次态
  • 若输入与时钟同步,则两种模型的输出在整个时钟周期内均保持不变,但米利模型比摩尔模型提前一个时钟周期改变输出
  • 若输入存在干扰,一般不会影响摩尔模型的输出,但可以影响米利模型的输出。

状态转换表

以表格的形式描述现态、输入与次态、输出的关系

米利型状态转换表

671YuTFwvPHex4A.png

摩尔型状态转换表

OA9pTxIvKkVoDYf.png

状态转换图

以信号流图形式显示状态转换关系,米利模型形式将输出写在转换线上,摩尔模型形式将输出写在状态圈内。

armPKuwFcdZCQq1.png

  • 状态转换图中每个状态射出的状态转换线的根数同系统输入的组合数相同,转换条件包含了所有的输入组合。
  • 摩尔模型的状态数通常大于米利模型的状态数

两种基本模型的相互转换

摩尔模型转换为米利模型

  • 将摩尔模型状态转换表的最后一列输出去掉。
  • 在每个次态后面加上“/输出”。其中的输出对应于该次态在原模型中的输出。
  • 合并相同的状态。

米利模型转换为摩尔模型

  • 输出同类状态:所有指向某个状态的状态转换线都具有相同的输出

  • 输出非同类状态:指向某个状态的状态转换线具有几个不同的输出。

  • 将输出非同类状态分成几个新状态。每个新状态对应一个输出,写在表示新状态的圆圈中

  • 按照不同的输出,将原来的状态转换线分别改画成指向具有对应输出的新状态

  • 原来从输出非同类状态出发的所有状态转换线, 都应该在每个新状态中重新画出来,并且它们的目的状态应该与原来的相同。

同步时序电路的分析

  1. 根据给定的电路,确定电路的类型
  2. 列出触发器的激励方程,和电路的输出方程
  3. 将激励方程代入触发器的特征方程,写出电路的状态方程。
  4. 由状态方程和输出方程,列出电路的状态转换表或状态转换图
  5. 分析电路的状态转换表或状态转换图,得到电路的功能表示或者相应的时序图。

常见的同步时序电路分析

4位二进制同步加法计数器

kEQaue8M6BWwfLY.png

  • 四种功能如下
    rDx45ydCTp2a6s7.png

二进制同步加法计数器的状态方程的一般形式

\[\begin{aligned}&Q_{0(n+1)}=\overline{Q}_0\\&Q_{i(n+1)}=Q_i\oplus(\prod_{j=0}^{i-1}Q_j),\quad i\neq0\end{aligned} \]

二进制同步减法计数器的状态方程的一般形式

\[\begin{aligned}&Q_{0(n+1)}=\overline{Q}_0\\&Q_{i(n+1)}=Q_i\oplus(\prod_{j=0}^{i-1} \overline Q_j),\quad i\neq0\end{aligned} \]

  • 与加法计数器的差别仅在于这个 \(Q_j\) 的“非”

二进制加法计数器的串联

  • 两个16进制计数器串联成一个256进制计数器
    gIiZY6MsuVjXevd.png
  • 前一个的\(RCO\) (进位信号)接后一个的使能 \(ENT\)

四位通用移位寄存器

GzHeDQbxutLd2Ks.png

  • \(\overline R_D\):异步清零信号
  • \(PE\) :模式控制端,\(PE=1\)为并行,反则串行

基于计数器的序列信号发生器

In3GeuPrZWzaRQ2.png

  • 使用一个计数器加上数据选择器实现序列信号:10110001

同步时序电路设计

  1. 确定采用何种模型
  2. 建立状态转换表或状态转换图
  3. 化简冗余状态
  4. 状态编码
  5. 确定触发器类型,状态激励表
  6. 触发器的激励方程,电路的输出方程
  7. 逻辑电路图

带有冗余状态的同步时序电路设计

一个具有 \(n\) 个状态的同步时序电路,如果 \(n\) 不是恰巧等于 \(2m\) ,一般总有 \(2m-n\) 个冗余状态。

  • 冗余状态的处理规则
    • 如果问题要求所有冗余状态都具有特定的输出和次态,应该将所有的冗余状态的输出和次态考虑在状态转换表或状态转换图中
    • 如果问题只要求满足自启动条件,则可以以任意项方式处理冗余状态,但是最后要进行自启动检查。
    • 冗余状态的次态和输出按照实际情况填入合理的值

状态分配

  • 时序电路的状态由状态变量(时序电路中记忆电路的输出)组合确定,将每个状态对应的状态变量组合分配一个唯一的二进制码的过程称为进行状态分配。
  • 在时序电路设计中必须进行状态分配。分配之后用以代表状态变量的实际二进制码对于最终实现电路的代价有着重要影响。
  • 当用\(m\)个状态变量实现\(n\)个状态时,可能的状态分配数为

\[S=\frac{(2^m)!}{(2^m-n)!} \]

  • 其中不等价的状态分配数为

\[S=\frac{(2^m-1)!}{(2^m-n)!m!} \]

状态分配规则

  • 对于在相同输入条件下有相同次态的所有状态,在进行状态分配后,应当能形成一个质蕴含。
  • 对于一个现态的所有次态,在进行状态分配后,最好能够形成一个质蕴含。
  • 有相同输出的状态最好给予相邻的状态分配

状态化简

完全描述状态表化简

  • ”完全描述”:在给定的输入条件下,表中所有的次态利输出均有确定值。
  • 状态等价:设某一时序电路(系统)内的两个状态,如果用任意序列的输入加到此电路上,从两个状态出发所得到的输出序列都相同,则称这两个状态等价。
  • 状态等价具有传递性。

划分等价状态的规律

  1. 如果某两个状态对应的输出不同,则它们显然是不等价的。
  2. 如果某两个状态在相同的输入下有相同的输出,并且次状态完全相等或为原状态时,这两个状态等价。
  3. 如果某两个状态在相同的输入下有相同的输出,但是次态不相同,则此二状态等价与否还得视它们的次态是否等价而定。

隐含表法化简

  • 隐含表是一个楼梯形表格,水平方向分别为\(S_1,S_2,...,S_{n-1}\) 状态,竖直方向为\(S_2,S_3,...,S_n\) 状态。
  • 填写隐含表的步骤:
    1. 若方格对应的两个状态输出不同,在方格打叉号,“❌”
    2. 输出相同,相同的输入下次态相同或仍为原状态,等价,方格打勾,“✔”
    3. 输出相同,次态不同记录次态对。
    4. 观察次态对是否等价,若不等价,打叉
  • 填写完隐含表后,将所有等价状态合并即可。

例子

8bYwHOixJ54NFLo.png

隐含表
dbPyz6XisrlwfVH.png
合并等价状态
UFKZiyD7ezsGkCa.png

不完全描述状态表化简

  • 不完全描述状态表:表中某些状态在某些输入情况下的次态或输出没有确定的值,它们可以取0也可以取1。
  • 输出相容:如果两个输出序列的每一对有确定值的对应输出均相同,则称此两输出相容
  • 输出相容不具有传递性。
  • 状态相容:对于两个状态,用任意序列的输入,从两个状态出发得到的输出序列均相容,则这两个状态相容。
  • 简单相容:对于任意输入,输出相容,有确定值的次状态相等或为原状态。
  • 简单不相容:在相同输入下,输出不相容。
  • 若两个状态的输出相容,有确定值的次态不同,但是该次态对是简单相容的,则此两个状态仍然可能相容。我们称此两个状态潜在相容。
  • 最大相容类集合:含有不被其它相容类集合所覆盖的相容的一组状态或状态对。寻找最大相容类集合的目的是要将全体状态划分为尽可能少的组,每组内的状态都彼此相容。

隐含表法化简

  1. 寻找简单相容状态,在对应的方格内打勾,✔;简单不相容,打叉,❌。
  2. 若既不是简单相容也不是简单不相容,写上状态对,判断是否潜在相容。
  3. 合并图寻找最大相容类集合:
    • 合并图是将状态表中所有的状态以点的形式画在一个圆周上,然后将所有的相容状态对(包括潜在相容对)用直线连接起来。
    • 若在一组状态点中两两之间都有连线,表示该组状态中所有状态两两相容,可以形成最大相容类。
    • 在图形上,它们将形成一个内部两两相连的最大的多边形,该多边形的各个顶点就形成一个最大相容类集合。
  4. 化简最大相容类集合:最大相容类集合 \(A,B,...,K\) 可能有重叠部分,可以用其中的一部分\(A'\subseteq A,B'\subseteq B,...,K'\subseteq K\),\(A',B',...,K'\)作为一个简化状态。应满足以下条件:
    • 覆盖化:化简后的状态集合\(A',B',...,K'\)必须包含原状态中的所有状态
    • 最小化:化简后的状态集合\(A',B',...,K'\)构成的状态数目最少。若第一步得到k个最大状态个数,化简后的状态个数可以小于k
    • 闭合性:\(A',B',..,K'\)中任何一个新状态,它所包含的几个原来的状态在一定的输入下对应的次状态必须属于合并后的同一状态。 否则简化表的次状态无法确定。
  5. 根据最大相容类集合合并状态,构建简化状态表。

例子

PEchz5fr8XT9Mo1.png

  • 隐含表
    4rFhKOCjTqHkfUu.png

  • 合并图寻找最大相容类集合
    NJREULH9jga1vPY.png

最大相容类集合:\(\{S_1,S_2,S_3,S_5\}\),\(\{S_2,S_3,S_4,S_5\}\)

  • 符合条件的化简:\(\{S_1\}\),\(\{S_2,S_3,S_4,S_5\}\).

  • 不符合条件的化简例子:\(\{S_1,S_2\}\),\(\{S_3,S_4,S_5\}\)(\(S_3,S_5\) 在输出为1的次态为\(S_2,S_4\) 不在同一个集合中,不满足闭合性)

  • 根据\(\{S_1\}\),\(\{S_2,S_3,S_4,S_5\}\).合并状态,构建简化状态表。
    MAmg2G36qhJW7KT.png

posted @ 2025-12-21 16:10  NightRainLone  阅读(84)  评论(0)    收藏  举报