天天看點

數字電路之組合邏輯電路

文章目錄

      • 思維導圖
      • 邏輯門
      • 加法器
      • 比較器
      • 代碼轉換器
      • 譯碼器與編碼器
      • 資料選擇器(多路複用器)
      • 多路配置設定器
      • 奇偶校驗器
邏輯門對應布爾運算,邏輯門組合對應布爾表達式,邏輯門組合的互相轉換對應布爾表達式的互相轉換。但無論邏輯門或者表達式如何改變,真值表永遠不變。用邏輯門進行組合的電路就叫做組合邏輯電路。

思維導圖

數字電路之組合邏輯電路

邏輯門

知識點一: 在之前的文章數字電路之布爾代數和邏輯化簡中提到,數字電路的基礎知識是布爾運算,布爾代數的定律和狄摩根定理。與門對應布爾乘法,或門對應布爾加法,非門對應布爾非運算。在實際電路中,用PMOS和NMOS組合更容易實作一個與非門或者或非門。是以邏輯電路通常是由與非門或者或非門構成,而不是與門或門。

圖檔來源

數字電路之組合邏輯電路

知識點二 :簡單的邏輯門組合有異或門和同或門,異或邏輯為 Y = A B ˉ + A ˉ B Y=A\bar{B}+\bar{A}B Y=ABˉ+AˉB,同或邏輯為 Y = A ˉ B ˉ + A B Y=\bar{A}\bar{B}+AB Y=AˉBˉ+AB。同或邏輯類似一個比較器,相同為1,異同為0,異或邏輯則相反,相同為0,異同為1。

知識點三:邏輯電路的構成有兩個最基本的原則:

與非門可以用來産生任何邏輯電路

或非門可以用來産生任何邏輯電路

這兩個原則的本質就是布爾運算,以下兩張圖檔展示了與非門和或非門構成非門,與門,或門的例子。

數字電路之組合邏輯電路
數字電路之組合邏輯電路

知識點四:推小球背後的原理其實就是狄摩根定理。推小球的一個重要作用就是可以很快的從邏輯電路圖中寫出真值表。

數字電路之組合邏輯電路

加法器

知識點一:兩個輸入位,産生一個和以及一個進位是半加器;兩個輸入位再加上一個進位輸入,産生一個和以及一個進位是全加器。将一個全加器的進位輸出作為下一個全加器的進位輸入,可以組成多位異步進位加法器。異步進位加法器的缺點是輸出延時高,上一級的進位輸出完成後,下一級全加器才開始計算。

數字電路之組合邏輯電路

知識點二:為了解決異步加法器輸出延時問題,提前得到每個全加器的輸入進位,可得到超前進位加法器。一個全加器能出現的所有情況如下圖所示:

數字電路之組合邏輯電路

由真值表可以得到 C o u t C_{out} Cout​的關系式為:

C o u t = A B + ( A + B ) C i n C_{out}=AB+(A+B)C_{in} Cout​=AB+(A+B)Cin​,其中 A B AB AB稱為進位生成 C g C_{g} Cg​, A + B A+B A+B稱為進位傳輸 C p C_{p} Cp​

和的關系式為:

Σ = ( A ⨁ B ) ⨁ C i n \Sigma=(A\bigoplus B)\bigoplus C_{in} Σ=(A⨁B)⨁Cin​

是以,隻要知道每一級全加器的輸入,就可以立即知道每個全加器的進位生成與進位輸出函數。這樣,每個全加器的計算結果可同時生成。

數字電路之組合邏輯電路

比較器

比較器用來判斷兩個二進制數是否相等,用一個同或邏輯就可以。結果隻有三種情況:

a) A=1, B=0 。結果不相等,且A大

b)A=0, B=1,結果不相等,且B大

c) A=B=1, A=B=0,結果相等

數字電路之組合邏輯電路

若多位數字進行判斷,先從最高位開始,若高位相等,則判斷下一位,若不相等,則直接得出結果

代碼轉換器

格雷碼與二進制數的互轉在跨時鐘設計中經常用到。格雷碼的特點是相鄰碼之間隻有一位發生了變化,其目的是為了減少資料傳輸中的出錯機率。四位格雷碼與二進制,十進制數的關系如下:

數字電路之組合邏輯電路

二進制轉格雷碼最高有效位不變,從左到右,将每一對相鄰的二進制碼相加,舍去進位,得到下一個格雷碼位。

數字電路之組合邏輯電路

格雷碼轉二進制最高有效位不變,将得到的二進制碼與下一位的格雷碼相加,舍去進位,得到下一位二進制碼。

數字電路之組合邏輯電路

一位不産生進位的加法電路用異或門就可以實作,下圖左邊為一個二進制-格雷碼轉換器器,右邊為一個格雷碼-二進制碼轉換器。

數字電路之組合邏輯電路

譯碼器與編碼器

譯碼器是一個非常重要的組合邏輯。在計算機中,程式指令以機器碼的形式存在,為了使計算機執行指令,需要對指令譯碼。指令譯碼時指令流水線中的一步,過程如下:從存儲器中取出指令,指令譯碼,從存儲器讀取操作數,執行指令,将結果寫回存儲器。

基本的譯碼邏輯電路如下所示,圖中電路對二進制1011進行譯碼。

數字電路之組合邏輯電路

常見的譯碼器還有BCD-十進制譯碼器,BCD-7段譯碼器。

常見編碼器有十進制-BCD編碼器,其邏輯框圖如下所示。實作起來很簡單,隻要把相對應的十進制數輸入線相或,形成每個BCD輸出。編碼器的應用有鍵盤。

數字電路之組合邏輯電路

資料選擇器(多路複用器)

Verilog中的if…else 語句通常會綜合一個資料選擇器。如下為一個四選一資料選擇電路。

數字電路之組合邏輯電路

資料輸出的總的表達式為:

Y = D 0 S 1 ˉ S 0 ˉ + D 1 S 1 ˉ S 0 + D 2 S 1 S 0 ˉ + D 3 S 1 S 0 Y=D_{0}\bar{S_{1}}\bar{S_{0}}+D_{1}\bar{S_{1}}S_{0}+D_{2}S_{1}\bar{S_{0}}+D_{3}S_{1}S_{0} Y=D0​S1​ˉ​S0​ˉ​+D1​S1​ˉ​S0​+D2​S1​S0​ˉ​+D3​S1​S0​

資料選擇器在電路中應用非常廣泛。在計算機網絡中,一條共享總線就是連接配接系統中所有的計算機且用于交換資料的通路。一條共享總線可以連接配接存儲器和輸入/輸出裝置,這樣這些裝置就可以由系統中所有的計算機共享。對共享總線的通路是由總線判優器控制的,每次隻允許一台計算機共享系統的總線。

多路配置設定器

在一個多路配置設定器中,資料從一條線路中被配置設定到幾條線路上。如下面一個一線-四線多路配置設定器。資料輸入線與所有的門連接配接,每一次,兩條資料選擇線隻開通一個邏輯門,然後資料輸入線上的資料通過這個選中的門,傳送到相應的資料輸出線上。

數字電路之組合邏輯電路

奇偶校驗器

基本奇偶校驗器檢測一個代碼中,1的個數是偶數還是奇數。奇偶校驗器用到的基本原理是:

偶數個1相加的結果始終是0,奇數個1相加的結果始終是1。

用一個異或邏輯就可以實作上面的功能:

數字電路之組合邏輯電路

繼續閱讀