大家有做出来吗?答案就是Tpd = 3*100 =300ps, Tcd=2*60=120ps。今天的主题就是给出一个更实际点例子,然后进入脉冲分析(Glitches)。

大家还记得1.7节 硬件级别的封装思想--组合逻辑回路 中的第一个小问么。这里先给出答案:

1.逻辑门实现

1.8节 逻辑电路灵魂--时序 part2_Critical Path

2.三态实现

1.8节 逻辑电路灵魂--时序 part2_Glitches_02

3.2:1MUX的实现

1.8节 逻辑电路灵魂--时序 part2_时序分析_03

那么这里的任务当然就是分析这三种实现的传播延时(Tpd)咯。


首先给出一个普遍情况下的逻辑门的Tpd值(现实中可以用哦,不过具体的当然还要看手册咯)

1.NOT门 Tpd = 30ps

2.二项输入And门 Tpd = 60ps

3.三项输入AND门 Tpd = 80ps

4.四项输入OR门 Tpd = 90ps

5.三态:输入到Y延迟 Tpd = 50ps

始能到Y延迟 Tpd = 35ps

好了,开始分析,

第一步,首先找出每种实现的关键路径;第二步,对照上面的参数进行加法就完事了

不过注意因为是MUX有两个输入,就要计算两种时序!(一个是选择输入,还有一个是数据输入)

答案见下图,关键路径以蓝线标记:

a.

1.8节 逻辑电路灵魂--时序 part2_Glitches_04这里S(S0或S1,因为途中蓝线无论哪个S输入都要经过3个门)到Out的Tpd=30+80+90=200,D到Out是Tpd=170。所以明显控制端(S)到输出(out)用的时间比较多,所以有这种时序特性的电路被称为 控制关键 (Control criticle)电路

b.

1.8节 逻辑电路灵魂--时序 part2_Glitches_05这里S到Out的Tpd=30+60+35=125,D到Out是Tpd=50,也是 控制关键

c.

1.8节 逻辑电路灵魂--时序 part2_Critical Path_06这里S0到Out的Tpd=35+50=85,(注意这里关键路径是等D0到达之后,S1才开始影响输出,而D0穿过第一个三态要50ps总之我们计算Tpd只要找最坏情况即可)D到Out(Y)是Tpd=100

所以这个电路被称为 数据关键(Data critical)


那么我们实际应用时应该采用哪种?可以说三态和逻辑门各有优势。这个问题。。。无解。。因为要看其他的是怎么设计的,次要因素还有我们手头有没有,价格神马的。例如如果整个回路中,我的控制信号总会比我数据先到一步,那么我们当然就采用control critical,让控制信号“跑慢点”和数据协同一下用b的实现,反过来我们可以用c的实现。


讲到这里,大家会发现,原来时序分析如此简单!是的,不过别太自信,这只是入门~。既然有了时序,有了延迟,就一定有“撞车”(contention)现象。这也就是为什么人类有道路交通学(实际上不仅涉及到算法,和高能等离子物理有关,喜欢物理的人可以查一下Vlasov(乌拉索夫?)方程式)

这里我就介绍一个叫做 脉冲(Glitches)的东西。神马意思~之前我们看得例子都是一个输入发生一次变化输出也跟着只发生一次变化,而 脉冲 就是输入发生一次变化时输出可以发生多次变化。



这里让大家先设计一很简单的回路Y=~A~B+BC。用卡诺图,然后进行时序分析。

设计好了嘛~给出答案:

K图:

1.8节 逻辑电路灵魂--时序 part2_Glitches_07

实现:

1.8节 逻辑电路灵魂--时序 part2_Critical Path_08

找出关键路径:

1.8节 逻辑电路灵魂--时序 part2_时序分析_09这里不要慌,听我解释~~现在假设输入A=0,C=1.然后让B从1变到0.由于上面的AND门之前有NOT门 所以 B的信号到达n1节点的时间要比下面AND门到达n2节点的时间长,所以导致n2先从1变化到0此时n1保持0的状态,所以经过OR门Y=0(初始状态Y=1).过了一会,当n1变为1的时候n2当然还是0所以Y又变为1.这个语言叙述的过程就是 时序分析 翻译成 图:

1.8节 逻辑电路灵魂--时序 part2_Glitches_10注意一下B从1到0的时候,n2也不是马上变化因为有个Tpd!

大家会发现只要经过适当长的时间,这个电路的输出总会变得稳定,但是当然很影响效率啦。大家想想,怎么改进~~下次见~