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

2021-02-07 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


相關焦點

  • 電子人必備基礎知識:數字電路之組合邏輯電路
    作為電子人,關於數字電路的基礎知識是大家必須要掌握的,對學習PCB設計的電子人來說,同樣也是如此。今天,板兒妹主要來和大家介紹數字電路中的組合邏輯電路。關於組合邏輯電路用數位訊號完成對數字量進行算術運算和邏輯運算的電路稱為數字電路,或數字系統。由於它具有邏輯運算和邏輯處理功能,所以又稱數字邏輯電路。
  • 組合電路特點 組合邏輯電路結構介紹
    打開APP 組合電路特點 組合邏輯電路結構介紹 發表於 2018-04-09 16:01:00 ①組合電路是由邏輯門(表示的數字器件
  • 組合邏輯電路和時序邏輯電路比較_組合邏輯電路和時序邏輯電路有...
    打開APP 組合邏輯電路和時序邏輯電路比較_組合邏輯電路和時序邏輯電路有什麼區別 發表於 2018-01-30 17:26:04
  • 基於FPGA數字門電路的實現
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫學習電子工程的過程中離不開大量的實驗和動手練習,就如同開車一樣,學習理論數載,如果從來沒有打幾把方向盤,踩幾腳油門然後再被教練緊急剎車幾次,仍然不會開車。正所謂,看別人做一百次,不如自己練一次。
  • 組合邏輯電路和時序邏輯電路的區別
    打開APP 組合邏輯電路和時序邏輯電路的區別 姚遠香 發表於 2019-02-26 15:32:30   一、輸入輸出關係   組合邏輯電路是任意時刻的輸出僅僅取決於該時刻的輸入,與電路原來的狀態無關。
  • 數字邏輯電路C語言描述方法介紹
    本文引用地址:http://www.eepw.com.cn/article/149506.htm  數字邏輯電路這門課程學習結果的好壞將對計算機專業的後續課程的學習產生很大的影響。數字邏輯電路是學好計算機專業基礎課的必要途徑,因此應該重視這門課程教學方法的改進。為了改革目前的數字邏輯電路課教學方法,我們探索了新的數字邏輯電路教學方法,即基於計算機高級語言的數字邏輯電路教學方法。
  • 數字電路之如雷貫耳的「邏輯電路」
    什麼是"模擬"和"數字" 在自然界中,象聲音、溫度、光等信息是以連續的值進行變化的。這種連續值就稱作"模擬"。而在計算機的世界裡,信息是以一段一段的離散值表示的。這種離散值就稱作"數字"。
  • 數電複習之組合邏輯電路
    本篇內容主要回顧第三章組合邏輯電路的知識,雖然前面提到過組合邏輯電路是數字電路中很重要的一部分,但是學習起來相對簡單,主要是要學會掌握方法
  • 通過點燈的邏輯體驗FPGA的編程流程以及Verilog語法基礎
    學習FPGA也不例外,不要小瞧這隻小小的LED,它能在你學習的路上帶給你光明,引導一個門外漢跨進可編程邏輯世界的大門!作為「寒假在家一起練」的第二次直播講座,我們今天就基於1個LED做了1個多小時的分享,從創建第一個FPGA項目、寫下第一句Verilog代碼,到調用FPGA的IP Cores,體驗了FPGA的設計流程以及Verilog的基本語法規範。
  • Verilog HDL基礎教程之:組合邏輯電路的實現
    數字邏輯電路分為兩種,分別是組合邏輯與時序邏輯。本文引用地址:http://www.eepw.com.cn/article/189531.htm(1)組合邏輯:輸出只是當前輸入邏輯電平的函數(有延時),與電路的原始狀態無關的邏輯電路。
  • 凔海筆記之FPGA(五):(基本 組合)邏輯
    FPGA如此,我們描述的電路亦是如此,接下來,就讓我們認識一下簡單得不能再簡單的電路。或門電路:有1則為1assign y = a | b;與門電路:有0則為0與門(英語:AND gate)又稱"與電路"、邏輯"積"、邏輯"與"電路。是執行"與"運算的基本邏輯門電路。有多個輸入端,一個輸出端。
  • 淺談學習《脈衝與數字電路》的方法
    [關鍵詞]數字電路;邏輯電路;真值表;觸發器   脈衝數字電路是電子技術的一個組成部分,是近代電子技術的重要基礎。在現代電子工程中,信號的產生、傳送及處理愈來愈多地以數位訊號的形式出現。例如微型計算機數控系統、數字通信以及數字編碼的視聽設備應運而生。
  • 零基礎入門FPGA,如何學習?
    「時鐘是時序電路的控制者」這句話太經典了,可以說是FPGA設計的聖言。FPGA的設計主要是以時序電路為主,因為組合邏輯電路再怎麼複雜也變不出太多花樣,理解起來也不沒太多困難。但是時序電路就不同了,它的所有動作都是在時鐘一拍一拍的節奏下轉變觸發,可以說時鐘就是整個電路的控制者,控制不好,電路功能就會混亂。
  • FPGA是什麼
    它是作為專用集成電路(ASIC)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可編程器件門電路數有限的缺點。本文引用地址:http://www.eepw.com.cn/article/272988.htm
  • 各大公司數字電路筆試試題
    8、說說對數字邏輯中的競爭和冒險的理解,並舉例說明競爭和冒險怎樣消除。(仕蘭微 電子) 9、什麼是競爭與冒險現象?怎樣判斷?如何消除?(漢王筆試) 在組合邏輯中,由於門的輸入信號通路中經過了不同的延時,導致到達該門的時間不一致叫競爭。產生毛刺叫冒險。如果布爾式中有相反的信號則可能產生競爭和冒險現象。解決方法:一是添加布爾式的消去項,二是在晶片外部加電容。
  • 基本的邏輯電路有哪些_想要的邏輯電路都在這
    ,以二進位為原理、實現數位訊號邏輯運算和操作的電路。   主要包括內容有數字電子技術(幾種邏輯電路)、門電路基礎(半導體特性,分立元件、TTL集成電路CMOS集成門電路)、組合邏輯電路(加法器、編碼器、解碼器等集成邏輯功能)時序邏輯電路(計數器、寄存器)以及數模和模數轉換。   邏輯電路的分類   邏輯電路是執行基本邏輯操作的電路,它們在電子數字計算機中被大量運用。
  • 數字電路基礎
    下面就和小編一起學習一下數字電路的基礎知識吧~~~本文引用地址:http://www.eepw.com.cn/article/271844.htm  數位訊號是在時間上和數值上均是離散(或不連續)的信號,產生和處理這類數位訊號的電路稱為數字電路或邏輯電路。數字電路的任務是對數位訊號進行運算、計數、存貯、傳遞和控制。現代的數字電路由半導體工藝製成的若干數字集成器件構造而成。
  • 數字電路之數字集成電路IC
    在上一期《數字電路之如雷貫耳的「邏輯電路」》中我們了解了基本的邏輯電路,本期將講解數字IC的基礎和組合電路。本文引用地址:http://www.eepw.com.cn/article/201710/368897.htm  什麼是數字集成電路IC?
  • 組合邏輯電路的分析方法和設計方法
    組合邏輯電路的分析方法和設計方法6.1概述組合邏輯電路:定義構成電路特點6.2.1組合邏輯電路的分析方法一、基本分析方法分析:給定邏輯電路,求電路的邏輯功能
  • 數字電路中顯示解碼器設計的分析與研究
    關鍵詞:解碼器;驅動器;顯示器設計;輸入變量;輸出變量 顯示解碼器是數字電子技術組合邏輯電路中一個很重要的器件,在數字電子技術應用中不可缺少,特別是在信息技術數位化的今天,其應用越來越廣泛,但在組織開展科技創新和電子設計製作競賽活動中,學生在設計製作搶答器、記分器、記時器等電子產品時,總是對如何準確設計出符合功能要求的顯示解碼器胸中無數