D触发器也称为维持-阻塞边沿D触发器,其与普通触发器的区别在于:电平触发的主从触发器工作时,必须在正跳沿前加入输入信号。如果在CP 高电平期间输入端出现干扰信号,那么就有可能使触发器的状态出错。而边沿触发器允许在CP触发沿来到前一瞬间加入输入信号。这样,输入端受干扰的时间大大缩短,受干扰的可能性就降低了。
1.建立时间:
由维持阻塞触发器的电路可见,由于CP信号是加到门G3和G4上的,因而在CP上升沿到达之前门G5和G6输出端的状态必须稳定地建立起来。输入信号到达D端以后,要经过一级门电路的传输延迟时间G5的输出状态才能建立起来,而G6的输出状态需要经过两级门电路的传输延迟时间才能建立,因此D端的输入信号必须先于CP的上升沿到达,而且建立时间应满足: tset≥2tpd。
2.保持时间:
为实现边沿触发,应保证CP=1期间门G5的输出状态不变,不受D端状态变化的影响。为此,在D=0的情况下,当CP上升沿到达以后还要等门G3输出的低电平返回到门G5的输入端以后,D端的低电平才允许改变。因此输入低电平信号的保持时间为tHL≥tpd。在 D=1的情况下,由于CP上升沿到达后G4的输出将G3封锁,所以不要求输入信号继续保持不变,故输入高电平信号的保持时间tHH=0。
3.传输延迟时间:
从CP上升沿到达时开始计算,输出由高电平变为低电平的传输延迟时间tPHL和由低电平变为高电平的传输延迟时间tPLH分别是:tPHL=3tpd tPLH=2tpd
4.时钟频率:
为保证由门G1~G4组成的同步RS触发器能可靠地翻转,CP高电平的持续时间应大于 tPHL,所以时钟信号高电平的宽度tWH应大于tPHL。而为了在下一个CP上升沿到达之前确保门G5和G6新的输出电平得以稳定地建立,CP低电平的持续时间不应小于门G4的传输延迟时间和tset之和,即时钟信号低电平的宽度tWL≥tset+tpd
说明一点,在实际集成触发器中,每个门传输时间是不同的,并且作了不同形式的简化,因此上面讨论的结果只是一些定性的物理概念。其真实参数由实验测定。在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在进行后仿真时,延迟用来检查建立时间,最小延时用来检查保持时间。
SD 和RD 接至基本RS 触发器的输入端,它们分别是预置和清零端,低电平有效。当SD=0且RD=1时,不论输入端D为何种状态,都会使Q=1,Q非=0,即触发器置1;当SD=1且RD=0时,触发器的状态为0,SD和RD通常又称为直接置1和置0端。我们设它们均已加入了高电平,不影响电路的工作。
工作过程如下:
1.CP=0时,与非门G3和G4封锁,其输出Q3=Q4=1,触发器的状态不变。同时,由于Q3至Q5和Q4至Q6的反馈信号将这两个门打开,因此可接收输入信号D,Q5=D非,Q6=Q5非=D。
2.当CP由0变1时触发器翻转。这时G3和G4打开,它们的输入Q3和Q4的状态由G5和G6的输出状态决定。Q3=Q5非=D,Q4=Q6非=D非。由基本RS触发器的逻辑功能可知,Q=Q3=D。
3.触发器翻转后,在CP=1时输入信号被封锁。这是因为G3和G4打开后,它们的输出Q3和Q4的状态是互补的,即必定有一个是0,若Q3为0,则经G3输出至G5输入的反馈线将G5封锁,即封锁了D通往基本RS 触发器的路径;该反馈线起到了使触发器维持在0状态和阻止触发器变为1状态的作用,故该反馈线称为置0维持线,置1阻塞线。Q4为0时,将G3和G6封锁,D端通往基本RS触发器的路径也被封锁。Q4输出端至G6反馈线起到使触发器维持在1状态的作用,称作置1维持线;Q4输出至G3输入的反馈线起到阻止触发器置0的作用,称为置0阻塞线。因此,该触发器常称为维持-阻塞触发器。总之,该触发器是在CP正跳沿前接受输入信号,正跳沿时触发翻转,正跳沿后输入即被封锁,三步都是在正跳沿后完成,所以有边沿触发器之称。与主从触发器相比,同工艺的边沿触发器有更强的抗干扰能力和更高的工作速度。
74HC74 74LS90 双D触发器74LS74
74LS364八D触发器(三态)
7474、74 H74、74F74、74ALS74、74L74、74LS74A、74S74、74HC73、74C74双D型正沿触发器(带预置和清除端)
74174、74LS174、74F174、74ALS174、74S174、74HC174、74C174 六D型触发器(带清除端)
74175、74LS175、74F175、74ALS175、74S175、74HC175、74C175 四D型触发器(带清除端)
74273、74LS273、74S273、74F273、74ALS273、74HC273 八D型触发器(带清除端)
74LS377、74F377、74S3777 八D 触发器
74LS378、74F378、74S378、74HC378 六D 触发器
74LS379、74F379、74S379、74HC379八D 触发器
使用VHDL语言设计D触发器的程序:
LIBRARY ieee; USE ieee.std[_]logic[_]1164.all;
ENTITY dflipflop IS
PORT (D,C : IN STD[_]LOGIC;
Q : OUT STD[_]LOGIC);
END dflipflop;
ARCHITECTURE Behavior OF dflipflop IS
BEGIN
PROCESS( C )
BEGIN
IF C'EVENT AND C='1'
THEN
Q<=D;
END IF;
END PROCESS;
END Behavior;
使用Verilog HDL语言实现D触发器(带R、S端)
//门级
module cfq(s,r,d,clk,q,qbar);
input s,r,d,clk;
output q,qbar;
wire na1,na2,na3,na4;
nand
nand1(na1,s,na4,na2),
nand2(na2,r,na1,clk),
nand3(na3,na2,clk,na4),
nand4(na4,na3,r,d),
nand5(q,s,na2,qbar),
nand6(qbar,q,r,na3);
endmodule
或
//行为级
module dff[_]rs[_]async(clk,r,s,d,q);
input clk,r,s,d;
output q;
reg q;
always@(posedge clk or posedge r or posedge s)
begin
if(r) q<=1'b0;
else if(s) q<=1'b1;
else q<=d;
end
endmodule
D触发器配上适当的组合逻辑电路,可实现JK触发器的功能。
设计原理:
对于JK触发器有:
Q n+1=JQ n+KQ n
对于D触发器有:
Q n+1=D
而D=Y
所以Q n+1=Y
Y=JQ n+KQ n
可根据此式设计转换电路。
转换原理图如下图所示:
用D触发器构成JK触发器原理图