【解決方法】
引入屏蔽信號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',此時只需要使用一個非門。