数电学习(六、时序逻辑电路)(三)
文章目录
- 时序逻辑电路的设计方法
- 同步时序逻辑电路的设计方法
- 一般步骤
- 改进步骤
- 例:蚂蚁走迷宫
- 背景
- 分析
- 继续编码状态,然后写出状态图,然后卡诺图化简,得到方程
- 设计总结
时序逻辑电路的设计方法
同步时序逻辑电路的设计方法
一般步骤
一、逻辑抽象
- 确定输入/输出变量,电路状态数
- 定义输入/输出逻辑状态以及每个电路状态的含义,并对电路状态进行编号
- 按设计要求列出状态转换表,或画出状态转换图
二、状态化简
- 原则:若两个状态在相同的输入下有相同的输出,并转换到同一个次态,则称为等价状态;等价状态可以合并
三、状态分配
- 确定触发器数目
- 给每一个状态规定一个代码
(通常编码的取法、排列顺序都按照一定的规律)
四、确定触发器类型
- 求出状态方程,驱动方程,输出方程
五、画出逻辑图
六、检查自启动
- 在设计的时候,我们一直要关注的是有限状态机,也就是状态图。在有效状态机中,会定义初态,输入,输出
- 转换的时候有两个可选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),这时接着右转,一定要边往前走边右转,如果原地转就出不来了
- 得到状态转换图
- 在这个设计中,压缩合并是有意义的,因为五个状态如果不压缩需要用三个触发器,如果能压缩一个就可以减少一个触发器
- 压缩后的状态转换图
继续编码状态,然后写出状态图,然后卡诺图化简,得到方程
- 最终的内部电路其实就这样
设计总结
- 在设计的时候首先要搞清楚你的输入和输出
- 电路的状态是根据你的策略,你的需要而定
数电学习(六、时序逻辑电路)(三)相关推荐
- 数电基础:时序逻辑电路
虽然每个数字电路系统可能包含有组合电路,但是在实际应用中绝大多数的系统还包括存储元件,我们将这样的系统描述为时序电路. 时序电路是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路 ...
- 数电学习(六、时序逻辑电路)(二)
文章目录 若干常用的时序逻辑电路 寄存器 移位寄存器 计数器 同步计数器 同步二进制计数器 同步二进制加法计数器 经典设计 74161 同步二进制减法计数器 同步二进制加减计数器 同步十进制计数器 异 ...
- 同步时序逻辑电路分析——数电第六章学习
同步时序逻辑电路分析 概述 同步时序分析工具 状态转换表 例子 状态转换图 时序图 同步时钟分析完整流程 例1 例2 概述 在之前所讨论的组合逻辑电路中,任一时刻的输出信号仅取决于当时的输入信号.但在 ...
- 数电实验(组合逻辑电路、时序电路,555定时器)
本文章为数电实验整理内容,其电路仿真资料可以在我的资料中自行下载,其包括所说内容全部仿真内容. 一.组合逻辑电路的设计与验证 利用 二输入四与非门74LS00和二输入四异或门74LS86和LED来达到 ...
- 数电学习(三、半导体二极管门电路)(三)
文章目录 TTL门电路 回顾前面几种门电路 双极型三极管 TTL反相器 静态输入特性和静态输出特性 输入端负载特性 其他参数(CMOS也适用) 尖峰电流 其他TTL门电路 其他逻辑功能的门电路 OC门 ...
- 【数电】(组合逻辑电路)组合逻辑电路的分析和设计方法
[数电专栏] 文章目录 1 组合逻辑电路的分析和设计方法 1.1 组合逻辑电路的特点及描述 1.2 组合逻辑电路的分析(电路>>功能) 1.3 组合逻辑电路的门级电路设计(功能>&g ...
- (十二)【数电】(组合逻辑电路)加法器
[数电专栏] 文章目录 A 加法器 A.a 加法器工作原理 A.b MSI加法器集成芯片示例 A 加法器 A.a 加法器工作原理 <1>加法器概述 两个二进制数之间的算术运算无论是加.减. ...
- Proteus与模电数电学习第一弹
因为并不是电子信息相关专业的学生,只是学过电工电子课,当时上课的时候没有意识到老师居然拿半个学期的时间讲完了整个模电数电的知识点. 因此上学期学过51和stm32之后就一直对单片机相关的原理一知半解, ...
- 数电学习(六、时序逻辑电路)(一)
文章目录 引言 概述 特点 时序电路的一般结构形式与功能描述方法 时序电路分类 时序电路的分析方法 同步时序电路的分析方法 状态转换表 状态转换图 (回顾)在现在的场景下看触发器的动态特性(四个时间) ...
最新文章
- flutter集成oc
- linux blkid命令 查看块设备文件系统类型、LABEL、UUID信息 简介
- pythonapp下载-QPythonapp下载
- html输入邮箱的文本框,自动生成邮箱号并填入input输入框的实现方法
- 攻防世界Reverse第十二题maze
- 一个简单的案例带你入门Dubbo分布式框架
- Ubuntu下面对Chrome浏览器护眼插件的调研
- 用 Python 分析今年考研形势
- 合并压缩JavaScript,开发发布两不误
- 入门 RISC-V 编程的五大技巧
- 关于架设流媒体服务器与DRM加密问题
- 大学计算机ppt制作步骤,PPT制作教程步骤方法_PPT制作技巧教程快捷键_PPT制作基础教程...
- 大气压力换算公式_压力单位换算及计算公式
- osx php mongodb,Mac OSX 平台安装 MongoDB
- openbmc开发29:开关机管理
- 女孩子没有事业就只能痛苦
- Warning: Procedure created with compilation errors.
- 典型2R机械臂结构分析 2R-manipulator Geometric Modeling
- PyCharm自动格式化代码
- 云通信的变迁史:从飞鸽传书到即时可达