D触发器(D Flip-Flop)与D锁存器(D Latch)

2024-06-22 08:12
文章标签 flip flop 存器 latch 触发器

本文主要是介绍D触发器(D Flip-Flop)与D锁存器(D Latch),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 基础概念

      我们先来简单回顾一下D触发器(D flip-flop)和D锁存器(D latch)的概念,以及它们在数字电路中的作用。

1.1 D触发器(D Flip-Flop)

        D触发器是一种数字存储器件,它在时钟信号的特定边沿(上升沿或下降沿)上捕获并存储输入信号的状态。因此,它被称为边沿触发设备。

        在给定的时钟边沿到来时,如果D输入为高(1),则触发器的输出Q变为高(1);如果D输入为低(0),则输出Q变为低(0)。此后,无论D输入如何变化,只要没有新的时钟信号边沿到来,Q的状态都不会改变。

1.2 D锁存器(D Latch)

        与D触发器不同,D锁存器是一种电平触发设备。它根据控制输入(通常是使能信号)的电平变化来更新其输出。当使能信号为高电平时,D锁存器会捕获输入D的状态并将其反映到输出Q上。当使能信号变为低电平时,锁存器会保持其输出状态,直到使能信号再次变为高电平。

2. 具体描述

2.1 图片描述

        下图是两种类型的寄存器:一个是由4个D触发器构成的寄存器,另一个是由4个D锁存器构成的寄存器。在这个上下文中,寄存器是用来存储4位二进制数的设备。

        忽略上升时间(tr),下降时间(tf),设置时间(tsu)和保持时间(th),只考虑传播延迟。传播延迟是信号从输入端到输出端所需的时间。题目给出了D触发器和D锁存器的传播延迟时间为10纳秒(ns)。

2.2 关键点

        在这个图片中,我们需要理解的关键点是:

        传播延迟(tp):信号从输入端到输出端的延迟时间。上文提到的D触发器和D锁存器的传播延迟都是10ns。

        D触发器与D锁存器的区别:D触发器在时钟信号的特定边沿上同步操作,而D锁存器则在控制信号为特定电平时进行操作。

        对于任何涉及这些寄存器的数字设计问题,理解它们的工作原理和它们之间的区别是非常重要的。这有助于我们正确地设计和分析数字电路,确保电路能够按照预期工作,特别是在需要精确控制信号时序的应用中。

2.3 深入分析

2.3.1 INT(初始化)信号

        在这两种类型的寄存器中,INT(初始化)信号被用来控制寄存器的初始化或重置功能。在电子数字系统中,初始化通常是重置寄存器内容为零或某个预定义的值的过程。

2.3.1.1 对于图1(a)中的D触发器寄存器

        INT信号通常用于异步清除或预设寄存器中的内容。当INT为低电平时,与INT连接的所有D触发器的输出Q将被置为低电平,不论时钟信号H的状态如何。这意味着不管时钟如何变化,只要INT是低电平,寄存器的输出都会被强制改变。

2.3.1.2 对于图1(b)中的D锁存器寄存器

        INT信号在这里也用于清除寄存器的内容。与D触发器不同,D锁存器可以在没有时钟信号的情况下对数据进行“锁存”。当控制信号H为高电平时,锁存器将D端的输入锁存到Q端的输出。但是,如果INT为低电平,则不论控制信号H的状态,寄存器的输出Q都会被强制改变。

        在两种情况下,INT信号允许系统在不考虑当前操作周期的情况下快速将寄存器内容重置,这在需要快速清除错误状态或在系统启动时初始化寄存器时非常有用。

这篇关于D触发器(D Flip-Flop)与D锁存器(D Latch)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083733

相关文章

MySQL【触发器、存储过程、函数、范式】

day53 MySQL 触发器 创建触发器:(before : 前置触发器、after :后置触发器) 语法:delimiter xx 指定分隔符xxcreate trigger 触发器名 [before | after] 触发事件 on 表名 for each row 执行语句begin多条执行语句end 加上 “结束符xx”delimiter ;还原分隔符未; 注意: 由某个

Zabbix 值匹配字符串 创建触发器

Zabbix监控脚本返回值是字符串时,也可以使用字符串函数来创建触发器。举个栗子,现在有个需求要监控从服务器上下载数据是否出现异常,当数据下载失败时返回异常并告警。那么就可以在监控脚本中设置当下载成功时返回值为”download complete”,下载失败时返回值为异常信息。 创建监控项时设置返回值为字符型。 创建触发器 选择当存在匹配值时,则返回1否则返回0 设置匹配值V为do

zabbix触发器和监控项设置监控时间范围

触发器配置监控时间范围 比如现在配置在晚上十二点到凌晨一点半的时候触发。 创建一个触发器,选中一个你要是用的监控项比如我这里的监控项X,点击表达式构造器。 打开表达式构造器后,点击编辑,再次选择监控项X,在功能出选择当前时间小于N,然后N值出输入时间013000即可,01300表示凌晨一点半,152700表示下午三点27 选中确定之后,可以选择与或关系,这里我选择‘和’关系,关闭表

【PL/SQL】替换触发器的详解

替换触发器——instead of 替换触发器,它的触发时机是instead of,与其他类型触发器不同的是,替换触发器定义在视图(一种数据库对象)上的,而不是定义在表上。由于视图是由多个基表连接组成的逻辑结构,所有一般不允许用户进行DML操作(insert,update,delete等操作),这样当用户编写替换触发器后,对视图操作实际上就变成了执行触发器中的PL/SQL操作。先创建视图 cr

MySQL基础之触发器,函数,存储过程

目录 1 MySQL触发器 2 存储过程 2.1 创建存储过程 2.2 变量 2.2.1 存储过程内使用变量 2.2.2 赋值变量 2.2.3 变量作用域 2.3 查看并使用存储 2.3.1 查看调用 2.3.2 存储过程控制语句 2.4 修改删除存储 3 函数 3.1 创建函数 3.2 查看并使用 3.3 修改删除函数 3.4 自带基本函数 3.4.1 字符串类

Java学习 - MySQL存储过程、函数和触发器练习实例

存储过程 存储过程是什么 存储过程是一组已经编译好的SQL语句 存储过程优点有什么 安全性能高提高代码复用性 创建存储过程的语法 DELIMITER $ # 不能加分号CREATE PROCEDURE 存储过程名(IN|OUT|INOUT 参数名 参数类型)BEGIN存储过程语句块END;$DELIMITER ; 创建一个无参的存储过程:打印 myemployees 库中

293. Flip Game

题目大意:给一串字符++–….,要依次把所有两个连续++翻转成–,求所有可能的输出. 解题思路:一次遍历,遇到两个连续的++就翻转,输出.同时保证不影响原串,用一个tmp来操作. 注意:这里有一个奇怪的bug,若不先求出s的长度n,而是在for循环中设终止条件为 s.length()-1,则遇到空串(长度为0)会报错 代码: class Solution {public:vector<s

【FPGA】为什么FPGA design中应该避免latch?

http://www.elecfans.com/d/1308845.html 今天看《vivado 从此开始》24讲, 说为什么避免使用锁存器,因为会造成资源浪费 同SLICE中一半的触发器被浪费掉了

进阶篇05——存储过程、存储函数、触发器

存储过程 简介 基本语法 创建和调用 -- 创建名为p1的存储过程,小括号里可以跟参数-- 存储过程个人觉得就是SQL里的函数create procedure p1()begin-- begin 和 end 之间是封装的SQL语句-- 可以是一条SQL也可以是多条SQLselect * from student;end;-- 调用存储过程call p1(); 查看和