数电学习(六、时序逻辑电路)(一)

news2024/11/24 8:37:36

文章目录

  • 引言
  • 概述
    • 特点
    • 时序电路的一般结构形式与功能描述方法
    • 时序电路分类
  • 时序电路的分析方法
    • 同步时序电路的分析方法
      • 状态转换表
      • 状态转换图
      • (回顾)在现在的场景下看触发器的动态特性(四个时间)
      • (举例)分析下面的逻辑电路
    • 异步时序电路的分析方法
      • 举例分析(触发器和门电路都是TTL电路)


引言

  • 如果由n个触发器构成memory device,就有2的n次方个状态,这章开始就开始关注电路有多少种状态,有限状态机是一个主要的描述。方程体现在一个状态到另一个状态的跳变。
  • 时序电路和组合电路的本质区别:引入了触发器,可以对电路的状态有所存储,所以能处理的问题就会复杂很多
  • 对应第四章,将分析方法,设计方法,借鉴经典设计

概述

特点

  1. 功能上:任意时刻的输入不仅取决于该时刻的输入,还与电路原来的状态有关
    例:串行加法器,两个多位数从低位到高位逐位相加
    在这里插入图片描述
    除了之前说的问题,对于有效工作时间来说,S0的有效工作时间是第一个传输延迟,S1是第二个,以此类推,这没有物尽其用,而且每一次运算的功能都一样

对模型进行修改:
在这里插入图片描述
这个模型可以用作n位全加。
优点:简答,而且可以做n位全加
缺点:慢,每个周期一定长于传输延迟加上这个时间;刚刚的组合电路的输入输出都是并行数据,而现在是串行的(要求有一堆锁存器,把每次的结果依位存放好)

  1. 电路结构上:
    (1)包含存储电路和组合电路
    (2)存储器状态和输入变量共同决定输出

时序电路的一般结构形式与功能描述方法

在这里插入图片描述
可以用三个方程组来描述:
在这里插入图片描述
其中(6.1.1)为输出方程 Y = F(X,Q),(6.1.2)为驱动方程 Y = F(X,Q),(6.1.3)为状态方程
Q* = H(Z,Q)

  • 组合电路完成两件事:驱动方程和输出方程
  • 算完输出之后回给到存储电路当中,把结果代入存储电路触发器的方程得到状态方程

时序电路分类

  1. 同步时序电路与异步时序电路
    (1)同步:存储电路中所有触发器的时钟使用统一的clk,状态变化发生在同一时刻(目前设计的主流,特别是小规模)
    (2)异步:没有统一的clk,触发器状态的变化有先有后
    (3)!同步电路的好处:分析简单,运算规律好,变化发生在同一时刻
    (4)!!!同步电路的坏处:如果电路的所有变化都发生在同一时刻,而CMOS的主要功耗都在变化的时刻,这时就会发生一个现象。这个电路本身静态功耗很低,但是由于采用了大同步,所有芯片内部的管子都是同一时刻翻转,那么尖峰电流就会特别大,对电源的动态供给有要求,对散热也有要求(工作频率高了之后),如果采用异步电路,尖峰就会下来。
    (5)!!!因此,当我们现在超大规模系统设计的时候,不会采用唯一的时钟信号,会使小的局部是同步的,大的协调会错开工作频率。也就是引用同一个模块采用同步,模块之间协调采用异步。

  2. Mealy型和Moore型(从功能分类)
    (1)Mealy型:Y = F(X,Q) 与X,Q有关(与输入也有关)
    (2)Moore型:Y = F(Q) 仅取决于电路状态
    (3)在区分这两种类型时,关注的是时序电路的输出
    (4)区别在于输出是否和时钟同步,而不是整个电路是否有输入

时序电路的分析方法

同步时序电路的分析方法

  • 分析:找出给定时序电路的逻辑功能,即找出在输入和CLK作用下,电路的次态和输出

  • 一般步骤:
    1.从给定的电路写出存储电路中每个触发器的驱动方程(输入的逻辑式),得到整个电路的驱动方程
    2.将驱动方程代入触发器的特性方程,得到状态方程
    3.从给定电路写吹输出方程

