• 沒有找到結果。

5-2

N/A
N/A
Protected

Academic year: 2022

Share "5-2"

Copied!
35
0
0

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

全文

(1)

第五章 第五章 第五章

第五章 同步序向邏輯 同步序向邏輯 同步序向邏輯 同步序向邏輯

 5-1 序向電路 序向電路 序向電路 序向電路

同步時脈序向電路

(2)

5-2 閂鎖器

 SR閂鎖器 閂鎖器 閂鎖器( 閂鎖器 ( ( (SR Latch) ) ) ):由 由 由 由NOR閘所構 閘所構 閘所構 閘所構 成之 成之

成之 成之 SR閂鎖器 閂鎖器 閂鎖器 閂鎖器

NAND 閘所構成之 SR 閂鎖器

(3)

具有控制輸入之 SR 閂鎖器

D 型閂鎖器 型閂鎖器 型閂鎖器 型閂鎖器 (D Latch)

(4)

閂鎖器之符號圖

5-3 正反器

 閂鎖器和正反器之時脈響應

(5)

邊緣觸發 邊緣觸發 邊緣觸發

邊緣觸發 D 型正反器 型正反器 型正反器 型正反器( ( ( ( Edge- Triggered D Flip-Flop ) ) ) )

 D型主僕正反器

D 型正緣觸發正反器

(6)

D 型邊緣觸發正反器之符號圖

JK 正反器

 圖5-12(a)之D輸入端之電路方程式為 Q

K Q J

D = ′ + ′

(7)

T型正反器 : 屬互補式之正反器

 圖5-13(b) T型正反器之D輸入端表示式為 Q

T Q T Q T

D = ⊕ = ′ + ′

特性表

 表5-1 正反器的特性表

Q(t+1) J k

JK正反器

(8)

正反器之特性表

0 重置為0 1 設置為1 0

1

Q(t+1) D

D型正反器

Q(t) 狀態未改變 Q’(t) 補數輸出 0

1

Q(t+1) T

T型正反器

特性方程式

 D型正反器之特性方程式為

 JK正反器之特性方程式為

 T型正反器之特性方程式為

D t

Q ( + ) 1 =

Q K Q J t

Q ( + ) 1 = ′ + ′

Q K Q J t

Q ( + ) 1 = ′ + ′

Q T Q T Q T

t

Q ( + ) 1 = ⊕ = ′ + ′

(9)

直接輸入 直接輸入 直接輸入

直接輸入

:

用來強制正反器變成特殊狀態且與時脈無關 用來強制正反器變成特殊狀態且與時脈無關 用來強制正反器變成特殊狀態且與時脈無關 用來強制正反器變成特殊狀態且與時脈無關

1l

包括

包括 包括 包括

(a)

預先設置 預先設置 預先設置 預先設置

(PRESET)

或直接輸入 或直接輸入 或直接輸入 或直接輸入

(direct set) (b)

清除 清除 清除 清除

(clear)

或直接重置 或直接重置 或直接重置 或直接重置

(direct reset)

圖 圖

圖5-15是由兩個 是由兩個 是由兩個 是由兩個D型正反器及邏輯閘所構 型正反器及邏輯閘所構 型正反器及邏輯閘所構 型正反器及邏輯閘所構 成之時控序向電路

成之時控序向電路

成之時控序向電路

成之時控序向電路

(10)

5-4 時控序向電路分析

 狀態方程式:

 圖5-15電路之狀態方程式為

 或表示為

[ ( ) ( ) ] ( ) )

