Professional Documents
Culture Documents
布林代數與數位邏輯
2
布林代數
布林代數是一種對具有兩種值的物件作運算的代數
這兩種值是以真與偽表示,也可以是任意的兩種相對值
結合變數與運算子則可組成布林表示式(Boolean expressions)
布林函數 (Boolean function) 一般具有一或多個輸入值,並
根據輸入值產出一個屬於集合 {0,1} 的結果值
三個常見的布林運算子是且(AND)、或(OR) 與反之 (NOT)
可以使用一個可列出所有輸入、這些輸入的可能值的所
有組合,以及運作後的相對應結果值的真值表 (truth
table) 來完整描述它
3
布林表示式
在設計的不同層次上,計算機執行的每個動作都相當於布
林表示式的執行
貼近硬體的組合語言程式師則往往利用布林方面的技巧來
提升程式效能
作 A XOR A,以將儲存位置清空 (按:意謂歸零)
將 XOR 動作對兩個變數 (例如A 與 B) 進行三次,即可互換
它們的內容:
A = A XOR B
B = A XOR B
A = A XOR B
14 組合電路
邏輯電路可歸類為
組合邏輯 (combinational logic) 或循序邏輯 (sequential logic)
一個組合電路可具有多個輸出:每一個輸出都可以用一個
獨立的布林函數代表
15 半加器 (half-adder)
16 全加器 (full-adder)
17 漣波進位加法器 (ripple-carry adder)
18 進位前瞻加法器(carry look-ahead adder)
𝑃 i = 𝑋 i ⊕ 𝑌i
Xi
Yi Si= 𝑃 i ⊕ 𝐶i–1
Pi𝐶i–1
Ci-1
𝐺 i = 𝑋 i · 𝑌i Ci= 𝐺 i + Pi𝐶i–1
1= 1+ 1 0 1= 1⊕ 1
2= 2+ 2 1= 2+ 2( 1 + 1 0) 2= 2⊕ 2
3= 3+ 3 2= 3+ 3( 2 + 2 1+ 1 0) 3= 3⊕ 3
4= 4+ 4 3= 4+ 4( 3 + 3( 2 + 2 1+ 1 0) ) 4= 4⊕ 4
19 解碼器 (decoder)
解碼器 (decoder) 根據輸入選定一個特定的輸出線
將 n 個二進輸入解碼成多至 2n 個輸出
20 多工器(multiplexer)
多工器(multiplexer)
從許多輸入中選出其一並將之送至唯一的輸出端
21 算術邏輯單元 (arithmetic logic unit, ALU)
算術邏輯單元 (arithmetic logic unit, ALU)
顯示具有能對兩個各有 2 位元的字組進行四種基本運作—AND、OR、
NOT 與加的簡單ALU
控制線 f0 及f1 決定 ALU 要進行的運作為何:00 表示加法 (A + B);
01 表示 NOT A;10 表示A OR B;11 表示A AND B
輸入線 A0 與 A1 表示一字組,B0 與 B1 表示另一字組
C0 與 C1 則為輸出線
22 循序電路
組合電路不具儲存能力—它們沒有記憶力
循序電路依據其「目前的輸入」與「之前的輸入」的函數
決定其輸出
其輸出與過去的輸入有關
要記得之前的輸入,循序電路必須要有某種儲存元素
一般使用的儲存元素為正反器 (flip-flop)
輸出與目前的輸入以及電路目前的狀態有關
23 時脈
有些循序電路是非同步 (asynchronous) 的,意指它們在任何輸入
值變動時即動作
同步 (synchronous) 的循序電路以時脈訊號來控制事件的發生時
間
時脈 (clock):脈衝間距稱為時脈週期時間(clock cycle time)
所有記憶元件利用共同的時脈來決定何時更新線路的狀態
大部分循序電路是 (由時脈以)邊緣觸發 (edge triggered)(而非
採相對的位準觸發) 式的
24
正反器
許多人將閂鎖 (latch)與正反器這兩個名詞混用
技術上而言,閂鎖是位準觸發而正反器是邊緣觸發
要「記住」過去的狀態,循序電路需倚賴稱為「反饋 (feed-back)」
的觀念
這只不過是指電路中有些輸出被反饋回來作為電路輸入的方式
25
SR 正反器(SR flip-flop)
SR 代表「設定/重置(set/reset)」
26
D正反器
27 有限狀態機
特性表與時序圖方便我們說明正反器與循序電路的行為
有限狀態機 (finite-state machine, FSM) 則是一種等效的圖
形表示法
28 Moore versus Mealy machines 1
Moore machine
inputs combinational Outputs are a function
logic for of current state
next state logic for
reg outputs outputs
Outputs change
synchronously with
state changes
state feedback
從事邏輯設計不僅需熟習數位邏輯,也要能熟習數位分析
(digital analysis , 分 析 輸 入 與 輸 出 間 的 關 係 ) 、 數 位 合 成
(digital synthesis,由真值表開始來導出製作該邏輯功能的邏
輯圖 ) 與如何使用計算機輔助設計 (computer-aided design,
CAD) 軟體
一般而言,寫作程式比設計出實現程式中演算法所需的硬體
更為容易,然而許多情況下硬體的實現方式更佳 (譬如在即
時系統中,硬體作法較快,且較快一定是較佳)
有些情形下軟體作法較佳:
有些嵌入式系統 (embedded system) 中會使用一個可程式化的
微處理器晶片
可以透過軟體讀取輸入變數值並送出輸出訊號
寫作這類軟體需要瞭解布林函數如何運作