You are on page 1of 32

第三章

布林代數與數位邏輯
2
布林代數
 布林代數是一種對具有兩種值的物件作運算的代數
 這兩種值是以真與偽表示,也可以是任意的兩種相對值
 結合變數與運算子則可組成布林表示式(Boolean expressions)
 布林函數 (Boolean function) 一般具有一或多個輸入值,並
根據輸入值產出一個屬於集合 {0,1} 的結果值
 三個常見的布林運算子是且(AND)、或(OR) 與反之 (NOT)
可以使用一個可列出所有輸入、這些輸入的可能值的所
有組合,以及運作後的相對應結果值的真值表 (truth
table) 來完整描述它
3
布林表示式

 布林函數:是一個包含三個布林變數 x、y、 z 與邏輯運算子


OR、NOT、AND 的布林表示式
 布林運算子的優先順序規則賦予 NOT 最高優先權,之後是
AND,之後是OR
4
真值表
5
布林代數的基本恆等式
6
布林表示式的化簡
7
補式
 根據補式來製作一個函數可能會比直接使用該函數更
便宜且簡單
 若依據補式來製作,則我們必須將最終輸出反轉,
以得出原始函數
 欲得某布林函數的補式時,僅需將各變數替換成其補
數形式 (x 被取代成 x′),並將 AND 與OR 互換
 以真值表表示任一表示式的補式時,在原始函數的輸
出為 1 的位置上其輸出應為 0,反之則應為 1
8
補式真值表
9
布林函數表示式
 邏輯上等效 (logically equivalent) 的布林表示式可有無限多個
 為了降低混淆,邏輯設計師會以正規的 (canonical) 或標準的
(standardized) 形式來表示布林函數
 「標準」可以有多種;兩種最常用的則是
積之和 (sum-of-products) 與
和之積(product-of-sums)
 積之和形式 (sum-of-products form) 規定表示式中是一群OR 在一起
的變數間的AND 項 (或稱積項)
 函數F1(x, y, z) =xy + yz′ + xyz 即是積之和形式
 和之積形式 (product-of-sums form) 表示的布林表示式包含AND 在
一起的變數間的OR 項 (或稱和項)
 函數 F1(x, y, z) =(x+y)(x+z ′)(y+z ′)(y+z)即是和之積形式
 積之和與和之積這兩種標準形式是表示布林函數的等效方式
 表示式最後終應被轉換成它的最簡形式
 布林表示式與其電路的實作間存在一對一的關係
 表示式中不必要的項次將導致實際線路中不必要的元件,因而造成未
臻最佳化的電路
10
邏輯閘
 閘 (gates) 是一個能夠計算雙值訊號相關的各種函數的小型
電子裝置
 計算機使用的基本物理元件目前是電晶體;基本邏輯元件則
是閘
11
互斥 -XOR
12 通用閘(universal gate)
13 數位電路及其與布林代數的關係

 在設計的不同層次上,計算機執行的每個動作都相當於布
林表示式的執行
 貼近硬體的組合語言程式師則往往利用布林方面的技巧來
提升程式效能
 作 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

inputs logic for outputs Mealy machine


outputs
Outputs depend on state
combinational and on inputs
logic for reg
next state
Input changes can cause
immediate output changes
state feedback (asynchronous)
29 Moore versus Mealy machines 2
30
暫存器
31
計數器
32
電路設計

 從事邏輯設計不僅需熟習數位邏輯,也要能熟習數位分析
(digital analysis , 分 析 輸 入 與 輸 出 間 的 關 係 ) 、 數 位 合 成
(digital synthesis,由真值表開始來導出製作該邏輯功能的邏
輯圖 ) 與如何使用計算機輔助設計 (computer-aided design,
CAD) 軟體
 一般而言,寫作程式比設計出實現程式中演算法所需的硬體
更為容易,然而許多情況下硬體的實現方式更佳 (譬如在即
時系統中,硬體作法較快,且較快一定是較佳)
 有些情形下軟體作法較佳:
有些嵌入式系統 (embedded system) 中會使用一個可程式化的
微處理器晶片
 可以透過軟體讀取輸入變數值並送出輸出訊號
 寫作這類軟體需要瞭解布林函數如何運作

You might also like