FPGA零基礎學習:數字電路中的組合邏輯

2021-02-15 FPGA技術江湖
大俠好,歡迎來到FPGA技術江湖,江湖偌大,相見即是緣分。大俠可以關注FPGA技術江湖,在「闖蕩江湖」、"行俠仗義"欄裡獲取其他感興趣的資源,或者一起煮酒言歡。

大俠好,歡迎來到FPGA技術江湖。本系列將帶來FPGA的系統性學習,從最基本的數字電路基礎開始,最詳細操作步驟,最直白的言語描述,手把手的「傻瓜式」講解,讓電子、信息、通信類專業學生、初入職場小白及打算進階提升的職業開發者都可以有系統性學習的機會。

系統性的掌握技術開發以及相關要求,對個人就業以及職業發展都有著潛在的幫助,希望對大家有所幫助。後續會陸續更新 Xilinx 的 Vivado、ISE 及相關操作軟體的開發的相關內容,學習FPGA設計方法及設計思想的同時,實操結合各類操作軟體,會讓你在技術學習道路上無比的順暢,告別技術學習小BUG卡破腦殼,告別目前忽悠性的培訓誘導,真正的去學習去實戰應用,這種快樂試試你就會懂的。話不多說,上貨。


作者:郝旭帥  校對:陸輝


根據邏輯功能的不同特點,可以將數字電路分為兩大類,一類稱為組合邏輯電路(簡稱組合電路),另一類稱為時序邏輯電路(簡稱時序電路)。

在組合邏輯電路中,任何時刻的輸出僅僅取決於該時刻的輸入,與電路原來的狀態無關。這就是組合邏輯電路在邏輯功能上的共同特點。在上一節中,設計的三人表決器就是組合邏輯電路,輸出與輸入一一對應,和其他無關,輸入發生改變,輸出立刻跟著改變。

組合邏輯的設計方法在邏輯代數基礎中有一定的簡單的敘述。

根據現有的資源做出合理的假設(通過為1、還是為0,不同的硬體可能會是不同的結構)。根據真值表得出表達式,並化簡(公式化,卡諾圖)。有時需要化簡為與非的形式或者其他形式。如果最後結果出現錯誤,上述所有步驟都要檢查,如果上述步驟都沒有問題,可以考慮電路結構中的連接問題或者器件的損壞。

下面利用一個三人表決器的電路設計來說明一些問題。此電路有三個輸入(A、B、C),一個輸出(Y),只有當兩個及兩個以上輸入贊成時,Y輸出贊成。

設贊成為1,不贊成為0。根據設計要求得出如下真值表:


根據真值表中Y為1的項列出來,對應的A、B、C為1,則留下變量,為0,則留下反變量。

Y = A'BC + AB』C + ABC』 + ABC;

根據上述布爾表達式,我們得出邏輯電路圖:

圖2 :三人表決器的邏輯電路圖


如果所有的邏輯都按照這種寫法的話,那麼很多的邏輯就會變的很複雜,並且會浪費很多的資源。我們考慮一下,電路既然是按照布爾表達式做出來的,那麼布爾表達式能不能化簡一下呢?

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

上述布爾表達式所對應的邏輯電路圖如下:


思考 :半加器、全加器、多路選擇器、乘法器、除法器等常用組合邏輯電路的設計與實現?

在設計組合邏輯時,分析和設計都是在輸入、輸出處於穩定的邏輯電平下進行的。為了保證系統工作的可靠性,有必要再觀察一下當輸入信號邏輯電平發生變化的瞬間電路的工作情況。

在圖1-28所示的與門電路中,穩態下無論A=1、B=0還是A=0、B=1,輸出都應該是Y=0;但是輸入信號A從1變為0時,如果B從0變為1,由於某些原因(布線的寬度、厚度、溫度等),B先從0變為1了,這樣在極短的時間內出現了A和B都是1的情況,與門電路就會輸出一個極窄的Y=1的尖峰脈衝,或稱為電壓毛刺。這個尖峰脈衝不符合門電路穩態下的邏輯功能,因而它是系統內部的一種噪聲。


