數位邏輯設計與實習
ch04 組合邏輯電路設計
2
組合邏輯電路定義
在數字電路理論中,組合邏輯電路(combinatorial logic 或DFDF
combinationallogic)是一種邏輯電路,它的任一時刻的穩態輸出,僅僅與該時刻的輸入變量的取值有關,而與該時刻以前的
輸入變量取值無關。這種電路跟時序邏輯電路相反,時序邏輯電路的輸出結果是依照目前的輸入和先前的輸入有關係。從電
路結構分析,組合電路由各種邏輯門組成,網絡中無記憶元件,也無反饋線。
邏輯設計又稱為邏輯綜合,根據給定的邏輯條件或者提出的邏輯功能,整理出滿足該邏輯的電路,這個過程稱為數位電路的 邏輯設計。
組合邏輯電路設計步驟
由電路的規格,決定所需的輸入與輸出的個 數,並且對每一個輸入與輸出安排一個變數 符號。
導出真值表並定義輸入與輸出間所需的關 係。
對每一個輸出求出以輸入變數為函數之簡化 的布林函數。4
組合電路種類
算術電路(加法器、減法器、乘法器)
解碼器
編碼器
多工器
解多工器
比較器
數碼轉換器
同位元產生器/檢查器加法器/減法器
1bit 加法器
1bit 減法器
4bit 並加器(漣波加法器)
4bit 加減器
4bit 加減器有旗號指示
1位數BCD加法器6
1bit加法器定義
半加器 :一位元與一位元相加, 不考慮進位
全加器 :一位元與一位元相加, 考慮前一級 進位半加器設計
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
8
全加器設計
6 =$⊕%⊕&LQ
&R=$%+%&LQ+$&LQ
其中$% 為要相加的數,&LQ為進位輸入;6 為和,&R是進位輸出;
如果要實現多位加法可以進行級聯,就是串起來使用;比如 位 位,就需要 個全加器;這種級聯就是串行結構速度慢,如果要並行快速相加可以用超前進 位加法,
超前進位加法前查閱相關資料;
如果將全加器的輸入置換成$ 和%的組合函數;L和<(6«6 控制) 然後再將;< 和進位數通過全加器進行全加,就是$/8 的邏輯結構結構。
即; =I($ ,%
<=I($ ,%)
不同的控制參數可以得到不同的組合函數 因而能夠實現多種算術運算和邏輯運算。
全加器真值表
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
10
全加器布林式
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
)用半加器設計全加器
12
1bit 減法器
半減器 :一位元與一位元相減,不考慮借位
全減器 :一位元與一位元相減, 考慮前一級 借位半減器設計
Di
=Σ(1,2)=Ai
♁Bi
Bi+1
=Σ(1)= A'B14
全減器設計
Di
=Σ(1,2,4,7)=Xi
♁ Yi
♁ Bi
B
i+1
=Σ(1,2,3,7)=Xi
Yi
+Xi
Bi
+Yi
Bi
4bit 並加器(漣波加法器)
16
4bit 加減法器分析
%&’ 加法運算原則:
將二個%&’ 碼先以 位元二進位數加法運算。
運算後四位元總和小於或等於 (% ),且無進位產生,則此·和·為有效%&’ 值。
運算後四位元總和大於 (% )或有進位產生,則必須將·和·再加上 (% ),才為有效%&’ 值。
將上述步驟產生三進位加至下一位數。
4bit 加減器
18
4bit 加減器有旗號指示
ZF(Zero Flag)
CF(Carry Flag)
SF(Sign Flag)
OF(Over Flag)4bit 加減器有旗號指示電路圖
FA FA FA FA
A A A A
OF ZF SF CF
A
S3 S2 S1 S0
C1 C2
C3 C4
A3B3 A2B2 A1B1 A0B0
C0
S:1 減
S:0 加
20
1位數BCD加法器分析
1位數BCD加法器
22
漣波加法器缺點
進位傳遞延遲進位前看加法器(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
(進位傳遞)24
進位前看加法器
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
進位前看產生電路圖
26
進位前看加法器
乘法器
1bit 乘法器
2bit 乘法器(用HA,FA)28
1bit 乘法器
2bit 乘法器真值表
30
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
7404
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
1 2
3 U5A
7408
A1 A0 B1 B0
P3
P1 P2
P0
2bit 乘法器(用HA,FA分析)
乘法器(0XOWLSOLHU)
二進位數字的乘法可用與十進位乘法相同的方法來做。由乘數的最低有效位元開始,將 乘數的每個位元乘上被乘數,每次運算皆可產生一個部分積,而後續的部分積都要往左移 一位,最後將這些的部分積加總便可得到最後積。
二進位乘法運算
被乘數%%
乘數$$
$%$%$%$%
積&&&&
所以由左邊的乘法運算我們可以得知:
& $%
& ($%$% )的和
& ($% ($%$% )的進位)的和 & ($% ($%$% )的進位)的進位
32
2bit 乘法器(用HA,FA)
3bit 乘法器(用HA,FA)
乘法器(0XOWLSOLHU)
二進位數字的乘法可用與十進位乘法相同的方法來做。由乘數的最低有效位元開始,將 乘數的每個位元乘上被乘數,每次運算皆可產生一個部分積,而後續的部分積都要往左移 一位,最後將這些的部分積加總便可得到最後積。
二進位乘法運算
被乘數%%
乘數$$
$%$%$%$%
積&&&&
所以由左邊的乘法運算我們可以得知:
& $%
& ($%$% )的和
& ($% ($%$% )的進位)的和 & ($% ($%$% )的進位)的進位
34
解碼器方塊圖
有致能解碼器方塊圖
有些解碼器電路沒有致 能控制線;有些電路為 高電位啟動。
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) 反相輸出
36
2對4解碼器(高態輸出)
有致能端2對4解碼器(高態輸出)
(a) 方塊圖
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
38
有致能端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
40
4對16解碼器—利用2對4解碼器
四個輸出的/(’ 發光同時為一個輸入數據,因為短期在輸入
OLQHVEXW我得到了正確實施五WR 使用解碼器,其中四個輸出線的一個解碼器將被指定為輸入到芯片使餘下四WR 解碼器和兩個輸入線的四個 WR 解碼器將被縮短到只有一對輸入線為四WR 解碼器和另一
對輸入線為WR 解碼器用於使芯片HQEOH其他四個WRGHFRGHUV\RXU想法幫了我很多。
再次感謝
編碼器方塊圖
編碼器((QFRGHU
編碼器的作用與解碼器的正好相反,它有2的n次方(或較少)個輸入與n個輸出線
,其輸出線所產生的二進位碼對應到輸入值。
下面所示即為8X3編碼器的真值表:
8X3編碼器的真值表 輸入 輸出
’’’’’’’’$$$
42
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對3優先權編碼器
44
多工器方塊圖
多工器(0XOWLSOH[HU)
多工器能從許多輸入線選出一個二進位資料,而且將其導引至單一輸出線上的組合電路
,輸入線的選擇是由一組選擇線控制。它有2的n次方個輸入線與n條選擇線,選擇線的 位元組合可決定選擇那一條輸入線。如一多工器有四條輸入線,則它需要兩條選擇線。
現在我們要來設計一多工器,它有四條輸入線(’ ,’ ,’ ,’ ),則需要兩條選擇 線(6 ,6 ),而其輸出為<。則我們可以得到這個多工器的函數表如下,也可藉此由 工具程式產生邏輯電路圖.
2對1多工器
Y I
0I
1S MUX
2 1 ×
(a) 方塊圖 (b) 功能表
S Y
0 1
I
0I
1(c) 邏輯電路 S
I
0I
1Y
46
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 );
endmodule
4對1多工器
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
48
有致能端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
50
8對1多工器—利用2對1多工器
在數位系統中,若有一個以上通道的數位信號需要輸往單一的接收端,數位系統通常會使用到一種可提供選擇資料的裝置,透過選擇線上的編碼可以決定輸入端 上其中一個通道的數位資料被讀取,這種裝置就叫做多工器PXOWLSOH[HU或資料選擇器GDWDVHOHFWRU。如圖 多工器示意圖的說明,左側有1 個資料’a
’1
等待選取,但需經由下方的資料選擇線Q 決定那一個輸入端的資料可以通往資料輸出線< ,資料線數1 越多則資料選擇線Q就必須增加,兩者間必須滿足1≦Q 的條件。
解多工器方塊圖
52
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解多工器
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
54
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
1bit比較器方塊圖
56
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
58
XOR特性1
N=2
N=4XOR特性2
N=360
2進制對葛雷碼轉換器
葛雷碼的特性
任何連續兩個數字,其對應的二進碼只有一個位元的資料不同,其 餘位元資料均相同。
我們可以將任何十進位數字表示成二進位系統,若該二進碼具有上
)。*UD\&RGHV述特性,則稱這種二進碼為葛雷碼(
和* ,下列兩種編碼方式(即 , , , 用二個位元來表示整數
, , , ﹛* 位元的葛雷碼,即 )都可以視為*
﹜。 , , , ﹛ ﹜或* 因為葛雷碼並不唯一,故其應用價值將大大降低。
5HIOHFWHG*UD\學者研究出一種二進碼,稱為反射葛雷碼(
),其編碼方式唯一而且有系統,故廣泛應用在計算機FRGH 領域
葛雷碼 對2進制轉換器
: 加 在最高位元:: 做;25 由右至左看起
: 第一個 與第二個 作;25 : : 第二個 與第三個 作;25 : : 第三個 與第四個 作;25 : : 第四個 與第五個 作;25 : : 第五個 與第六個 作;25 : : 第六個 與第七個 作;25 : 所以答案是:
二進制轉成葛雷碼的作法:
從二進制的最低位元 最右邊 開始,逐次取兩個位元做;25 運算。 相同為 不同為 在二進制的最高位元 最左邊 加上一個 ,再做;25 運算得到格雷碼的最高位元。
62
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‘
w = A+BC+BD
w
x
y
z
D
C
B
A
64
BCD碼對七段的轉換電路
一 編碼器
使用十進制對%&’ 碼的編碼器,& ,如圖 所示電路連接,77/,& 接上 工作電源,9&& 接腳接9 ,*1’ 接腳接地。/(’ 亮時,表示輸出$ 、%、& 及’
是在/ 的狀態。’,36: ~’,36: 皆置於21 時,表示輸入 ~ 皆為/ 狀態;
當’,36: ~’,36: 置於2)) 時,即輸入 ~ 皆為+ 狀態,表示此時的輸入 為數字 。只有’,36: 為21 時,表示輸入為數字
同位元產生器/檢查器
同位產生器與檢查
偶同位位元: P = x ♁ y ♁ z
同位檢查器: C = x ♁ y ♁ z ♁ P
C =1:奇數個資料位元錯誤發生
C = 0:資料正確或偶數個資料位元錯誤發 生66
3bit同位元產生器/檢查器
可規劃邏輯元件(PLD)
PLD: Programmable Logic Device
PROM (Programmable Read Only Memory )
PAL (Programmable Array Logic )
PLA (Programmable Logic Array)
FPGA –現場可規劃邏輯陣列 (field- programmable gate array)68
ROM
PROM
70
PLD區別
PLA
72
PLA內部圖
3bit平方電路--分析
74