本片博客主要介紹一下RS鎖存器(RS latch),D鎖存器(D latch)和D觸發器(D flip flop)各自的電路原理和優缺點以及演變歷史。
RS鎖存器(RS latch)
電路圖:
真值表:
R | S | Q |
---|---|---|
0 | 0 | Q |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | X |
注意到
- 當R=1時,輸出爲0,故R又稱爲直接置“0”端,或“復位”端(reset)
- 當S=1時,輸出也爲1,故S又稱爲直接置“1”端,或“置位”端
- 當R=S=0時,輸出保持不變(很重要的特徵!保證了RS同時爲0(斷電)後,電路輸出能夠保持不變)
- 注意!!!RS不能同時爲1
- 如果RS同時爲1,那麼根據電路圖可以推導出兩個輸出全爲0,有人可能會說這有什麼大不了,但是接下去當RS同時變爲0的時候,問題來了!!!
- 由於RS不可能同時變爲0(電路時延不可能完全相同),那麼就存在先後問題,就會給電路帶來不確定性!因爲我們不知道是誰先變成0,就更不知道輸出會變成什麼樣!
D鎖存器(D latch)
電路圖:
爲了解決RS鎖存器帶來的問題(RS不能同時爲1),在此基礎上,添加兩個與門和一個非門,即可避免這種情況。升級版電路名字就叫D鎖存器。
但是D鎖存器同樣存在它的問題,那就是無法去除輸入的毛刺(換句話說,對毛刺很敏感)。可以看到當E端爲0的時候,R端也會恆爲0,S端則等於D端輸入,亦即是此時輸出直接等於輸入。所以在E=0的時候,輸出完全跟隨輸入(哪怕輸入存在毛刺/抖動,這在電路中十分常見!!!)。爲了進一步的改進,人們在此基礎上又提出了D觸發器。
D觸發器(D flip flop)
電路圖:
通過兩個D鎖存器級聯,並加入一個非門,就形成了D觸發器。通過非門,使得兩個D鎖存器的時鐘存在一個180°的相位差(亦即是相差半個時鐘週期),從而實現,只在時鐘上升沿的時候讀取輸入並輸出,所以其他時候輸入的變化不會傳導到輸出端,去除了輸入可能存在的毛刺,得到了穩定的輸出。