热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

状态机和时序图

第一部分:状态机1、认识状态机对象:静态属性(Property)和动态行为(Event)(怎么感觉有点像程序里面面向对象的概念)。状态:是指在对象的生命周期中满足某些条件、执行某些


第一部分:状态机

1、认识状态机

对象:静态属性(Property)和动态行为(Event)(怎么感觉有点像程序里面面向对象的概念)。

状态:是指在对象的生命周期中满足某些条件、执行某些活动或等待某些事件的条件(condition)或状况(situation)。

状态机 图 通过对类 对象的生存周期建立模型 来描述对象随时间变化的动态行为,也可以用来描述用例、协作和方法的动态行为,它是展示状态与状态转换的图。

状态机 是一个对象所有可能生命历程的 模型。 描述对象的一种方式。

状态的一大特性就是转换,状态不是孤立的,换句话说,状态是变化的,是会互相转化的。

状态转换 是指两个状态之间、两个活动之间或者一个活动和一个状态之间的关系。

两个状态转换的原则:

(1)转换本身的逻辑性—并非所有的状态之间都可以任意转换

(2)转换的外界因素—转换时需要一个外因

举例:小人跑动(move)、小人站立静止(stand)、小人在空中坠落(falling)

第二部分:时序图

时序图 反映了模块的 输入输出信号随 时间变化 的情况。可以帮助理解模块的功能,直接反映信号的变化 及相互关系。

时序图的“先天缺陷”:

1、要将模块的所有功能描述出来,时序图要把输入信号和输出信号的所有可能状态都反映出来,这样需要时序图的周期个数尽可能多些,输入信号的变化尽可能多些。

2、时序图一般辅助理解模块的功能,模块一般需要文字性或状态机的功能描述(看来只是一张时序图还是不够的)。

3、时序图不便于HDL的实现 so >>>>>>>>>>>>>>>> 状态机(Medium) >>>>>>>>>>>>>>>>>> HDL

第三部分:关系(转换)

时序图 到状态机,一般要求时序图反映了所有输入和输出随时间变化的情况。

在这里插入图片描述

在这里插入图片描述

从上面两张时序图中可以分析出,静态RAM的读写时序都分成三个部分:Setup、Strobe、Hold。

读写接口信号:EM_CS、EM_A、EM_D、EM_OE、EM_WE、EM_RW,随时间也有不同的变化。 这样可以把读写时序分成 5 个状态:Setup、Read、Write、Hold 、Idle。

Idle状态:不读也不写,EM_CS为无效。

Setup状态:EM_CS有效,EM_RW分别为读、写,EM_WE和EM_OE无效。

Read状态:EM_OE有效,EM_WE无效。

Write状态:EM_WE有效,EM_OE无效。

Hold状态:EM_WE和EM_OE均为无效。

确定状态转移条件,这里用到计数器,Setup和Hold均为2个clk,而Read和Write均为3个clk,从Idle到Setup,需要使EM_CS有效。

经以上分析,静态RAM的读写时序状态机如下:

在这里插入图片描述



推荐阅读
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
author-avatar
嗳__霞骸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有