同步时序电路的分析方法

2024-05-09 15:36

本文主要是介绍同步时序电路的分析方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

同步时序电路的分析方法

基本步骤

  • Step1:写方程式

    时钟方程 :各个触发器时钟信号的逻辑表达式,同步时序电路可省去不写

    输出方程:时序电路的输出逻辑表达式,通常为现态和输入变量的函数

    驱动方程 :各触发器输入端的逻辑表达式

  • Step2:求状态方程

    状态方程:将驱动方程代入相应触发器的特性方程所得到的方程

  • Step3:根据状态方程列状态表

    状态表:将电路输入和现态的各种取值组合,代入状态方程和输出方程进行计算,求出相应的次态和输出

    注意:如现态的起始值已给定,则从给定值开始计算。如没有给定,则可设定一个现态起始值依次进行计算

  • Step4:根据状态表画出对应的状态转换图 & 时序图

    状态转换图:指电路由现态转换到次态的示意图

    时序图:在时钟脉冲CP作用下,各触发器状态变化的波形图

  • Step5:检查电路能否 “自启动”

    能自启动:存在无效状态,但没有形成循环

    不能自启动:存在无效状态,且形成了循环

  • Step6:电路功能说明

    逻辑功能:根据状态表或状态转换图来说明电路逻辑功能

在这里插入图片描述

分析举例

【例】分析下图时序电路的逻辑功能

在这里插入图片描述

【解】这是时钟 CP 下降沿触发的同步时序电路,分析时不必考虑时钟信号;没有外部输入,只有输出,且输出仅与现态有关,属 Moore 型时序电路

  • Step1:写方程式

    1. 驱动方程 (用现态表示)

      • J 0 = K 0 = 1 J_0 = K_0 = 1 J0=K0=1

        (若把 JK 触发器的输入端都接到高电平 1 ,就相当于把这个 JK 触发器转换成 T’ 触发器,那么 C P CP CP 每来一个下降沿, Q 0 Q_0 Q0 Q 0 ‾ \overline{Q_0} Q0 都会翻转一次)

      • J 1 = Q 2 n ‾ ⋅ Q 0 n J_1 = \overline{Q_2^n}·Q_0^n J1=Q2nQ0n K 1 = Q 0 n K_1=Q_0^n K1=Q0n

      • J 2 = Q 1 n ⋅ Q 0 n J_2 = Q_1^n·Q_0^n J2=Q1nQ0n K 2 = Q 0 n K_2=Q_0^n K2=Q0n

    2. 输出方程(用现态表示)

      Y = Q 2 n ⋅ Q 0 n Y=Q_2^n·Q_0^n Y=Q2nQ0n

  • Step2:将驱动方程代入 JK 触发器的特性方程得到状态方程

    JK 触发器的特性方程 Q n + 1 = J Q n ‾ + K ‾ Q n Q^{n+1}=J\overline{Q^n}+\overline{K}Q^n Qn+1=JQn+KQn

    • Q 0 n + 1 = J 0 Q 0 n ‾ + K 0 ‾ Q 0 n = 1 ⋅ Q 0 n ‾ + 0 ⋅ Q 0 n = Q 0 n ‾ Q^{n+1}_0=J_0\overline{Q^n_0}+\overline{K_0}Q^n_0=1·\overline{Q^n_0}+0·Q^n_0=\overline{Q^n_0} Q0n+1=J0Q0n+K0Q0n=1Q0n+0Q0n=Q0n
    • Q 1 n + 1 = J 1 Q 1 n ‾ + K 1 ‾ Q 1 n = Q 2 n ‾ ⋅ Q 0 n ⋅ Q 1 n ‾ + Q 0 n ‾ ⋅ Q 1 n Q^{n+1}_1=J_1\overline{Q^n_1}+\overline{K_1}Q^n_1=\overline{Q_2^n}·Q_0^n·\overline{Q^n_1}+\overline{Q^n_0}·Q^n_1 Q1n+1=J1Q1n+K1Q1n=Q2nQ0nQ1n+Q0nQ1n
    • Q 2 n + 1 = J 2 Q 2 n ‾ + K 2 ‾ Q 2 n = Q 1 n ⋅ Q 0 n ⋅ Q 2 n ‾ + Q 0 n ‾ ⋅ Q 2 n Q^{n+1}_2=J_2\overline{Q^n_2}+\overline{K_2}Q^n_2=Q_1^n·Q_0^n·\overline{Q^n_2}+\overline{Q_0^n}·Q^n_2 Q2n+1=J2Q2n+K2Q2n=Q1nQ0nQ2n+Q0nQ2n
  • Step3:根据状态方程列状态表

    现态的起始值没有给定,可设定一个现态起始值依次进行计算

    设电路初始状态为 Q 2 Q 1 Q 0 = 000 Q_2Q_1Q_0=000 Q2Q1Q0=000

    在这里插入图片描述

  • Step4:根据状态表画出对应的状态转换图 & 时序图

    状态转换图说明

    在这里插入图片描述

    状态转换图

    在这里插入图片描述

    • 有效状态:被利用的状态(000、001、010、011、100、101),有效状态构成的循环称为“有效循环”

      在这里插入图片描述

    • 无效状态:没有被利用的状态(110、111),无效状态若构成循环称为“无效循环”

    时序图(在时钟脉冲CP作用下,各触发器状态变化的波形图)

    在这里插入图片描述

  • Step5:检查电路能否 “自启动”

    电路虽然存在无效状态,但没有形成循环,所以电路能自启动。即使电路由于某种原因进入无效状态,只要给足够的脉冲,就能返回到有效循环

  • Step6:电路功能说明

    逻辑功能:该电路能对 CP 脉冲进行六进制计数,并在端输出一个下降沿作为进位输出信号,为“同步六进制计数器”

