數位邏輯與基本元件

循序邏輯(sequential logic)

循序邏輯是會記憶的電路。和組合邏輯不同——後者的輸出只取決於此刻的輸入——循序電路的輸出取決於輸入以及它儲存的歷史,也就是它當前的狀態。想想體育館的旋轉門計數器:按下按鈕不只是點亮一個瞬間訊號,而是讓一個會持續累積的計數往前進。同一個輸入在兩個不同時刻給出,可能產生兩個不同的輸出,因為電路帶著對先前發生過什麼的記憶。正是這份記憶,讓硬體能做任何隨時間展開的事:計數、依序執行步驟、跑一個程式。

在一個由閘構成的電路裡,記憶從何而來?來自回授——把輸出接回輸入,讓一個值能維持自己。用這種方式建出最簡單的記憶元件是鎖存器(一對交叉耦合的閘,握住一個位元),而它有紀律的版本是邊緣觸發的正反器,它只在時脈邊緣捕捉輸入,並穩穩握住直到下一個邊緣。因此循序電路由兩部分構成:從當前狀態與輸入算出下一狀態與輸出的組合邏輯,以及儲存狀態、在時脈跳動時一起更新的一排正反器。這就是標準的有限狀態機結構。

它為何重要:循序邏輯把一台只算瞬時函數的計算機,變成一台隨時間有行為的機器。計數器、暫存器、移位暫存器、控制器,乃至整顆處理器都是循序的。讓它可靠的那份誠實紀律是同步設計:單一時脈決定每個正反器究竟何時更新,於是正反器之間的組合邏輯被給予一個固定的窗口去穩定,而且只在它穩定後才被取樣一次。沒有那個由時脈強加的順序,回授與閘延遲會讓電路彼此競賽,產生無法預測的結果。

一個紅綠燈控制器是循序的。它的狀態是當前的顏色(綠、黃、紅)。同一個輸入「計時器到期」會依你身處哪個狀態而產生不同的下一個顏色:從綠變黃、從黃變紅、從紅變綠。組合電路永遠做不到這件事,因為它根本不知道現在亮的是哪個顏色——它沒有記憶。

同樣的輸入、依狀態給出不同的輸出:記憶就是循序與組合之間的分界線。

「循序」並不代表慢、或一次只走一步。它代表有狀態:電路有記憶。現代處理器是深度循序的,卻能每個時脈執行許多運算——「循序」講的是對歷史的依賴,不是指它是串列的。

又称
sequential circuit時序邏輯循序電路