• 沒有找到結果。

第四章第四章第四章第四章

N/A
N/A
Protected

Academic year: 2022

Share "第四章第四章第四章第四章"

Copied!
34
0
0

加載中.... (立即查看全文)

全文

(1)

1

第四章 第四章 第四章 第四章

組合邏輯

4-1 組合電路 組合電路 組合電路 組合電路

(2)

2

4-3 設計步驟 設計步驟 設計步驟 設計步驟



組合電路的設計

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

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

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

4.畫出邏輯圖並且證明設計的正確性。

BCD碼到超 碼到超 碼到超3碼轉換器 碼到超 碼轉換器 碼轉換器 碼轉換器

(3)

3

BCD BCD BCD

BCD到超到超到超3333碼卡諾圖到超 碼卡諾圖碼卡諾圖碼卡諾圖

BCD BCD BCD

BCD到超到超到超3333碼電路圖到超 碼電路圖碼電路圖碼電路圖

(4)

4

4-4 二進位加法器 二進位加法器 二進位加法器 二進位加法器---減法器 減法器 減法器 減法器



半加法器(half adder)

1 1

1 1

1 0

0 1

1 0

1 0

0 0

0 0

C S

y x

y x y x

S = + C =xy

半加法器 半加法器 半加法器 半加法器



電路

(5)

5

全加法器 全加法器 全加法器 全加法器



真值表

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

z y x

z y x z y x

S = + xyz z

y x + +

xz yz xy

C = + +

全加法器 全加法器 全加法器 全加法器



卡諾圖

(6)

6

全加法器 全加法器 全加法器 全加法器



電路

二進位加法器 二進位加法器 二進位加法器 二進位加法器

=1011

A B=0011

=1110 S

(7)

7

進位傳播 進位傳播 進位傳播 進位傳播

進位產生

Gi

進位傳播

Pi

i i

i A B

P = ⊕

i i

i AB

G =

i i

i P C

S = ⊕

i i i

i G PC

C+1 = +

進位遞迴產生器

進位遞迴產生器

進位遞迴產生器

進位遞迴產生器

(8)

8

具有進位遞迴的 具有進位遞迴的 具有進位遞迴的

具有進位遞迴的4位元加法器 位元加法器 位元加法器 位元加法器

二進位減法器 二進位減法器 二進位減法器 二進位減法器



4位元加法器---減法器

(9)

9

4-5 十進位加法 十進位加法 十進位加法 十進位加法/器 器 器 器



BCD加法器的推導

BCD加法器電路加法器電路加法器電路加法器電路

(10)

10

4-6 二進位乘法器 二進位乘法器 二進位乘法器 二進位乘法器

2位元乘2位元

4444位元乘位元乘位元乘位元乘3333位元之二進位乘法器位元之二進位乘法器位元之二進位乘法器位元之二進位乘法器

(11)

11

4-7 大小比較器 大小比較器 大小比較器 大小比較器

0 1 2 3A AA A

A=

0 1 2 3B BB B

B= xi = AiBi + AiBi

0 1 2

) 3

(A=B =x x x x

0 0 1 2 3 1 1 2 3 2 2 3 3

) 3

(A>B = A B′ +x A B′ +x x AB′+x x x A B

0 0 1 2 3 1 1 2 3 2 2 3 3

) 3

(A<B = AB +x AB +x x AB +x x x AB

4位元大小比較器 位元大小比較器 位元大小比較器 位元大小比較器

(12)

12

4-8 解碼器 解碼器 解碼器 解碼器

具有致能輸入之 具有致能輸入之 具有致能輸入之

具有致能輸入之2對對4線解碼器 對 線解碼器 線解碼器 線解碼器

(13)

13

利用 利用

利用 利用3333x8 x8 x8 x8解碼器建立 解碼器建立 解碼器建立4444x16 解碼器建立 x16 x16 x16解碼器 解碼器 解碼器 解碼器

利用解碼器實現組合邏輯電路 利用解碼器實現組合邏輯電路 利用解碼器實現組合邏輯電路 利用解碼器實現組合邏輯電路

=

=

) 7 , 6 , 5 , 3 ( ) , , (

) 7 , 4 , 2 , 1 ( ) , , (

z y x C

z y x S

(14)

14

4-9 編碼器 編碼器 編碼器 編碼器

7 6 5 4

7 6 3 2

7 5 3 1

D D D D x

D D D D y

D D D D z

+ + +

=

+ + +

=

+ + +

=

優先權編碼器之真值表

優先權編碼器之真值表

優先權編碼器之真值表

優先權編碼器之真值表

(15)

15

優先權編碼器卡諾圖 優先權編碼器卡諾圖 優先權編碼器卡諾圖 優先權編碼器卡諾圖

4輸入優先權編碼器 輸入優先權編碼器 輸入優先權編碼器 輸入優先權編碼器

3 2 1 0

2 1 3

3 2

D D D D V

D D D y

D D x

+ + +

= +

= +

=

(16)

16

4-10 多工器 多工器 多工器 多工器(Multiplexers)

4對對1線 對 線 線 線 多工器 多工器 多工器 多工器

(17)

17

四重 四重 四重

四重2對對1線 對 線 線 線 多工器 多工器 多工器 多工器

利用多工器實現布林函數 利用多工器實現布林函數 利用多工器實現布林函數 利用多工器實現布林函數

=(1,2,6,7) )

