第 六 章 作 業 解 答
1、 試詳細說明使用解碼器在設計數位系統時,大部分皆採用低態致動(低電路輸 出)之優點為何?
解:
目前在設計數位系統時,大部分皆採用『低態致動』輸出之解碼器,
在此說明原因如下,以提供讀者參考。
(1)、組成『低態致動』輸出之解碼器的邏輯閘為 NAND 閘(參考圖 6-9),
而『高態致動』輸出為 AND 閘(參考圖 6-7)。因使用積體電路來製 造 NAND 閘比 AND 閘,所需之電晶體(Transistor)數目較少,故採 用「低態致動」輸出之解碼器可減少積體電路所需之成本。
(2)、因『低態致動』輸出之解碼器,各個輸入組合所對應之輸出線的電壓 為邏輯 0(低電位),即輸出僅提供一個接地點(邏輯 0),如圖(b)所示,
故驅動負載所需之電流是由電源供給,而不是由解碼器輸出端提供,
因此可用驅動較大之負載;但『高態致動』輸出之解碼器,各個輸入 組 合 所 對 應 之 輸 出 線 之 電 壓 為 邏 輯 1( 高 電 位 ), 即 輸 出 僅 提 供 一 個 VCC(邏輯 1),如圖(a)所示,故驅動負載所需之電流需由解碼器之輸出 端提供,因 IC 所能提供之輸出電流相當有限,故此種解碼器能驅動 之負載相對較小。
1 0
VCC 0
圖 (a) 圖 (b)
2、試利用4× 多工器來實現1 f(w,x,y,z)=w⋅y+x⋅z+x⋅y⋅z之布林函數(請以 x、y 當輸入,w、z 當選擇線作答)。
解:
已知布林函數式 f(w,x,y,z)=w⋅y⋅z+x⋅z+x⋅y⋅z非為標準積項之和,因 此需先展開為標準積項之和如下:
) 14 , 12 , 1 1 , 7 , 6 , 4 , 3 , 2 ( )
, , ,
(w x y z =w⋅y⋅z+x⋅z+x⋅y⋅z =∑ f
因 f(w,x,y,z)之布林函數包含4個變數,依題義須使用4× 多工器實現所求1 布林函數,故可使用w與z等2個變數,以取代2條選擇線S1與S ,而以x與y 等20 個變數,以取代輸入線。因選擇線與變數之對應關係可用決定輸入線I 之值,故i 欲使用4× 多工器實現4變數之布林函數,其輸出1 f(w,x,y,z)等於2條選擇線所組 成最小項4次。接著將對應至所求布林函數之最小項的等效十進位數i圈選起來,
最後再整理圈選i之輸入線I 所對應變數關係(有2個變數指定給數入線i I ,故應i 對 指 定 給 輸 入 之 變 數 進 行 邏 輯 化 簡 ) , 便 可 得 到 使 用 4× 多 工 器 來 實 現1
) , , , (w x y z
f 之邏輯電路圖,如下圖所示。
0 1 8 9 2 3 10 11 4 5 12 13 6 7 14 15
3、試分別使用解碼器來實現半減法器與全減法器。
解:
(a)、半減法器有 x 與 y 等 2 個輸入變數,故需用2× 解碼器,而有 D 與 B 兩4 個輸出變數,接著列出可執行全加器運算功能之布林函數式如下:
∑ ∑
=
⋅
=
=
⊕
=
⋅ +
⋅
=
) 1 ( )
, (
) 2 , 1 ( )
, (
y x y x B
y x y x y x y x D
因D(x,y)在輸入組合為 1 與 2 時為邏輯 1,而D(x,y)在輸入組合為 3、時為 邏輯 1,故首先將Q1與Q2等解碼器之輸出線連接至一個 OR 閘之輸入端,再將Q1 之解碼器之輸出線指定至輸出 B,即可實現半減法器,如下圖所示。
wz
y x⋅ y
1 4× 多工器 Y I0
I1
I2
I3
) , , , (w x y z f
w z y
x⋅ S1 S0 xy
11 10 01 00
00 01 10 11
y x x+
x y x+
y
3 2 1 0
Q Q Q x Q
y
解碼器
2×4 D(x,y)
) , (x y B
(b)、全減法器有 x、y 與 Bi等 3 個輸入變數,故需用3×8解碼器,而有 D 與 Bo 兩 個 輸 出 變 數 , 接 著 列 出 可 執 行 全 加 器 運 算 功 能 之 布 林 函 數 式 如 下:
∑
=
⋅
⋅ +
⋅
⋅ +
⋅
⋅ +
⋅
⋅
= (1,2,4,7)
) , ,
(x y Bi x y Ci x y Ci x y Ci x y Ci D
∑
=
⋅ +
⋅
⊕
=
⋅ +
⋅ +
⋅
= ( ) (1,2,3,7) )
, ,
(x y B x y x B y B x y B x y
Bo i i i i
因D(x,y,Bi)在輸入組合為 1、2、4 與 7 時為邏輯 1,而Bo(x,y,Ci)在輸入組 合為 1、2、3 與 7 時為邏輯 1,故首先將Q1、Q2、Q4與Q 等解碼器之輸出線連7 接至一個 OR 閘之輸入端,接著再將Q1、Q2、Q 與3 Q 等解碼器之輸出線連接至7 另外一個 OR 閘之輸入端,即可實現全加法器,如下圖所示。
解碼器
7 6 5 4 3 2 1 0
Q Q Q Q Q Q Q Q x
y
8 3× x y z
) , , (x y Bi D
) , ,
( i
o x y B
B
Bi
4、試利用一解碼器與外加邏輯閘來執行 f(w,x,y,z)=w⋅y⋅z+x⋅z+x⋅y之布林 函數。
解:
已知布林代數式 f(w,x,y,z)=w⋅y⋅z+x⋅z+x⋅y非為標準積項之和,因此首 先展開為標準積項之和如下:
) 15 , 14 , 12 , 11 , 10 , 6 , 4 , 3 , 2 ( )
, , ,
(w x y z =w⋅y⋅z+x⋅z+x⋅y=
∑
f
因 f(w,x, y,z) 有 4 條輸入線,故需使用4×16解碼器,且 f(w,x, y,z) 在輸
入組合為 2、3、4、6、10、11、12、14 與 15 時為邏輯 1,故需將Q2、Q 、3 Q4、 Q 、6 Q 、10 Q11、Q12、Q14與Q 等解碼器之輸出線連接至15 OR 閘之輸入端,即可 實現 f(w,x, y,z) 布林代數,如下圖所示:
w
x
y
z
) , , ,
(w x y z 解碼器 f
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q
164×
5、試利用一個 3× 解碼器與外加邏輯閘來實現一個輸入 3 位元之二進位數,8 而輸出為輸入之平方的組合邏輯電路。
解:
依題意首先將輸入之二進位數取平方後,便可以下列之真值表來定義輸 出與輸入間的關係,如下表所示:
x y z f5 f4 f3 f2 f1 f0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 0 0 0 1 最後利用一個 3× 之解碼器來實現上述真值表,即為所求。 8
解碼器
7 6 5 4 3 2 1 0
Q Q Q Q Q Q Q x Q
y
z
3×8 x y
z “0"
f0
f1
f2
f3
f4
f5
6、試使用多工器來實現半加法器與全加法器。
解:
首先列出全加器之真值表來表示輸入與輸出間的關係,其中有x、y與C 為i 輸入,兩數相加會產生一個和與一進位,分別以S(x,y,Ci) 與Co(x, y,Ci) t來標 示。
x y Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
由上面之真值表可得S(x, y,Ci) 與Co之布林代數表示式分別為
∑ ∑
=
⋅ +
⋅ +
⋅
=
=
⋅
⋅ +
⋅
⋅ +
⋅
⋅ +
⋅
⋅
=
) 7 , 6 , 5 , 3 ( )
, , (
) 7 , 4 , 2 , 1 ( )
, , (
i i
i o
i in
i i
i
C y C x y x C y x C
C y x C y x C y x C y x C y x S
(a)、欲實現S(x, y,Ci) 與Co(x, y,Ci) 之交換函數可用兩個4對1線之多工器來完 成,即
1 1
1 1
xy Ci
00 0 1
01 10 11
Ci Ci Ci Ci
MUX 1
4×
3 2 1 0 S1 y S0
S(x,y,Ci)
x Ci Ci Ci Ci
1 1 1 1
(b)、S(x, y,Ci) 在輸入組合為 1、2、4 與 7 時為邏輯 1,而Co(x, y,Ci) 在輸入 組合為 3、5、6 與 7 時為邏輯 1,故首先將Q1、Q2、Q4與Q7等解碼器之輸 出線連接至一個 OR 閘之輸入端,接著再將Q3、Q5、Q6與Q 等解碼器之7 輸出線連接至另外一個 OR 閘之輸入端,即可實現全加法器,如下圖所示:
器 碼 解 3×8 x
y
x
y
z
7 6 5 4 3 2 1 0
Q Q Q Q Q Q Q Q
) , , (x yCi S
) , ,
o(x y
C Ci Ci
7、試利用 2 個具致能輸入之 2× 解碼器來組成一個4 3× 解碼器。 8 解:
若將致能輸入端 (EN) 當作3×8解碼器之一個輸入變數 ( 通常為輸入變數 之最高有效位元 ),且以補數與非補數之形式,分別連接至兩個2×4解碼器之致 能輸入端,如下圖所示:
解碼器 2×4
3 2 1 0
Q Q Q
3 Q a
3 2 1 0
Q Q Q Q
a2
a1
EN x y
A解碼器
B解碼器
解碼器 2×4
7 6 5 4
Q Q Q Q
3 2 1 0
Q Q Q EN Q
x y
xy Ci
00 0 1
01 10 11
0 1 Ci Ci
MUX 1
4×
3 2 1 0 S1 y S0
Co(x,y,Ci)
x
1 Ci Ci 0
8、試利用多工器來實現一個可產生 2 的補數的組合邏輯電路。
解:
實現一個可產生 2 的補數的組合邏輯電路有 4 個輸入變數,分別標明為 w、
x、y 與 z 等 4 個符號,因 4 位元二進位數之 2 的補數亦為 4 個位元,故所設計之 組合邏輯電路,亦為 4 個輸出變數,分別標示為 f4、 f 、3 f2與 f1等 4 個符號。根 據所求之輸出為輸入的 2 的補數,可用列出輸出與輸入間的關係,如下表所示:
w x y z f4 f3 f2 f1
0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 0 1 1 1 0 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1
觀察上表可知,欲產生 2 的補數的組合邏輯電路,可使用 4 個8×1多工器來 實現 f4、 f 、3 f2與 f1等 4 個輸出,即可繪出 f4(w,x,y,z)、 f3(w,x,y,z)、
) , , ,
2(w x y z
f 與 f1(w,x,y,z)之多工器製作表與邏輯電路,如下所示:
(a)、 f4(w,x,y,z) xyz
w 000 001 010 011 100 101 110 111 0 0 1 2 3 4 5 6 7 1 8 9 10 11 12 13 14 15
y y y y y y y y
多工器
Y 1 8×
7 6 5 4 3 2 1 0
I I I I I I I
y y y y y y y
S2 S1 S0
x y z
) , , ,
4(wx y z f
(b)、 f3(w,x,y,z) xyz
w 000 001 010 011 100 101 110 111 0 0 1 2 3 4 5 6 7 1 8 9 10 11 12 13 14 15
0 1 1 1 1 0 0 0
多工器 Y 1 8×
7 6 5 4 3 2 1 0
I I I I I I I I
0 0 0 1 1 1 1 0
S2 S1 S0
x y z
) , , ,
3(w x y z f
(c)、 f2(w,x,y,z) xyz
w 000 001 010 011 100 101 110 111 0 0 1 2 3 4 5 6 7 1 8 9 10 11 12 13 14 15
y 1 y 0 y 1 y 0
Y 1 8×
7 6 5 4 3 2 1 0
I I I I I I I I
0 1 0 1
y y y y
S2 S1 S0
x y z
) , , ,
2(wx y z f
(d)、 f1(w,x,y,z) xyz
w 000 001 010 011 100 101 110 111 0 0 1 2 3 4 5 6 7 1 8 9 10 11 12 13 14 15
0 1 0 1 0 1 0 1
多工器 Y 1 8×
7 6 5 4 3 2 1 0
I I I I I I I I
1 0 1 0 1 0 1 0
S2 S1 S0
x y z
) , , ,
1(w x y z f
9、試設計一個 2× 解碼器,並說明此4 2× 解碼器轉換為執行4 1× 解多工器4 邏輯運算之方法。
解:
具致能輸入之 2 對 4 線解碼器有 3 個輸入變數 E、x 與 y,而有 4 個 )
4 2
(m= 2 = 輸出變數Q 、3 Q2、Q1與Q 之組合邏輯電路,根據解碼器之原理,0 可得2×4解碼器之邏輯電路,如下圖所示。
x
y
E
Q0 Q1 Q2 Q3
觀察上圖可知,只要將解碼器之致能 (E) 視為解多工器的輸入 (I),且將 輸入線 (x 與 y) 作為選擇線 (S1 與 S0),則具致能輸入之 2× 解碼器便與4 1×4 解多工器完全相同。