數(shù)字電路學(xué)不好?是因?yàn)槟悴欢畷r(shí)序,重點(diǎn)已劃
概述
學(xué)習(xí)數(shù)字邏輯這門課程的目的有兩個(gè),第一是為了后續(xù)的電路設(shè)計(jì),是硬件工程師的入門課程;第二則是為了更好地理解計(jì)算機(jī)的工作原理,為后續(xù)嵌入式開發(fā)、軟件開發(fā)等打下堅(jiān)實(shí)的基礎(chǔ)。絕大部分人應(yīng)該屬于后者,畢竟純粹的硬件開發(fā)工程師職位不多。
時(shí)序電路是數(shù)字邏輯這門課的關(guān)鍵,因?yàn)橐肓?strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">時(shí)間這一維度,理解掌握其功能特性的難度比組合邏輯要高,因此,很多童鞋可能學(xué)到這有點(diǎn)暈,這是正?,F(xiàn)象。應(yīng)對(duì)辦法也很簡(jiǎn)單:熟記典型的幾個(gè)觸發(fā)器功能特征,多做幾個(gè)習(xí)題,對(duì)付考試和后續(xù)課程的理解綽綽有余。
時(shí)序電路這門課程的要求是最終能夠進(jìn)行簡(jiǎn)單的電路設(shè)計(jì)(包括組合邏輯和時(shí)序邏輯),完成特定的功能。學(xué)會(huì)跑之前,要先學(xué)會(huì)走,也就是先看看別人的電路是怎么設(shè)計(jì)的,分析其規(guī)律,然后再嘗試設(shè)計(jì)簡(jiǎn)單的電路。
分析原理
要對(duì)時(shí)序電路進(jìn)行分析,需要先理解其結(jié)構(gòu)特征,時(shí)序電路的基本結(jié)構(gòu)如下圖所示:
圖1:時(shí)序電路結(jié)構(gòu)特征
由圖1知,時(shí)序電路由組合變換電路、存儲(chǔ)電路和對(duì)外輸出組合電路三部分組成。一般情況下,稱存儲(chǔ)電路中保存的數(shù)據(jù)為時(shí)序電路的狀態(tài);外部輸出Z有兩種形式,一種是Z只與電路的現(xiàn)態(tài)相關(guān),稱為Moore型電路,一種是與電路的狀態(tài)和外部輸入相關(guān),稱為Mealy型電路。
要分析時(shí)序電路,很多教材上要寫第一步做什么、第二步做什么之類的,這種方法很容易讓童鞋們死記硬背,誤入歧途,較為合理的方法應(yīng)該是抓住時(shí)序電路的本質(zhì),即是什么導(dǎo)致電路狀態(tài)發(fā)生改變?電路的狀態(tài)如何改變?電路的對(duì)外輸出是什么規(guī)律?這三個(gè)問題搞清楚了,畫出電路的狀態(tài)遷移圖,根據(jù)狀態(tài)遷移圖對(duì)其功能進(jìn)行說明,簡(jiǎn)單的分析就算完成了。
什么導(dǎo)致電路狀態(tài)發(fā)生改變?
答:激勵(lì)方程,即存儲(chǔ)電路的輸入(激勵(lì)就是輸入,在本課程中特指觸發(fā)器的輸入)
電路狀態(tài)如何改變?
答:次態(tài)方程,比如J-K觸發(fā)器和D觸發(fā)器等,這就需要大家熟記幾種典型的觸發(fā)器的功能特性。當(dāng)然,后面還會(huì)提到一些典型的時(shí)序電路邏輯器件如計(jì)數(shù)器、移位器等,這也需要大家靈活理解并熟記。
電路對(duì)外的輸出是什么規(guī)律?
答:輸出方程,就是一個(gè)組合電路,比較簡(jiǎn)單。
綜上,只要抓住這三個(gè)方程,電路分析不是什么難事,大家只要掌握這個(gè)規(guī)律,沒有分析不了的電路。
舉例說明
根據(jù)上面的原理,下面由簡(jiǎn)單到難,分別舉兩個(gè)例子進(jìn)行分析。
例1:試分析下圖所示時(shí)序電路,畫出X=101101的時(shí)序圖。
圖2:例1電路圖
顯然,這時(shí)一個(gè)同步的Mealy型電路(Z與輸入和X和D觸發(fā)器的狀態(tài)相關(guān)),分別寫出輸出方程、激勵(lì)方程和次態(tài)方程:
圖3: 例1的三個(gè)方程
由此,可以寫出電路的次態(tài)(狀態(tài)轉(zhuǎn)移)和輸出:
圖4: 例1的次態(tài)和輸出表
根據(jù)輸出表,畫出電路的狀態(tài)轉(zhuǎn)移圖和波形圖,分別入圖5和圖6所示:
圖5:例1的狀態(tài)轉(zhuǎn)移圖
圖6:例1的波形圖
注:在畫波形圖時(shí),一定要搞清楚哪是現(xiàn)態(tài),哪是次態(tài),輸出是和輸入和現(xiàn)態(tài)同步變化的(這里指的是理想情況),因此這里的D觸發(fā)器是上升沿時(shí)引起狀態(tài)變化,所以,要以CP從0跳變到1為界區(qū)分現(xiàn)態(tài)和次態(tài)
根據(jù)狀態(tài)轉(zhuǎn)移圖,很容易看出,例1中的功能為:當(dāng)輸入為1時(shí),電路狀態(tài)變化,且當(dāng)處于0狀態(tài)時(shí),輸入1,輸出為1,當(dāng)處于1狀態(tài)時(shí),輸入1,輸出為0;其它輸入(即0),電路狀態(tài)保持不變,且輸出為1.
例2: 分析下圖的邏輯功能
其中的D0的輸入為D00*D01
圖7: 例2的電路圖
這個(gè)電路的特點(diǎn)是:只有一個(gè)CP輸入,沒有其它輸入,也沒有輸出,只有電路狀態(tài)的轉(zhuǎn)移。(另外,這四個(gè)D觸發(fā)器的狀態(tài)組成了電路的狀態(tài))因此,這里只需要分析其激勵(lì)方程和狀態(tài)轉(zhuǎn)移方程(D觸發(fā)器的狀態(tài)轉(zhuǎn)移這里不再贅述)
這個(gè)電路中每個(gè)觸發(fā)器的激勵(lì)方程為:
圖8: 例2的激勵(lì)方程
對(duì)于這樣的電路,可以口述,假設(shè)Q3Q2Q1Q0初態(tài)為0000,當(dāng)一個(gè)時(shí)鐘脈沖來臨時(shí),Q3Q2Q1Q0轉(zhuǎn)換為:0001;再來一個(gè)時(shí)鐘脈沖則為:0011,類似進(jìn)行分析,可以得到其轉(zhuǎn)換狀態(tài)為:
圖9: 例2的狀態(tài)轉(zhuǎn)移表
類似這樣的電路在后續(xù)學(xué)習(xí)中非常常見,請(qǐng)大家熟悉,并且最好能直接口述或繪制其狀態(tài)轉(zhuǎn)移圖
小結(jié)
對(duì)于時(shí)序電路分析,抓住核心的三個(gè)方程(根據(jù)情況),很容易繪制狀態(tài)轉(zhuǎn)移圖和波形圖。
如有錯(cuò),請(qǐng)各位批評(píng)指正!
文/CodingTech
著作權(quán)歸作者所有,轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán)
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問題,請(qǐng)聯(lián)系我們,謝謝!