数字电路中触发器/锁存器的简单理解,与电路结构

2023-10-15 04:44

本文主要是介绍数字电路中触发器/锁存器的简单理解,与电路结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,为什么有触发器?

        数字逻辑电路系统包含组合逻辑和时序逻辑。组合逻辑用来实现与状态无关的门电路,比如算法的实现函数,无反馈,无记忆;时序逻辑则主要用来同步电路的各个状态,有反馈,有记忆,如触发器,寄存器。 组合逻辑计算出来的值由时序逻辑保存下来,经过同步时钟(Clock)来控制逻辑值的传递。

        比如实现一个如下的累加功能电路设计,如果不用触发器,则无法存储s的中间值,无法控制状态转换。

int s=0;
for(int i = 0; i<10; i++)
{s = s + X[i];
}

 

2,触发器,锁存器的电路结构

或非门

输入A, B, 输出 Y,  

或非门即: A和B只要有一个为1,则Y为0;  A和B全为0,则Y为1;

触发器

        把两个或非门连起来,能够稳定

保存电路状态的电路称为触发器,如下是一个R-S触发器,有两个输入端S(set), R(reset), 2个输出端Q 和 ~Q,约定S和R不会同时为1。

状态表如下,R-S触发器的最大特点是它能记住2个输入端的状态。当把2个输入端都置0时候,能记住上一次的状态。计算机中的寄存器,内存最基础的组成单元就是触发器。

SRQ~Q
1010
0101
00Q~Q

 锁存器

        上面触发器R,S同时是数据输入端和控制端,有点耦合,所以可以优化一下电路图,把数据和控制分开。我们试着增加一个具有控制功能的【保持位】,它能决定当前电路状态是否被“记住”。当保持位为1时,数据输入的值被记住,当保持位为0时候,数据输入位为任何值都不影响电路的状态。增加了保持位的这个电路称为D(data)型触发器。原来的R和S的状态实际是互斥的,所以用一个非门替换,如下图。

通常,保持位就是电路时序中的时钟信号(clock),这种用时钟控制的D触发器也称作锁存器,顾名思义,数据存储进去就像被锁住了一样。

把8个锁存器的时钟端接在一起,引入输入端和输出端,就构成了一个8位的锁存器。

参考:一文了解硬件加法器、触发器、锁存器-电子工程专辑

这篇关于数字电路中触发器/锁存器的简单理解,与电路结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

结构体和联合体的区别及说明

《结构体和联合体的区别及说明》文章主要介绍了C语言中的结构体和联合体,结构体是一种自定义的复合数据类型,可以包含多个成员,每个成员可以是不同的数据类型,联合体是一种特殊的数据结构,可以在内存中共享同一... 目录结构体和联合体的区别1. 结构体(Struct)2. 联合体(Union)3. 联合体与结构体的

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu2289(简单二分)

虽说是简单二分,但是我还是wa死了  题意:已知圆台的体积,求高度 首先要知道圆台体积怎么求:设上下底的半径分别为r1,r2,高为h,V = PI*(r1*r1+r1*r2+r2*r2)*h/3 然后以h进行二分 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#includ

usaco 1.3 Prime Cryptarithm(简单哈希表暴搜剪枝)

思路: 1. 用一个 hash[ ] 数组存放输入的数字,令 hash[ tmp ]=1 。 2. 一个自定义函数 check( ) ,检查各位是否为输入的数字。 3. 暴搜。第一行数从 100到999,第二行数从 10到99。 4. 剪枝。 代码: /*ID: who jayLANG: C++TASK: crypt1*/#include<stdio.h>bool h