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

news2025/2/24 9:52:21

文章目录

  • 时序逻辑电路的设计方法
    • 同步时序逻辑电路的设计方法
      • 一般步骤
      • 改进步骤
    • 例:蚂蚁走迷宫
      • 背景
      • 分析
      • 继续编码状态,然后写出状态图,然后卡诺图化简,得到方程
      • 设计总结


时序逻辑电路的设计方法

同步时序逻辑电路的设计方法

一般步骤

一、逻辑抽象

  1. 确定输入/输出变量,电路状态数
  2. 定义输入/输出逻辑状态以及每个电路状态的含义,并对电路状态进行编号
  3. 按设计要求列出状态转换表,或画出状态转换图

二、状态化简

  • 原则:若两个状态在相同的输入下有相同的输出,并转换到同一个次态,则称为等价状态;等价状态可以合并

三、状态分配

  1. 确定触发器数目
  2. 给每一个状态规定一个代码
    (通常编码的取法、排列顺序都按照一定的规律)

四、确定触发器类型

  • 求出状态方程,驱动方程,输出方程

五、画出逻辑图
六、检查自启动
在这里插入图片描述

  • 在设计的时候,我们一直要关注的是有限状态机,也就是状态图。在有效状态机中,会定义初态,输入,输出
  • 转换的时候有两个可选Mealy和Moore
  • !还是有一定规律可言,在设计的时候首先要学会这种有规律的方法,通过这种有规律的方法先去设计一个对的电路,然后再去求电路的好,再去求电路的巧
  • !在规律性的东西里面,第一步,逻辑抽象是最重要的,因为在这一步,可以把一个实际问题转换成与状态转换图挂钩,然后再去谈如何实现的问题

例:设计一个数字密码锁

  • 关心:
    (1)输入是什么,是不是跟他相吻合
    (2)如果没有enter键,输对了就开
    (3)如果有enter键,串行移位,点enter判断输入是否正确,输入是并行的四位数

  • 在设计的时候一定要明确需求,specification,要不然可能会导致设计产生歧义

  • 先设计一个最简单的密码锁:

  • 分析要求:顺序输入3个或3个以上“1”时,锁打开
    (1)顺序输入,锁打开。意味着输入是移位进去的,因此输入变量的个数就是一个,而输出变量的个数也是一个,就是锁打开
    (2)下一步要做的就是把锁打开和关闭和输入之间挂上联系
    (3)做组合肯定不行,因为如果是组合的话要么就是同向要么就是反向,没有办法记忆我输入了几个“1”,所以这个电路一定是一个时序电路

  • 设计
    一、抽象画出状态图
    Mealy和Moore都可以,这次先设计一个Mealy型的电路(电路在这个状态之下,如果有一个什么输入,来决定它的输出)
    在这里插入图片描述

用X(1位)表示输入数据,用Y(1位)表示输出(密码是否相符)

二、状态化简(为了减小电路规模,减少触发器个数)
(1)定义:如果两个状态在相同的输入下有相同的次态和输出,那么这两个状态就是等价状态
(2)S2和S3是等价状态,可以合并
在这里插入图片描述

三、状态分配
选两个触发器,取n=2,令Q1Q0的00,01,10为S0,S1,S2,则
在这里插入图片描述

  • 中间是x是因为没有使用,所以设计之初就把它列为无关项
  • 这个表长得很像卡诺图,我们可以把它拆分成三个卡诺图

在这里插入图片描述

  • 对卡诺图进行化简
Q1* = XQ1 + XQ0,Q0* = XQ1'Q0',Y = XQ1
  • 但是有一个问题。从电路连接中,能直接写出来的两种方程是驱动方程和连接方程,状态方程是不能直接写出来的,需要确定选用的触发器才能定下来,所以下一步需要选择触发器

四、选用JK触发器,求方程组

在这里插入图片描述
也就是可以得到J和K
在这里插入图片描述

五、画逻辑图
在这里插入图片描述

六、检查电路的自启动

  • 将状态“11”代入状态方程和输出方程,分别求X=0/1下的次态和现态的输出
  • 得到:X = 0时,Q1Q0 = 00,Y = 0;X =1时,Q1Q0 = 10,Y = 1
  • 所以能自启动
  • 画出状态转换图
    在这里插入图片描述
  • 但是这这个设计中,如果一上电在11的状态,输入一个1,锁就打开了,这个设计其实不好

