FPGA03 | 3种触发器的工作原理与内部结构

目录

快速理解flip-flop

D flip-flop D触发器

SR flip-flop SR触发器

JK flip-flop JK触发器


快速理解flip-flop

在之前的文章当中我们讲到两种触发方式:边沿触发、电平触发

在检测边沿信号时候,要怎么才能检测到一个边沿的变化方向呢?我们不妨把关注放在边沿变化的前后,如果是上升沿,那么就是从低电平到高电平;反之,如果是下降沿,就是从高电平到低电平。我们不需要去检测电平变化的一瞬间,那太快了,我们可以检测边沿变化前后的状态,来判断边沿变化的方向。事实上,flip-flop(触发器)就是通过两个latch来实现的,为了辅助理解,可以参考下图。

上图所示是latch的原理,只有一道门

上图所示是flip-flop原理图,通过两道门检测实现

D flip-flop D触发器

D触发器和D锁存器符号图

左边是D触发器,相比右边的D锁存器,多了一个三角,这个是边沿触发的意思,只有上升沿可以识别通过。

下图展示D触发器和D锁存器的时序区别:

D latch时序变化原理:当clk信号拉高时候,Q(latch)随着D变化,由于物理限制,会存在一定的延迟,标注在途中的delay。在图片右端的粉色标注中可以看到,clk信号为0时,即使D信号变化,Q也不会随之变化。

D flip-flop时序变化原理:当clk信号为上升沿的时候,采集对应时刻的D信号状态,赋值给Q(flop),图中粉色字迹标注,在clk的第二个上升沿的位置,D位于高电平,Q(flop)变为高电平。

用D latch是可以实现D -ff(flip-flop)的,如下图电路所示:

当clk为0的时候,L1中信号通行,L2关闭,D信号传递到N1;

当clk为1的时候,L2中信号通行,L1关闭,N1信号传递到Q;

SR flip-flop SR触发器

门控SR锁存器(gated SR latch)电路结构,真值表如下所示:

module gated_sr_latch (
    input S,R,En,
    output Q,Qn
);

wire S1,R; 

and(S1,En,S);
and(R1,En,R);
nor(Qn,S1,Q);  //输出,输入,输入 门电路的例化固定顺序
nor(Q,R1,Qn);

endmodule
En(clk)SRQnext作用
0xxQ保持
100Q保持
1010Reset
1101Set
111x非法状态

通过电路图和真值表可以看出,在En使能信号(clk有时候会用时钟信号作为使能信号)为1时,正常工作,属于电平触发。如果我们想要用边沿触发,就需要完成两次电平检测,叫做SR Flip-Flop,如下所示:

module sr_ff (
    input clk,S,R,
    output Q,Qn,
    output Master_Q,Master_Qn,
    output clkn // for slave
);

not(clkn,clk);
gated_sr_latch master( //直接例化了上面定义的module gated_sr_latch 
    .S(S),.R(R),.EN(clk),
    .Q(Master_Q),.Qn(Master_Qn)
);
gated_sr_latch slave(
    .S(Master_Q),.R(Master_Qn),.EN(clkn),
    .Q(Q),.Qn(Qn)
);

endmodule

当Clk为1,Master工作;Clk为0,Slave工作。

SRQ(t+1)Qn(t+1)作用
00Q

Qn

保持
0101Reset
1010Set
11undefined

所以检测到的clk信号应该是从高电平变为低电平(下降沿,因为是1→0),用vivado可以写一个简单的testbench测试,得到波形图:

在45ns的时候,R拉高,这时候可以看到MQ(Master Q)并没有变化;

直到50ns时,clk信号拉高,Master SR 才工作,MQ拉低,MQn拉高;

在60ns时,Q和Qn才开始变化,因为clkn此时才拉高(Slave SR的时钟信号是clk信号经过反相器,为了方便引用命名为clkn)。

用于测试的vivado工程文件会在附件中给出。

JK flip-flop JK触发器

与上一篇文章中我们提到JK和SR的区别其实就在于两个信号都为1的时候,SR处于非法状态,但是JK处于toggle反转状态,Q会一直翻转。

JKQ(t+1)Qn(t+1)功能
00QQn保持
0101Reset
1010Set
11QnQToggle

由于内部原理已经在上一篇讲述,就不再赘述,与SR-ff的主要区别就是在Master之前还有两个与门,这是J=1,K=1时可以toggle的关键。

!!!注意:本文都以高有效触发器为例讲解,举例来说,在SR当中,S为1是Set,但是在低有效触发器当中,S为0才是Set。其实内部的结构变化也很简单,只需要把与非换成或非即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值