锁存器和触发器的理解与整理

本文详细介绍了FPGA中的锁存器和触发器概念,包括它们在数字系统中的作用、电平触发与边沿触发的区别,以及SR锁存器(含或非门和与非门构造)和D锁存器的原理及其应用,如硬件去抖动电路和计数器设计。
摘要由CSDN通过智能技术生成

引言

原文编写在hexo博客中,在csdn上文字布局以及公式插件会失效,可以移步到原文中进行阅读:FPGA 锁存器和触发器的理解与整理

大多数数字系统中,除了需要具有逻辑运算和算术运算功能的组合逻辑电路外,还需要具有存储功能的电路。组合电路与存储电路结合构成的时序逻辑电路,简称时序电路。这里讨论实现存储功能的两种逻辑单元电路:锁存器和触发器。

锁存器:用来存储状态信息,锁存器一般是电平触发,当锁存器使能时,输出随着输入变化,当没有使能时,输出一直为锁存器的状态信息

触发器:触发器当收到一个clk触发脉冲时,输出就会根据一定规则改变状态,然后保持直到下一个触发脉冲。

区别:锁存器和触发器的区别在与latch,当使能时,输入变化时输出就会跟随一起变化,没有clk,更容易产生毛刺。而flip-flop收到时钟的同步控制,只有clk触发时才会采样当前的输入。对脉冲电平敏感的是锁存器,对脉冲边沿敏感的是触发器。

寄存器:用来存储数据的小型存储区域,暂时存放参与运算的数据和运算结果,寄存器的存储电路是由锁存器和触发器构成的,因为1个锁存器或者触发器只能存储1位2进制数据,所以由N个锁存器或者触发器可以构成N位寄存器,在实际芯片中一般按照字节位数设计,所以一般与8位寄存器、16位寄存器。

下面我们着重分析一下锁存器和触发器原理并且举出简单的应用例子方便大家的理解与掌握。

1. 基本双稳态电路

图:最基本的双稳态电路

图:最基本的双稳态电路

双稳态电路

将两个非门进行交叉耦合的方式连接,则构成最基本的双稳态电路。从电路的逻辑关系可知,若Q=0,经过非门G2𝐺2 反向得到Q¯¯¯¯𝑄¯=1。

Q¯¯¯¯𝑄¯反馈给G1𝐺1输入端,又保证了Q𝑄=0,由于两个非门首尾相接的逻辑锁定,因此电路能够自行保持在Q𝑄=0,而Q¯¯¯¯𝑄¯=1的情况。

像这样的电路,具有0,1两种逻辑状态,一旦进入其中一种状态,就能长期保持不变的单元电路,称为双稳态存储电路,简称双稳态电路

根据上面的分析,可以看出这个最基本的双稳态电路的功能极不完备。在接通电源后,它可能随机进入0或者1状态并且锁定在这个里面,我们无法控制和改变它的状态,从而并不能作为存储电路来使用。因此下面我们在这个最基本的双稳态电路下衍生出锁存器、触发器等功能完备的存储电路

2. SR锁存器

2.1 或非门构成SR锁存器

图:或非门SR锁存器电路及逻辑符号

图:或非门SR锁存器电路及逻辑符号

我们讲最基本的双稳态电路中的非门替换成或非门,则构成了上图所示的基本SR锁存器,它是一种具有最简单控制功能的双稳态电路,因为我们将非门替换了2输入一输出的或非门,那么留出的输入端也就成为了我们的输入控制端。

SD𝑆𝐷RD𝑅𝐷QQ¯¯¯¯𝑄¯功能
0000保持
0011保持
0100置0
0110置0
1011置1
1001置1
1100不定

根据S、R的4种输入状态组合得到左表格,具体的分析过程请参考:电路技术基础-数字部分P232

值得注意的是:在书中讲到S=R=1的时候,锁存器处在即非0也非1的非定义状态,为保证锁存器始终处于工作定义状态,输入信号应遵守SD𝑆𝐷RD𝑅𝐷约束条件,也就是死活不允许S=R=1。

2.2 与非门构成SR锁存器

当然了,既然在最基本的双稳态电路中仅将非门替换成了或非门就构成了SR锁存器,同样也可以替换成与非门来构成另一种SR锁存器(也称:基本S¯¯¯𝑆¯R¯¯¯¯𝑅¯锁存器)。其原理都是一样的,只不过是其真值表有所出入罢了。

图:与非门构成的基本SR锁存器及逻辑符号

图:与非门构成的基本SR锁存器及逻辑符号

SD‘𝑆𝐷‘RD‘𝑅𝐷‘QQ¯¯¯¯𝑄¯功能
00--不定
0101置1
0111置1
1000置0
1010置0
1100保持
1111保持

其约束条件同样遵守SD𝑆𝐷RD𝑅𝐷=0,

与非门是低电平有效,当输入SR=11时,就相当于我们最开始的最基本双稳态电路,起保持的功能