改进步骤

  • !!我们可以在设计时把检查自启动挪到前面
    在这里插入图片描述

  • 在第三步状态分配时,我们直接把x去掉,并不需要用这点化简来省那点电路,省完了还出问题
    在这里插入图片描述

  • 做设计的时候在下面人为的就填0
    在这里插入图片描述

  • 人为的填0有一个坏处就是电路不能化简,但是电路化简和整个电路的设计来讲,我们更倾向于不要去化那点简,因为化简只是改变驱动方程的复杂程度

  • 建议设计的时候,把所有无效态的下一个状态都回到初态,放弃化简,没必要化简

例:蚂蚁走迷宫

背景

  • 两个触角为两个传感器,腿为执行机构
  • 从迷宫任意一点走到出口(出口在墙上,不是孤岛)

分析

  • 可以用摸着墙走的策略,右触角碰墙
  • 从初态开始:蚂蚁可以在迷宫的任意部位,最艰难的时候就是两个触角都没碰到墙,这时给的指令就是一直往前走(状态1)直到撞到墙(状态2)
  • 撞到墙可能有三种情况:右触角碰墙,左触角碰墙,两个触角都碰墙,但是无论是哪种情况,我们就左转,因为我们的策略是右触角碰墙
  • 一直左转到两个触角都不碰墙,赶紧停下来,然后一直往前走(状态3)
  • 这时候需要一边往前走一边向右稍微转一点确认墙就在我边上。如果在,就转回来继续走(状态4),重复这个边走边确认的过程。
  • 如果向右确认的时候发现墙不在右边,说明遇到了拐角(状态5),这时接着右转,一定要边往前走边右转,如果原地转就出不来了
  • 得到状态转换图
    在这里插入图片描述
  • 在这个设计中,压缩合并是有意义的,因为五个状态如果不压缩需要用三个触发器,如果能压缩一个就可以减少一个触发器
  • 压缩后的状态转换图
    在这里插入图片描述

继续编码状态,然后写出状态图,然后卡诺图化简,得到方程

  • 最终的内部电路其实就这样
    在这里插入图片描述

设计总结

  • 在设计的时候首先要搞清楚你的输入和输出
  • 电路的状态是根据你的策略,你的需要而定

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

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

相关文章

2022最新SpringCloud面试题附完整答案

一、选择题 1.启动Ribbon的类注解是: ( ) A RibbonClient B EnableClient C EnableDisscoveryClient D Ribbon 2.下面哪个注解不是SpringbootApplication包含的默认属性值:( ) A: Configuration B: EnableAutoConfiguration C: ComponentSc…

【LINUX】Linux最常用的20个基本指令 介绍~分析

什么是 Linux ​ Linux 是一款基于 GNU 通用公共许可协议 的 自由和开放源代码 的类UNIX操作系统,该操作系统的内核由 Linus Torvalds 在1991年首次发布。之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。 但是,严格来…

springboot充电桩综合管理系统

目录 1 绪论 1 1.1 课题背景 1 1.2 课题研究现状 1 1.3 初步设计方法与实施方案 2 1.4 本文研究内容 2 2 系统开发环境 4 2.1 Java技术 4 2.2 JSP技术 4 2.3 B/S模式 4 2.4 MyEclipse环境配置 5 2.5 MySQL环境配置 5 2.6 SSM框架 6 3 系统分析 7 3.1 系统可行性分析 7 3.1.1 经…