(

) ( ) ( ) 1 (

) ( ) ( ) ( ) ( ) 1 (

t x t B t A t y

t x t A t

B

t x t B t x t A t

A

+ ′

=

= ′ +

+

= +

x B A y

x A t

B

Bx Ax t

A

+ ′

=

= ′ +

+

= +

) (

) 1 (

) 1 (

狀態表

 圖5-15的狀態表

0 0 1 0 1 0 1 0 0 0

0 1 0 0 1 1 0 0 1 0 0 0 1 0 0

1 0 1 0 1 0 1 0 0

0 0 0 1 0 1 1 0 1 0 1 1 1 1

y A B

x A B

輸出輸出 輸出輸出 次一狀態次一狀態次一狀態

次一狀態 輸入輸入輸入

輸入 目前狀態目前狀態

目前狀態目前狀態

(11)

另一種形式的狀態表

 表5-3 狀態表的第二種形式

0 0 0 0 0

1 1 1 01

11 10 10 00

00 00 00 00

01 10 11

y y

AB AB

AB

輸出輸出 輸出輸出 x=0 x=1 次一狀態次一狀態

次一狀態次一狀態 x=0 x=1 目前狀態目前狀態

目前狀態目前狀態

狀態圖

 表5-3的結果可用狀態圖表示 如圖5-16

(12)

正反器輸入方程式或稱為輸入函數

,

係採用正反器的輸 入符號代表輸入方程式的變數而下標則表示正反器輸出 的名稱

 舉例而言, 敘述一個具有輸入x和y的OR 閘連 接到正反器的輸入D, 而它的輸出標示為Q, 其 輸入方程式表示為



 圖5-15電路之輸入方程式及輸出方程式 可表示為

y x D

Q

= +

x B A

y

x A D

Bx Ax

D

B A

+ ′

=

= ′

+

=

) (

5-17 具有 D 型正反器的序向電路

(13)

D 型正反器的分析

 圖5-17之輸入及輸出方程式為

 因為對D型正反器而言, 其次一狀態與輸

 輸入D相同

y x A t

A

y x A D

A

= +

= ) 1 (

JK 正反器的分析

一個使用JK或T正反器的序向電路,其次 態值可由下列程序獲得:

 1 、用現態和輸入變數的觀點決定正反器

(14)

5-18JK 正反器之序向電路

5-18 之輸入及狀態方程式

 如圖 如圖5-18所示 如圖 如圖 所示 所示 所示。 。 。 。電路的輸 電路的輸 電路的輸 電路的輸 入方程式為

入方程式為 入方程式為 入方程式為

 正反器的特性程式可 正反器的特性程式可 正反器的特性程式可 正反器的特性程式可 藉由將 藉由將

藉由將 藉由將A , , ,B , B B取代 B 取代 取代 取代Q Q Q Q 的名稱而得

的名稱而得 的名稱而得 的名稱而得

 將 將 將 將JJJJ

A A A A

, K , K , K , K

AAAA

代入則 代入則A 代入則 代入則 A A的 A 的 的 的 狀態方程式為 狀態方程式為 狀態方程式為

狀態方程式為: : : : x

A x A x A K

x J

x B K

B J

B B

A A

′ =

′ +

=

= ′

= ′

=

B K B J t

B

A K A J t

A

+ ′

= ′ +

+ ′

= ′ +

) 1 (

) 1 (

x B A ABx x

B B x A B x t

B

Ax B A B A A x B A B t

A

′ + ′

′ +

= ′

⊕ ′

′ +

= ′ +

′ +

′ +

′ = + ′

= ′ +

) ( )

1 (

) ( )

1

(

(15)

圖 圖 圖

圖5-18電路之狀態圖 電路之狀態圖 電路之狀態圖 電路之狀態圖

5-45-18 電路之狀態表

表5-4

J

A

K

A

J

B

K

B

A B x

A B

0 0 1 0 0 1

0 0 0

正反器輸入 次一狀態

輸入 目前狀態

(16)

5-20 T 型正反器構成之序向電路

T 型正反器分析

 T型正反器之特性方程式為

 圖5-20之輸入及輸出方程式為

 而其次態值可由狀態方程式獲得 Q

T Q T Q T t

Q ( + ) 1 = ⊕ = ′ + ′ Bx

T

A

= T

B

= x

AB y =

B x t

B

Bx A x A B A A Bx A

Bx t

A

= +

+ ′ + ′

= ′ + ′

= ′ +

) 1 (

)

(

)

(

)

1