將門電路兩個輸入信號同時向相反的邏輯電平跳變(一個從1變為0,另一個從0變為1)的現象稱為競爭。

在有競爭時,不一定都會產生尖峰脈衝。例:在上述的與門中,如果A先於B發生了改變,此時就不會產生尖峰脈衝。

思考:可以嘗試分析一下或門,分析或門是否有可能會產生尖峰脈衝?

與門和或門在競爭時,都有可能產生尖峰脈衝。與門和或門是複雜數字邏輯電路中的兩個基本門電路,A、B經過不同的傳輸途徑達到,那麼在設計時往往難於準確知道A、B到達次序的先後,以及它們在上升時間和下降時間上的細微差異。因此,我們只能說只要存在競爭現象,輸出就有可能出現違背穩態下邏輯關係的尖峰脈衝。

由於競爭而在電路輸出端可能產生尖峰脈衝的現象稱為競爭-冒險。

如果後續電路是一個對尖峰脈衝敏感的電路,那麼這種尖峰脈衝將可能使後續電路發生誤動作。

思考:如果存在競爭冒險現象的話,應該怎麼避免?

可以在輸出端接入濾波電容;由於競爭-冒險而產生的尖峰脈衝一般都很窄,所以在輸出端並接一個很小的濾波電容就足以把尖峰脈衝的幅度削弱至門電路的閾值電壓一下。這種方法簡單易行,而缺點是增加了輸出電壓波形的上升時間和下降時間,使波形變壞。引入選通脈衝;由於電路的延遲產生的尖峰脈衝是極窄的,如果在輸入(輸出)信號穩定後,我們再去選取結果作為輸出,此時的結果就是正確的。那麼此時的選通脈衝就必須要要在穩定後再能出現,否則也無濟於事。修改邏輯設計;此方法的局限性比較大,不再做過多介紹。

通過對組合邏輯的認識,感覺自己已經可以設計任何電路。只要按照標準的設計流程,我們都可以很快的做出電路。

思考 :目前需設計一個自動售貨機,販賣售價為三元的飲料,要求每次只能投入一個一元的硬幣。可想而知,我們投入第一個硬幣沒有反應;投入第二個硬幣沒有反應;當我們投入第三個硬幣時,售貨機會給我們一瓶飲料。如果內部是組合邏輯的話,三次投硬幣的輸入並沒有任何改變,但是產生了不同的結果,顯然內部結構不是單純的組合邏輯。內部的功能有一定的記憶性功能,能夠清楚的記得之前我們投入的硬幣的數量。此時我們應該如何去設計電路。

組合邏輯電路中,任一時刻的輸出信號僅取決於當時的輸入信號。


- End -

【福利】:QQ交流群173560979,進群備註名字+學校/企業。淘寶店鋪:https://shop588964188.taobao.com

