[DSD] Contemporary Logic Design 2/e ch6 筆記

Sequential Logic design


R-S Latch

S代表 set
R代表 reset

這個情況下
原本的output -> 當R-S均為0時,無論 Q 原本是0 or 1 都會hold住,這是memory的原理

當R-S 均為1的時候,會不穩定(冒煙)
Q+ 代表下一步Q的情形

J-K Latch

大部分跟R-S Latch很像,不一樣之處在,兩者都是1時
R-S 會不穩定,
而 J-K 則是
將原本Q的結果"反向"

比較:
R-S Latch
當R-S:均為0的時候,Q(t) 現在原本是0,就會保持不變 Q(t+) 還是0,
Q(t) 原本是1,也會保持不變 Q(t+) 還是1

當S為0,R為1時:無論Q(t)現在是什麼,會被變成0 (reset了)    
當S為1,R為0時:無論Q(t)現在是什麼,會被變成1 (set了)       
當R-S:均為1的時候,依照電路圖知,Q的結果會跳來跳去不定,久了會燒掉冒煙所以Not allowed
J-K Latch
當J-K:均為0的時候,Q(t) 現在原本是0,就會保持不變 Q(t+) 還是0,
Q(t) 原本是1,也會保持不變 Q(t+) 還是1

當J為0,K為1時:無論Q(t)現在是什麼,會被變成0 (reset了)   
當J為1,K為0時:無論Q(t)現在是什麼,會被變成1 (set了)         
 當J-K:均為1的時候,Q(t) 現在原本是0,就會反向變成 Q(t+) 是1,  
Q(t) 原本是1,會反向變成 Q(t+) 是0 ("反向"的概念)
====================================================

R-S Waveform


J-K Waveform

D-FlipFlop


D是input,Q是ouput,當D變成1時,不會立即生效,要等Clk(clock)來  
當D是1,當Clk從0變成1的瞬間,會有positive edgetrigger,不久會讓Qpos變成剛剛D變成的1   
當D是0,當Clk從0變成1的瞬間,會有positive edgetrigger,不久會讓Qpos變成剛剛D變成的0   
當D是1,當Clk從1變成0的瞬間,會有negative edgetrigger,不久會讓Qneg變成剛剛D變成的1   
當D是0,當Clk從1變成0的瞬間,會有negative edgetrigger,不久會讓Qneg變成剛剛D變成的0   


T-FlipFlops

T : 代表 toggles,正反器
T-FlipFlop 單純功能為反相位,由上式,當T為1時,
Q原本是1的話就會被變成0,Q原本是0的話就會變成1

上表例,第一列第七行,Q從0變成0,T要給0才會發生,因為T是1的時候會有反向功能
第一列第八行,Q從0變成0,D要給0因為D設定成0,當clock來的時候會變成D的結果: 0
第二列第三列表示,Q會從原本的情形反向,所以T要給1,打開反相功能,可做到,
或是把D設成想要變成的狀態值,等待clock來

比較:Synchronous circuits要有clock
Asynchronous circuits跟clock無關

整理:

J - K flip-flop
J要看成set
K要看成reset

J = 1時  Q會set 成 1
K = 1時 Q會reset 成 0
但當J K 都是 1 時會有反向的效果, J K 都是 0 時會保持不變








留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking