RS鎖存器是如何做到存儲數據的呢?這里我們只講解用與非門實現的RS鎖存器,用或非門實現的RS鎖存器的工作原理其實是相似的。我們先看圖。
上圖就是RS鎖存器的結構。其中S和R為輸入端,a和b為輸出端,A使得a和R連接在同一個與非門,B使得b和S連接在同一個與非門。我們一般把a的值作為RS鎖存器所保存的值。
當S = 1,R = 0時,我們會發現,不管之前A和B的值是多少,總會有a = 0,b = 1。這是因為R = 0,使得不論A的值為多少,NOT(A AND R)必為1,故b和B必為1,於是NOT(S AND B)必為0,即a必為0。此時,我們說RS鎖存器存儲的值為0,因為a的值就是0。
同理,當S = 0,R = 1時,根據對稱性,不管之前A和B的值是多少,必有a = 1,b = 0。這時我們說RS鎖存器存儲的值是1。
S和R的值都為1時是一種比較特殊的情況。假設一開始S = 1,R = 0,然后我們讓R的值變為1,S的值保持不變,這時我們會發現a和b的值是不變的。這是因為之前A的值已經為0了,即使R的值變為1,NOT(A AND R)依然為1,於是整個電路就沒有發生什么變化。所以,當RS鎖存器從“S = 1,R = 0”的狀態轉移到“S = 1,R = 1”的狀態時,RS鎖存器存儲的值不變。根據對稱性,當RS鎖存器從“S = 0,R = 1”的狀態轉移到“S = 1,R = 1”的狀態時,RS鎖存器存儲的值也不變。
S和R的值都為0的狀態對於RS鎖存器來說是沒有意義的,所以我們一般認為RS鎖存器只有上述三種狀態。
所以,當我們設置S = 1,R = 0時,相當於把值0寫入鎖存器;當我們設置S = 0,R = 1時,相當於把值1寫入鎖存器。當S和R的值都變為1時,之前被寫入鎖存器的值依然被存儲在鎖存器中,就像是被鎖住了一樣。這就是RS鎖存器的工作原理。