D觸發(fā)器的真值表如下:
課本上的D觸發(fā)器是下面的結(jié)構(gòu):
利用的是JK觸發(fā)器,一個(gè)主觸發(fā)器一個(gè)從觸發(fā)器,下面是JK觸發(fā)器的樣子
采用的是很多組合邏輯組合而成。
下面這一種應(yīng)該是最貼切實(shí)際的D觸發(fā)器的類型(用visio畫(huà)的圖):
如上所示,采用的gate數(shù)目很少,主要采用了兩種邏輯,一種是反相器,另一種是傳輸門結(jié)構(gòu),而且這個(gè)觸發(fā)器是上升沿觸發(fā)。主要原理是:
Clk是低電平時(shí)T1打開(kāi),T2和T3關(guān)閉,T4打開(kāi),這樣T3就將D信號(hào)阻擋在前面,D信號(hào)傳輸不過(guò)去到Q,而Q因?yàn)門4打開(kāi),保持輸出不變;當(dāng)?shù)碗娖睫D(zhuǎn)高電平時(shí),信號(hào)經(jīng)過(guò)I2傳輸?shù)絀3,這時(shí)候T1關(guān)閉,T2和T3打開(kāi),T4關(guān)閉,信號(hào)經(jīng)過(guò)T2和T3等路徑到達(dá)最終的Q端,并且因?yàn)門2,I2,I3的緣故,這個(gè)值一直在傳輸,即將clk低電平轉(zhuǎn)高電平的時(shí)候的上升沿的那個(gè)D的值傳輸了過(guò)去。
這里有三個(gè)概念:分別是建立時(shí)間,保持時(shí)間和clk-Q的時(shí)間:
建立時(shí)間:建立時(shí)間是指在clk前為保證數(shù)據(jù)正確的得到,數(shù)據(jù)所需要的保持穩(wěn)定的時(shí)間;
保持時(shí)間:保持時(shí)間是指clk后為保證數(shù)據(jù)能正確的顯示出來(lái),需要保持穩(wěn)定的時(shí)間;
Clk-Q時(shí)間(傳輸時(shí)間):是指從數(shù)據(jù)穩(wěn)定傳輸最終輸出Q的時(shí)間;
在這里:建立時(shí)間為Tsetup=TI1+TI2+TI3+TT3;保持時(shí)間為Thold = Tclose-to-open-TI1
TClk-Q=TT3+TI4+TI5;
其實(shí)前一部分可以改為以下情形:
即將TT2去掉,從邏輯上看,可能會(huì)出現(xiàn)當(dāng)T1打開(kāi)時(shí),進(jìn)入的值與I3傳過(guò)來(lái)的值相矛盾,產(chǎn)生錯(cuò)誤的情況,但如果采用I2有較大的驅(qū)動(dòng)能力,為一個(gè)較大的反相器,而I3僅能保持邏輯,驅(qū)動(dòng)能力等較小的話,即使出現(xiàn)邏輯相矛盾的情況,最終結(jié)果也不會(huì)出現(xiàn)錯(cuò)誤,但這種邏輯畢竟也是有問(wèn)題的,所以建議不要使用這種。
另外,建立時(shí)間,保持時(shí)間的概念在時(shí)序邏輯中是必要的,一定要了解;有一點(diǎn)要注意:建立時(shí)間可以是負(fù)的,保持時(shí)間也可以是負(fù)的,但兩者不可以同時(shí)是負(fù)的,這里留一個(gè)小疑問(wèn),回頭再解說(shuō)。