大俠好,歡迎來到FPGA技術(shù)江湖。本系列將帶來FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開始,最詳細(xì)操作步驟,最直白的言語描述,手把手的“傻瓜式”講解,讓電子、信息、通信類專業(yè)學(xué)生、初入職場小白及打算進(jìn)階提升的職業(yè)開發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會。
系統(tǒng)性的掌握技術(shù)開發(fā)以及相關(guān)要求,對個人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對大家有所幫助。后續(xù)會陸續(xù)更新 Xilinx 的 Vivado、ISE 及相關(guān)操作軟件的開發(fā)的相關(guān)內(nèi)容,學(xué)習(xí)FPGA設(shè)計方法及設(shè)計思想的同時,實(shí)操結(jié)合各類操作軟件,會讓你在技術(shù)學(xué)習(xí)道路上無比的順暢,告別技術(shù)學(xué)習(xí)小BUG卡破腦殼,告別目前忽悠性的培訓(xùn)誘導(dǎo),真正的去學(xué)習(xí)去實(shí)戰(zhàn)應(yīng)用,這種快樂試試你就會懂的。話不多說,上貨。
數(shù)字電路中的組合邏輯
根據(jù)邏輯功能的不同特點(diǎn),可以將數(shù)字電路分為兩大類,一類稱為組合邏輯電路(簡稱組合電路),另一類稱為時序邏輯電路(簡稱時序電路)。
在組合邏輯電路中,任何時刻的輸出僅僅取決于該時刻的輸入,與電路原來的狀態(tài)無關(guān)。這就是組合邏輯電路在邏輯功能上的共同特點(diǎn)。在上一節(jié)中,設(shè)計的三人表決器就是組合邏輯電路,輸出與輸入一一對應(yīng),和其他無關(guān),輸入發(fā)生改變,輸出立刻跟著改變。
組合邏輯的設(shè)計方法在邏輯代數(shù)基礎(chǔ)中有一定的簡單的敘述。
根據(jù)現(xiàn)有的資源做出合理的假設(shè)(通過為1、還是為0,不同的硬件可能會是不同的結(jié)構(gòu))。
根據(jù)設(shè)計要求和假設(shè),列出真值表。
根據(jù)真值表得出表達(dá)式,并化簡(公式化,卡諾圖)。有時需要化簡為與非的形式或者其他形式。
根據(jù)化簡后的布爾表達(dá)式做出電路結(jié)構(gòu),并且驗(yàn)證。
如果最后結(jié)果出現(xiàn)錯誤,上述所有步驟都要檢查,如果上述步驟都沒有問題,可以考慮電路結(jié)構(gòu)中的連接問題或者器件的損壞。
下面利用一個三人表決器的電路設(shè)計來說明一些問題。此電路有三個輸入(A、B、C),一個輸出(Y),只有當(dāng)兩個及兩個以上輸入贊成時,Y輸出贊成。
設(shè)贊成為1,不贊成為0。根據(jù)設(shè)計要求得出如下真值表:

圖1 :三人表決器真值表
根據(jù)真值表中Y為1的項(xiàng)列出來,對應(yīng)的A、B、C為1,則留下變量,為0,則留下反變量。
Y = A'BC+AB’C+ABC’+ABC;
根據(jù)上述布爾表達(dá)式,我們得出邏輯電路圖:

圖2 :三人表決器的邏輯電路圖
如果所有的邏輯都按照這種寫法的話,那么很多的邏輯就會變的很復(fù)雜,并且會浪費(fèi)很多的資源。我們考慮一下,電路既然是按照布爾表達(dá)式做出來的,那么布爾表達(dá)式能不能化簡一下呢?
Y = A'BC+AB’C+ABC’+ABC;
= A'BC+ ABC +AB’C+ ABC+ ABC’+ABC;
= BC(A' + A) + AC(B+B') + AB(C+C')
= BC+AC+AB
上述布爾表達(dá)式所對應(yīng)的邏輯電路圖如下:

圖3 :化簡后的布爾表達(dá)式所對應(yīng)的電路圖
思考 :半加器、全加器、多路選擇器、乘法器、除法器等常用組合邏輯電路的設(shè)計與實(shí)現(xiàn)?
在設(shè)計組合邏輯時,分析和設(shè)計都是在輸入、輸出處于穩(wěn)定的邏輯電平下進(jìn)行的。為了保證系統(tǒng)工作的可靠性,有必要再觀察一下當(dāng)輸入信號邏輯電平發(fā)生變化的瞬間電路的工作情況。
在圖1-28所示的與門電路中,穩(wěn)態(tài)下無論A=1、B=0還是A=0、B=1,輸出都應(yīng)該是Y=0;但是輸入信號A從1變?yōu)?時,如果B從0變?yōu)?,由于某些原因(布線的寬度、厚度、溫度等),B先從0變?yōu)?了,這樣在極短的時間內(nèi)出現(xiàn)了A和B都是1的情況,與門電路就會輸出一個極窄的Y=1的尖峰脈沖,或稱為電壓毛刺。這個尖峰脈沖不符合門電路穩(wěn)態(tài)下的邏輯功能,因而它是系統(tǒng)內(nèi)部的一種噪聲。

