數位邏輯設計與實習
ch04 組合邏輯電路設計
組合邏輯電路定義
X1 X2
Xn
Z1 Z2
Zm
Z1=F1(X1,X2、、、Xn) Z2=F2(X1,X2、、、Xn) 、
、 、
Zm=F2(X1,X2、、、Xn)
任何時刻 的輸出與 當時輸入 有關。
組 合
組合邏輯電路設計步驟
由電路的規格,決定所需的輸入與輸出的個 數,並且對每一個輸入與輸出安排一個變數 符號。
導出真值表並定義輸入與輸出間所需的關 係。
對每一個輸出求出以輸入變數為函數之簡化 的布林函數。
畫出邏輯圖,表 決
a b c
f 多數電位
a b c
0 0 0 0 0 1 0 1 0 0 1 1
f 0 0 0 1
f= (3,5,6,7)
b
f=ab+ac+bc
組合電路種類
算術電路(加法器、減法器、乘法器)
解碼器
編碼器
多工器
解多工器
比較器
數碼轉換器
同位元產生器/檢查器常則
加法器/減法器
1bit 加法器
1bit 減法器
4bit 並加器(漣波加法器)
4bit 加減器
4bit 加減器有旗號指示
1位數BCD加法器☆
(十進)
1bit加法器定義
半加器 :一位元與一位元相加, 不考慮進位
全加器 :一位元與一位元相加, 考慮前一級 進位Half Adder,H.A
XY
S 和
C 進位
H.A
Full Adder,F.A
XiYi
Si
Ci+1
F.A
(i)
半加器設計
Si=Σ(1,2)=Ai♁Bi Ci+i=Σ(3)=Ai*Bi
0 1
1 1
1 0
0 1
1 0
1 0
0 0
0 0
S i
C
i+1B i A i
真值表
入 出
0 1 2 3
ˇ ˇ ˇ
=Ai:Bi
H.A
H.A
Ai
H.A
Bi
Sium
加法
全加器設計
Ai Bi Ci
Si
Ci+1
F.A
全加器真值表
1 1
1 1
1
0 1
0 1
1
0 1
1 0
1
1 0
0 0
1
0 1
1 1
0
1 0
0 1
0
1 0
1 0
0
0 0
0 0
0
S C i+1
C i B
A
輸入 輸出
0 1 2 3 4 5 6 7
i i i
ˇ ˇ
ˇ
ˇ ˇ
ˇ ˇ ˇ
行為
Ai
Bi Ci
Si
Ci+1
加
Si= (1,2,3,4,7)
Ci+1= (3,5,6,7) A
B
C
=Ai Bi Ci
B
=AiBi+AiCi+BiCi
全加器布林式
Si
=Σ(1,2,4,7)=Ai
♁Bi
♁Ci
C
i+1
=Σ(3,5,6,7)=Ai
Bi
+Ai
Ci
+Bi
Ci
=Ai
Bi
+Ci
(Ai
♁Bi
)=AB+C(A+B)
OR
0 0 0 1 1 0 1 1
0 1 1 1
用半加器設計全加器
半加
S=A B
C=AB
全加
S=A B C
Ci+1=AB+C(A B)
A B A B C
AB
C(A B)
Ci+1=AB+C(A B)
F.A=2H.A+OR get
1bit 減法器
半減器 :一位元與一位元相減,不考慮借位
全減器 :一位元與一位元相減, 考慮前一級 借位x
y
D
B
HS
差
借
Half Sultractor
xi Di
FS
半減器設計
Di
=Σ(1,2)=Ai
♁Bi
Bi+1
=Σ(1)= A'BAi
Bi
Di 差
Bi+1 借
HA
A B
0 0
0 1
1 0
1 1
0 0
1 1
0 1
0 0 Bi+1 Di
全減器設計
Di
=Σ(1,2,4,7)=Xi
♁ Yi
♁ Bi
B
i+1
=Σ(1,2,3,7)=Xi
Yi
+Xi
Bi
+Yi
Bi
1bit xiyi
Bi
Di Bi+1
A B Ci Bi+1 Di 0 0 0 0
0 0 1 1 0 1 0 2 0 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7
0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 1
y
4bit 並加器(漣波加法器)
FA
a b
ci+1 c
s
ripple adder
4bit 加減法器分析
4bit 減法器
方法一: FA FA
FA FA
方法二:用加法器代替減法器
A+B=A+B+0=A+B+0 A-B=A+(-B)=A+B+1
B
0 B
B
1 B
1.符號大小 2.1'S
4bit 加減器
A B
S
M 0加
1代 M=0加
M=1減
B3 B2 B1 B0
4bit 加減器有旗號指示
ZF(Zero Flag)
CF(Carry Flag)
SF(Sign Flag)
OF(Over Flag)狀態
Flag 成立
(況)
zf=1 0
zf=0 結果不為零
進位
符號
溢位
0負
1正
符號、1's、2's
MSB overflow
狀態 Flag Reg status Reg
of zf sf cf
FA FA FA FA
S3 S2 S1 S0
4bit 加減器有旗號指示電路圖
FA FA FA FA
A A A A
OF ZF SF CF
A
A
S3 S2 S1 S0
C1 C2
C3 C4
A3B3 A2B2 A1B1 A0B0
C0
S:1 減
S:0 加
1位數BCD加法器分析
1位數BCD加法器
漣波加法器缺點
進位傳遞延遲 SiCi+1 A
B Ci
FA
產生 2個閘 delay
FA FA FA
FA C0
C1
C4 C3 C2
a3 b3 a2 b2 a1 b1 a0 b0
10ns
20ns
* 8 T=160ns
f= MHt
進位前看加法器(Carry Look-ahead Adder,CLA)
己知:A3
A2
A1
A0
,B3
B2
B1
B0
,C0
未知: C4
,C3
,C2
,C1
Si
=(Ai
♁ Bi
) ♁ Ci
Ci+1
=Ai
Bi
+ Ci
(Ai
♁Bi
)
令Gi
=Ai
Bi
(進位產生)
Pi
=Ai
♁ Bi
(進位傳遞)a3~a0 b3~b0
s3~s0 c4 c0
FA
A B
ci+1 Ci
s 0 0
1
1 0
FA
0 1
1 0
1 1
☆
☆ Ci+1=Gi+CiPi
FA
進位前看加法器
C
i+1
=Gi
+Ci
Pi
i=0 C
1
=G0
+Co
Po
i=1 C2
=G1
+C1
P1
=G
1
+G0
P1
+Co
Po
P1
i=2 C3
=G2
+C2
P2
=G
2
+G1
P2
+G0
P1
P2
+Co
Po
P1
P2
i=3 C4
=G3
+C3
P3
=
G 3 +G 2 P 3 +G 1 P 2 P 3 +G 0 P 1 P 2 P 3 +C o P o P 1 P 2 P 3
AND OR
進位前看產生電路圖
進位前看加法器
三連波4Gat
8bit 4Gat
ripple 16Gat
nA 2
乘法器
1bit 乘法器
2bit 乘法器(用HA,FA)1bit 乘法器
A B
P
A B P 0 0
0 1 1 0 1 1
0 0 0 1
AND
2bit 乘法器真值表
3 3
a1 a0 b1 b0
2bit 乘法器
1 2 4 5
6 U2A 7421
9 10 11
8 U3C
7411
1 2 13
12 U4A
7411
3 4 5
6 U4B
7411
9 10 11
8 U4C
7411 1 2 13
12 U3A
7411
3 4 5
6 U3B
7411
5 6
U1C
7404
8 9
U1D
7404
12 13
U1F
10 11
U1E
7404
1 2
U1A
7404
3 4
U1B
7404
4 5
6 U6B
7432
8 9
10 U6C 7432
11 12
13 U6D 7432 1
2
3 U6A7432
A1 A0 B1 B0
P3
P1 P2
(1)
2bit 乘法器(用HA,FA分析)
a1 a0 b1 b0
*
a1b0 a0b0 a0b1 HA
+ a1b1 C 1+A
P1 P0 P2
P3
S S
b1 b0 a0 a1
HA
HA
S C
C
2bit 乘法器(用HA,FA)
1bit 乘法器
3bit 乘法器(用HA,FA)
a2 a1 a0
b2 b1 b0
*
a2b0 a1b1 a0b2
a1b0 a0b1
a0b0 a2b1
a2b2 a1b2 +
FA HA FA FA
P1 P0 P3 P2
P5 P4
C C C
S S S S
2 6
=64項
解碼器方塊圖
低太輸出
1對2解碼
高
Decodor
解 碼 入 器
n 2n
出
0
7 3對8解碼器
4*16
0
15
有致能解碼器方塊圖
有些解碼器電路沒有致 能控制線;有些電路為 高電位啟動。
Y
0Y
1解碼器 輸
入 端
輸出端
致能控制線
Y
m-1Y
m-2⎫
⎬⎪
⎭⎪
n m
×E x
0x
1x
n-1x
n-2⎧
⎨
⎪ ⎪
⎩
⎪ ⎪
(a) 非反相輸出
Y
0Y
1解碼器 輸
入 端
輸 出 端
致能控制線
Y
m-1Y
m-2⎫
⎬⎪
⎭⎪
n m
×E x
0x
1x
n-1x
n-2⎧
⎨
⎪ ⎪
⎩
⎪ ⎪
(b) 反相輸出
n
m
高態相同 低態輸出
低態 (低電位)
2對4解碼器(高態輸出)
(1)方塊圖 (2)真值表
MSB a
b
d0 d1d2
d3
A B 0 0 0 1 1 0 1 1
d3 d2 d1 d0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0
(3)邏輯圖 a b
d0
d1
d2
最小項
有致能端2對4解碼器(高態輸出)
(a) 方塊圖
(b) 功能表 (c) 邏輯電路
0 x1 x0
0 1 0 1 0
Y0 Y1 Y2 Y3 E
1 0 0 0 0
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0
0 0 0
φ φ
1 1
Y0 x1
Y2 Y3 E
Y1 x0
2 4 解碼器
x1
x0
E
Y0
Y1
Y2
Y3 低態
有致能端2對4解碼器(低態輸出)
(a) 方塊圖
(b) 功能表 (c) 邏輯電路
x1
x0
E
Y0
Y1
Y2
Y3 Y0
x1
Y2 Y3 E
Y1 x0
2 4 解碼器
0 x1 x0
0 1 0 1 0
Y0 Y1 Y2 Y3 E
1 1 1 1 1
0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0 0
0 0 0
φ φ
1 1 致能
平常
3對8解碼器—利用2對4解碼器
Y0 x0
Y2 Y3 E
Y1 x1
2 4 解碼器
Y0 x0
Y2 Y3 E
Y1 x1
2 4 解碼器
x2 x0 x1
Y0 Y1 Y2 Y3
Y4 Y5 Y6 Y7 A
B y0
y1
y7 x0
x1 x2
3*8 MSB
0
4對16解碼器—利用2對4解碼器
X0
X3
Y0
Y15 4*16
MSB
X0 X1
X2 X3
Y0
邏輯圖
ISE 繪圖
HDL 程式
編碼器方塊圖
入 出
2
n n log 2n
n
4對2編碼器
8對3編碼器
(a) 功能表 0
I2 I3
0 0 1 0 1
I4 I5 I6 I7
0 0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1 0 0 0
1 0 0
0 0 0 I1
I0 Y2 Y1 Y0
1 0 0 0 0
0 0
0 1 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1
0 0 1 0 1 1 0
0 0 0 1 1 1 1
(b) 邏輯電路 I0
I2 I3 I1
I4
I6 I7 I5
Y2 Y1 Y0
不需要 8入
don't care 8對3 優先編碼器
優先
8對3優先權編碼器
低態 低態
致能
優先
多工器方塊圖
選擇線
2x1 MWX
4x1 MWX I0
I3
Multiplexer (MUX)
2對1多工器
Y I
0I
1S MUX
2 1 ×
(a) 方塊圖 (b) 功能表
S Y
0 1
I
0I
1(c) 邏輯電路 S
I
0I
1Y
真值表
Verilog 程式
module mux_2_1(
input a, input b, input s, output f );
wire s0,sa,sb;
not( s0, s );
and( sa, a, s0 );
and( sb, b, s );
or( f, sa, sb );
4對1多工器
(a) 方塊圖 (b) 功能表 (c) 邏輯電路
Y I0
I1 MUX4 1× I2
I3 S1 S0
Y
0 1
I0 I1 S1 S0
0 0
0 1 1 1
I2 I3
I0
I1
Y I2
I3
S1 S0
有致能端2對1多工器
(a) 功能表 (b) 邏輯電路
S Y
0 1
I
0I
1E
1 1
0 φ 0
S I
0I
1Y
E
高態致能
擴充用
4對1多工器—利用2對1多工器
S I0
多工器Y 2 ×1
I1 E
S I0
多工器Y 2 ×1
I1 E I0
Y I1
I2
I3
S1 S0 I0
I1 I2
Y
2對一 NOT閘
8對1多工器—利用2對1多工器
I0 I1
I2 I3
I4 I5
I6
I7 S2
I0
I7
S0 S1 S2
Y 高態致能7個
解多工器方塊圖
n 輸入
輸出
輸出(DeMux) DeMultiplieper
1 對2解多工器
(a) 方塊圖 (b) 功能表 (c) 邏輯電路
S Y
00 1
D 0
Y
1D 0 D
Y
0Y
1S
DeMUX 1 2 ×
S
D Y
0Y
1有致能端1 對4解多工器
(a) 方塊圖 (b) 功能表 (c) 邏輯電路
D
0 S1 S0
0 1 0 1 0
Y0 Y1 Y2 Y3 E
1 0 0 0 0
D 0 0 0 0 D 0 0 0 0 D 0 0 0 0 D 0
0 0 0
φ φ
1 1
1 4 DeMUX
D
Y0 Y1 Y2
Y3 S0 S1 E
Y0
S1 S0 E
Y1
Y2
Y3
低態
8對1解多工器—利用4對1解多工器
1 4 DeMUX
D
Y0 Y1 Y2
Y3 S0 S1
E
1 4 DeMUX
D
Y0 Y1 Y2
Y3 S0 S1
E
Y0 Y1 Y2 Y3
Y4 Y5 Y6 Y7 D
S2
S1 S0 S1 S0
S0 S1 S2
1bit比較器方塊圖
4 bit比較器方塊圖
8 bit比較器—利用4 bit比較器
A
0A
1A
3A
2B
0B
1B
3B
2I
A>BI
A=BI
A<BO
A>BO
A=BO
A<B4位元比較器
A
0A
1A
3A
2B
0B
1B
3B
2I
A>BI
A=BI
A<BO
A>BO
A=BO
A<B4位元比較器
0 1 0
B
0B
1B
3B
2A
0A
1A
3A
2B
4B
5B
7B
6A
4A
5A
7A
6A B
低位元
相等
XOR特性1
N=2
N=4XOR特性2
N=32進制對葛雷碼轉換器
葛雷碼 對2進制轉換器
BCD碼對加三碼的轉換電路
輸入BCD碼 輸出加三碼
w x y z D C B A
0 0 0 0 0 0 1 1
0 0 0 1 0 1 0 0
0 0 1 0 0 1 0 1
0 0 1 1 0 1 1 0
0 1 0 0 0 1 1 1
0 1 0 1 1 0 0 0
0 1 1 0 1 0 0 1
0 1 1 1 1 0 1 0
1 0 0 0 1 0 1 1
1 0 0 1 1 1 0 0
z = D'
y = CD +C'D‘
x = B'C + B'D+BC'D‘
D C B A w x y z
w
x
y
z
D
C
B
A
BCD碼對七段的轉換電路
w x y z
a b c d e f g
a b
c d e f
g
7447
7448
共陽型
共陰極 7段
送1亮
送0亮
同位元產生器/檢查器
同位產生器與檢查
偶同位位元: P = x ♁ y ♁ z
同位檢查器: C = x ♁ y ♁ z ♁ P
C =1:奇數個資料位元錯誤發生
C = 0:資料正確或偶數個資料位元錯誤發 生 xyz PC偶同位 x y z F