之前我們已經學習過該如何使用74160/74163實現序列信號發生器的方法, 下面我們再學習另一種實現序列信號發生器的設計方法——這種方法比用74160/74163加門電路/74151/74153的設計方法難度要大, 須大家仔細推敲.
要設計一個同步3位右移移位寄存器, 應像下面這樣繪製狀態表.
狀態表 | ||
Q0* | Q1* | Q2* |
R | Q0 | Q1 |
由上面的狀態表, 繪製狀態激勵表.
狀態激勵表 | ||
D0 | D1 | D2 |
R | Q0 | Q1 |
根據狀態激勵表中的反饋邏輯, 實現同步3位右移移位寄存器.
在此基礎上, 我們要實現序列信號發生器. 我們以Q2端作爲序列信號產生端, 據此推理D0的反饋邏輯.
狀態表(行不通) | ||||
CLK順序 | Q0 | Q1 | Q2 | D0 |
0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | |
2 | 1 | 1 | 0 | |
3 | 0 | 1 | 1 | |
4 | 0 | |||
5 | 1 | |||
6 | 1 | |||
7 | 1 | |||
8 | 0 | 0 | 0 |
狀態表(行不通) | ||||
CLK順序 | Q0 | Q1 | Q2 | D0 |
0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | |
2 | 0 | 1 | 0 | |
3 | 0 | 0 | 1 | |
4 | 1 | 0 | 0 | |
5 | 1 | |||
6 | 1 | |||
7 | 1 | |||
8 | 0 | 0 | 0 |
狀態表(行不通) | ||||
CLK順序 | Q0 | Q1 | Q2 | D0 |
0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | |
2 | 0 | 1 | 0 | |
3 | 1 | 0 | 1 | |
4 | 0 | 1 | 0 | |
5 | 1 | |||
6 | 1 | |||
7 | 1 | |||
8 | 0 | 0 | 0 |
狀態表(行不通) | ||||
CLK順序 | Q0 | Q1 | Q2 | D0 |
0 | 0 | 0 | 0 | |
1 | 1 | 0 | 0 | |
2 | 0 | 1 | 0 | |
3 | 1 | 0 | 1 | |
4 | 1 | 1 | 0 | |
5 | 0 | 1 | 1 | |
6 | 0 | 0 | 1 | |
7 | 1 | |||
8 | 0 | 0 | 0 |
經過上面4種嘗試, 我們得到符合題目要求的狀態表.
狀態表(最終答案) | ||||
CLK順序 | Q0 | Q1 | Q2 | D0 |
0 | 0 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 1 |
3 | 1 | 0 | 1 | 1 |
4 | 1 | 1 | 0 | 1 |
5 | 1 | 1 | 1 | 0 |
6 | 0 | 1 | 1 | 0 |
7 | 0 | 0 | 1 | 0 |
8 | 0 | 0 | 0 | 1 |
這裏很有必要對判斷狀態表的取值是否符合題目要求做出一點說明: 我們判斷出某種取值方案不合理的依據是, 比如100的下一狀態爲××1(應爲×10)或按照該種取值方案進行設計後, 無法滿足序列信號數量的循環狀態.
根據上面的狀態表(最終答案), 可以得知 D0=Q0'Q2'+Q1Q2'+Q0Q1'Q2, 據此對電路進行改造, 繪製最終電路原理圖.
通過上面完整的設計過程, 我們可以看出, 用同步右移移位寄存器實現序列信號發生器的關鍵在於選擇正確的狀態序列.