让我们来看D Latch怎么解决问题的。
写成块图就是。那么进行分析吧。注意这里有个CLK就是clock--时钟,当然就是随时间变化的0和1的输入啦。还记得时序分析我们引入的上升沿和下降沿的概念么。这里就要用到咯。
这里规定:以后只要提到CLK后面写等号的时候就意味着时钟的最终状态。例如CLK=0意味着CLK从1变为0--就是下降沿。CLK=1是上升沿。
OK按着Case进行分析列出真值表:
。自己列不出来?把这个回路拆成两部分,后面就是上节的Sr Latch,只要分析前面的回路就好了。看看怎么解决我们两个问题的。第一,这个回路里因为~D非门的存在,R和S永远不能同时为1也就摆脱了SR的逻辑错误。第二,我们加入可控制的时钟,就可以随心所欲的控制数据何时应当被存储了。看真值表,当CLK=0时,我们的Q永远都会保存上一次操作的Q值。而当CLK为1的时候,根据我们输入的D不同输出Q就会跟随D值--也就是说这个时这个Latch是开放的。D是神马?不就是我们要储存的数据么,只不过这里只能储存1bit。我们可以把很多这样的D latch单元 放 在一起,形成N位内存啊~~~。是啊,太简单了。注意那个 放 字,我们怎么放?并联?串联?延迟怎么办?呵呵,那就看看我们的触发器吧(FF--flipflop)。
我们先把两个D Latch背对背链接:
。跟着我这个系列一步步走过来的人,估计都懒得分析这种回路了。。。当CLK==0的时候,L1开放就是可被写入状态,接受1个D值,而此时L2关闭。当CLK=1 L1记忆上一次操作的Q值,L2也就是 奴隶(Slave)变为开放状态,也就是写入状态。----总结一下:就是在CLK=1时把L1的数据D拷贝进L2。所以D FF(D FlipFlop)也叫做主从触发器,上升沿触发器。把这个D FF封装成块图
,由于D FF是实践中经常用到的,所以我们为了画图方便引入符号,上面的倒三角代表CLK。说到这里给大家留个小问题也当复习了,数一数D FF和D Latch分别要用多少MOS实现。
下面就是把这些D FF 放 在一起做成寄存器咯(Register),求下一节继续关注~