從設計110序列檢測器來看--同步時序電路設計
開學臨近,本人查缺補漏,應對推遲的期末考試
同步時序邏輯設計,難度有所增加,本人慾透過110序列檢測器來解決這一問題點:
設計步驟:
1.獲取原始狀態圖與狀態表--分析狀態圖表
2.最簡化狀態圖表
3.狀態編碼
4.利用狀態轉移表與觸發器特徵設計觸發器激勵
5.卡諾圖化簡
6.電路實現
7.檢查無關項
具體操作
獲取原始狀態圖與狀態表--分析狀態圖表
-
狀態設定:
s0 --->初態:表示接收一位資料“0”
s1 --->“1”
s2 --->"11"
s3 --->"110" 此時輸出 z = 1;其他情況 z = 0 -
分析狀態轉換情況:
原式狀態圖如下:
手寫版:
- 原始狀態表:
對其進行化簡
發現s3與s0相同,刪去s3
狀態分配
有s0,s1,s2三種狀態,所以要使用兩個JK觸發器或者D觸發器
我們先以JK觸發器為例:
-
設定編碼
~~~ y2 y1 s0------------> 0 0 s1-------------> 1 0 s2-------------> 1 1 y1,y2分別為兩個jk觸發器的Q輸出 ~~~
-
列真值表
利用JK觸發器的特性,可寫出J2,K2,J1,K1的高低電壓情況,使y2,y1從現態變成次態
此真值表中的觸發器的取值就是將現態轉變為次態的J,K取值情況
JK觸發器特性
J = K = 0 ---> D = Q ,保持
J = 0,K = 1 ---> D = 0,復位
J = 1,K = 0 ---> D = 1 ,置位
J = K = 1 ----> D = \(\bar{Q}\) , 反轉,此時可以認為就是T觸發器的效果
-
利用卡諾圖化簡:
要畫五個卡諾圖,分別是:J2,K2,J1,K1,Z
** 根據真值表中的值來畫卡諾圖**
可得:J2 = X
可得: J1 = X·Y2
K2= \(\bar{X}\)
K1 = \(\bar{X}\)
Z = \(\bar{X}\)·Y1
電路實現
根據 :J2 = X, J1 = XY2,K2= \(\bar{X}\),K1 = \(\bar{X}\),Z = \(\bar{X}\)*Y1來畫電路
X為一個輸入引腳,Z為輸出引腳\
先畫倆JK觸發器:
再添電路:
檢查無關項
思路:將未用到的“01”狀態帶入計算
利用JK觸發器的次態方程 D = J\(\bar{Q}\) + \(\bar{K}\)Q
得: Y1n+1 = J1\(\bar{Y}\)1n + \(\bar{K}\)1Y1n = XY2n\(\bar{Y}\)1n + XY1n = X(Y1n + Y2n)
Y2n+1 = X\(\bar{Y}\)2n + XY2n = X
Y1
現在再將“ Y2 = 0, Y1= 1”帶入
情況1:
Y2n+1 = 0Y1n+1 = 0(1+0) = 0
情況2;
Y2n+1 = 1(1+0) = 1
Y1n+1 = 1
檢查無誤,電路可以自啟動,自此也就完成了
結尾補充
補充:
對於未用狀態得2輸出設定調整: 可以將其輸出調整為無效即可
對於未用狀態的次態設定調整:可以將未用狀態的次態設定成初態或其編碼最接近的工作狀態 --例如:假設本題中的“01”未用狀態,則可將其次態設定為“00”或“11”,這樣列真值表時把他也考慮在內,在列卡諾圖……等一系列操作
各位也可以根據這個思路,把JK觸發器換成T觸發器,總體步驟不變,列真值表時把jk換成T ,利用次態是否反轉判斷T的取值,列卡諾圖……