2 4 解碼器

74  Download (0)

Full text

(1)

數位邏輯設計與實習

ch04 組合邏輯電路設計

(2)

2

組合邏輯電路定義

在數字電路理論中,組合邏輯電路(combinatorial logic 或DFDF

combinationallogic)是一種邏輯電路,它的任一時刻的穩態輸出,僅僅與該時刻的輸入變量的取值有關,而與該時刻以前的

輸入變量取值無關。這種電路跟時序邏輯電路相反,時序邏輯電路的輸出結果是依照目前的輸入和先前的輸入有關係。從電

路結構分析,組合電路由各種邏輯門組成,網絡中無記憶元件,也無反饋線。

邏輯設計又稱為邏輯綜合,根據給定的邏輯條件或者提出的邏輯功能,整理出滿足該邏輯的電路,這個過程稱為數位電路的 邏輯設計。

(3)

組合邏輯電路設計步驟

„

由電路的規格,決定所需的輸入與輸出的個 數,並且對每一個輸入與輸出安排一個變數 符號。

„

導出真值表並定義輸入與輸出間所需的關 係。

„

對每一個輸出求出以輸入變數為函數之簡化 的布林函數。

(4)

4

組合電路種類

„

算術電路(加法器、減法器、乘法器)

„

解碼器

„

編碼器

„

多工器

„

解多工器

„

比較器

„

數碼轉換器

„

同位元產生器/檢查器

(5)

加法器/減法器

„

1bit 加法器

„

1bit 減法器

„

4bit 並加器(漣波加法器)

„

4bit 加減器

„

4bit 加減器有旗號指示

„

1位數BCD加法器

(6)

6

1bit加法器定義

„

半加器 :一位元與一位元相加, 不考慮進位

„

全加器 :一位元與一位元相加, 考慮前一級 進位

(7)

半加器設計

„ 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+1

B i

A i

(8)

8

全加器設計

6 =$⊕%⊕&LQ

  &R=$%+%&LQ+$&LQ

  其中$% 為要相加的數,&LQ為進位輸入;6 為和,&R是進位輸出;

  如果要實現多位加法可以進行級聯,就是串起來使用;比如 位 位,就需要 個全加器;這種級聯就是串行結構速度慢,如果要並行快速相加可以用超前進 位加法,

  超前進位加法前查閱相關資料;

  如果將全加器的輸入置換成$ 和%的組合函數;L和<(6«6 控制) 然後再將;< 和進位數通過全加器進行全加,就是$/8 的邏輯結構結構。

  即; =I($ ,%

  <=I($ ,%)

  不同的控制參數可以得到不同的組合函數 因而能夠實現多種算術運算和邏輯運算。

(9)

全加器真值表

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)

10

全加器布林式

„

S

i

=Σ(1,2,4,7)=A

i

♁B

i

♁C

i

C

i+1

=Σ(3,5,6,7)=A

i

B

i

+A

i

C

i

+B

i

C

i

„

=A

i

B

i

+C

i

(A

i

♁B

i

)

(11)

用半加器設計全加器

(12)

12

1bit 減法器

„

半減器 :一位元與一位元相減,不考慮借位

„

全減器 :一位元與一位元相減, 考慮前一級 借位

(13)

半減器設計

„

D

i

=Σ(1,2)=A

i

♁B

i

B

i+1

=Σ(1)= A'B

(14)

14

全減器設計

„

D

i

=Σ(1,2,4,7)=X

i

♁ Y

i

♁ B

i

B

i+1

=Σ(1,2,3,7)=X

i

Y

i

+X

i

B

i

+Y

i

B

i

(15)

4bit 並加器(漣波加法器)

(16)

16

4bit 加減法器分析

%&’ 加法運算原則:

將二個%&’ 碼先以 位元二進位數加法運算。

運算後四位元總和小於或等於 (% ),且無進位產生,則此·和·為有效%&’ 值。

運算後四位元總和大於 (% )或有進位產生,則必須將·和·再加上 (% ),才為有效%&’ 值。

將上述步驟產生三進位加至下一位數。

(17)

4bit 加減器

(18)

18

4bit 加減器有旗號指示

„

ZF(Zero Flag)

„

CF(Carry Flag)

„

SF(Sign Flag)

„

OF(Over Flag)

(19)

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)

20

1位數BCD加法器分析

(21)

1位數BCD加法器

(22)

22

漣波加法器缺點

„

進位傳遞延遲

(23)

進位前看加法器(Carry Look-ahead Adder,CLA)

„

己知:A

3

A

2

A

1

A

0

,B

3

B

2

B

1

B

0

,C

0

„

未知: C

4

,C

3

,C

2

,C

1

„

S

i

=(A

i

♁ B

i

) ♁ C

i

„

C

i+1

=A

i

B

i

+ C

i

(A

i

♁B

i

)

„

令G

i

=A

i

B

i

(進位產生)

„

P

i

=A

i

♁ B

i

(進位傳遞)

(24)

24

進位前看加法器

C

i+1

=G

i

+C