这篇关于同步时序电路的分析方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973785

相关文章

详谈redis跟数据库的数据同步问题

《详谈redis跟数据库的数据同步问题》文章讨论了在Redis和数据库数据一致性问题上的解决方案,主要比较了先更新Redis缓存再更新数据库和先更新数据库再更新Redis缓存两种方案,文章指出,删除R... 目录一、Redis 数据库数据一致性的解决方案1.1、更新Redis缓存、删除Redis缓存的区别二

Nacos集群数据同步方式

《Nacos集群数据同步方式》文章主要介绍了Nacos集群中服务注册信息的同步机制,涉及到负责节点和非负责节点之间的数据同步过程,以及DistroProtocol协议在同步中的应用... 目录引言负责节点(发起同步)DistroProtocolDistroSyncChangeTask获取同步数据getDis

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

MySQL主从同步延迟原理及解决方案

概述 MySQL的主从同步是一个很成熟的架构,优点为: ①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力; ②在从主服务器进行备份,避免备份期间影响主服务器服务; ③当主服务器出现问题时,可以切换到从服务器。 相信大家对于这些好处已经非常了解了,在项目的部署中也采用这种方案。但是MySQL的主从同步一直有从库延迟的问题,那么为什么会有这种问题。这种问题如何解决呢? MyS

使用条件变量实现线程同步:C++实战指南

使用条件变量实现线程同步:C++实战指南 在多线程编程中,线程同步是确保程序正确性和稳定性的关键。条件变量(condition variable)是一种强大的同步原语,用于在线程之间进行协调,避免数据竞争和死锁。本文将详细介绍如何在C++中使用条件变量实现线程同步,并提供完整的代码示例和详细的解释。 什么是条件变量? 条件变量是一种同步机制,允许线程在某个条件满足之前进入等待状态,并在条件满

mysql创建新表,同步数据

import os import argparse import glob import cv2 import numpy as np import onnxruntime import tqdm import pymysql import time import json from datetime import datetime os.environ[“CUDA_VISIBLE_DEVICE

三.海量数据实时分析-FlinkCDC实现Mysql数据同步到Doris

FlinkCDC 同步Mysql到Doris 参考:https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/zh/docs/get-started/quickstart/mysql-to-doris/ 1.安装Flink 下载 Flink 1.18.0,下载后把压缩包上传到服务器,使用tar -zxvf flink-xxx-

Gerrit与Gitlab同步配置replication其他配置

一、Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程。 1.安装gerrit replication插件 unzip gerrit.warcp WEB-INF/plugins/replication.jar ~/temp/ssh -p 29418 admin@172.19.16.64 gerrit plu

iOS剪贴板同步到Windows剪贴板(无需安装软件的方案)

摘要 剪贴板同步能够提高很多的效率,免去复制、发送、复制、粘贴的步骤,只需要在手机上复制,就可以直接在电脑上 ctrl+v 粘贴,这方面在 Apple 设备中是做的非常好的,Apple 设备之间的剪贴板同步功能(Universal Clipboard)确实非常方便,它可以在 iPhone、iPad 和 Mac 之间无缝传输剪贴板内容,从而大大提高工作效率。 但是,iPhone 如何和 Wind