【解决方法】
引入屏蔽信号R,当CNT=8时R=1,其余时间为0。用一个二输入的或门将R和CLK连接起来,形成CLK2(=CLK+R)信号作为器件2的时钟,从而推迟使计数器从7跳变到8的脉冲(脉冲8)下降沿的出现时间。
因为在脉冲9上只有当CLK从0完全跳变到1后,定时器CNT才会从8跳变到9(由边沿触发的特点可知,CNT不可能在CLK=0或者非0非1(如2.5V)期间跳变),所以不会出现或门的竞争-冒险现象导致器件2出现误动作。
对于CNT=8,其二进制数为1000,因此R=Q3·Q2'·Q1'·Q0'。(加一个四输入的与门和三个非门)
若CNT=9,那么其二进制数为1001,此时R=Q3·Q2'·Q1'·Q0。
若CNT=11(二进制1011),则R=Q3·Q2'·Q1·Q0。
如果只能使用与非门(74HC00)的话,就先把CLK取反(通过74HC04反相器),屏蔽信号R改为使用与非门R'=(Q3·Q2'·Q1'·Q0')',最后把这两个信号接到另一个与非门上,其输出端就是CLK2。
若R是单个变量,比如R=Q0,则R'=Q0',此时只需要使用一个非门。