(

(17)

5-55-20 序向電路之狀態表

A B

y

x A B

0 0 0 0 0 0 1 1 0 0

0 1 0 1 1 0 1 0 1 1 1 1 0 0 0

1 0 1 0 1 0 1 0 0

0 0 0 1 0 1 1 0 1 0 1 1 1 1

輸出 次一狀態

輸入 目前狀態

** 密利和莫爾模型 密利和莫爾模型 密利和莫爾模型 密利和莫爾模型

 在密利模型裡,輸出值是現態和輸入兩 者的函數;但在莫爾模型中,其輸出值 僅是現態的函數。討論上述模型時,有 些書籍會稱這兩種序向電路為有限狀態 機器(finite state machine,縮寫為

FSM),屬密利模型的序向電路被稱為

(18)

5-5 序向電路的硬體描述語言

 動作模式 動作模式( 動作模式 動作模式 ( (behavioral modeling) ( ) ) ):

 在Verilog HDL中,有兩種動作敘述:

initial和always。Initial動作在時間t=0開 始執行,always動作則是重複地執行直 到模擬完成為止。

 在一個模組中,可使用關鍵字initial和 always來宣告動作,伴隨在一個敘述

(statement)或一個區塊(block)敘述 前後的關鍵字為begin和end。

 一個initial敘述只執行一次,它在模擬開始時 動作並且在所有敘述執行完成後結束。

 以下是兩種產生任意運作時脈(free-running clock)的可能方式,

 initial initial initial initial initial initial initial initial

 begin begin begin begin begin begin begin begin

 clock=1’b0; clock=1’b0;

 repeat repeat repeat repeat(30) #300

$finish

$finish

$finish

$finish;

 #10 clock= ~ clock; end end end end

 end end end end always always always always

 #10 clock= ~

clock;

(19)

//Description of D latch(see Fig.5-6)

module module module

module D-latch(Q,D,control);

output output output

output Q;

input input input

input D,control;

reg reg reg reg Q;

always always always

always @(control or or or or D)

if if if

if (control)Q=D; //same as:ifififif

( control ==1)

endmodule endmodule endmodule endmodule

HDL 範例 範例 範例 範例 5-1

HDL 範例 範例 範例 範例 5-2

 //D flip-flop

 modulemodulemodulemodule D-FF(Q , D , CLK);

 outputoutputoutputoutput Q;

 input input input input D , CLK;

 reg reg reg reg Q;

 alwaysalwaysalwaysalways @@@@(posedgeposedgeposedgeposedge CLK)

 Q=D;

 endmoduleendmoduleendmoduleendmodule

// D flip-flop with asynchronous reset.

(20)

 HDL 範例 範例 範例 範例 5-3

//T flip-flop from D flip-flop and gates

modulemodule TFF(Q ,T ,CLK , RST);modulemodule

 outputoutput Q;outputoutput

 input input T ,CLK , RST;input input

 wire wire DT;wire wire

assign assign DT = Q ^ T assign assign

//Instantiate the D flip-flop

 DFF TF1(Q ,DT ,CLK , RST);

EndmoduleEndmoduleEndmoduleEndmodule

//JK flip-flop from D flip-flop and gates

modulemodule JKFF(Q , J, K, CLK, RST);modulemodule

 outputoutput Q;outputoutput

 input input J, K, CLK, RST;input input

 wire wire JK;wire wire

assign assign JK=(J & ~Q)∣(~K & Q)assign assign



HDL 範例 範例 範例 範例 5-3:

//Instantiate the D flip-flop

DFF JK1(Q ,JK ,CLK , RST);

endmodule endmoduleendmodule endmodule // D flip-flop module modulemodule

module DFF(Q , D, CLK, RST);

output outputoutput output Q;

input input input

input D, CLK, RST;

reg reg reg reg Q;

always @ always @always @

always @((((posedgeposedgeposedgeposedge CLK or negedgenegedgenegedgenegedge RST)))) ifififif(~RST)Q = 1’b0 ;

else elseelse

else Q = D;

endmodule endmoduleendmodule endmodule

(21)

 HDL 範例 範例 範例 範例 5-4:

 ////////Functional description of JK flipFunctional description of JK flipFunctional description of JK flip----flop Functional description of JK flipflop flop flop

module JKmodule JK----FFmodule JKmodule JKFFFF(FF(((J ,K ,CLK , Q ,J ,K ,CLK , Q , QnotJ ,K ,CLK , Q ,J ,K ,CLK , Q ,QnotQnot );Qnot);););

 output Qoutput Q ,Qnotoutput Qoutput Q,Qnot,Qnot;,Qnot;;;

 input J , K, CLKinput J , K, CLK;input J , K, CLKinput J , K, CLK;;;

 reg reg Qreg reg QQ;Q;;;

 assign assign Qnotassign assign QnotQnot =~ QQnot=~ Q=~ Q;=~ Q;;;

 always @always @(always @always @(((posedge CLK posedge CLK posedge CLK posedge CLK ))))

 casecasecasecase(((({J,K}{J,K}){J,K}{J,K})))

 2222’b00b00b00b00::::Q=QQ=Q;Q=QQ=Q;;;

 2222’b01b01b01b01::::Q=1Q=1’b0Q=1Q=1 b0b0b0;;;;

 2222’b10b10b10b10::::Q=1Q=1’b1Q=1Q=1 b1b1b1;;;;

 2222’b11b11b11b11::::Q=~QQ=~Q;Q=~QQ=~Q;;;

 endcaseendcaseendcaseendcase

endmoduleendmoduleendmoduleendmodule

 HDL 範例 範例 範例 範例 5-5:

 / / Mealy state diagram (Fig.5-16)

 modulemodulemodulemodule Mealy-mdl(x , y, CLK, RST);

 input input input input x , CLK, RST;

 output output output output y;

 reg reg reg reg y;

 regregregreg [ 1: 0 ] Prstate, Nxtstate;

 parameterparameterparameterparameter S0 =2’b00, S1 =2’b01, S2 =2’b10, S3 =2’b11;

(22)

 HDL 範例 範例 範例 範例 5-5~:

 S0S0S0S0:ifififif(xxxx)NxtstateNxtstateNxtstateNxtstate = S1= S1= S1;= S1

 elseelseelseelse NxtstateNxtstateNxtstate = S0Nxtstate= S0= S0= S0;

 S1S1S1S1:ifififif(xxxx)NxtstateNxtstateNxtstateNxtstate = S3= S3= S3;= S3

 elseelseelseelse NxtstateNxtstateNxtstate = S0Nxtstate= S0= S0= S0;

 S2S2S2S2:ifififif(~x~x~x~x)Nxtstate = S0Nxtstate = S0;Nxtstate = S0Nxtstate = S0

 elseelse Nxtstateelseelse NxtstateNxtstate = S2Nxtstate= S2= S2= S2;

 S3S3S3S3:ifififif(~x~x~x~x)Nxtstate = S2Nxtstate = S2;Nxtstate = S2Nxtstate = S2

 elseelse Nxtstateelseelse NxtstateNxtstate = S0Nxtstate= S0= S0= S0;

 endcaseendcaseendcaseendcase

 always @ always @ always @ always @ (Prstate or xPrstate or xPrstate or xPrstate or x) / /Evaluate output/ /Evaluate output/ /Evaluate output/ /Evaluate output

 casecasecasecase(PrstatePrstatePrstatePrstate)

 S0S0:S0S0y=0y=0y=0y=0;

 S1S1:S1S1ifififif(xxxx)y=1y=1y=1y=1’b0b0b0;b0else y = 1else y = 1’b1else y = 1else y = 1b1b1;b1

 S2S2:S2S2ifififif(xxxx)y=1y=1y=1y=1’b0b0b0;b0else y = 1else y = 1’b1else y = 1else y = 1b1b1;b1

 S3S3:S3S3ifififif(xxxx)y=1y=1y=1y=1’b0b0b0;b0else y = 1else y = 1’b1else y = 1else y = 1b1b1;b1

 endcaseendcaseendcaseendcase

 endmoduleendmoduleendmoduleendmodule

 HDL 範例 範例 範例 範例 5-6:

 / / Moore state diagram (Fig. 5-19)

 module Moore-mdl(x , AB, CLK, RST);

 input x , CLK, RST;

 output [ 1:0 ]AB;

 reg [ 1:0 ] state;

 parameter S0 =2’b00, S1 =2’b01, S2 =2’b10, S3 =2’b11;

 if(~RST)state = S0; / / Initialize to state S0

 always @ (posedge CLK or negedge RST)

 else

 case(state)

 S0:if(x) state = S1;else state = S0;

 S1:if(x) state = S2;else state = S3;

 S2:if(~x)state = S3;else state = S2;

 S3:if(~x)state = S0;else state = S3;

 endcase

 assign AB = state / / output of flip-flops

 endmodule

(23)

 HDL 範例 範例 範例 範例 5-7:

/ / Structural description of sequential circuit

/ /See fig. 5-20(a)

modulemodule Tcircuit(x , y, A, B, CLK, RST);modulemodule

 input input x , CLK, RST;input input

 outoutoutout y, A, B;outoutoutout

 wirewire TA, TB;wirewire

/ /Flip-flop input equations

 assign assign TB = x,assign assign

 TA = x & B;

/ /Output equation

 assignassign y = A & B;assignassign

/ / Instantiate T flip-flops

 T_FF BF (B, TB, CLK, RST);

 T_FF AF (A, TA, CLK, RST);

endmoduleendmoduleendmoduleendmodule

 HDL 範例 範例 範例 範例 5-7~:

 / /T flip-flop

 module module T_FF(Q, T, CLK, RST)module module

 outputoutputoutputoutput Q;

 input input input input T, CLK, RST;

 regregregreg Q;

 always always always always @ (posedgeposedgeposedgeposedge CLK orororor negedgenegedgenegedge RST)negedge

 ifififif(~RST)Q = 1’b0;

 else else Q= Q ^ Telse else

(24)

 HDL 範例 範例 範例 範例 5-7~~:

 initialinitialinitialinitial

 beginbeginbeginbegin

 RST = 0RST = 0RST = 0RST = 0;;;;

 CLK = 0CLK = 0CLK = 0CLK = 0;;;;

 #5 RST = 0#5 RST = 0;#5 RST = 0#5 RST = 0;;;

 repeat repeat repeat repeat ((((16161616))))

 #5 CLK = ~CLK#5 CLK = ~CLK;#5 CLK = ~CLK#5 CLK = ~CLK;;;

 endendendend

 initialinitialinitialinitial

 beginbeginbeginbegin

 x = 0x = 0;x = 0x = 0;;;

 #15 x = 1#15 x = 1;#15 x = 1#15 x = 1;;;

 repeat repeat (repeat repeat (((8888))))

 #10 x = ~x#10 x = ~x;#10 x = ~x#10 x = ~x;;;

 end end end end

 end module

5-21 HDL 範例 5-7 的模擬輸出

(25)

5-6 狀態簡化與指定

 圖5-22 狀態圖

 表5-6 圖5-22狀態圖之狀態表

0 0 X=1 b

d X = 1

0 0 a

c a

b

X=0 X = 0

輸出 次一狀態

目前

狀態

(26)

 由表5-6可知狀態 g及e為相等狀態,

 故圖5-22可簡化為5個狀態,如圖5-23所示

 狀態表簡化

 由圖5-23可推得表5-7

0 0 0 1 1 1 X=1 b

d d f f f X = 1

0 0 0 0 0 0 a

c a e a e a

b c d e f

X=0 X = 0

輸出 次一狀態

目前

狀態

(27)

 表5-8簡化後之狀態表

0 0 0 1 1 X=1 b

d d d d X = 1

0 0 0 0 0 a

c a e a a

b c d e

X=0 X = 0

輸出 次一狀態

目前 狀態

 表5-9 三種可能的二進位狀態指定

One-shot 葛雷碼

二進位

00001 00010 000

001 000

001 a

b

第三種指定 第二種指定

第一種指定 目前

狀態

(28)

 表5-10 將第一種狀態指定用於簡化後

 之狀態表

0 0 0 1 1 x=1 001

011 011 011 011

x=1 x=0 x=0

0 0 0 0 0 000

010 000 100 000 000

001 010 011 100

輸出 次一狀態

目前 狀態

5-7 設計程序

 同步序向電路的設計程序可摘要如下列步驟

 :

 1、從文字敘述及所需要的操作規格,獲得電

 路的狀態圖。

 2、如果需要,簡化狀態數量。

 3、指定狀態的二元值。

 4、獲得二元編碼的狀態表。

 5、選擇欲使用的正反器型式。

 6、推導出已簡化的輸入方程式及輸出方程

式。

 7、繪製邏輯圖。

(29)

 設計一個電路可偵測出一串位元中有

 三個或更多個連續的1出現

 圖5-24 順序偵測器之狀態圖

 表5-11 順序偵測器之狀態表

y A B

x A B

0 0 0 0

0 0 0

1 0 0

0 0

輸出 次一狀態

輸入 目前狀態

(30)

 為設計此偵測器電路,選擇兩個D正反 器來描述四個狀態,而且它們的輸出分 別為A與B。有一個輸入x及一個輸出y。

 將表5-11化簡如下:

 正反器的輸入方程式可直接由A與B的次 態行獲得,並可表示成最小項的和為

 簡化後之方程式為

AB y

x B Ax D

Bx Ax D

B A

=

+ ′

= +

=

=

=

= +

=

= +

) 7 , 6 ( ) , , (

) 7 , 5 , 1 ( ) , , ( )

