nandgame--Level 3.3: Memory: Data flip-flop
上一个任务中的锁存器是高电平使能的,只有ST为高,就会一直更新数据D,容易产生竞争条件。实际应用中,需要将锁存条件由电平改为边沿(即边沿触发)。比如上升沿触发,即只有在ST由0变为1的那个时刻,才会更新数据D到锁存器中;平时不管ST是0,还是1,数据都会被锁在锁存器中,不会变化。
任务三:边沿D触发器。
看看任务背景介绍:
任务说明:
这是一个带使能端的上升测D触发器。
原材料:
基本的门电路(与,或,非,与非,异或),再加上锁存器
分析:
先不考虑使能端,可以用2个高电平使能的锁存器来实现边沿触发。
当CL为0时,由于非门的作用,A锁存器的ST为1,此时将D锁到A中,Q1=D;此时B锁存器的ST为0,Q2不变。
当CL为1时,A锁存器使能端无效,Q1数据不变;此时B锁存器有效,Q2=Q1=之前的D。实现了锁存器的输出。这个时候,D无论怎么变化,也不会影响Q1和Q2。
加上ST使能端后: