一種基於時序邏輯電路的延時開關設計論文
摘 要:時序邏輯電路設計是《數位電子技術》課程中一個難度大、綜合性高的部分,它綜合了組合邏輯電路和時序邏輯電路的內容。在進行狀態機設計時,隨著輸入邏輯變數的增加,狀態數目將呈指數倍急劇增加,這會使整個設計變得複雜且容易出錯。以一個延時開關控制器的設計為例,提出了一種狀態機輸入變數簡化的方法,降低了設計過程的複雜程度。
關鍵詞:時序邏輯電路;延時開關;狀態機化簡;D觸發器
0 引 言
時序邏輯電路的分析和設計是自動化、電氣、通訊、電子等電類專業必須掌握的重要專業基礎,是《數位電子技術》的核心內容、學習的重點和難點。只有透過對它的研究與實踐,才能真正具有設計數位電路的能力。
同步時序邏輯電路的設計方法可按以下幾個步驟進行:設計要求;原始狀態圖;最簡狀態圖;狀態分配;選定觸發器型別,求出狀態方程、驅動方程和輸出方程;畫邏輯電路圖並檢查能否自啟動[1]。本文透過對延時開關電路這一具體例項的設計,對時序邏輯電路設計的一般規律、原則、方法及步驟作了探討和研究。
1 設計要求和基本原理
設計一個開關裝置,該開關裝置在按鈕k第一次按下時,三盞燈x,y和z同時點亮,當k再次按下時,x燈立刻熄滅;y燈5s後熄滅,在y燈熄滅8s後,z燈熄滅[2]。原理框圖如圖1所示。
由圖1可知,該控制器狀態機的輸入邏輯變數有3個,分別為k,td5,td8,k=1表示按鈕按下,td5=1表示5s定時到,td8=1表示8s定時到,輸出邏輯變數有5個,分別為三盞燈x,y,z,高電平表示燈亮,t5=1表示5s定時開始、t8=1表示8s定時開始。
輸入變數有3個,再加上現態Q,狀態機將會有24=16種狀態,隨著輸入變數的增加,狀態的數目會呈指數倍急劇增加。當用狀態機處理數位電路問題時,如果輸入邏輯變數個數大於2且狀態過多的話,會使設計變得複雜且容易出錯,因此必然需要對其進行簡化,也就是將其簡化為2輸入的狀態機,並儘量減少狀態的個數。簡化輸入變數的核心思路是將兩個獨立且互異的輸入合併為一個輸入,會使得整體電路變得簡單。
2 設計實現過程
基於上述思想,將td5和td8合併為一個邏輯變數td/td,經過簡化後的延時開關控制器如圖2所示。簡化後,狀態機的狀態減少為23=8個,這樣大大降低了設計的複雜程度。
2.1 變數定義圖2所示是簡化後的延時開關控制器狀態機,輸入變數有按鈕訊號k,以及延時時間到訊號td,td高電平表示5s延時時間到,低電平時表示8s延時時間到,這是簡化輸入變數法的核心。輸出變數有x,y,z,以及控制延時電路的訊號t,t高電平表示13s延時電路開始工作。
2.2 狀態轉換圖
圖3所示是簡化後延時開關控制器的狀態圖,該圖是不完全條件狀態圖,只標註了向其他狀態轉移的條件而沒有標註自己轉移到自己的'條件,這裡假設不向其他狀態轉移就是保持原狀態不變。
更為重要的一點,為了避免按鈕按下時間過長,狀態連續變化的情況,在狀態A0和A2中間設定了狀態A1,當按鈕按下k=1只轉移到A1,然後按鈕抬起時k=0,進入A2狀態,直到按鈕再次按下時k=1,才能轉移到A3狀態。
2.3 狀態方程與輸出方程
這裡設A0=000,A1=001,A2=011,A3=010,A4=110。由狀態圖可以得到狀態表1和圖4所示的次態卡諾圖。因為只用了8個狀態中的5個,必然剩餘3個狀態,這裡設定空餘的狀態全部跳轉到A0,此方法叫最小冒險法,可以儘量地減少產生冒險競爭的風險。
將次態卡諾圖分解並化簡,可以得到次態方程,見式(1)~式(3):Qn+12=Q1Q0td(1)Qn+11=Q1Q0td+Q2Q1+Q2Q0k(2)Qn+10=Q2Q0k+Q2Q1k(3) 由狀態轉換表可以得到輸出方程,見式(4)~式(7):x=Q2Q1Q0+Q2Q1Q0(4)y=x+Q2Q1Q0(5)z=y+Q2Q1Q0(6)t=Q2Q1Q0+Q2Q1Q0(7)表1 狀態轉換表輸入現態次態輸出k td Q Qn+1 x y z t1×A0A100000×A1A21 1 1 01×A2A31 1 1 0×1A3A40 1 1 1×0A4A00 0 1 1圖4 Q2Q1Q0的次態卡諾圖2.4 用D觸發器實現延時開關控制器若選擇用D觸發器來實現該延時開關控制器,則所設計的邏輯電路如圖5所示。
3 電路時序模擬將所設計的電路在Multisim整合開發環境下進行模擬,邏輯分析儀模擬結果如圖6所示。從圖6模擬結果可以看出,在按鈕k第一次按下時,三盞燈x,y和z同時點亮,當k再次按下時,x燈立刻熄滅;y燈5s後熄滅,在y燈熄滅8s後,z燈熄滅,設計達到了預期要求。
圖6 延時開關模擬圖結構產生了兩個雙負特徵峰,隨間距增大,頻率低一些的明顯向低頻移動,頻率高一些的向高頻微弱移動;在兩對結構平行放置的情況下,負折射特徵峰隨平面之間距離的增加而向高頻移動。