例:
在这里插入图片描述
在这里插入图片描述

  • K1这个地方是高电平,1.4V,由于被钳位了,具体可以去看第三章。

状态转换表

  • 有了状态方程和输出方程,如果需要画状态转换图,这时候和驱动方程就没关系了
  • 驱动方程和特性方式结合在一起得到状态方程后就不再使用了
    在这里插入图片描述
  • Q1,Q2,Q3是输入,Q1,Q2,Q*3和Y是输出
  • 直接代入两个发生就等得到结果
  • 如果初态是000,时钟脉冲到了之后,电路一定发生翻转,当翻到001时,这个001就作为下一个初态了,以此类推
  • 有一个问题:当现态时110时,代入出来的次态时000,又重新返回第一行了,这就造成了表的值不全,我们需要把8种排列组合都写入表中,因为电路上电之后状态不定(除非用异步置位),如果一开始就是111,那么我上电之后,又到了000(代入状态表中计算得到),就又回到那7个的循环里了,这样的设计是好的
  • 但是如果上电是111,下一个翻转完还是111,那么电路就锁死了
  • 在设计的时候输入所有可能的状态的2的n次方,但是你用到的一定是小于等于这个值,当小于的时候,一定要都考虑一下,因为剩余的状态有可能是你这个系统的陷阱,可能会造成上电之后系统不工作,或者意外进入这些状态就死机了,不能进入有效循环

我们将状态表简化:
在这里插入图片描述

状态转换图

把上面的表用状态图的形式表达一下
在这里插入图片描述

  • 在图的旁边一定要标出中间的顺序(Q3Q2Q1)

  • 状态转换之间表达的是变换的条件,这个条件会是因为输入的取值和时钟脉冲的到达

  • 如果是Moore电路,我们建议把输出放在状态里面
    在这里插入图片描述

  • 好处:明确了电路现态决定输出,知道要代入哪个值;Mealy电路是因为两个共同作用

  • !主循环圈:时序电路的设计一定是转圈的,如果不转一定死在哪个状态,一定是考虑了现实物理背景之间有限状态的转换

  • !无效态:如果把有用的状态称为主循环圈,那没有用到的状态就称为无效态

  • !自启动:如果在电路上电后,在时钟触发和输入的配合下,可以从无效进入到有效循环,就叫这个电路是可以自启动的电路

  • 在设计的时候尽量让无效态回到初态

(回顾)在现在的场景下看触发器的动态特性(四个时间)

  • !!时序电路的起点都在clk的触发沿,也就是说无论是传输延迟时间还是建立保持时间,时间的起点,在电路中变量的变化,在电路中都以这个沿为准。
  • !!对于边沿触发,主从或者电平也存在一个沿他要锁存
  • !!Tcd和Tpd仍然和组合电路一样,Tpd仍然描述的是有效到有效,Tcd仍然描述的是无效到无效。需要注意,Tpd是触发沿到达之后Q要经过多长时间到达一个新的值,而变成一个新的什么值要取决于数据端,在时间参数上衡量的是触发边沿和Q之间的关系,依据什么特点来变就是依据的方程。Tcd代表的是即便触发沿到达了,Q*还会保留原来的值保留多长时间。
  • !!在时序电路当中信号分为两部分,一部分是信号流过电路之后留下的痕迹(时间上),还有一部分是如果你希望你的电路能稳定地按照状态方程进行变化的话,那就要求你的数据和你的触发信号之间还存在一个时间关系。
  • !!也就是Tsetup和Thold是,它实际上是触发器这一类型电路对数据和触发信号之间提出的要求,提出的要求是一个配合,数据信号和触发信号存在一个早来晚走的关系。数据信号要早于触发信号到,晚于触发信号撤。换句话讲,应该在一个稳定的数据信号中间进行触发。
  • !!这四个时间到底长短是多少其实是由生产之后的实验测量值决定。我们关注的是当你在用这类器件的时候,它存在这么一个延迟(Tcd和Tpd),我们还应该关注当我们用这些器件的时候,数据和触发端应该存在这样的配合(Tsetup和Thold)。如果满足不了,我们只能用电路本身具有的Tcd和Tpd,人为的延长某些时间

