计算机组成原理——锁存器和触发器

文章目录

1. SR锁存器

1.1 电路结构

1.2 电路解析

2. 带en输入的SR锁存器

2.1 ​​​​​​​电路结构

2.2 工作原理

3. ​​​​​​​带En输入的D锁存器

3.1 电路结构

3.2 工作原理

4. ​​​​​​​边沿触发的D触发器

4.1 电路结构

4.2 工作原理


1. SR锁存器

​​​​​​​1.1 电路结构

SR锁存器(set-reset-Latch)是静态存储单元中最基本且结构最简单的一种电路。锁存器是一种双稳态电路,它可以保持一个二进制状态,直到输入信号改变。锁存器在电平触发下工作,这意味着它在输入信号为特定电平(高电平或低电平)时,响应并改变其状态。SR锁存器有两种构成方式:一种是由两个或非门构成,另一种是由两个与非门构成。尽管构成方式不同,这两种SR锁存器的功能是相同的。下面,我们将以与非门构成的SR锁存器为例进行介绍。

1.2 电路解析

假设SR锁存器一开始的输入S、R 都为高电平(1),此时输出端Q和Q`的电平是无法确定的。这个状态为初始状态。

此时如果S的输入由1变为0,无论Q‘的电平是高或低,经过S(0)与非的计算,Q的电平都会变为1。

Q'的电平经过Q和R的与非计算会变为0. 并且无论S的电平变为什么,输出Q和Q'都会被锁定,不会发生变化。这个过程为置位(set)。

将S重新置为1,接下来将R置为0,此时经过与非计算,Q’会变为1.Q会变为0。这个过程为复位(reset)。

如果S和R同时为0,经过计算,Q和Q'会同时为1。但是这种情况是不允许的,因为SR寄存器要求输出的Q和Q‘永远相反。

总结:

  • 当S`为1,R`为1, Q和Q`状态不变;
  • 当S`为0,R`为1, Q=1、Q`=0;(置位)
  • 当S`为1,R`为0, Q=0、Q`=1;(复位)
  • 当S`为0,R`为0,电路无意义

S`输入

R`输入

Q输出

Q`输出

1

1

维持不变

维持不变

0

1

1

0

1

0

0

1

0

0

1(无意义)

1(无意义)

如果是用或非门来组成锁存器,输入输出反过来。

  • 当S`为0,R`为0, Q和Q`状态不变;
  • 当S`为1,R`为0, Q=1、Q`=0;(置位)
  • 当S`为0,R`为1, Q=0、Q`=1;(复位)
  • 当S`为1,R`为1,电路无意义

S`输入

R`输入

Q输出

