fpga32位寄存器存储8位数据(HelloFPGA)
fpga32位寄存器存储8位数据(HelloFPGA)由复位(SD=0,RD=1)变为(SD=0,RD=0)RS锁存器的复位输出信号交叉反馈,是时序电路最主要的特征。两个输入端,SET(置位)、RESET(复位),下标D代表DATA(数据)。如果SD和RD为1表示有激励信号,为0表示无激励信号。锁存器的状态,用输出端Q的值来命名,若Q=0则称锁存器为0状态,Q=1则称锁存器为1状态。RS锁存器的置位
1、时序逻辑电路:它的任何时刻输出,不仅与该时刻的输入信号有关,而且还与该时刻以前的输入信号有关。比如有一台自动售货机,它有一个投币口,并且它规定只允许投入一元面值的硬币。如果一罐饮料的价格为三元,那么当顾客连续投入三个一元的硬币后,机器将输出一罐饮料。机器之所以能在第三枚硬币投入后输出一罐饮料,是因为当我们每次投入一枚硬币时,机器都能将这些投币信息记录下来,那么这样的记忆功能,就是由机器内部的时序电路来实现的。
常见的存储电路有两类,一类是锁存器,而另一类是触发器。它们两者所采用的电路结构形式不同,信号的触发方式也不同。其中,采样电平触发方式的叫做锁存器,采样脉冲边沿触发方式的叫做触发器。
2、RS锁存器
锁存器(Latch),是对脉冲电平敏感的存储单元电路,它只在输入脉冲的高电平(或低电平)期间对输入信号敏感并改变状态。在数字电路中可以记录二进制数字信号0和1。
输出信号交叉反馈,是时序电路最主要的特征。
两个输入端,SET(置位)、RESET(复位),下标D代表DATA(数据)。如果SD和RD为1表示有激励信号,为0表示无激励信号。锁存器的状态,用输出端Q的值来命名,若Q=0则称锁存器为0状态,Q=1则称锁存器为1状态。
RS锁存器的置位
RS锁存器的复位
由复位(SD=0,RD=1)变为(SD=0,RD=0)
时序电路之所以称为时序电路,就是因为这个电路中发生时间不同的信号,它们之间是可以相互影响的,就比如这个电路,虽然我们现在两个输入端都是0,但是将要分别与这两个0相或非的信号,也就是现在这一刻G1门或者G2门所输出的信号,一定是之前的输入信号通过或非门产生的,所以这里我们应该将之前G1的输出值1以及G2的输出值0反馈回G1和G2的输入端,根据或非门的逻辑关系,此时的Q仍然是等于0的,Q(非)也仍然是等于1的,RS锁存器的输入端激励信号消失后,电路仍然维持在原来的状态不变。
RS锁存器的约束条件:SD与RD不能同时为1。
或非门组成的RS锁存器的特性表
特性表就是反应输入变量和原状态以及新状态之间关系的一种真值表,也被称为状态转换真值表。这里的原状态,用Qn来表示,新状态用Qn 1来表示。
特性方程:就是锁存器新状态的逻辑函数表达式。
3、门控RS锁存器
在RS锁存器的基础上增加了一个控制端,只有控制端的信号变为有效电平后,RS锁存器才能按照输入的置1或置0信号改变相应的状态。我们将这种改变后的RS锁存器,称为门控RS锁存器,并且将这种触发方式称为电平触发。
4、D锁存器
D锁存器,是在门控RS锁存器的基础上演变而来的,所谓的D锁存器,就是能够将输入端的单路数据D存入锁存器中的电路。
5、空翻
当控制信号有效时,输入信号若发生多次变化,输出状态也跟着发生多次变化,这一现象就被称为锁存器的空翻。
从波形图可以看出,蓝色虚线内,由于控制信号C为高电平,D=1,Q=1。接下来看蓝色和黄色虚线内,D=0,Q=0;同样后面的两条黄色虚线内,D=1,Q=1。我们就把后面这四条虚线内的翻转称为空翻。空翻是一种有害的现象,它使得时序电路不能按时钟节拍工作,造成系统的误动作。我们前面学习的锁存器,都存在空翻现象,而引起空翻现象是由锁存器的结构导致的。为了解决锁存器的空翻现象,人们便在锁存器的基础上进行修改,设计出了触发器,触发器按照逻辑功能的不同可分为RS触发器、D触发器、JK触发器、T触发器。由于在FPGA设计中我们更多的是利用D触发器来设计电路,基本上每一个时序电路模块都能看到D触发器的身影,所以我们将重点放在D触发器上。