(举例)分析下面的逻辑电路

在这里插入图片描述

  1. 首先,这是一个同步电路

  2. 这是一个Mealy型的电路

  3. 写出触发方程(D触发器)
    在这里插入图片描述

  4. 输出方程
    在这里插入图片描述

  5. 状态方程
    在这里插入图片描述

  • 因为有两个触发器,所以最多也就是四个状态
  1. 状态表(根据输出方程和状态方程)
    在这里插入图片描述
  • 状态方程和输出方程只有3个变量:A,Q1,Q2
  • Q1,Q2,Y作为我最后的输出
  • 类似于三张卡诺图叠在一起(一个卡诺图是一个方程,这里是三个方程)
  1. 状态转换图
    在这里插入图片描述
  2. 能自启动(所有状态都用全了,都没有无效态,所以肯定能自启动)
  3. 这个电路是一个两位的二进制的可逆计数器

异步时序电路的分析方法

  • 不是重点,因为每个人的设计各异
  • 一级一级触发器分析

举例分析(触发器和门电路都是TTL电路)

在这里插入图片描述

  1. 各个触发器的时钟都不一样
  2. 因为是TTL电路,J,K悬空就是恒等于1,所以FF0可以看成是一个T触发器,只要是来时钟,电平就在翻,新生成了一个时钟给到FF1,所以FF1的翻转频率一定是FF0的两倍;FF1的K恒等于1,J等于Q’3
  3. 写驱动方程
    在这里插入图片描述
  4. 写状态方程
    在这里插入图片描述
  • JK触发器:Q* = JQ’ + K’Q,因为K都是1,所以后面那项就没了
  • 乘clk是指只有在各个clk到达的时候才会有对应的状态方程发生
  • 但是这也产生了一个问题,乘clk会使变量取值方式发生变化。逻辑代数所有的都只有变量,变量是一个电平值,如果clk取1,描述的是一个瞬间,是一个下降沿
  • 所以最好还是一步一步往下推,没有简单的办法
  • 在实际中,最后是通过测试来得到

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕设(附源码)JAVA-SSM佳音大学志愿填报系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

python有哪些编译器

python有哪些编译器 1、Brython把Python转换成Javascript代码。 是一个流行的Python编译器,它可以把Python转换成Javascript代码。该软件支持所有网络浏览器(包括手机网络浏览器)。 它还支持最新的Html5/CSS3标准,可以使用流行的CSS框架,如…

200、无线网桥与无线AP的带机量是多少?一篇文章搞明白

正文: 一个无线ap的带机量是多少?也有朋友提到无线网桥的带机量?这个我们之前有提到过,在了解他们的带机量的话,我们就不得不了解ap的性能指标了,那么本期我们来总结下带机量的问题。 一、选择AP前需要考虑…

用通俗易懂的大白话彻底搞明白mysql的数据类型以及mysql中的int(11),这个11到底是啥?

今天抽时间来讲一下mysql里的知识点,之前有不少人问过我,mysql中的int(11),这个11到底是啥意思?是11位的意思吗?你是否也想过这个问题,是否也有这个疑问? ok,今天就展开来讲一下&am…

深度分析React源码中的合成事件

热身准备 明确几个概念 在React17.0.3版本中: 所有事件都是委托在id root的DOM元素中(网上很多说是在document中,17版本不是了);在应用中所有节点的事件监听其实都是在id root的DOM元素中触发;React自…

【MySQL 第十一天 创建和存储|复合结构的存储|存储过程和函数的区别】

【MySQL 第十一天 创建和存储|复合结构的存储|存储过程和函数的区别】【1】mysql储存过程及语法结构【1.1】mysql过程体【2】mysql创建和使用存储过程【2.1】mysql创建无参的存储过程【2.2】mysql创建有参的输入输出存储过程【3】mysql删除存储过程【4】mysql创建复合结构的存储…