1 (

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

1 (

x B A y

x B A D t

B

x B A D t

A

B A

(31)

5-26 順序偵測器之邏輯圖

激勵表 激勵表 激勵表

激勵表( ( ( ( Excitation Tables ) ) ) )

 在設計程序中,我們通常知道從現態到

 次態的轉變,並且希望能找到造成如此

 轉變的正反器輸入條件。有鑑於此,對

(32)

5-12 正反器之激勵表

 JK正反器之激勵表  T正反器之激勵表

0 x 1 x x 1 x 0 0

1 0 1 0

0 1 1

J K Q(t+1)

Q(t)

0 1 1 0 0

1 0 1 0

0 1 1

T Q(t+1) Q(t)

5-13 狀態表及 JK 正反器之輸入

J

A

K

A

J

B

K

B

A B x

A B

0 x 0 x 0 x 1 x 1 x x 1 0 x x 0 x 0 0 x x 0 1 x x 0 x 0 x 1 x 1 0 0

0 1 1 0 0 1 1 0 1 1 1 1 0 0 0

1 0 1 0 1 0 1 0 0

0 0 0 1 0 1 1 0 1 0 1 1 1 1

正反器輸入 次一狀態

輸入 目前狀態

(33)

5-27 JK 輸入方程式的卡諾圖化簡

5-28 使用 JK 正反器之序向電路邏輯圖

(34)

使用 T 正反器設計 3 位元二進位計數器

 表5-14 3位元二進位計數器之狀態表



0 0 1 0 1 1 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 1 1 1 0 0 1

0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 0 0

0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

T

A2

T

A1

T

A0

A

2

A

1

A

0

A

2

A

1

A

0

正反器輸入 次一狀態

目前狀態

(35)

 圖5-30 3位元二進位計數器之卡諾圖

5-31 3 位元二進位計數器之 邏輯圖

參考文獻

相關文件

QUADRO 5 - EMPRESAS QUE DETÊM INVESTIMENTO DIRECTO DO EXTERIOR EM MACAU E QUE TÊM TRABALHADORES A TEMPO COMPLETO, POR RAMO DE ACTIVIDADE ECONÓMICA, EM 2001 TABLE 5 -

Em 2002, o valor líquido do fluxo do investimento directo do exterior em Macau foi de 3,07 mil milhões de Patacas, verificando um aumento de 1,78 mil milhões de Patacas em relação

(b) 當一產品進口數量增加,及/或其進口對於本國生產同類或直接競

校園 NGN 無線基地台的建置完成,同仁可透過 KH_Guest 熱點連接 後,由瀏覽器中輸入個人 Epass

點擊 圖示將在頁面中插入瀏覽器提供教師加入網頁 資源,預設為 Google 首頁,可使用其搜尋引擎或直接鍵

10.投標商及其採用原廠設備製造商,依經濟部公告『國外第三地區公司為

(b) 剝奪或減損其他會員依 GATT 1994 直接或間接享有之利益,2. 特別是依 GATT 1994 第二條得享有之關稅減讓利益 12 ; (c)

二、經直轄市、縣 ( 市 ) 勞工主管機關許可設立或接受