基于 BP 神经网络特征提取的指纹识别应用(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑…

【每日训练】排序子序列

目录 题目链接: 输入输出描述&&测试用例: 解析: 程序: 题目链接: 排序子序列_牛客笔试题_牛客网 (nowcoder.com) 输入输出描述&&测试用例: 测试用例: 输入: 6 1…

设计模式之美总结(重构篇)

title: 设计模式之美总结(重构篇) date: 2022-10-27 17:31:42 tags: 设计模式 categories:技术书籍及课程 cover: https://cover.png feature: false 文章目录1. 概述1.1 重构的目的:为什么要重构(why)?1.…

10月业务安全月报 | 美国将奇虎360和知道创宇列入黑名单;丰田泄露30万用户信息;苹果曝严重漏洞

导语:随着数字化的深入普及,业务愈加开放互联。企业的关键数据、用户信息、基础设施、运营过程等均处于边界模糊且日益开放的环境中,涉及利益流和高附加值的业务面临多样的安全隐患,随时可能遭遇损失,进而影响企业运营…

HashMap底层源码分析

文章目录HashMap底层源码分析1.观察HashMap成员变量1.1 HashMap的主要成员变量1.2 HashMap的构造方法1.3 put方法HashMap底层源码分析 前言 : 上文我们已经将哈希表学完了,下面就来简单的看一下源码,就结束我们的Map和Set 的学习   1.观察H…

灰度级形态学 - 顶帽变换和底帽变换

目录 1. 介绍 2. 代码实现 1. 介绍 顶帽变换和底帽变换就是图像的加减和开闭运算的结合 顶帽变换的公式为:原图 - 原图的开运算 这里结合开运算的几何图形解释来介绍顶帽变换。 因为开运算是结构元从下往上推动的过程,所以会删除图像灰度值相对周围高…

Dom对象总结案例实操(第二十课)

Dom对象总结案例实操(第二十课) 今天文章有点长 第一部分:回顾之前Dom对象我用了四篇文章对他进行了分开讲述Dom对象的用途,今天用几个案例实操一下. 之前我们Dom对象中了解过下面的内容 Dom对象的定义?Dom对象的节点操作,了解到了父节点 子节点 第一个 子节点 最…

利用Postman测试全屋智能接口

文章目录一、Postman概述二、利用Postman测试全屋智能接口(一)移动应用开发平台API说明V2.0(二)下载Postman(三)启动Postman(四)测试用户登录接口1、查看用户登录接口说明2、查看登录…

信号完整性测试

信号完整性测试----持续更新中示波器三要素:带宽采样率存储深度IIC信号测试:SPI信号测试USART信号测试RS232信号测试RS485信号测试CAN信号测试PWM信号测试示波器三要素: 示波器三个重要参数:带宽、采样率、存储深度 带宽 示波器的带宽&…

C语言实现windows,linux双版本下的进度条小程序,快来试一试吧

文章目录C语言缓冲区🚀1.输入缓冲区🍇模拟登录密码场景🍇从键盘将内容输入到内存的真正过程🍇解决方法:清空输入缓冲区🍉清掉一个字符🍉清空输入缓冲区所有字符🚀2.用户C语言级别的缓…

【jenkins部署冲突报错】一定要看!!!!!

背景 最近接手了新的项目,他的代码仓库的分支有点乱,dev、uat、master三个分支代码不同步,差别很大,甚至功能有些也不一样,所以,就导致在合并代码时要注意,最好新切一个分支A(同步m…

inveta PLSB 点线面体 示例工程

https://github.com/inveta/demo/blob/main/Resource/demo.md点线面体生成 POI(点)ps.emitMessage(["spawn-POI","location:X0 Y0 Z0", // cm"icon:\uE998", // char"title:POI标题", // string"color…

单独用HTML javascript CSS 写三版99乘法表,我就是班里最靓的仔

☆ 99乘法表,这个从小学就让我们开始产生肌肉记忆的知识点,伴随一生。而一旦开始学习软件开发知识,99乘法表将是一个基础中不可逃避的巩固升级作业。 ☆ 口算背诵相信大家已经滚瓜烂熟了,一一得一,二二得四&#xff…

【Linux】超好用的编译工具 —— gcc/g++

文章目录 前言 一、安装gcc/g 二、背景知识 三、gcc如何完成 1.预处理(进行宏替换) 2.编译(生成汇编) 3.汇编(生成机器可识别代码) 4.连接(生成可执行文件或库文件) 5.记忆选项的小技…

Tomcat 实用安装教程

Tomcat的介绍 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得…

【模型训练】YOLOv7道路交通标志检测

YOLOv7道路交通标志检测 1、YOLOv7算法道路交通标志检测模型训练2、YOLOv7模型模型评估3、模型和数据集下载1、本项目采用YOLOv7算法实现对道路交通标志的检测和识别,在道路交通标志检测数据集中训练得到,我们训练了YOLOv7模型,经评估我们得出了各个模型的评价指标; 2、目标…

C · 初阶 | 循环语句

啊我摔倒了..有没有人扶我起来学习.... 👱个人主页:《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ 💒个人社区:《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…