, , (x y z F

(18)

18

利用多工器實現一個 利用多工器實現一個 利用多工器實現一個

利用多工器實現一個4444輸入函數 輸入函數 輸入函數 輸入函數

=(1,3,4,11,12,13,14,15) )

, , ,

(A B C D F

三態閘 三態閘

三態閘 三態閘

(19)

19

利用三態閘構成多工器 利用三態閘構成多工器 利用三態閘構成多工器 利用三態閘構成多工器

4-11 組合電路的硬體描述語言 組合電路的硬體描述語言 組合電路的硬體描述語言 組合電路的硬體描述語言

閘階層模型閘階層模型閘階層模型閘階層模型

關鍵字 andandand 、nandand nandnand 、ornand ororor 、nornornornor 、xorxorxorxor 、xnorxnorxnor 、xnor not

notnot

not 、bufbufbufbuf

(20)

20

HDL HDL HDL

HDL 範例範例範例範例 4444----1111 (2

(2 (2

(2對對對對4444線解碼器的閘階層描述線解碼器的閘階層描述線解碼器的閘階層描述線解碼器的閘階層描述))))

//Gate-level description of a 2-to-4-line decoder //Figure 4-19

module decoder_gl (A,B,E,D);

input A,B,E;

output [0:3]D;

wire Anot,Bnot,Enot;

not

n1 (Anot,A), n2 (Bnot,B),

HDL HDL HDL

HDL 範例範例範例範例 4444----1111 (2(2

(2(2對對對對4444線解碼器的閘階層描述線解碼器的閘階層描述線解碼器的閘階層描述線解碼器的閘階層描述))))

n3 (Enot,E);

nand

n4 (D[0],Anot,Bnot,Enot), n5 (D[1],Anot,B,Enot), n6 (D[2],A,Bnot,Enot), n7 (D[3],A,B,Enot);

endmodule

(21)

21

HDL HDL HDL

HDL 範例範例範例範例 4444----2222 (4

(4 (4

(4位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述))))

//Gate-level hierarchical description of 4-bit adder // Description of half adder (see Fig 4-5b)

module halfadder (S,C,x,y);

input x,y;

output S,C;

//Instantiate primitive gates xor (S,x,y);

and (C,x,y);

HDL HDL HDL

HDL 範例範例範例範例 4444----2222 (4(4

(4(4位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述))))

endmodule

//Description of full adder (see Fig 4-8) module fulladder (S,C,x,y,z);

input x,y,z;

output S,C;

wire S1,D1,D2;

//Outputs of first XOR and two AND gates //Instantiate the halfadder

halfadder HA1 (S1,D1,x,y),

(22)

22

HDL HDL HDL

HDL 範例範例範例範例 4444----2222 (4

(4 (4

(4位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述))))

HA2 (S,D2,S1,z);

or g1(C,D2,D1);

endmodule

//Description of 4-bit adder (see Fig 4-9)

module _4bit_adder (S,C4,A,B,C0);

input [3:0] A,B;

input C0;

HDL HDL HDL

HDL 範例範例範例範例 4444----2222 (4(4

(4(4位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述位元加法器之底部向上層次化描述))))

output [3:0] S;

output C4;

wire C1,C2,C3; //Intermediate carries //Instantiate the fulladder

fulladder FA0 (S[0],C1,A[0],B[0],C0), FA1 (S[1],C2,A[1],B[1],C1), FA2 (S[2],C3,A[2],B[2],C2), FA3 (S[3],C4,A[3],B[3],C3);

endmodule

(23)

23

三態閘 三態閘 三態閘 三態閘

bufif1 (OUT, A, control);

notif0 (Y, B, enable);

具有三態緩衝器之 具有三態緩衝器之 具有三態緩衝器之

具有三態緩衝器之2222對對對對1111線多工器線多工器線多工器線多工器

module muxtri (A, B, select, OUT);

input A, B, select;

output OUT;

tri OUT;

bufif1 (OUT, A, select);

bufif0 (OUT, B, select);

endmodule

(24)

24

資料流程模型 資料流程模型 資料流程模型 資料流程模型



Verilog HDL運算子

HDL HDL HDL

HDL 範例範例範例範例 4444----3333 (2(2

(2(2對對對對4444線解碼器的線解碼器的線解碼器的線解碼器的資料流程資料流程資料流程資料流程描述描述描述描述))))

//Dataflow description of a 2-to-4-line decoder //See Fig.4-19

module decoder_df (A,B,E,D);

input A,B,E;

output [0:3] D;

assign D[0] = ~(~A & ~B & ~E), D[1] = ~(~A & B & ~E), D[2] = ~(A & ~B & ~E), D[3] = ~(A & B & ~E);

endmodule

(25)

25

HDL HDL HDL

HDL 範例範例範例範例 4444----4444 (4

(4 (4

(4位元加法器之資料流程描述位元加法器之資料流程描述位元加法器之資料流程描述位元加法器之資料流程描述))))

//Dataflow description of 4-bit adder

module binary_adder (A,B,Cin,SUM,Cout);

input [3:0] A,B;

input Cin;

output [3:0] SUM;

output Cout;

assign {Cout,SUM} = A + B + Cin;

endmodule

HDL HDL HDL

HDL 範例範例範例範例 4444----5555

((((大小比較器之資料流程描述大小比較器之資料流程描述大小比較器之資料流程描述))))大小比較器之資料流程描述

//Dataflow description of a 4-bit comparator.

module magcomp (A,B,ALTB,AGTB,AEQB);

input [3:0] A,B;

output ALTB,AGTB,AEQB;

assign ALTB = (A < B), AGTB = (A > B), AEQB = (A = = B);

endmodule

(26)

26

HDL HDL

HDL HDL 範例範例範例範例 4444----6666

(2 (2 (2

(2對對1111線多工器使用條件式運算子描述線多工器使用條件式運算子描述線多工器使用條件式運算子描述線多工器使用條件式運算子描述))))

//Dataflow description of 2-to-1-line multiplexer module mux2x1_df (A,B,select,OUT);

input A,B,select;

output OUT;

assign OUT = select ? A : B;

endmodule

行為模型 行為模型 行為模型 行為模型

HDL 範例 4-7

(2對1線多工器使用條件式運算子描述) //Behavioral description of 2-to-1-line multiplexer module

module module

module mux2x1_bh(A,B,select,OUT);

input inputinput

input A,B,select;

output outputoutput

output OUT;

reg regreg

reg OUT;

always alwaysalways

always @ (select ororor A oror ororor B) if

if if

if (select == 1) OUT = A;

elseelse

elseelse OUT = B;

endmodule endmodule endmodule endmodule

(27)

27

HDL HDL HDL

HDL 範例範例範例範例 4444----8888 (4

(4 (4

(4對對對對1111線多工器之行為描述線多工器之行為描述線多工器之行為描述線多工器之行為描述))))

//Behavioral description of 4-to-1- line multiplexer //Describes the function table of Fig. 4-25(b).

module mux4x1_bh (i0,i1,i2,i3,select,y);

input i0,i1,i2,i3;

input [1:0] select;

output y;

reg y;

HDL HDL HDL

HDL 範例範例範例範例 4444----8888 (4(4

(4(4對對對對1111線多工器之行為描述線多工器之行為描述線多工器之行為描述線多工器之行為描述))))

always @ (i0 or i1 or i2 or i3 or select) case (select)

2'b00: y = i0;

2'b01: y = i1;

2'b10: y = i2;

2'b11: y = i3;

endcase endmodule

(28)

28

測試平台 測試平台 測試平台 測試平台

一個模擬模組是具有下列形式的HDL程式

module modulemodule

module 測試名稱。

宣告特有的regregreg和wirereg wirewirewire識別字。

在測試下例示設計模組。

利用initialinitialinitial及alwaysinitial alwaysalwaysalways敘述產生模擬。

顯示輸出響應。

endmodule endmoduleendmodule endmodule。

系統功能 系統功能 系統功能 系統功能

$display--顯示具有 end-of-line return之

變數或字串的一次值。

$write—與 $display相同,但是沒有到

下一行。

$monitor—當在模擬期間值改變時及

顯示變數。

$time--顯示模擬時間。

$finish--結束模擬。

(29)

29

模擬與設計的交互模組 模擬與設計的交互模組 模擬與設計的交互模組 模擬與設計的交互模組

HDL HDL HDL

HDL 範例範例範例範例 4444----9999

((((測試範例測試範例測試範例4444----6666所描述的測試範例 所描述的所描述的2222對所描述的 對對對1111多工器多工器多工器多工器))))

//Stimulus for mux2x1_df.

module testmux;

reg TA,TB,TS; //inputs for mux wire Y; //output from mux

mux2x1_df mx (TA,TB,TS,Y);

// instantiate mux

initial

(30)

30

HDL HDL HDL

HDL 範例範例範例範例 4444----9999

((((測試範例測試範例測試範例4444----6666所描述的測試範例 所描述的所描述的2222對所描述的 對對對1111多工器多工器多工器多工器))))

begin

TS = 1; TA = 0; TB = 1;

#10 TA = 1; TB = 0;

#10 TS = 0;

#10 TA = 0; TB = 1;

end

HDL HDL HDL

HDL 範例範例範例範例 4444----9999

((((測試範例測試範例測試範例4444----6666所描述的測試範例 所描述的所描述的2222對所描述的 對對對1111多工器多工器多工器多工器))))

initial

$monitor("select = %b A = %b B = %b

OUT = %b time = %0d",

TS, TA, TB, Y, $time);

endmodule

(31)

31

HDL HDL HDL

HDL 範例範例範例範例 4444----9999

((((測試範例測試範例測試範例4444----6666所描述的測試範例 所描述的所描述的2222對所描述的 對對對1111多工器多工器多工器多工器))))

//Dataflow description of 2-to-1-line multiplexer //from Example 4-6

module mux2x1_df (A,B,select,OUT);

input A,B,select;

output OUT;

assign OUT = select ? A : B;

endmodule

HDL HDL HDL

HDL 範例範例範例範例 4444----9999

((((測試範例測試範例測試範例4444----6666所描述的測試範例 所描述的所描述的2222對所描述的 對對對1111多工器多工器多工器多工器))))

Simulatiom log:

select = 1 A=0 B=1 OUT=0 time=0

select = 1 A=1 B=0 OUT=1 time=10

select = 0 A=1 B=0 OUT=0 time=20

select = 0 A=0 B=1 OUT=1 time=30

(32)

32

HDL HDL HDL

HDL 範例範例範例範例 4444----10101010

((((全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述))))全加法器之多階電路的閘階層描述

//Gate-level description of circuit of Fig. 4-2

module analysis (A,B,C,F1,F2);

input A,B,C;

output F1,F2;

wire

T1,T2,T3,F2not,E1,E2,E3;

or g1 (T1,A,B,C);

and g2 (T2,A,B,C);

HDL HDL HDL

HDL 範例範例範例範例 4444----10101010

((((全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述))))全加法器之多階電路的閘階層描述

and g3 (E1,A,B);

and g4 (E2,A,C);

and g5 (E3,B,C);

or g6 (F2,E1,E2,E3);

not g7 (F2not,F2);

and g8 (T3,T1,F2not);

or g9 (F1,T2,T3);

endmodule

(33)

33

HDL HDL HDL

HDL 範例範例範例範例 4444----10101010

((((全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述))))全加法器之多階電路的閘階層描述

//Stimulus to analyze the circuit

module test_circuit;

reg [2:0]D;

wire F1,F2;

analysis fig42(D[2],D[1],D[0],F1,F2);

initial begin

HDL HDL HDL

HDL 範例範例範例範例 4444----10101010

((((全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述))))全加法器之多階電路的閘階層描述

D = 3'b000;

repeat(7)

#10 D = D + 1'b1;

end initial

$monitor ("ABC = %b F1 = %b F2 =%b ", D, F1, F2);

endmodule

(34)

34

HDL HDL HDL

HDL 範例範例範例範例 4444----10101010

((((全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述全加法器之多階電路的閘階層描述))))全加法器之多階電路的閘階層描述

Simulation log:

ABC=000 F1=0 F2=0 ABC=001 F1=1 F2=0 ABC=010 F1=1 F2=0 ABC=011 F1=0 F2=1 ABC=100 F1=1 F2=0 ABC=101 F1=0 F2=1 ABC=110 F1=0 F2=1 ABC=111 F1=1 F2=1

參考文獻

相關文件

本書總共分成六個章節: 〈第一章、擁有自信〉 ; 〈第二章、設定願景〉 ; 〈第三章、掌握行動力〉 ; 〈第四 章、建立人際關係〉 ;

因此,許多功能性的周邊商品也就因此而衍生,例如直接相關的錄音套件 組、收音機、高效能喇叭… 等;同時為了改善 iPod

第四章 連續時間週期訊號之頻域分析-傅立葉級數 第五章 連續時間訊號之頻域分析-傅立葉轉換.. 第六章

第三節 研究方法 第四節 研究範圍 第五節 電影院簡介 第二章 文獻探討 第一節 電影片映演業 第二節 服務品質 第三節 服務行銷組合 第四節 顧客滿意度 第五節 顧客忠誠度

第四章 直角座標與二元一次方程式.

第四章 直角座標與二元一次方程式.

開啟 Excel 工作表,輸入

The prominent language skills and items required for studying the major subjects as identified through analysis of the relevant textbooks are listed below. They are not exhaustive