i

P

i

i=0 C

1

=G

0

+C

o

P

o

i=1 C

2

=G

1

+C

1

P

1

=G

1

+G

0

P

1

+C

o

P

o

P

1

i=2 C

3

=G

2

+C

2

P

2

=G

2

+G

1

P

2

+G

0

P

1

P

2

+C

o

P

o

P

1

P

2

i=3 C

4

=G

3

+C

3

P

3

=

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

(25)

進位前看產生電路圖

(26)

26

進位前看加法器

(27)

乘法器

„

1bit 乘法器

„

2bit 乘法器(用HA,FA)

(28)

28

1bit 乘法器

(29)

2bit 乘法器真值表

(30)

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

(31)

2bit 乘法器(用HA,FA分析)

乘法器(0XOWLSOLHU)

二進位數字的乘法可用與十進位乘法相同的方法來做。由乘數的最低有效位元開始,將 乘數的每個位元乘上被乘數,每次運算皆可產生一個部分積,而後續的部分積都要往左移 一位,最後將這些的部分積加總便可得到最後積。

                 二進位乘法運算

被乘數%%

乘數$$

$%$%$%$%

積&&&&

所以由左邊的乘法運算我們可以得知:

 & $%

 & ($%$% )的和

 & ($% ($%$% )的進位)的和  & ($% ($%$% )的進位)的進位

(32)

32

2bit 乘法器(用HA,FA)

(33)

3bit 乘法器(用HA,FA)

乘法器(0XOWLSOLHU)

二進位數字的乘法可用與十進位乘法相同的方法來做。由乘數的最低有效位元開始,將 乘數的每個位元乘上被乘數,每次運算皆可產生一個部分積,而後續的部分積都要往左移 一位,最後將這些的部分積加總便可得到最後積。

                 二進位乘法運算

被乘數%%

乘數$$

$%$%$%$%

積&&&&

所以由左邊的乘法運算我們可以得知:

 & $%

 & ($%$% )的和

 & ($% ($%$% )的進位)的和  & ($% ($%$% )的進位)的進位

(34)

34

解碼器方塊圖

(35)

有致能解碼器方塊圖

有些解碼器電路沒有致 能控制線;有些電路為 高電位啟動。

Y

0

Y

1

解碼器

輸出端

致能控制線

Y

m-1

Y

m-2

⎬⎪

⎭⎪

n m

×

E x

0

x

1

x

n-1

x

n-2

⎪ ⎪

⎪ ⎪

(a) 非反相輸出

Y

0

Y

1

解碼器

致能控制線

Y

m-1

Y

m-2

⎬⎪

⎭⎪

n m

×

E x

0

x

1

x

n-1

x

n-2

⎪ ⎪

⎪ ⎪

(b) 反相輸出

(36)

36

2對4解碼器(高態輸出)

(37)

有致能端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)

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

(39)

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)

40

4對16解碼器—利用2對4解碼器

