大俠好,歡迎來(lái)到FPGA技術(shù)江湖。本系列將帶來(lái)FPGA的系統(tǒng)性學(xué)習(xí),從最基本的數(shù)字電路基礎(chǔ)開(kāi)始,最詳細(xì)操作步驟,最直白的言語(yǔ)描述,手把手的“傻瓜式”講解,讓電子、信息、通信類(lèi)專(zhuān)業(yè)學(xué)生、初入職場(chǎng)小白及打算進(jìn)階提升的職業(yè)開(kāi)發(fā)者都可以有系統(tǒng)性學(xué)習(xí)的機(jī)會(huì)。
系統(tǒng)性的掌握技術(shù)開(kāi)發(fā)以及相關(guān)要求,對(duì)個(gè)人就業(yè)以及職業(yè)發(fā)展都有著潛在的幫助,希望對(duì)大家有所幫助。后續(xù)會(huì)陸續(xù)更新 Xilinx 的 Vivado、ISE 及相關(guān)操作軟件的開(kāi)發(fā)的相關(guān)內(nèi)容,學(xué)習(xí)FPGA設(shè)計(jì)方法及設(shè)計(jì)思想的同時(shí),實(shí)操結(jié)合各類(lèi)操作軟件,會(huì)讓你在技術(shù)學(xué)習(xí)道路上無(wú)比的順暢,告別技術(shù)學(xué)習(xí)小BUG卡破腦殼,告別目前忽悠性的培訓(xùn)誘導(dǎo),真正的去學(xué)習(xí)去實(shí)戰(zhàn)應(yīng)用,這種快樂(lè)試試你就會(huì)懂的。話(huà)不多說(shuō),上貨。
數(shù)字電路中的組合邏輯
根據(jù)邏輯功能的不同特點(diǎn),可以將數(shù)字電路分為兩大類(lèi),一類(lèi)稱(chēng)為組合邏輯電路(簡(jiǎn)稱(chēng)組合電路),另一類(lèi)稱(chēng)為時(shí)序邏輯電路(簡(jiǎn)稱(chēng)時(shí)序電路)。
在組合邏輯電路中,任何時(shí)刻的輸出僅僅取決于該時(shí)刻的輸入,與電路原來(lái)的狀態(tài)無(wú)關(guān)。這就是組合邏輯電路在邏輯功能上的共同特點(diǎn)。在上一節(jié)中,設(shè)計(jì)的三人表決器就是組合邏輯電路,輸出與輸入一一對(duì)應(yīng),和其他無(wú)關(guān),輸入發(fā)生改變,輸出立刻跟著改變。
組合邏輯的設(shè)計(jì)方法在邏輯代數(shù)基礎(chǔ)中有一定的簡(jiǎn)單的敘述。
根據(jù)現(xiàn)有的資源做出合理的假設(shè)(通過(guò)為1、還是為0,不同的硬件可能會(huì)是不同的結(jié)構(gòu))。
根據(jù)設(shè)計(jì)要求和假設(shè),列出真值表。
根據(jù)真值表得出表達(dá)式,并化簡(jiǎn)(公式化,卡諾圖)。有時(shí)需要化簡(jiǎn)為與非的形式或者其他形式。
根據(jù)化簡(jiǎn)后的布爾表達(dá)式做出電路結(jié)構(gòu),并且驗(yàn)證。
如果最后結(jié)果出現(xiàn)錯(cuò)誤,上述所有步驟都要檢查,如果上述步驟都沒(méi)有問(wèn)題,可以考慮電路結(jié)構(gòu)中的連接問(wèn)題或者器件的損壞。
下面利用一個(gè)三人表決器的電路設(shè)計(jì)來(lái)說(shuō)明一些問(wèn)題。此電路有三個(gè)輸入(A、B、C),一個(gè)輸出(Y),只有當(dāng)兩個(gè)及兩個(gè)以上輸入贊成時(shí),Y輸出贊成。
設(shè)贊成為1,不贊成為0。根據(jù)設(shè)計(jì)要求得出如下真值表:
圖1 :三人表決器真值表
根據(jù)真值表中Y為1的項(xiàng)列出來(lái),對(duì)應(yīng)的A、B、C為1,則留下變量,為0,則留下反變量。
Y = A'BC+AB’C+ABC’+ABC;
根據(jù)上述布爾表達(dá)式,我們得出邏輯電路圖:
圖2 :三人表決器的邏輯電路圖
如果所有的邏輯都按照這種寫(xiě)法的話(huà),那么很多的邏輯就會(huì)變的很復(fù)雜,并且會(huì)浪費(fèi)很多的資源。我們考慮一下,電路既然是按照布爾表達(dá)式做出來(lái)的,那么布爾表達(dá)式能不能化簡(jiǎn)一下呢?
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á)式所對(duì)應(yīng)的邏輯電路圖如下:
圖3 :化簡(jiǎn)后的布爾表達(dá)式所對(duì)應(yīng)的電路圖
思考 :半加器、全加器、多路選擇器、乘法器、除法器等常用組合邏輯電路的設(shè)計(jì)與實(shí)現(xiàn)?
在設(shè)計(jì)組合邏輯時(shí),分析和設(shè)計(jì)都是在輸入、輸出處于穩(wěn)定的邏輯電平下進(jìn)行的。為了保證系統(tǒng)工作的可靠性,有必要再觀察一下當(dāng)輸入信號(hào)邏輯電平發(fā)生變化的瞬間電路的工作情況。
在圖1-28所示的與門(mén)電路中,穩(wěn)態(tài)下無(wú)論A=1、B=0還是A=0、B=1,輸出都應(yīng)該是Y=0;但是輸入信號(hào)A從1變?yōu)?時(shí),如果B從0變?yōu)?,由于某些原因(布線(xiàn)的寬度、厚度、溫度等),B先從0變?yōu)?了,這樣在極短的時(shí)間內(nèi)出現(xiàn)了A和B都是1的情況,與門(mén)電路就會(huì)輸出一個(gè)極窄的Y=1的尖峰脈沖,或稱(chēng)為電壓毛刺。這個(gè)尖峰脈沖不符合門(mén)電路穩(wěn)態(tài)下的邏輯功能,因而它是系統(tǒng)內(nèi)部的一種噪聲。
圖4 :與門(mén)由于競(jìng)爭(zhēng)而產(chǎn)生的尖峰脈沖
將門(mén)電路兩個(gè)輸入信號(hào)同時(shí)向相反的邏輯電平跳變(一個(gè)從1變?yōu)?,另一個(gè)從0變?yōu)?)的現(xiàn)象稱(chēng)為競(jìng)爭(zhēng)。
在有競(jìng)爭(zhēng)時(shí),不一定都會(huì)產(chǎn)生尖峰脈沖。例:在上述的與門(mén)中,如果A先于B發(fā)生了改變,此時(shí)就不會(huì)產(chǎn)生尖峰脈沖。
思考:可以嘗試分析一下或門(mén),分析或門(mén)是否有可能會(huì)產(chǎn)生尖峰脈沖?
與門(mén)和或門(mén)在競(jìng)爭(zhēng)時(shí),都有可能產(chǎn)生尖峰脈沖。與門(mén)和或門(mén)是復(fù)雜數(shù)字邏輯電路中的兩個(gè)基本門(mén)電路,A、B經(jīng)過(guò)不同的傳輸途徑達(dá)到,那么在設(shè)計(jì)時(shí)往往難于準(zhǔn)確知道A、B到達(dá)次序的先后,以及它們?cè)谏仙龝r(shí)間和下降時(shí)間上的細(xì)微差異。因此,我們只能說(shuō)只要存在競(jìng)爭(zhēng)現(xiàn)象,輸出就有可能出現(xiàn)違背穩(wěn)態(tài)下邏輯關(guān)系的尖峰脈沖。
由于競(jìng)爭(zhēng)而在電路輸出端可能產(chǎn)生尖峰脈沖的現(xiàn)象稱(chēng)為競(jìng)爭(zhēng)-冒險(xiǎn)。
如果后續(xù)電路是一個(gè)對(duì)尖峰脈沖敏感的電路,那么這種尖峰脈沖將可能使后續(xù)電路發(fā)生誤動(dòng)作。
思考:如果存在競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象的話(huà),應(yīng)該怎么避免?
可以在輸出端接入濾波電容;由于競(jìng)爭(zhēng)-冒險(xiǎn)而產(chǎn)生的尖峰脈沖一般都很窄,所以在輸出端并接一個(gè)很小的濾波電容就足以把尖峰脈沖的幅度削弱至門(mén)電路的閾值電壓一下。這種方法簡(jiǎn)單易行,而缺點(diǎn)是增加了輸出電壓波形的上升時(shí)間和下降時(shí)間,使波形變壞。
引入選通脈沖;由于電路的延遲產(chǎn)生的尖峰脈沖是極窄的,如果在輸入(輸出)信號(hào)穩(wěn)定后,我們?cè)偃ミx取結(jié)果作為輸出,此時(shí)的結(jié)果就是正確的。那么此時(shí)的選通脈沖就必須要要在穩(wěn)定后再能出現(xiàn),否則也無(wú)濟(jì)于事。
修改邏輯設(shè)計(jì);此方法的局限性比較大,不再做過(guò)多介紹。
通過(guò)對(duì)組合邏輯的認(rèn)識(shí),感覺(jué)自己已經(jīng)可以設(shè)計(jì)任何電路。只要按照標(biāo)準(zhǔn)的設(shè)計(jì)流程,我們都可以很快的做出電路。
思考 :目前需設(shè)計(jì)一個(gè)自動(dòng)售貨機(jī),販賣(mài)售價(jià)為三元的飲料,要求每次只能投入一個(gè)一元的硬幣??上攵?,我們投入第一個(gè)硬幣沒(méi)有反應(yīng);投入第二個(gè)硬幣沒(méi)有反應(yīng);當(dāng)我們投入第三個(gè)硬幣時(shí),售貨機(jī)會(huì)給我們一瓶飲料。如果內(nèi)部是組合邏輯的話(huà),三次投硬幣的輸入并沒(méi)有任何改變,但是產(chǎn)生了不同的結(jié)果,顯然內(nèi)部結(jié)構(gòu)不是單純的組合邏輯。內(nèi)部的功能有一定的記憶性功能,能夠清楚的記得之前我們投入的硬幣的數(shù)量。此時(shí)我們應(yīng)該如何去設(shè)計(jì)電路。
組合邏輯電路中,任一時(shí)刻的輸出信號(hào)僅取決于當(dāng)時(shí)的輸入信號(hào)。
更多熱點(diǎn)文章閱讀
-
電子技術(shù)
+關(guān)注
關(guān)注
18文章
853瀏覽量
55510 -
電子發(fā)燒友論壇
+關(guān)注
關(guān)注
4文章
197瀏覽量
990
原文標(biāo)題:【教程分享】FPGA零基礎(chǔ)學(xué)習(xí):數(shù)字電路中的組合邏輯
文章出處:【微信號(hào):gh_9b9470648b3c,微信公眾號(hào):電子發(fā)燒友論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論