2.3基本SR锁存器的应用–硬件去抖动电路

理想按键与实际按键对比

理想按键与实际按键对比

抖动如何产生?因为机械固有的物理特性,开关触点在瞬间接触的时候会有力学的回弹,使开关在“通”“断”之间反复横跳,造成 2-10 毫秒内信号不稳定。

在大部分情况下,这种信号抖动持续是没有影响的。但是当一个开关连接到一个足够“快”的电子设备上时,它可以检测到多次抖动并做出响应,那么就会引起问题。

在此,去除抖动的必要性就体现出来了。

2.3.1 原理

两种常见开关的抖动

下图是开关按下时,电平变化的示意图。

有时,电压在电源和地之间跃变;有时,则是在初始值和某个中间电压之间跳动。取决于不同开关的特性,这种跃变的行为也往往具有不确定性。

在拨动 SPST-NO 开关情况下,NO 端可能发生抖动。(图片来源:Max Maxfield)

在拨动 SPST-NO 开关情况下,NO 端可能发生抖动。(图片来源:Max Maxfield)

在拨动 SPDT 开关情况下,NO 和 NC 端子上都可能出现抖动。(图片来源:Max Maxfield)

在拨动 SPDT 开关情况下,NO 和 NC 端子上都可能出现抖动。(图片来源:Max Maxfield)

使用 SR 锁存器进行消抖

使用基于与非门的 SR 锁存器对 SPDT 开关进行消抖十分有效。下图是消抖电路的示意图。

SR 锁存器的“0”状态(图片来源:Max Maxfield)

SR 锁存器的“0”状态(图片来源:Max Maxfield)

SR 锁存器的“1”状态(图片来源:Max Maxfield)

SR 锁存器的“1”状态(图片来源:Max Maxfield)

以上图的“1”状态的情况为例,我们分析一下工作过程。

注意到,与非门构成的锁存器是低电平输入有效的。当开关未按下时,常闭触点 NO 接地,对于锁存器来说,此时 S 端为低电平,故 Q 被设为高电平。

当我们按下开关,触片就从 NO 断开而接触 NC。在接触 NC 的瞬间,有 S = 1(上拉), R = 0,故 Q 被设为低电平,完成电平转换。

但是前文提到,由于开关的弹性,在触片第一次接触 NC 后,还会弹起微小的距离,使得此时 NC 与触片断开。注意,由于弹起的距离很小,触片不足以碰到 NO,因此这时开关侧的 NO、NC 都处于“悬空状态”,对于锁存器来说,由于上拉电阻的存在,SR=11。

而根据锁存器的特性,当 S、R 同时为高电平时,输出端将保持原来的状态不变。

因此,在触片弹开而使得 NO、NC 悬空的一小段时间内,Q 端的输出并不受到影响,继续保持低电平,抖动就此消除。

方才分析的是触片反弹一次的情况,一般来说,触片在第一次接触 NC 后往往会反弹数次(振幅不断减小,直至于0),但通过刚才的分析,我们知道这无关紧要。在数次“悬空(实际是上拉)-拉低-悬空-拉低”的过程中,SR 锁存器不断“保持-置0-保持-置0”,Q 端的输出不会改变。

要想让 Q 端回到高电平,唯一的可能性就是松手,让触点接触 NO 端,把 S 端拉低。(嘿嘿,触片弹回 NO 的过程中也会反复横跳数次的。)

2.4 D锁存器

与SR锁存器不同,D锁存器在工作中不存在非定义状态,因而得到广泛的应用。目前,CMOS集成电路主要采用传输门控D锁存器和逻辑门控D锁存器两种电路结构形式,特别是前者电路结构简单,在芯片中占用的面积小而更收青睐。

(这里占个坑位,后面再讲)

3. 触发器

这是一种对脉冲边沿敏感的双稳态电路,只对时钟信号的上升沿或者下降沿敏感,而在其它时刻保持不变,例如我们熟知的计数器、移位寄存器。这种对脉冲边沿敏感的状态更新称为触发,具有触发工作特性的存储单元称为触发器,根据触发边沿不同可以分为:上升沿触发和下降沿触发

目前应用的触发器主要与三种电路结构:主从触发器、维持阻塞触发器和利用传输延迟的触发器。其中主从结构的D触发器在芯片上占用的面积最小,逻辑设计也简单从而广泛使用

(这里占个坑位,后面再讲)

参考文章

  1. 电路技术基础-数字部分-第六版-康华光主编
  2. 数字电子技术基础5——锁存器与触发器_三态输出触发器及锁存器实验报告-CSDN博客
  3. Kimi人工智能
  4. 5.2.1 基于或非门的SR锁存器_哔哩哔哩_bilibili
  5. 5.2.2 基于与非门的SR锁存器_哔哩哔哩_bilibili
  6. 基于SR锁存器进行按键消抖的PCB电路设计与验证 | Hui-Shao’s Blog
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值