四個輸出的/(’ 發光同時為一個輸入數據,因為短期在輸入

OLQHVEXW我得到了正確實施五WR 使用解碼器,其中四個輸出線的一個解碼器將被指定為輸入到芯片使餘下四WR 解碼器和兩個輸入線的四個 WR 解碼器將被縮短到只有一對輸入線為四WR 解碼器和另一

對輸入線為WR 解碼器用於使芯片HQEOH其他四個WRGHFRGHUV\RXU想法幫了我很多。

再次感謝

(41)

編碼器方塊圖

編碼器((QFRGHU

編碼器的作用與解碼器的正好相反,它有2的n次方(或較少)個輸入與n個輸出線

,其輸出線所產生的二進位碼對應到輸入值。

下面所示即為8X3編碼器的真值表:

8X3編碼器的真值表 輸入 輸出

’’’’’’’’$$$

(42)

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

(43)

8對3優先權編碼器

(44)

44

多工器方塊圖

多工器(0XOWLSOH[HU)

多工器能從許多輸入線選出一個二進位資料,而且將其導引至單一輸出線上的組合電路

,輸入線的選擇是由一組選擇線控制。它有2的n次方個輸入線與n條選擇線,選擇線的 位元組合可決定選擇那一條輸入線。如一多工器有四條輸入線,則它需要兩條選擇線。

現在我們要來設計一多工器,它有四條輸入線(’ ,’ ,’ ,’ ),則需要兩條選擇 線(6 ,6 ),而其輸出為<。則我們可以得到這個多工器的函數表如下,也可藉此由 工具程式產生邏輯電路圖.

(45)

2對1多工器

Y I

0

I

1

S MUX

2 1 ×

(a) 方塊圖 (b) 功能表

S Y

0 1

I

0

I

1

(c) 邏輯電路 S

I

0

I

1

Y

(46)

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

(47)

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)

48

有致能端2對1多工器

(a) 功能表 (b) 邏輯電路

S Y

0 1

I

0

I

1

E

1 1

0 φ 0

S I

0

I

1

Y

E

(49)

4對1多工器—利用2對1多工器

S I0

多工器Y 2 ×1

I1 E

S I0

多工器Y 2 ×1

I1 E I0

Y I1

I2

I3

(50)

50

8對1多工器—利用2對1多工器

在數位系統中,若有一個以上通道的數位信號需要輸往單一的接收端,數位系統通常會使用到一種可提供選擇資料的裝置,透過選擇線上的編碼可以決定輸入端 上其中一個通道的數位資料被讀取,這種裝置就叫做多工器PXOWLSOH[HU或資料選擇器GDWDVHOHFWRU。如圖 多工器示意圖的說明,左側有1 個資料’a

’1

等待選取,但需經由下方的資料選擇線Q 決定那一個輸入端的資料可以通往資料輸出線< ,資料線數1 越多則資料選擇線Q就必須增加,兩者間必須滿足1≦Q 的條件。

(51)

解多工器方塊圖

(52)

52

1 對2解多工器

(a) 方塊圖 (b) 功能表 (c) 邏輯電路

S Y

0

0 1

D 0

Y

1

D 0 D

Y

0

Y

1

S

DeMUX 1 2 ×

S

D Y

0

Y

1

(53)

有致能端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)

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

(55)

1bit比較器方塊圖

(56)

56

4 bit比較器方塊圖

(57)

8 bit比較器—利用4 bit比較器

A

0

A

1

A

3

A

2

B

0

B

1

B

3

B

2

I

A>B

I

A=B

I

A<B

O

A>B

O

A=B

O

A<B

4位元比較器

A

0

A

1

A

3

A

2

B

0

B

1

B

3

B

2

I

A>B

I

A=B

I

A<B

O

A>B

O

A=B

O

A<B

4位元比較器

0 1 0

B

0

B

1

B

3

B

2

A

0

A

1

A

3

A

2

B

4

B

5

B

7

B

6

A

4

A

5

A

7

A

6

A B

(58)

58

XOR特性1

„

N=2

„

N=4

(59)

XOR特性2

„

N=3

(60)

60

2進制對葛雷碼轉換器

葛雷碼的特性 ™

任何連續兩個數字,其對應的二進碼只有一個位元的資料不同,其 餘位元資料均相同。

我們可以將任何十進位數字表示成二進位系統,若該二進碼具有上

)。*UD\&RGHV述特性,則稱這種二進碼為葛雷碼(

和* ,下列兩種編碼方式(即 , , , 用二個位元來表示整數

, , , ﹛* 位元的葛雷碼,即 )都可以視為*

﹜。 , , , ﹛ ﹜或* 因為葛雷碼並不唯一,故其應用價值將大大降低。 „

5HIOHFWHG*UD\學者研究出一種二進碼,稱為反射葛雷碼( ™

),其編碼方式唯一而且有系統,故廣泛應用在計算機FRGH 領域

(61)

葛雷碼 對2進制轉換器

: 加 在最高位元:: ;25 由右至左看起

: 第一個 與第二個 作;25 : : 第二個 與第三個 作;25 : : 第三個 與第四個 作;25 : : 第四個 與第五個 作;25 : : 第五個 與第六個 作;25 : : 第六個 與第七個 作;25 : 所以答案是:

二進制轉成葛雷碼的作法:

從二進制的最低位元 最右邊 開始,逐次取兩個位元做;25 運算。 相同為 不同為 在二進制的最高位元 最左邊 加上一個 ,再做;25 運算得到格雷碼的最高位元。

(62)

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

(63)

w

x

y

z

D

C

B

A

(64)

64

BCD碼對七段的轉換電路

一 編碼器

使用十進制對%&’ 碼的編碼器,& ,如圖 所示電路連接,77/,& 接上 工作電源,9&& 接腳接9 ,*1’ 接腳接地。/(’ 亮時,表示輸出$ 、%、& 及’

是在/ 的狀態。’,36: ~’,36: 皆置於21 時,表示輸入 ~ 皆為/ 狀態;

當’,36: ~’,36: 置於2)) 時,即輸入 ~ 皆為+ 狀態,表示此時的輸入 為數字 。只有’,36: 為21 時,表示輸入為數字

(65)

同位元產生器/檢查器

„

同位產生器與檢查

„

偶同位位元: P = x ♁ y ♁ z

„

同位檢查器: C = x ♁ y ♁ z ♁ P

„

C =1:奇數個資料位元錯誤發生

„

C = 0:資料正確或偶數個資料位元錯誤發 生

(66)

66

3bit同位元產生器/檢查器

(67)

可規劃邏輯元件(PLD)

„

PLD: Programmable Logic Device

„

PROM (Programmable Read Only Memory )

„

PAL (Programmable Array Logic )

„

PLA (Programmable Logic Array)

„

FPGA –現場可規劃邏輯陣列 (field- programmable gate array)

(68)

68

ROM

(69)

PROM

(70)

70

PLD區別

(71)

PLA

(72)

72

PLA內部圖

(73)

3bit平方電路--分析

(74)

74

3bit平方電路

Figure

Updating...

References

Related subjects :