数字IC/FPGA——锁存器/触发器/寄存器

本文主要介绍以下几点:

  • 什么是触发器和锁存器
  • 门电路和触发器的区别
  • 什么是电平钟控触发器
  • 电平钟控触发器触发器和锁存器的区别
  • 触发器的分类方式:逻辑功能、触发方式、电路结构、存储数据原理、构成触发器的基本器件
  • 寄存器
  • 利用移位寄存器实现串并转换或并串转换

目录

    • 一、触发器的基本概念
    • 二、触发器的分类及原理
      • 1.RS触发器
        • (1)与非门RS触发器
        • (2)或非门RS触发器
      • 2.电平触发钟控触发器
        • (1)钟控RS触发器
      • (2)D触发器
      • (3)钟控JK触发器
        • (4)钟控T触发器
      • 3.边沿触发器
        • (1)基本概念
        • (2)触发器的应用
    • 三、寄存器
      • 1.基本结构
        • (1)电平触发数据寄存器
        • (2)边沿触发数据寄存器
      • 2.移位寄存器
        • (1)基本结构
        • (2)可预置移位寄存器
        • (3)四位通用移位寄存器74LS194
        • (4)利用移位寄存器实现串/并转换
        • (5)利用移位寄存器实现并/串转换

一、触发器的基本概念

触发器(Flip-Flop)是一种具有记忆功能、可以存储二进制信息的双稳态电路,它是组成时序逻辑电路的基本单元,也是最基本的时序电路。

同时也看一下锁存器的概念:

锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值。简单而言,锁存器的输入有数据信号和使能信号,当处于使能状态时,输出随着输入变化而变化,当不处于使能状态时,输入信号怎么变化都不会影响输出

双稳态电路的特点是:在没有外来触发信号的作用下,电路始终处于原来的稳定状态。在外加输入触发信号作用下,双稳态电路从一个稳定状态翻转到另一个稳定状态。由于它具有两个稳定状态,故称为双稳态电路。

组合逻辑电路的基本单元是门电路。时序逻辑电路的基本单元是触发器。门电路某一时刻的输出信号完全取决于该时刻的输入信号,无记忆功能。触发器具有记忆功能,能够在无信号的情况下,保持上一次的信号。

二、触发器的分类及原理

触发器可以按照逻辑功能、触发方式、电路结构、存储数据原理、构成触发器的基本器件进行分类,详细如下:

分类标准触发器类型
逻辑功能RS触发器、D触发器、JK触发器、T/ T’触发器
触发方式电平触发器、边沿触发器和主从(脉冲)触发器
电路结构基本RS触发器(锁存器)和钟控触发器
存储数据原理静态触发器和动态触发器
构成触发器的基本器件双极型触发器和MOS型触发器

1.RS触发器

(1)与非门RS触发器

下图是用两个与非门构成的基本RS触发器,它具有两个互补的输出端Q和Q,一般用Q端的逻辑值来表示触发器的状态。

在这里插入图片描述

RS触发器的特征方程:

{ Q n + 1 = S ˉ + R Q R + S = 1 \left\{\begin{array}{l}Q^{n+1}=\bar{S}+RQ \\ R+S=1\end{array}\right. {Qn+1=Sˉ+RQR+S=1

各种输入情况下的输出:

RS输出
01复位
10置位
11保持
00禁止此输入
(2)或非门RS触发器

在这里插入图片描述

各种输入情况下的输出:

RS输出
01置位
10复位位
00保持
11禁止此输入

2.电平触发钟控触发器

(1)钟控RS触发器

希望触发器在只有在时钟来临的时候才改变其输出状态,其他时候,触发器维持。钟控RS触发器如图所示,通过增加两个与非门构成了高电平触发的钟控触发器。当CP=0时,Rp=Sp=1,触发器处于保持状态﹔只有在CP=1时,触发器的状态才可能发生变化。钟控RS触发器的电路图如下:

在这里插入图片描述

特征方程:

{ Q n + 1 = R + S ˉ Q R S = 0 \left\{\begin{array}{l}Q^{n+1}=R+\bar{S}Q \\ RS=0\end{array}\right. {Qn+1=R+SˉQRS=0

各种输入情况下的输出:

RS输出
01置位
10复位
00保持
11禁止此输入

(2)D触发器

钟控D触发器的逻辑电路和逻辑符号分别如图所示。

在这里插入图片描述

当CP 为1时,R和S,互补,Sp=D,Rp=D。该触发器特征方程为

Q n + 1 = S ˉ D + R D Q = D + D Q = D Q^{n+1}=\bar{S}_D+R_DQ=D+DQ=D Qn+1=SˉD+RDQ=D+DQ=D

该触发器完成输人信号的保存,也称为数据锁存器,输入端D称为数据输入端。

各种输入情况下的输出:

CPD输出
0×Q
100
111

注意,这里的D触发器是电平触发器。在时钟为高时,输出等于输入。

下面是钟控D触发器的Verilog及Vivado综合后的结果:

module D_FF(input clk,input D,output reg Q);always@(clk)
beginQ<=D;
endendmodule

在这里插入图片描述

在这里插入图片描述

观察电路图我们其实可以发现,电平D触发器实际上就是D锁存器(实际上可以推广到所有的电平钟控触发器)。Vivado电路将其当作LATCH,边沿D触发器才是真正意义上的D触发器。因为从钟控D触发器的逻辑结构图我们可以发现,在时钟CP为1时,输出一样可以随着输入变化,这和锁存器是一样的。

(3)钟控JK触发器

钟控JK触发器的逻辑电路和逻辑符号分别如图所示。

在这里插入图片描述

该触发器特征方程为

Q n + 1 = J Q ˉ + K ˉ Q Q^{n+1}=J\bar{Q}+\bar{K}Q Qn+1=JQˉ+KˉQ

该触发器完成输人信号的保存,也称为数据锁存器,输入端D称为数据输入端。

各种输入情况下的输出:

CPJK输出
0××Q
100Q
1010
1101
111~Q

钟控JK触发器可以构建钟控D触发器,如图所示。

在这里插入图片描述

(4)钟控T触发器

将钟控JK触发器的J和K两个输入连接在一起构成钟控T触发器,它的逻辑电路和逻辑符号分别如图所示。

在这里插入图片描述

该触发器特征方程为

Q n + 1 = T 异或 Q Q^{n+1}=T异或Q Qn+1=T异或Q

各种输入情况下的输出:

CPT输出
0×Q
10Q
11~Q

3.边沿触发器

(1)基本概念

在电平触发方式中,当触发电平有效时,当前输出状态作为现态参与触发器的次态计算。当次态出现后,如果触发电平仍有效,那么次态输出作为新一轮的现态再产生下一个新的次态(如T触发器若T在CP为1时一直为1)。电平触发方式可能使状态在约定电平期间发生多次翻转,也称为空翻。为了防止出现空翻现象,采用边沿触发器。边沿触发器仅在约定的电平边沿(上升沿或下降沿)到达时才可能发生状态变化﹔并且次态仅由该边沿变化瞬间的输入和状态决定;在非约定的边沿和电平期间,输人信号的变化不会引起状态的变化。

钟控触发器通常需要外部对其进行复位(输出变为0)或置位(输出变为1),所以实际的触发器通常有复位R和置位Sa,假定复位和置位信号均为低电平有效。图5.16为常用的边沿D触发器的逻辑符号。

在这里插入图片描述

(2)触发器的应用

可以用于设计二分频电路:

在这里插入图片描述

Verilog代码如下:

module FENPIN_2(input clk,input rst_n,output reg Q);always@(posedge clk or negedge rst_n)
beginif(!rst_n)Q<=0;elseQ<=~Q;
endendmodule

波形图如下:

在这里插入图片描述

三、寄存器

1.基本结构

采用多个D触发器来构成一组保存二进制信息的电路称为寄存器。例如要保存n个数据可以采用n个触发条件相同的D触发器,有两种实现方式,一种是通过电平触发还有一种是通过边沿****触发**,其具体结构如下:

在这里插入图片描述

(1)电平触发数据寄存器

以74LS573(八D数据锁存器)举例,下图是其逻辑符号和内部结构:

在这里插入图片描述

其中,G为锁存信号;OE为输出使能﹔D0-D7为数据输入;Q0~Q7为三态数据输出。其只有在使能信号有效(低电平有效)并且锁存信号也同时有效(高电平有效)时才能够将输入数据映射到输出。之后当使能信号无效并且锁存信号为低时,将数据所存下来保持不变。详见下表:

~OEGD0…D7Q0~Q7(次态)
1××z…z
01d0~d7d0~d7
00×Q0~Q7

需要注意的是,当使能信号无效时,三态输出为高阻态。

(2)边沿触发数据寄存器

以74LS574(八D触发器)举例,下图是其逻辑符号和内部结构。

在这里插入图片描述

只有当时钟上升沿到达并且使能信号有效时才会对数据进行更新,否则在使能信号有效的其他时刻对维持原有输出。详见下表:

~OEGD0…D7Q0~Q7(次态)
1××z…z
0d0~d7d0~d7
0非↑×Q0~Q7

2.移位寄存器

(1)基本结构

若干个D触发器级联构成的触发器组成为移位寄存器,能够寄存串行的二进制信息。其结构如下图:

在这里插入图片描述

数据从S输入,每过一个时钟周期接收一位数据保存在D触发器内。

(2)可预置移位寄存器

将D触发器的数据输入端连接一个2选1数据选择器,两路数据为前级寄存器的输出和并行输入的一位数据,在原有功能的基础上还实现了对寄存器输出的置位。下图是其逻辑符号和内部结构:

在这里插入图片描述

当LD=0时,与基本移位寄存器的功能一致;

当LD=1时,寄存器的输出Q(次态)=D;

(3)四位通用移位寄存器74LS194

74LS194是四位通用移存器,具有左移、右移、并行置数、保持、清除等多种功能。其逻辑符号如图所示,其中,D0~D3是并行数据输入端;Cr是低电平有效的异步清零端;SR和SL分别是右移和左移的串行数码输入端;S1和S0工作方式控制端,其组合00 为保持、01为右移、10为左移、11为置数

在这里插入图片描述

其功能表如下:

在这里插入图片描述

注:图中左移时的S1S0标注错误,应为10

主要分为以下几点:

  • Cr为0时,对输出进行复位
  • Cr=1,S1S0=00时保持输出不变;
  • Cr=1,S1S0=11时将输出置数为D0~D3;
  • Cr=1,S1S0=01并且在时钟上升沿到来时进行右移
  • Cr=1,S1S0=10并且在时钟上升沿到来时进行右移
(4)利用移位寄存器实现串/并转换

七位串并转换电路图如下:

在这里插入图片描述

Cr为初始清零信号;CP为移位时钟;d为串行数据输入;Q0~Q6为并行输出;Z为转换结束标志输出。

数据d6d0从数据输入端SR输入(假设d0先输入),并行数据从Q0Q6输出。D0接0作为标志,D1~D7接1。

工作流程如下图:

在这里插入图片描述

在这里插入图片描述

步骤如下:

  • 复位:所有输出为0,Z为1
  • 置数,数据输出为(0111_1111),其中Q7接非门到Z,Z变为0
  • 上升沿到来输入数据开始右移,Q0输出d
  • 一直右移直到之前置数的Q0的0右移到Q7(第8个时钟上升沿),此时Z变为1表示移位结束,而第一个输入数据“a”此时在Q6输出。
  • 置数跳回到第二步

置数一定要有特殊位(只有一个1或一个0),才能有标志表示转换完成。

(5)利用移位寄存器实现并/串转换

七位并转串电路如图所示:

在这里插入图片描述

并行数据d6~d0,从预置端输人,串行数据由F端输出,标志码1在74LS194的D0端。表5.13为七位并入串出的操作过程。

由于标志码在D0,之后的几拍会从Q0一拍一拍传递到Q2,在这个过程中因为或非门的存在Z一直会为0,知道标志位传递到Q7(第八拍)表示并串转换结束。

工作流程如下:

在这里插入图片描述

步骤如下:

  • 复位:所有输出为0,Z为1
  • 置数,数据输出为1abcdefg(对应结构图中从左到右的顺序),其中前7个数据的或非输入到Z,Z变为0
  • 上升沿到来输入数据开始右移,F输出第八个数据口的数据(从左到右)
  • 一直右移直到之前置数的Q0的1右移到第八个数据口(第8个时钟上升沿),此时前期个输出全部变为0,或非后结果为1,Z变为1表示移位结束。
  • 置数跳回到第二步

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress LayerSlider插件SQL注入漏洞复现(CVE-2024-2879)

0x01 免责声明 请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;作者不为此承担任何责任。工具来自网络&#xff0c;安全性自测&#xff0c;如有侵权请联系删…

LiveNVR监控流媒体Onvif/RTSP功能-概览负载统计展示取流中、播放中、录像中点击柱状图快速定位相关会话

LiveNVR概览负载统计展示取流中、播放中、录像中点击柱状图快速定位相关会话 1、负载信息说明2、快速定位会话3、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、负载信息说明 实时展示取流中、播放中、录像中等使用数目 取流中&#xff1a;当前拉流到平台的实时通道数目播放中&am…

基于单片机的智能锁芯报警系统设计

摘 要:在传统的智能锁芯报警系统中,存在响应时间较长的问题,为此,提出一种基于单片机的智能锁芯报警系统。通过控制模块、智能锁芯设置模块、报警模块、中断模块、液晶模块等,建立系统总体框架,根据系统总体框架,通过单片机、电源适配器、智能锁芯、报警器、LED灯等…

浏览器工作原理与实践--HTTP/2:如何提升网络速度

上一篇文章我们聊了HTTP/1.1的发展史&#xff0c;虽然HTTP/1.1已经做了大量的优化&#xff0c;但是依然存在很多性能瓶颈&#xff0c;依然不能满足我们日益变化的新需求&#xff0c;所以就有了我们今天要聊的HTTP/2。 本文我们依然从需求的层面来谈&#xff0c;先分析HTTP/1.1存…

CMake构建OpenCv并导入QT项目过程中出现的问题汇总

前言 再此之前请确保你的环境变量是否配置&#xff0c;这是总共需要配置的环境变量 E:\cmake\bin E:\OpenCv\opencv\build\x64\vc15\bin F:\Qt\Tools\mingw730_64\bin F:\Qt\5.12.4\mingw73_64\bin 问题一&#xff1a; CMake Error: CMake was unable to find a build program…

Java 中文官方教程 2022 版(四十五)

原文&#xff1a;docs.oracle.com/javase/tutorial/reallybigindex.html 教程&#xff1a;自定义网络 原文&#xff1a;docs.oracle.com/javase/tutorial/networking/index.html Java 平台备受推崇&#xff0c;部分原因是其适用于编写使用和与互联网资源以及万维网进行交互的程…

Git Clone succeeded, but checkout failed

Clone succeeded, but checkout failed&#xff1a; Filename too long 原因&#xff1a; 由于系统限制&#xff0c;路径太长&#xff0c;无法检出 解决方案&#xff1a; # git允许长路径&#xff0c;在已clone的仓库执行 git config core.longpaths true # 再次检出 git ch…

云原生数据库海山(He3DB)PostgreSQL版核心设计理念

本期深入解析云原生数据库海山PostgreSQL版&#xff08;以下简称“He3DB”&#xff09;的设计理念&#xff0c;探讨在设计云原生数据库过程中遇到的工程挑战&#xff0c;并展示He3DB如何有效地解决这些问题。 He3DB是移动云受到 Amazon Aurora 论文启发而独立自主设计的云原生数…

SpringBoot3 + Vue3 + Uniapp + uView + Elenment 实现动态二级分类以及二级分类的管理

SpringBoot3 Vue3 Uniapp uView Elenment 实现动态二级分类以及二级分类的管理 1. 效果展示1.1 前端显示效果1.2 后台管理一级分类1.3 后台管理二级分类 2. 后端代码2.1 GoodsCategoryController.java2.2.1 GoodsCategoryMapper.java2.2.2 GoodsCategorySonMapper.java2.3.…

性能升级,INDEMIND机器人AI Kit助力产业再蜕变

随着机器人进入到越来越多的生产生活场景中&#xff0c;作业任务和环境变得更加复杂&#xff0c;机器人需要更精准、更稳定、更智能、更灵敏的自主导航能力。 自主导航技术作为机器人技术的核心&#xff0c;虽然经过了多年发展&#xff0c;取得了长足进步&#xff0c;但在实践…

QA测试开发工程师面试题满分问答11: web前端页面视频组件无法播放如何定位bug

当 web 前端页面的视频组件无法播放时&#xff0c;可以从以下维度进行分析和定位可能的 bug&#xff0c;分析维度包括但不限于&#xff1a;前端功能点、缓存、异常、后端功能点、资源占用、并发、网络等&#xff1a; 前端功能点&#xff1a; HTML5 视频支持&#xff1a;检查视频…

FPGA基于VCU的H265视频解压缩,解码后HDMI2.0输出,支持4K60帧,提供工程源码+开发板+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的视频图像编解码方案4K60帧HDMI2.0输入&#xff0c;H265视频压缩方案 3、详细设计方案设计框图FPGA开发板解压视频源Zynq UltraScale VCUVideo Frame Buffer ReadVideo MixerHDMI 1.4/2.0 Transmitter SubsystemVideo PHY Cont…

基于springboot+vue实现的计算机等级考试报名系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

淘宝Api接口开发系列,商品详情数据,搜索商品列表数据,无货源采集上货模式,数据分析

淘宝API接口开发涉及多个方面&#xff0c;包括获取商品详情数据、搜索商品列表数据、无货源采集上货模式以及数据分析等。今天给大家介绍下通过封装商品ID获取淘宝商品详情数据接口方法&#xff0c;支持高并发请求。下面我将分别对这些方面进行简要介绍。 1. 商品详情数据接口…

低频电磁仿真 | 新能源汽车性能提升的利器

永磁同步电机 新能源汽车的心脏 近年来&#xff0c;全球变暖的趋势日益加剧&#xff0c;极端天气事件层出不穷&#xff0c;这些现象都反映出当前气候形势的严峻性。为了应对这一全球性挑战&#xff0c;各国纷纷采取行动&#xff0c;制定了一系列降碳、减碳的措施。中国在2020年…

第十二届蓝桥杯大赛软件赛省赛Java 大学 B 组题解

1、ASC public class Main {public static void main(String[] args) {System.out.println(

如何使用 Grafana 监控文件系统状态

当 JuiceFS 文件系统部署完成并投入生产环境&#xff0c;接下来就需要着手解决一个非常重要的问题 —— 如何实时监控它的运行状态&#xff1f;毕竟&#xff0c;它可能正在为关键的业务应用或容器工作负载提供持久化存储支持&#xff0c;任何小小的故障或性能下降都可能造成不利…

基于jmeter的性能全流程测试

01、做性能测试的步骤 1、服务器性能监控 首先要在对应服务器上面安装性能监控工具&#xff0c;比如linux系统下的服务器&#xff0c;可以选择nmon或者其他的监控工具&#xff0c;然后在jmeter模拟场景跑脚本的时候&#xff0c;同时启动监控工具&#xff0c;这样就可以获得jm…

[lesson21]对象的构造顺序

对象的构造顺序 对象的构造顺序一 对于局部对象 当程序执行流到达对象的定义语句时进行构造 对象的构造顺序二 对于堆对象 当程序执行流到达new语句时创建对象使用new创建对象将自动触发构造函数的调用 s/20230724024159.png?origin_urlimage-2.png&pos_idimg-HTOH6…

纯小白蓝桥杯备赛笔记--DAY4(数学数据结构图论)

文章目录 数学质因数分解辗转相除法求最大公约数最小公倍数&#xff1a;快速幂乘法逆元费马小定理 逆元乘法逆元素数判定与埃式筛法朴素素数判定法埃式筛法 图论并查集T3:真题--合根植物DijkstraFloyd 基础算法递归&#xff0c;循环&#xff0c;前缀和&#xff0c;差分STL 数学…