Q`输出

0

0

维持不变

维持不变

1

0

1

0

0

1

0

1

1

1

1(无意义)

1(无意义)

2. ​​​​​​​带en输入的SR锁存器

2.1 ​​​​​​​电路结构

上面的SR锁存器尽管可以锁住输出状态,但是没法控制设置输出的时机。所以需要给这个电路加上一些其他组件,在锁存器的基础上,增加一个触发信号输入端。

在这部分电路中,SR锁存器增加了一个使能(enable)输入信号en,这样可以更灵活地控制锁存器的状态。电路分为两个部分:输入控制电路和基本SR锁存器。

  • 输入控制电路:

    • 由两个与非门(G3和G4)构成。
    • 输入信号包括S、R和en。
    • 通过en信号控制,决定何时将S和R信号传递给基本SR锁存器部分。
  • 基本SR锁存器:

    • 由两个与非门(G1和G2)构成。
    • S和R信号由输入控制电路提供。

2.2 工作原理

En = 0时,输出保持不变

与非门的输出为高电平(1),除非两个输入均为高电平(1)时输出才为低电平(0)。

当使能信号En为0时,输入控制电路的输出S'和R'都为高电平(1),这会导致基本SR锁存器的状态保持不变。因此,无论输入S和R如何变化,锁存器的输出Q和Q'都不会改变。

En = 1 时,正常 SR 锁存器的功能

当使能信号En为1时,输入控制电路的输出S'和R'分别为输入S和R的反相,这将使基本SR锁存器按照正常的SR锁存器功能工作。

3. ​​​​​​​带En输入的D锁存器

3.1 电路结构

从刚才的电路可以看出,当en为1时,如果想将Q设为1,此时S应为1,R应为0;反之,如果想将Q设置为0,S应为0,R应为1。由此可得到,SR恰好为反相输入时,可以顺利的设置Q,所以对电路稍加改造,将S改名为D,并将其反相输入到R,如图,就得到了一个带en输入的D锁存器,其特性为:当en为高电平,Q和D的输入保持一致;当en为低电平,Q保持之前状态不变,从而起到存储作用。

3.2 工作原理

En = 0时,输出保持不变,不受D输入的影响。

En = 1 时,正常 SR 锁存器的功能, 输出Q的值与D输入的值相同。

4. ​​​​​​​边沿触发的D触发器

4.1 电路结构

对于刚才的带En输入的D锁存器,当En为1时,D的输入直接影响Q的输出。为了提高锁存器的可靠性、增强抗干扰能力,希望锁存器的状态仅仅取决于En的下降沿(或上升沿)到来的时候的输入信号状态。

解决方案:D触发器可以解决以上问题。

D触发器在时钟信号的控制下,仅在时钟信号的边沿(上升沿或下降沿)到来时更新输出,这样可以避免输入信号的毛刺和噪声对输出的影响,提高系统的稳定性和可靠性。触发器是一种时序逻辑电路,它在时钟信号的边沿(上升沿或下降沿)触发下工作。触发器每次在时钟信号的有效边沿时,采样输入信号并改变其状态。

电路图中包含两个D锁存器,分别有D、C和Q三个主要信号。

  • D:数据输入信号。
  • C:时钟信号。
  • Q:输出信号。

4.2 工作原理

边沿触发的D触发器在时钟信号的边沿(上升沿或下降沿)到来时才会更新输出Q。这与使能信号控制的D锁存器不同,后者在使能信号为高电平时持续传递输入数据到输出。

  • 时钟信号C:当时钟信号C为高电平或低电平变化时(取决于电路设计是上升沿触发还是下降沿触发),触发器才会根据输入D的状态更新输出Q。

当时钟信号C=0时,电路如图所示:

  • C=0:时钟信号为低电平。
  • 输入信号:D信号通过反相器和两个D锁存器的传输。

状态分析

  • 第一个D锁存器(左侧)

    • En = 1(因为C被反相)。
    • 输入D信号通过第一个D锁存器直接传递给其输出。
    • 如果D=0,则第一个D锁存器的输出Q = 0;如果D=1,则第一个D锁存器的输出Q = 1。
  • 第二个D锁存器(右侧)

    • En = 0(直接受C控制)。
    • 第二个D锁存器处于阻止状态,其输出保持不变,Q和Q'保持之前的值。

因此,当C=0时,D信号通过第一个D锁存器传递,但不影响最终的Q输出。Q保持不变。

当时钟信号C=1时,电路如图所示:

  • C=1:时钟信号为高电平。
  • 输入信号:D信号通过反相器和两个D锁存器的传输。

状态分析

  • 第一个D锁存器(左侧)

    • En = 0(因为C被反相)。
    • 第一个D锁存器处于阻止状态,其输出保持不变,Q保持之前的值。
  • 第二个D锁存器(右侧)

    • En = 1(直接受C控制)。
    • 第二个D锁存器根据第一个D锁存器的输出更新其输出。
    • 如果第一个D锁存器的输出Q = 0,则第二个D锁存器的输出Q = 0;如果第一个D锁存器的输出Q = 1,则第二个D锁存器的输出Q = 1。

因此,当C=1时,D信号通过第一个D锁存器保持,但第二个D锁存器根据第一个D锁存器的输出更新其状态,Q输出更新为D的值。

C信号不论是高电平还是低电平,Q都不会随D变化;只有当C信号由0变1的一瞬间,D的值能够传递到Q。这个电路称为上升沿触发的D触发器。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第207题课程表

题目: 题解: class Solution:def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:edges collections.defaultdict(list)indeg [0] * numCoursesfor info in prerequisites:edges[info[1]].append(info[0])indeg[info[…

C语言 | Leetcode C语言题解之第207题课程表

题目&#xff1a; 题解&#xff1a; bool canFinish(int numCourses, int** prerequisites, int prerequisitesSize, int* prerequisitesColSize) {int** edges (int**)malloc(sizeof(int*) * numCourses);for (int i 0; i < numCourses; i) {edges[i] (int*)malloc(0);…

AD PCB板子裁剪与泪滴设置

在剪裁板子时。首先&#xff0c;选择选择板子的机械层&#xff0c;之后选择画线。在原来的板子上画上自己想要裁剪的图形。如下下图 之后&#xff0c;选择按照所画的线裁剪板子即可&#xff0c;如下 在焊接PCB时&#xff0c;为了防止多次焊接导至焊盘脱落可以加大焊点的接触面积…

leetcode-19-回溯-组合问题(剪枝、去重)

引自代码随想录 一、[77]组合 给定两个整数 n 和 k&#xff0c;返回 1 ... n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]] 1、大致逻辑 k为树的深度&#xff0c;到叶子节点的路径即为一个结果 开始索引保证不…

[C++][设计模式][备忘录模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受 1.动机 在软件构建过程中&#xff0c;某些对象的状态转换过程中&#xff0c;可能由于某中需要&#xff0c;要求程序能够回溯到对象之前处于某个点的状态。 如果使用一些公开接口来让其他对象得到对象的状态&#xff0c;便会暴露对象…

3D在线展览馆的独特魅力,技术如何重塑展览业的未来?

在数字化和虚拟现实技术迅猛发展的今天&#xff0c;3D在线展览馆已经成为一种颇具前景的创新形式。搭建3D在线展览馆不仅能够突破传统展览的时空限制&#xff0c;还能为参观者提供身临其境的体验&#xff0c;极大地提升展示效果和用户互动。 一、3D在线展览馆的意义 1、突破时空…

《Windows API每日一练》7.3 计时器时钟

知道如何使用Windows计时器之后&#xff0c;可以看看一些有用的计时器应用程序了。时钟是计时器最明显的应用&#xff0c;我们来看两个例子&#xff1a;一个是数字时钟&#xff0c;另一个是模拟时钟。 本节必须掌握的知识点&#xff1a; 第45练&#xff1a;7段数码管数字时钟 …

KV260视觉AI套件--PYNQ-DPU

目录 1. 简介 2. DPU 原理介绍 2.1 基本原理 2.2 增强型用法 3. DPU 开发流程 3.1 添加 DPU IP 3.2 在 BD 中调用 3.3 配置 DPU 参数 3.4 DPU 与 Zynq MPSoC互联 3.5 分配地址 3.6 生成 Bitstream 3.7 生成 BOOT.BIN 4. 总结 1. 简介 在《Vitis AI 环境搭建 &…

three.js - MeshPhongMaterial材质(实现玻璃水晶球效果)

1、概念 phong网格材质&#xff1a;Mesh - Phong - Material 一种用于具有镜面高光的光泽表面的材质。 它可以模拟&#xff0c;具有镜面高光的光泽表面&#xff0c;提供镜面反射效果。 MeshPhongMaterial&#xff1a; MeshPhongMaterial是一种基于Phong光照模型的材质&#…

Geeker-Admin:现代化的开源后台管理框架

Geeker-Admin&#xff1a;优雅管理&#xff0c;高效开发&#xff0c;尽在Geeker-Admin- 精选真开源&#xff0c;释放新价值。 概览 Geeker-Admin是一个基于Vue 3.4、TypeScript、Vite 5、Pinia和Element-Plus构建的开源后台管理框架。它为开发者提供了一套现代化、响应式的管理…

如何在Ubuntu20上离线安装joern(包括sbt和scala)

在Ubuntu 20上离线安装Joern&#xff0c;由于Joern通常需要通过互联网从其官方源或GitHub等地方下载&#xff0c;但在离线环境中&#xff0c;我们需要通过一些额外的步骤来准备和安装。&#xff08;本人水平有限&#xff0c;希望得到大家的指正&#xff09; 我们首先要做的就是…

【机器学习】Python sorted 函数

目录&#xff1a; 什么是sorted()函数列表降序排序应用到字符串自定义排序规则实际应用 Python中的内置函数——sorted()。 1. 什么是sorted()函数 在Python中&#xff0c;sorted()是一个内置函数&#xff0c;用于对任何可迭代对象&#xff08;如列表、元组、字符串等&…

jenkins 发布服务到linux服务器

1.环境准备 1.1 需要一台已经部署了jenkins的服务器&#xff0c;上面已经集成好了&#xff0c;jdk、maven、nodejs、git等基础的服务。 1.2 需要安装插件 pusblish over ssh 1.3 准备一台额外的linux服务器&#xff0c;安装好jdk 2.流程描述 2.1 配置jenkins&#xff0c;包括p…

每日一题——Python实现PAT乙级1090 危险品装箱(举一反三+思想解读+逐步优化)4千字好文

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 题目链接&#xff1a;https://pintia.cn/problem-sets/994805260223102976/exam/problems/typ…

LoadBalance 负载均衡

什么是负载均衡 负载均衡(Load Balance&#xff0c;简称 LB),是⾼并发,⾼可⽤系统必不可少的关键组件. 当服务流量增⼤时,通常会采⽤增加机器的⽅式进⾏扩容,负载均衡就是⽤来在多个机器或者其他资源中,按照⼀定的规则合理分配负载. 负载均衡的⼀些实现 服务多机部署时,开发⼈…

微积分-导数3(微分法则)

常见函数的导数 常量函数的导数 d d x ( c ) 0 \frac{d}{dx}(c) 0 dxd​(c)0 常量函数的图像是一条水平线 y c y c yc&#xff0c;它的斜率为0&#xff0c;所以我们必须有 f ′ ( x ) 0 f(x) 0 f′(x)0。从导数的定义来看&#xff0c;证明也很简单&#xff1a; f ′ …

44 - 50题高级字符串函数 / 正则表达式 / 子句 - 高频 SQL 50 题基础版

目录 1. 相关知识点2.例子2.44 - 修复表中的名字2.45 - 患某种疾病的患者2.46 - 删除重复的电子邮箱2.47 - 第二高的薪水2.48 - 按日期分组销售产品2.49 - 列出指定时间段内所有的下单产品2.50 - 查找拥有有效邮箱的用户 1. 相关知识点 相关函数 函数含义concat()字符串拼接upp…

MT6989(天玑9300)芯片性能参数_MTK联发科5G处理器

MT6989是联发科Dimensity旗舰系列的成员&#xff0c;旨在为旗舰5G智能手机供应商提供最先进的技术和性能。MT6989也是联发科目前最具创新和强大的5G智能手机芯片&#xff0c;具有领先的功耗效率&#xff0c;无与伦比的计算架构&#xff0c;有史以来最快和最稳定的5G调制解调器&…

MySQL之主从同步、分库分表

1、主从同步的原理 MySQL主从复制的核心是二进制日志 二进制日志&#xff08;binlog&#xff09;记录了所有DDL语句和DML语句&#xff0c;但不包括数据查询&#xff08;select、show&#xff09;语句。 1.1、复制分三步 master主库在事务提交时&#xff0c;会把数据变更记录…

九浅一深Jemalloc5.3.0 -- ②浅*size class

目前市面上有不少分析Jemalloc老版本的博文&#xff0c;但5.3.0却少之又少。而且5.3.0的架构与之前的版本也有较大不同&#xff0c;本着“与时俱进”、“由浅入深”的宗旨&#xff0c;我将逐步分析Jemalloc5.3.0的实现。 另外&#xff0c;单讲实现代码是极其枯燥的&#xff0c;…