专精特新小巨人的认定条件

奖励:对新认定的专精特新“小巨人”企业,聊城市财政最高一次性奖励50万元。其他地区各有不同。 认定条件 专精特新“小巨人”企业认定需同时满足专、精、特、新、链、品六个方面指标。 (一)专业化指标:坚持专业化发展道路,长期…

大学生体育运动网页设计模板代码 DIV布局校园运动网页作业成品 HTML学校网页制作模板 学生简单体育运动网站设计成品

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

C++知识精讲14 | 算法篇之二分查找算法

博主主页:Cool Kid~Yu仙笙_C领域博主🦄 目录 二分查找定义 二分查找效率 二分查找与遍历的对比 二分查找的限制性 二分查找的限制性(总结) 二分查找搭建 循环实现二分查找 循环二分查找基本框架: 循环二分查找源码&am…

【苹果家庭iMessage推送】Aupperpushslcertificate或ProductPushsCertificate证书不可以过期

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

前端实现给文字添加动态背景

📋 个人简介 💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜📝 个人主页:馆主阿牛🔥🎉 支持我:点赞👍收藏⭐️留言&#x1f4d…

【JAVA开发】提高开发效率的工具分享

代码管理工具 仓库: GitHub or GitLab or 本地仓库 版本控制: git or svn 推荐gitLabgit 多分支敏捷开发 开发工具 IDEA 最方便开发工具了 当然如何你是全栈也可以考虑使用VS(visual studio)、HBuider、AS(android studio) 文本工具 Sublime text …

Redis数据结构之整数集合

目录 基本数据结构 例子 升级 升级之后新元素的摆放位置 好处 降级 整数集合可以理解为一个有序(升序)的不允许元素重复的数组。 基本数据结构 intset会根据 编码格式分配空间。 例子 升级 当新添加的元素超过了当前编码格式所能 表示的范围&…

Linux常用命令工具

1、查找特定文本中的特定字符 cat filename | grep myStr eg: cat .config | grep KCOV 2、查找特定文本中的特定字符并打印具体行数 cat filename | grep -n myStr eg:: cat .config | grep -n KCOV 3、查找一个文件夹中的特定字符 grep -r myStr filedir eg: grep -r __NR_…

Mysql注入

💪💪mysql注入前言1.mysql之union注入1.1.判断是否有注入:1.2.信息收集1.3.进行注入1.4.完整注入实列2. mysql 跨库注入:2.1第一步就是找到数据库2.2第二步就是注入3.自己写union注入4.其他注入操作前言 💎&#x1f48…

JVM笔记:垃圾回收及垃圾回收算法

垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。甚至可能导致内存溢…

【Vue项目回顾】网络模块的封装

选择什么网络模块 选择一: 传统的Ajax是基于XMLHttpRequest(XHR) 为什么不用它呢? 非常好解释, 配置和调用方式等非常混乱.编码起来看起来就非常蛋疼.所以真实开发中很少直接使用, 而是使用jQuery-Ajax 选择二: 在前面的学习中, 我们经常会使用jQuery-Ajax 相对于传统的A…

【PyTorch深度学习项目实战100例】—— 基于Pytorch的语音情感识别系统 | 第71例

前言 大家好,我是阿光。 本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。 正在更新中~ ✨ 🚨 我的项目环境: 平台:Windows10语言环境:python3.7编译器:PyCharmPy…

C#和Python使用C++编译的dll

C代码如下: extern "C" __declspec(dllexport) int __stdcall add(int a, int b) {return a b; } 因为是显示链接,所以只需要获得生成的dll即可 因为C#无法直接调用C的dll,所以我们使用了extern"C" 使用vs自带的工具x86_x64 Cross…

Vue中KeepAlive 原理与源码分析

概念 keep-alive是Vue的一个内置实例,用于缓存组件。当keep-alive包裹动态组件时,会缓存不活动的组件实例,而不是摧毁它们。keep-alive 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链之中。如需要…