圖4 :與門由于競爭而產(chǎn)生的尖峰脈沖
將門電路兩個輸入信號同時向相反的邏輯電平跳變(一個從1變?yōu)?,另一個從0變?yōu)?)的現(xiàn)象稱為競爭。
在有競爭時,不一定都會產(chǎn)生尖峰脈沖。例:在上述的與門中,如果A先于B發(fā)生了改變,此時就不會產(chǎn)生尖峰脈沖。
思考:可以嘗試分析一下或門,分析或門是否有可能會產(chǎn)生尖峰脈沖?
與門和或門在競爭時,都有可能產(chǎn)生尖峰脈沖。與門和或門是復(fù)雜數(shù)字邏輯電路中的兩個基本門電路,A、B經(jīng)過不同的傳輸途徑達(dá)到,那么在設(shè)計時往往難于準(zhǔn)確知道A、B到達(dá)次序的先后,以及它們在上升時間和下降時間上的細(xì)微差異。因此,我們只能說只要存在競爭現(xiàn)象,輸出就有可能出現(xiàn)違背穩(wěn)態(tài)下邏輯關(guān)系的尖峰脈沖。
由于競爭而在電路輸出端可能產(chǎn)生尖峰脈沖的現(xiàn)象稱為競爭-冒險。
如果后續(xù)電路是一個對尖峰脈沖敏感的電路,那么這種尖峰脈沖將可能使后續(xù)電路發(fā)生誤動作。
思考:如果存在競爭冒險現(xiàn)象的話,應(yīng)該怎么避免?
可以在輸出端接入濾波電容;由于競爭-冒險而產(chǎn)生的尖峰脈沖一般都很窄,所以在輸出端并接一個很小的濾波電容就足以把尖峰脈沖的幅度削弱至門電路的閾值電壓一下。這種方法簡單易行,而缺點(diǎn)是增加了輸出電壓波形的上升時間和下降時間,使波形變壞。
引入選通脈沖;由于電路的延遲產(chǎn)生的尖峰脈沖是極窄的,如果在輸入(輸出)信號穩(wěn)定后,我們再去選取結(jié)果作為輸出,此時的結(jié)果就是正確的。那么此時的選通脈沖就必須要要在穩(wěn)定后再能出現(xiàn),否則也無濟(jì)于事。
修改邏輯設(shè)計;此方法的局限性比較大,不再做過多介紹。
通過對組合邏輯的認(rèn)識,感覺自己已經(jīng)可以設(shè)計任何電路。只要按照標(biāo)準(zhǔn)的設(shè)計流程,我們都可以很快的做出電路。
思考 :目前需設(shè)計一個自動售貨機(jī),販賣售價為三元的飲料,要求每次只能投入一個一元的硬幣??上攵?,我們投入第一個硬幣沒有反應(yīng);投入第二個硬幣沒有反應(yīng);當(dāng)我們投入第三個硬幣時,售貨機(jī)會給我們一瓶飲料。如果內(nèi)部是組合邏輯的話,三次投硬幣的輸入并沒有任何改變,但是產(chǎn)生了不同的結(jié)果,顯然內(nèi)部結(jié)構(gòu)不是單純的組合邏輯。內(nèi)部的功能有一定的記憶性功能,能夠清楚的記得之前我們投入的硬幣的數(shù)量。此時我們應(yīng)該如何去設(shè)計電路。
組合邏輯電路中,任一時刻的輸出信號僅取決于當(dāng)時的輸入信號。
更多熱點(diǎn)文章閱讀
-
電子技術(shù)
+關(guān)注
關(guān)注
18文章
923瀏覽量
57878 -
電子發(fā)燒友論壇
+關(guān)注
關(guān)注
5文章
198瀏覽量
1319
原文標(biāo)題:【教程分享】FPGA零基礎(chǔ)學(xué)習(xí):數(shù)字電路中的組合邏輯
文章出處:【微信號:gh_9b9470648b3c,微信公眾號:電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
評論