当前位置: 首页 > news >正文

以下不属于时序逻辑电路的有_学习笔记:时序电路基础

Forward Star:学习笔记:二极管与逻辑电路​zhuanlan.zhihu.com

一文中,我们讲到了与非、或非等几种逻辑门。但是它们的运作都需要输入端持续输入信号,一旦中止,信息就会丢失。

时序电路(Sequential Circuits)就旨在解决这一问题,它能够储存信息;同样地,它也有几种基本的结构。

SR Latch

62bb4196b807f5d0aa5cc06b4205e4c5.png

光看这个图是很令人困惑的,因为尽管两个或非门中,R、S的输入给定,但是另外一个输入端却是需要从结果推过来。如果把右边那个表直接代进去,可以发现这确实成立;然而,究竟为什么会这样呢?我们可以对电路动态地分析。如果一次只能转变

中的一个,那么
的变换为
.我们就对这过程进行分析。

假设初始时

:

ae921a75a259119f535cb60741517d92.png
注意R、S以外的输入端,分别与另一个或非门的结果相连,因此它们是相同的

当我们把

转化为0时,显然先影响上面一个或非门,但由于或非的结果
仍为0,因此不会对下面的或非门产生影响,即
维持原状——这也是它能储存信息的原因;此时
,它记录的是上一次的信号。

0e5144e9bc475895da3dbc52b36380d7.png
可以看到只有R发生了变化

转化为
时,
由0变为1,那么首先影响下面的或非门,
变成0;之后,上面的或非门中输入信号“1”也将变成“0”,于是或非运算后的结果
变为1;再之后下面或非门中的输入信号“0”变为“1”,但是不影响
的结果,于是状态就稳定了下来。如图:

1653a881f2b14a45a9d10613d7074a9e.png

因此便有了右边那个对应的表,当

时,
记录上一次的信号;否则
。但注意
不能同时为1.

SR Latch在电路中的符号如下图:

fd0d3a243a6059766c4e350dfe3b1637.png

D Latch

D Latch在SR Latch的基础上改造而成。首先用一个非门把D转换为S、R:

57090f83a52f9802282a16378507bad3.png

然后再接上一个CLK接口和两个与门:

ef41a6d4feccce20962b54449d62a42d.png

这样CLK就决定了其是否工作,如果CLK为0,两个与门的结果为0,那么R、S为0,根据SR Latch,

维持原来的值;否则当CLK为1时,
才记录新值。

D Flip-Flop

尽管Latch实现了存储信息的功能,但是信号的传输有延时,这是因为非门转化器无法与D的另一端同步:

d91120f25c2a17c84c2a41cf1e1fc1f1.png

D Flip-Flop的想法是用两个D Latch,其中一个用于同步D的值,另一个决定这个值是否传给Q:

1ac3a43f159913ebbfb1cb81d294ae09.png

这样CLK就并非与之前一样,0是储存,1是同步;而是当CLK从0变为1或从1变为0时进行刷新。以上图第一个结构为例,当CLK从0变为1时,右边D Latch的CLK输入端瞬时改变,使Q与N同步;而左边D Latch因非门影响,短暂地维持了1的状态,即D与N仍然同步。因此,此时Q、N、D保持一致,实现刷新:

2957e6618ef7118654a0a47616287370.png

Register

Register将多个D Flip-Flop连在同一个CLK上,由于每个D Flip-Flop可传递一个二进制位,因此Register可以表示二进制数:

4ee87a265e231d9ebe67bb8ab4c8db42.png

将组合电路与Register结合,可以同时实现逻辑运算和数据储存,其中组合电路用于逻辑运算,Register用于存储。

同步时序电路

给所有Register接上相同的CLK信号:

7f701bcf7b0e1062c00dde0628ca8e36.png

由于Register之间的逻辑运算需要时间,我们给CLK接上周期性的信号,就可以让信息传递和逻辑运算交替进行。

如果我们把一个任务拆成多个逻辑运算的部分,使得它们能并行计算,就可以提高计算的效率:

b06840be4beedbf63aaf12d16e0a7031.png

不过这也要求CLK的频率更高,因此任务不可能无限拆分。

例题

现在有一个二进制序列,每次操作你可以选择一个子序列,将子序列所有数右移一位,即

;求出最少的操作次数,使得新序列与原序列按位异或后的值全为1(即每位取反)。

注意一个序列

为另一个序列
的子序列,当且仅当
删掉若干字符(可以不删)后等于
.

分析:我们先分析题目,显然可以发现每次子序列必须是01交替出现,即01010或10101;如果中间有连续的0或1,那么右移的时候连续的一段其实和不移的效果是一样的。那么问题就转化为最少可以把原序列分成多少个01序列。这样我们只需要看最长的一段1与最长一段0中长度的最大值即可。

我们构造:

,那么答案就是 :

即最大/最小连续子序列和.

考虑动态规划,inputs是序列中当前的数

,State就是递推出的
,State logic则是状态转移方程,Output logic则是判断当前序列是否读入完。那么每次CLK刷新,
由Next state同步到到state,并和inputs通过State logic的状态转移方程来求出Next State.

c02dc3261b19eb964a47a27dece58762.png

相关文章:

  • 【字符串处理】关于KMP算法输出的是什么代码
  • 好分数阅卷3.0_揭秘!自考阅卷的批改套路!
  • 手机沙盒隔离软件_最好别装手机杀毒软件,不仅没用反而是累赘!
  • 一个简单的注册页面
  • 主进程和子进程_Python 简明教程 26,Python 多进程编程
  • golang文件下载断点续传(下载客户端)
  • 天体运行轨迹_按彗星轨迹,太阳系中存在第二平面,有可能是彗星的“第二家园”...
  • 一个网页打开的全过程
  • 环境图配置不存在pbr_[翻译]你也可以制作的PBR!
  • 单引号和双引号的区别
  • 前端缓动画为什么不能有小数_前端兼容性的一些问题
  • luogu4187 [USACO18JAN]Stamp Painting (dp)
  • jsencrypt vue使用_在VUE中使用RSA加密解密加签解签__Vue.js
  • Learning-Python【6】:Python数据类型(2)—— 列表、元组
  • 如何计算虚拟化vcpu_【虚拟化实战】VM设计之一vCPU
  • crontab执行失败的多种原因
  • Flex布局到底解决了什么问题
  • Laravel Mix运行时关于es2015报错解决方案
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Linux下的乱码问题
  • markdown编辑器简评
  • Nacos系列:Nacos的Java SDK使用
  • PAT A1017 优先队列
  • php ci框架整合银盛支付
  • React-Native - 收藏集 - 掘金
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Sublime text 3 3103 注册码
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 后端_MYSQL
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 你不可错过的前端面试题(一)
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 一个JAVA程序员成长之路分享
  • 一些关于Rust在2019年的思考
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 《码出高效》学习笔记与书中错误记录
  • # Java NIO(一)FileChannel
  • #NOIP 2014# day.2 T2 寻找道路
  • $jQuery 重写Alert样式方法
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (转)Google的Objective-C编码规范
  • (转)一些感悟
  • ******之网络***——物理***
  • .FileZilla的使用和主动模式被动模式介绍
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net Remoting常用部署结构
  • .NET下ASPX编程的几个小问题
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • []T 还是 []*T, 这是一个问题
  • [C#]winform制作仪表盘好用的表盘控件和使用方法
  • [docker] Docker的数据卷、数据卷容器,容器互联