相關焦點

  • 如何分析組合邏輯電路與時序邏輯電路?
    麵包板社區活動正在火熱進行中,歡迎來搶樓。搶樓有獎,精彩回復有意外驚喜哦!活動地址:https://forum.mianbaoban.cn/t/topic/18219/57你了解如何如何分析組合邏輯電路與時序邏輯電路嗎?
  • 單片機邏輯電路運算符及邏輯電路符號
    在數字電路,我們經常會遇到邏輯電路,而在 C 語言中,我們則經常用到邏輯運算
  • 基於FPGA實現FIR數字濾波電路的設計及應用
    打開APP 基於FPGA實現FIR數字濾波電路的設計及應用 劉微;李彥明;姚志 發表於 2020-12-22 12:22:00
  • 數字電路的特點是什麼
    用數位訊號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由於它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。現代的數字電路由半導體工藝製成的若干數字集成器件構造而成。邏輯門是數字邏輯電路的基本單元。存儲器是用來存儲二進位數據的數字電路。從整體上看,數字電路可以分為組合邏輯電路和時序邏輯電路兩大類。
  • 介紹數字電路中的三種觸發器類型
    數字時序電路中通常用到的觸發器有三種:電平觸發器、脈衝觸發器和邊沿觸發器。今天給大家介紹一下這三種觸發器,話不多說,直接入正題。1.電平觸發器如上圖所示就是電平觸發器的邏輯結構圖和圖形符號圖,只有CLK為高電平的時候才能接受輸入信號,並按照輸入信號將觸發器輸出置成相應的輸出。它是由一個SR觸發器和兩個與非門組成,又稱為同步SR觸發器。2.
  • 邏輯電路如何計算?三種基本邏輯運算比較
    昨天分享了單片機邏輯電路與邏輯運算(這是一個連接哦!),今天我們來聊聊邏輯電路的計算……  1.邏輯常量與變量:邏輯常量只有兩個,即0和1,用來表示兩個對立的邏輯狀態。邏輯變量與普通代數一樣,也可以用字母、符號、數字及其組合來表示,但它們之間有著本質區別,因為邏輯變量的取值只有兩個,即0和1,而沒有中間值。  2.邏輯運算:在邏輯代數中,有與、或、非三種基本邏輯運算。表示邏輯運算的方法有多種,如語句描述、邏輯代數式、真值表、卡諾圖等。
  • FPGA入門--在FPGA中實現8051單片機
    C代碼,成功地把FPGA變成了8051單片機…也許,這就是傳說中的變通吧…接下來,跟大家分享:如何在FPGA中實現開源8051單片機如何將編寫好的c程序載入FPGA中如何在FPGA中讓51單片機執行c程序以上操作均以北郵版FPGA開發板為藍本,如果換用其他的開發板,請適當修改相關配置。
  • 數字時鐘設計電路圖匯總(七款數字時鐘電路圖)
    答:只需點上邊《51單片機學習網》免費關注回復「 相冊」即可!數字時鐘設計電路圖(一)其中復位電路具有上電自動復位,和手動復位功能。由P2控制三極體驅動數碼管,P0口做數據輸出口。數字時鐘設計電路圖(二)
  • 電路設計必備知識:數電入門經驗分享
    模電和數電是電子相關專業最重要的專業課程,做電路設計方面相關的工作,模電和數電知識是必須掌握的。如今正是科學技術的飛速發展階段,數字電子技術廣泛應用在各個領域中,絕大多數電子設備都離不開數字電子技術,小到電飯鍋、電視機、電冰箱,大到高鐵、飛機、火箭、航母等等,這門學科現在發展的很快,數字電路在電子設備中佔據著重要的位置,是系統的核心。本人為大家說說怎樣學好數電呢?數字電路0是0,1是1,條理清晰,邏輯關係明確,比模電要容易得多。
  • 新型射頻開關轉換電路的設計與應用
    在本設計中,設計了一種新型的應用pin diodes的射頻開關轉換電路,實現的功能是4路RF輸入信號選擇其中任意2路RF信號輸出。 總體結構設計 開關將應用於此共振的測試系統,它基於LabView軟體平臺,由計算機提供給電壓控制信號。該控制信號是數位訊號,只能提供高低電平,高電壓為5V,低電壓為0V,因此需要進行電壓轉換才能提供給開關電路。
  • PS吸管工具組使用方法介紹,零基礎學習PS!
    零基礎學習PS第20課,每天學習一點點!使用方法:先在圖像中畫出一段可供參考的線條,比如已經某物長度,選擇標尺工具後去畫出線條,得到該物的長度,然後設置測量比例:在以上測量比例像素長度欄寫出剛剛測量的事物的像素,然後填寫邏輯長度(即已經知道的實際長度),邏輯單位可以是像素
  • 國內外知名的FPGA廠商信息都在這裡了
    產品包括複雜可編程邏輯器件(CPLD),在某些控制應用方面CPLD通常比FPGA速度快,但其提供的邏輯資源較少。可編程邏輯解決方案縮短了電子設備製造商開發產品的時間並加快了產品面市的速度,從而減小了製造商的風險。與採用傳統方法如固定邏輯門陣列相比,利用可編程器件,客戶可以更快地設計和驗證他們的電路。
  • 4個NMOS組成的全橋驅動電路
    打開APP 4個NMOS組成的全橋驅動電路 發表於 2019-08-26 11:48:49 4個NMOS組成的全橋驅動電路
  • 零基礎階段性學習英語的有效方法
    上述目標其實也是英語專業學生的必備技能,那麼身為一個英語專業準大四生,我希望接下來給題主分享的零基礎英語自學方法和相關學習材料能夠幫助到題主和各位英語愛好者,早日達成自己的學習目標,不斷進步!階段一:基礎英語知識學習零基礎學英語其實本該從發音開始說起,但是由於題主有學習美式發音的需求,在正式學習美式英語之前,需要一定的聽說讀寫的能力,擁有基礎的英語語法和詞彙學習,能夠理解基本的句子意思是前提,且為了使大家閱讀起來更具有連貫性,我會把發音學習詳細的內容放在最後一起說。
  • 數字電路歷史、摩爾定律及未來趨勢
    我們都知道在計算機世界中,歸根到最底層的計算,只有兩種狀態,既數字電路的開和關,對應於二進位數字1或0。任何最強大的計算機、最繁雜的計算也最終都是用通過1,0來實現的。這實際上暗合了中國古典哲學的"陰陽",1,0生萬物。
  • 清華大學具備EDA劃分的邏輯電路驗證系統中標公告
    一、項目編號:清設招第2020405號(招標文件編號:清設招第2020405號)  二、項目名稱:清華大學具備EDA劃分的邏輯電路驗證系統  三、中標(成交)信息  供應商名稱:北京國力中自科技有限公司  供應商地址:北京市海澱區白家疃尚水園1號樓10層1001  中標(成交)金額:134.5800000
  • 專欄 | 貝葉斯學習與未來人工智慧
    對於貝葉斯算法來說,數字電路完全可以作為實現層(即不必追求實現層與人腦的相似性),當然需要通過電路設計增強其隨機採樣和計算的能力。對於實現神經突觸可塑性算法來說,模擬電路和憶阻器(memristor)是比較直觀的硬體基礎,而用數字電路實現神經突觸可塑性就比較麻煩,例如在 IBM 的 TrueNorth 計算機中需要 2000 多個邏輯門才能搭建一個神經元。
  • FPGA電源定序電路原理分析
    圖1 這種電源定序電路可消除閉鎖問題,並可減少FPGA 起動瞬態電流。  電路原理:圖1 所示電源包含IC1 和IC2 兩塊IC,它們分別是TPS2034($1.0037) 電源開關和TPS54680($3.6000)降壓型開關穩壓器。IC1 產生IC2 在起動期間跟蹤的慢斜坡電壓。6ms 的斜坡時間可使加到電源開關大電容和電源輸出端的湧入電流降到最小值。慢斜坡電壓能使FPGA 吸收的瞬態電流最小。
  • 擺脫傳統學習方法,有效突破零基礎英語
    很多零基礎英語學習者迫切想要學好英語,從而陷入學習盲區,大量複製別人的英語學習方法,隨著時間的推移,卻未見英語有一絲起色。學習方法千篇一律,適合自己只能萬裡挑一,只有擺脫傳統的學習方法,才能有效突破零基礎英語。
  • 你對自舉電容電路到底了解多少
    亮點五:本視頻基於前幾部視頻,讓工程師深入到第二階段學習,提高複雜電路的架構與設計能力,掌握到電路設計的全局觀。不再像以前簡單的基於元器件的使用,而是如何綜合運用各種複雜器件實現各種複雜應用。   通過學習本套視頻你可以獲得什麼?