數位邏輯與基本元件

組合邏輯(combinational logic)

組合邏輯是沒有記憶的電路:輸出只取決於此刻的輸入,從不取決於之前發生過什麼。可以想成自動販賣機上那個只顯示「目前所選按鈕價格」的價錢顯示器——一改變按鈕,數字立刻跟著變,而顯示器對過去的選擇毫無記憶。組合電路就跟一個數學函數一樣:給它同樣的輸入,你永遠得到同樣的輸出,沒有隱藏狀態、沒有過去。

具體來說,組合電路是一個閘的網路,訊號嚴格地從輸入往輸出單向流動,沒有回授迴路。每當輸入改變,這個改變就沿著閘傳播,經過一段穩定時間(沿最長路徑的傳播延遲)後,輸出抵達其最終、正確、完全由當前輸入決定的值。因為它純粹是輸入的函數,每個組合電路都能用真值表指定、用「積之和」做法建出。標準的組合基本元件有多工器(硬體選擇器)、解碼器與編碼器(把一個數字變成「多選一」的線、再變回來)、加法器(因而也是算術單元)以及比較器。

它為何重要:組合邏輯佔了所有數位設計的一半。實際的運算就發生在這裡——相加、選擇、比較、解碼。另一半是循序邏輯,它加上記憶與時脈。關鍵的誠實之處在於時序:在輸入改變後的短暫窗口裡,訊號還在閘之間奔競時,組合電路的輸出可能瞬間閃過錯誤的值(稱為毛刺,glitch)才穩定下來。這在有時脈的系統裡是無害的,因為我們只在輸出穩定之後才去看它——而這正是時脈所做的工作。

一個回答「A 大於 B 嗎?」的 1 位元比較器是組合的:它在 (A,B) 上的真值表是 (0,0)->0、(0,1)->0、(1,0)->1、(1,1)->0,所以輸出是 A AND(not B),一組閘即可。輸入 A=1,B=0,訊號一穩定下來輸出就是 1;沒有任何需要記住的東西。

同樣的輸入、同樣的輸出,每次皆然——組合邏輯的決定性標誌就是沒有記憶。

如果一個電路的輸出曾取決於輸入的順序或歷史——例如一個記得自己累計值的計數器——它就不是組合的。一旦回授或一個被儲存的位元出現,你就跨進了循序邏輯。

又称
combinatorial logic組合電路純組合邏輯