digital system engineering

128
Digital System Engineering บบบบบ 3. Sequential Logic Design

Upload: basil-fry

Post on 15-Mar-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Digital System Engineering. บทที่ 3. Sequential Logic Design. สัญญาณ Output ของ Sequential Logic จะขึ้นกับข้อมูลในปัจจุบันและอดีตที่ป้อนให้กับวงจร ดังนั้น Sequential Logic จึงเป็นวงจรที่มีความจำ Sequential Logic อาจจะนำเอาข้อมูลในอดีตทั้งหมดมาใช้ร่วมกัน - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Digital System Engineering

Digital System Engineering

บทท 3.Sequential Logic Design

Page 2: Digital System Engineering

• สญญาณ Output ของ Sequential Logic จะขนกบขอมลในปจจบนและอดตทปอนใหกบวงจร

• ดงนน Sequential Logic จงเปนวงจรทมความจำา• Sequential Logic อาจจะนำาเอาขอมลในอดตทงหมดมาใชรวมกน

• หรออาจจะแบงขอมลในอดตออกเปนขอมลขนาดเลก หลายๆขอมล ทเรยกวา State

• State ในวงจรดจตอลคอเซทของขอมล เรยกวา State Variable ซงเอาไวใชกำาหนดคาของสญญาณ Output ในอนาคต

Page 3: Digital System Engineering

3.2 LATCHES และ FLIP-FLOPS

• อปกรณพนฐานของหนวยความจำาคอ Bistable ซงมคาStable State 2 คา (Q=0, /Q=1 หรอ Q=1, /Q=0)

• วงจร Bistable แตกตางจากวงจร Combinational ตรงทมนมลกษณะ Cyclic ( คาของ Q ขนกบคา /Q และ

คาของ /Q ขนกบคา Q)• กรณท Q=0 ปอนเปน Input ของ I2 ทำาให /Q=1 และ

/Q=1 ปอนเปนInput ใหกบ I1 ทำาให Q=0• กรณท Q=1 ปอนเปน Input ของ I2 ทำาให /Q=0 และ

/Q=0 ปอนเปนInput ใหกบ I1 ทำาให Q=1• ดงนนสถานะของ Q และ /Q จงเสถยร (Bistable)

วงจร Cross-Coupled Inverter

Page 4: Digital System Engineering

3.2 LATCHES และ FLIP-FLOPS

• อปกรณทม N Stable State จะมขาวสารทงหมดlog2N bits

• เราสามารถใช Bistable ในการเกบขอมลแตละบท• ขอมลทกอยางจะถกเกบไวใน Q ถาในอดต Q=0 มนจะม

คาเปน 0 ไปตลอด หรอถามนเคยมคาเปน 1 มนจะมคา เปน 1 ไปตลอด

• สวน /Q จะมคาตรงกนขามกบ Q เสมอ ดงนน /Q จงไมไดเกบขาวสารใดๆ

Page 5: Digital System Engineering

3.2 LATCHES และ FLIP-FLOPS• ปญหาของการใชวงจร Cross-Coupled Inverter

คอตอนทจายไฟใหกบวงจร เราไมสามารถทำานายไดวา สถานะของ Q และ /Q จะเปนเชนไร มนจะเปลยนคาไป

เรอยๆ เมอมการเปดเครองครงตอไป• ถงแมวา Cross-Coupled Inverter จะสามารถเกบ

บทของขาวสารได แตเนองจากมนไมมสญญาณ Input ทำาใหผใชไมสามารถปอนขาวสารทตองการเกบเขาไปในวงจรได

Page 6: Digital System Engineering

3.2.1 SR Latch

• กรณท 1. R=1, S=0Input ของ N1 อยางนอย 1 เสนเปน 1 (R=1) ทำาใหQ=0 และ Q=0 ถกปอนเปน Input ใหกบ N2

เนองจาก Input ของ N2 คอ Q=0 และ S=0 ดง นน /Q=1

• กรณท 2. R=0, S=1Input ของ N2 อยางนอย 1 เสนเปน 1 (S=1)

ทำาให /Q=0 และ /Q=0 ถกปอนเปน Input ใหกบ N1 เนองจาก Input ของ N1 คอ /Q=0 และ R=0 ดงนน

Q=1

Page 7: Digital System Engineering

3.2.1 SR Latch

• กรณท 3. R=1, S=1 เนองจาก Input ของ N1 และ N2 อยางนอย 1 เสน

เปน 1 ดงนน Q=0, /Q=0• กรณท 4. R=0, S=0

เนองจาก 0 NOR x = /x ดงนนในกรณน N1 และ N2 ทำางานเปน NOT gate ดงนนในกรณนวงจร RS

Latch จงทำางานเหมอนกบวงจร Cross-Coupled Inverter ซงทำาหนาทเกบขาวสารเดมของ Q และ /Q

Page 8: Digital System Engineering

3.2.1 SR Latch

• จากตาราง Truth Table• ถา S=1 R=0 Q จะถกเซทใหเปน 1• ถา S=0 R=1 Q จะถกรเซทใหเปน 0• ถา S=0 R=0 Q จะไมถกเซทหรอรเซท มนจะเกบคาเดมไว

• ถา S=1 R=1 Q จะถกเซทและรเซทพรอมกน ซงทำาให Q และ /Q = 0 ซงเปนสถานะตองหามของ Latch

Page 9: Digital System Engineering

3.2.2 D Latch

• ปญหาของ RS Latch คอเราไมสามารถควบคมวาจะใหQ ของ RS Latch เปลยนคาเมอไหร

• D Latch ถกออกแบบมาใหสามารถเปลยนคาของ Q ได เฉพาะตอนท Clk = 1 และคาของ Q = D

• ถา Clk=0 คาของ Q จะคงโลจกเดมไว

Page 10: Digital System Engineering

3.2.3 D Flip-Flop

• L1 ถกเรยกวา Master และ L2 เรยกวา Slave• เมอ Clk = 0 ทำาให Clk ของ L1 เปน 1 ดงนน L1 จะ

รบขอมลคาใหมจาก D มาเกบไวทขา Q ของมน แตไม สามารถสงไปยง Q ของ L2 ไดเนองจาก Clk ของ L2

เปน 0• เมอ Clk = 1 ทำาให Clk ของ L1 เปน 0 ดงนน L1 จะ

หยดรบขอมลใหม ดงนน Q ของ L1 จงเปนคาของ D ขณะท Clk เปลยนจาก 0 เปน 1 และ Clk ของ L2 เปน

1 ดงนน Q ของ L2 จงเปนคาของ D ขณะท Clk เปลยนจาก 0 เปน 1

Page 11: Digital System Engineering

3.2.3 D Flip-Flop

• ดงนน D Flip-Flop จงทำาการสงคาของ D ไปยงคา Q เมอสญญาณ Clk เปลยนจาก 0 เปน 1 (Rising

Edge)• D Flip-Flop มชอเรยกหลายชอคอ Master-Slave

Flip-Flop, Edge-Triggered Flip-Flop หรอPositive Edge-Triggered Flip-Flop

Page 12: Digital System Engineering

3.2.4 Register• N bit Register เปนการนำาเอา

D Flip-Flop จำานวน N ตวมา ตอขา Clk รวมกน

Page 13: Digital System Engineering

3.2.5 Enable Flip-Flop

• En=0 D Flip-Flop จะไมสามารถ Latch ขอมลได• En=1 D Flip-Flop สามารถ Latch ขอมลได

Page 14: Digital System Engineering

3.2.6 Resettable Flip-Flop• Resettable Flop-Flop เปน Flip-

Flop ทเราสามารถบงคบใหมนถกรเซท โดยไมสนใจคาของ D นยมใชในการ

กำาหนดคาเรมตนใหกบ Flip-Flop• Resettable Flip-Flop สามารถทำาได

2 แบบคอ• Synchronously Resettable

Flip-Flop จะถกรเซทเมอมสญญาณ ขอบขาขนของ Clk

• Asynchronously ResettableFlip-Flop จะถกรเซททนททม

สญญาณ Reset

Page 15: Digital System Engineering

Timing Diagram ของ D Latch และ D Flip-Flop

Page 16: Digital System Engineering

3.3 Synchronous Logic Design3.3.1 วงจรทมปญหาบางวงจร• Astable Circuit

โลจกของ X, Y, Z มคาไมเสถยร (Unstable) หรอเรา เรยกวา Astable

Page 17: Digital System Engineering

3.3 Synchronous Logic Design3.3.1 วงจรทมปญหาบางวงจร• ตวอยางการเกด Race Condition

• ตวอยางเปนการออกแบบวงจร D Flip-Flop แบบใหม โดยกำาหนดใหม Truth Table ดงแสดงในรป

• กำาหนดใหตอนเรมตน A, B และ Output = 1• จากนนจงเปลยน B ใหเปน 0 จากTruth Table คา Q

จะตองคงคาสถานะเดมคอ 1 ไว

QAB N1

N2

B

B

N1

Q

N2

A B

Page 18: Digital System Engineering

3.3 Synchronous Logic Design3.3.1 วงจรทมปญหาบางวงจร• ตวอยางการเกด Race Condition

• เมอ B เปลยนเปน 0 ทำาให N1= A(1) and B(0) = 0• แตถา Propagation Delay ของ Not Gate มคา

มากเกนไป โดยทำาให /B=0 หลงจากท N1=0 ดงแสดง ใน Timing Diagram ดงนนในขณะทสถานะของ /B

ยงไมเปลยนคาของ N2 = /B(0) and Q(1) = 0 ดง นน Q = N1(0) or N2(0) = 0

• และเมอ /B เปลยนเปน 1 จะทำาให N2 = /B(1) and Q(0) = 0 และ Q = N1(0) or N2(0) = 0

QAB N1

N2

B

B

N1

Q

N2

A B

Page 19: Digital System Engineering

3.3 Synchronous Logic Design3.3.1 วงจรทมปญหาบางวงจร• จะเหนวาวงจร D Flip-Flop ทออกแบบใหมน ถา Not

Gate ม Propagation Delay มากเกนไป จะทำาใหไม สามารถเกบสถานะเดมของ Q ไดเมอ B เปลยนเปน 0

• การทวงจรทำางานผดพลาดเนองจาก Propagation Delay ในบางเสนทางมคามากเกนไปน เราเรยกวาการ

เกด Race Condition ซงจะเกดกบวงจรทมการปอน สญญาณ Output กลบไปท Input

• วงจรทออกแบบเหมอนกนทกอยาง วงจรหนงอาจจะ ทำางานปกต แตอกวงจรอาจจะไมทำางานเนองจากใน

กระบวนการผลต อาจจะมบางเสนทางทมคา Delay ตางออกไปเลกนอย

• หรอในกรณทอณหภมสงขนอาจจะทำาให Propagation Delay ของแตละเสนทางเปลยนไป ดงนนการทำางานของวงจรจงขนกบอณหภมดวย

Page 20: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• วงจร Sequential เปนวงจรทมเสนทางแบบ Cyclic

Path หรอเสนทางทปอน Output ยอนกลบไปใหInput

• Cyclic Path จะทำาใหเกดปญหา Race Condition และ Astable

• วงจร Combinational ซงไมม Cyclic Path จะไมม ปญหา Race Condition และ Astable

• และถามเวลามากพอ ผลของ Glitch จะหายไป และทำาใหOutput ของวงจร Combinational จะม Logic ทถกตองเสมอ

Page 21: Digital System Engineering

3.3.2 Synchronous Sequential Circuit

• เราสามารถแกปญหาของการเกด Racing ในวงจรSequential ไดโดยการใส Register เขาไปใน Cyclic Path

• เรมตนกำาหนดให Clk ของ Register เปน 0 ดงนนมน จงกนไมให Q ยอนกลบไปท Input

• ดงนนเมอ B เปลยนเปน 0 แต /B ยงคงเปน 0 อย ถง แมวา Q จะเทากบ 0 ดงไดอธบายไปกอนหนาน

Q

Q SET

CLR

D

Clk

AB Q B

B

N1N2

N1

N2

QClk

Page 22: Digital System Engineering

3.3.2 Synchronous Sequential Circuit

• แต Output ของ Register ยงคงเปน 1 อย• และเมอ /B เปลยนเปน 1 จงทำาให N2=1 และทำาให Q

เปลยนกลบเปน 1 ซงเปนสถานะทถกตอง• จากนนจงปอน Clk = 1 เพอให Register ปลอยใหคา

Q ทถกตองยอนกลบไปหา Input ได

Q

Q SET

CLR

D

Clk

AB Q B

B

N1N2

N1

N2

QClk

Page 23: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• Register ทำาหนาทกนไมให Q ทยงมสถานะทไมถกตอง

ยอนกลบไปท Input ซงจะทำาใหเกด Race Condition ได

• วงจรจะตองรอจนกระทง Q เปลยนเปนสถานะทถกตอง แลว จงปอน Clk = 1 เพอให Register ปลอยใหคา Q

ทถกตองยอนกลบไปท Input• ดงนนการออกแบบวงจร Sequential จะตองใส

Register ใน Cyclic Path• และถาสญญาณ Clk ของ Register มความถตำาพอ

จนทำาใหสญญาณ Output ของ Sequential เปลยน เปนสถานะทถกตองแลว วงจร Sequential นนจะไม

เกด Race Condition

Page 24: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• เราจะเรยกคาทเกบไวใน Register ( คา Q ของ

Register) วา State• State ของวงจร Sequential จะเปลยนเมอม

สญญาณ Clock ปอนใหกบ Register เทานน หรอเรา เรยกวา State ถก Synchronized กบสญญาณ

Clock• ถา Clock ชาพอจนกระทงสญญาณ Input ทปอนใหกบ

Register ทกตวเปลยนเปนคาทถกตองกอนทสญญาณClock ลกตอไปจะมา กจะทำาใหไมเกด Race Condition

• การแก Race ในวงจร Sequential โดยการใสRegister เขาไปใน Feedback Path จะทำาใหวงจรSequential ทำางาน Synchronous กบสญญาณClock

Page 25: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• วงจร Sequential ประกอบดวย State จำานวน k ตว

{S0,S1,…,Sk-1} • มสญญาณ Clock เปนตวกำาหนดการ Synchronous

โดยทขอบขาขนของสญญาณ Clock เปนตวกำาหนด เวลาการเปลยนแปลงของ State

• เราจะใช Current State ( ใชสญลกษณ S) และ Next State ( ใชสญลกษณ S’) เปนตวกำาหนดคาของ State

ปจจบนและ State ของ Clock ลกตอไป• Functional Specification จะเปนตวกำาหนดคาของ

Next State และคาของ Output ทไดจากการรวมกน ของ Current State และ Next State

• Timing Specification ประกอบดวยระยะเวลาสงสด(tpcq) และระยะเวลาตำาสด (tccq) ของชวงเวลาตงแต

ขอบขาขนของ Clock ไปจนกระทงเวลาท Output มการเปลยนแปลง

Page 26: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• และเวลา Setup (tsetup) และ Hold (thold) คอ

เวลาทสญญาณ Input จะตองคงทเมอเปรยบเทยบกบ เวลาทจะตองปอนขอบขาขนของสญญาณ Clock

Page 27: Digital System Engineering

3.3.2 Synchronous Sequential Circuit• กฎของการออกแบบวงจร Synchronous

Sequential คอ• วงจรจะตองประกอบดวย Register และวงจร

Combinational• จะตองม Register อยางนอย 1 ตว• Register ทกตวจะตองใชสญญาณ Clock ตวเดยวกน• Cyclic Path ทกเสนทางจะตองม Register อยางนอย

1 ตว• วงจร Sequential ทไมไดทำางานแบบ Synchronous

จะเรยกวาวงจร Asynchronous Sequential

Page 28: Digital System Engineering

3.3.3 วงจร Sequential แบบSynchronous และแบบ Asynchronous• วงจร Synchronous Sequential ออกแบบไดงาย

กวาวงจร Asynchronous Sequential• แตวงจร Synchronous Sequential ยงมความ

จำาเปนในบางกรณเชนในกรณทมการสอสารระหวางวงจรSequential 2 วงจรทใช Clock คนละตว หรอใชความถคนละความถเปนตน

Page 29: Digital System Engineering

3.4 Finite State Machines

• วงจร Synchronous Sequential สามารถเขยนอย ในรปของ Finite State Machine (FSM) ดงแสดง

ในรป• FSM ประกอบดวย

• Register จำานวน k ตวซงทำาใหม State ทงหมด 2k state

• Input จำานวน M ตว• Output จำานวน N ตว

Page 30: Digital System Engineering

3.4 Finite State Machines

• สญญาณ Clock• และบางวงจรอาจจะมสญญาณ Reset

• FSM สามารถแบงออกเปน 2 ชนดคอ• Moore Machine สญญาณ Output จะขนกบคา

Current State เทานน• Mealy Machine สญญาณ Output จะขนกบคา

Current State และสญญาณ Input

Page 31: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM• จงพจารณาการออกแบบ FSM เพอควบคมไฟจราจร• ในการออกแบบวงจรควบคมไฟ

จราจรมการตดตง Sensor TA บนถนน Academic และ TB บน

ถนน Bravado• Output ของ Sensor จะเปน

TRUE ถามรถบนถนน และFALSE ถาไมมรถ

• สญญาณไฟจราจร LA และ LB โดยสามารถควบคมใหมนเปนไฟส

แดง เหลอง และเขยวได

Page 32: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• วงจรควบคมสญญาณไฟจราจร สามารถเขยนเปน Block Diagram

ไดดงรป• โดยกำาหนให

• Clk แตละลกหางกน 5 วนาท• ทขอบขาขนของ Clk แตละลก สของ

สญญาณไฟจราจร LA และ LB จะ เปลยนไปตามคา TA และ TB ทวดได

• สญญาณ Reset เอาไวใชกำาหนดคาเรมตนของวงจรควบคม

Page 33: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• ทกๆ 5 วนาทวงควบคมจะตรวจสอบSensor TA และ TB และสงสญญาณ

ไปควบคมไฟจราจร LA และ LB โดย สามารถเขยน State Transition ได ดงแสดงในรป ซงสามารถอธบายได

ดงน• เมอกดปม Reset จะให LA เขยวและ

LB แดง (S0) และตราบใดทยงมรถ บนถนน Academic สญญาณไฟจะ

ไมเปลยน• แตถาไมมรถบนถนน Academic จะ

ให LA เหลองและ LB แดง (S1) 5 วนาท

• แลวเปลยนเปน LA แดงและ LB เขยว (S2)

Page 34: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM• จากนนถามรถบนถนน Bravado สญญาณไฟจะไมเปลยน

• แตถาไมมรถบนถนน Bravado จะใหLA แดงและ LB เหลอง (S3) 5 วนาท

• จากนนจะให LA เขยวและ LB แดง(S1)

Page 35: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• จากนนจงนำาเอาขอมลทงหมดมาเขยนเปน State Table ในตารางท 3.1

• State S0, S1, S2 และ S3 สามารถแสดงเปนเลขฐา น 2 ขนาด 2 bit (S1:0) ดงตารางท 3.2

• และสญญาณไฟจราจรเขยว เหลองและแดงสามารถเปน เลขฐาน 2 ขนาด 2 bit (L1:0) ดงตารางท 3.3

Page 36: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM• นำาเอาเลขฐาน 2 ของ State

ในตารางท 3.2 ไปแทนทในState ของตารางท 3.1

แลวเขยนใหมไดดงตารางท3.4

• จากตารางท 3.4 เราสามารถ เขยนสมการบลนของ Next

State S1’ และ S0’ ไดดงนS1’=/S1S0+S1/S0/TB+S1/S0TB

เราสามารถยบสมการ S1’ ไดเปนS1’=S1 XOR S0

S0’=/S1/S0/TA+S1/S0/TB

Page 37: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM• ในทำานองเดยวกนเราสามารถสรางตารางความสมพนธ

ระหวาง State และสญญาณ ไฟจราจร LA และ LB ไดดง

ตารางท 3.5• และเขยนสมการบลนไดดงน

LA1=S1

LA0=/S1S0

LB1=/S1

LB0=S1S0

Page 38: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM• จากนนจงเขยน Block Diagram ของ

Moore FSM ดตวอยางในรปท 3.22 (a)• เรมจากการเขยน 2-bit state register• ในแตละขอบขาขน หรอทกๆ 5 วนาท State

Register จะ กอปปคาของ Next State S’1:0 ไปใหกบ Current State S1:0

• ในตอนเรมตน State Register จะรบ สญญาณ Reset แบบ Synchronous หรอ

Asynchronous เพอกำาหนดคาเรมตนของS1:0

Page 39: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• จากนนจงเขยนวงจรของ Next State จากสมการบล นของ S’1 และ S’0

Page 40: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• สดทายเขยนวงจรสรางสญญาณ Output จากสมการบ ลนของ LA1, LA0, LB1, LB0

Page 41: Digital System Engineering

3.4.1 ตวอยางการออกแบบ FSM

• Timing Diagram ของวงจรควบคมไฟจราจร

Page 42: Digital System Engineering

3.4.2 State Encoding• จากตวอยางขางบนเราใชการเขารหสแบบเลขฐาน 2 เพอ

แทนท State และสญญาณไฟจราจรสตางๆ• ปญหาคอเราควรจะใชการเขารหสแบบใดเพอใหไดวงจรท

เลกทสด หรอวงจรทมคา Propagation Delay นอยทสด

• ในปจจบนยงไมมทฤษฎทใชเลอกการเขารหสทดทสด แต ในทางปฏบตนยมใชการเขารหส 2 แบบคอ

1. การเขารหสเลขฐาน 2 ดงในตวอยางดานขางบน2. การเขารหสแบบ One Hot การเขารหสแบบนจะใช 1

bit เพอแทน 1 State ถาม 3 State กตองใช 3 bit และทเรยกวา One Hot กเพราะวาจะตองม 1 bit ทมคา

เปน 1 เสมอ ตวอยางการเขารหสแบบ One Hot ของ 3 State คอ 001, 010, 100

Page 43: Digital System Engineering

3.4.2 State Encoding• จะเหนไดวาการเขารหสแบบ One Hot จะใช Register

มากกวาการเขารหสเลขฐาน 2 แตขอดของการเขารหส แบบ One Hot คอการออกแบบวงจร Next State

และ Output จะงายกวาและใชอปกรณนอยกวาการเขา รหสเลขฐาน 2

Page 44: Digital System Engineering

3.4.2 State Encoding

• ตวอยางวงจร Counter หาร N เปนวงจรนบสญญาณ Clock โดยท Output Y จะมคาเปน เมอนบ Clock ไดN ลก รป (a) เปน Timing Diagram ของวงจรนบ 3

และม State Transition Diagram แสดงรป (b)• ตาราง State Transition

และตาราง Output แสดงใน ตารางท 3.6 และ 3.7

Page 45: Digital System Engineering

3.4.2 State Encoding

• ตวอยางวงจร Counter หาร N เปนวงจรนบสญญาณ Clock โดยท Output Y จะมคาเปน เมอนบ Clock ไดN ลก รป (a) เปน Timing Diagram ของวงจรนบ 3

และม State Transition Diagram แสดงรป (b)• ตาราง State Transition

และตาราง Output แสดงใน ตารางท 3.6 และ 3.7

Page 46: Digital System Engineering

3.4.2 State Encoding

• ตาราง State Transition และ Output ของรหสเลข ฐาน 2 แสดงไดดงตาราง และสามารถเขยนเปนสมการบ

ลนไดดงนS’1 = /S1S0

S’0 = /S1/S0

Y = /S1/S0

CurrentState

NextState

S1 S0 S’1 S’00 0 0 10 1 1 01 0 0 0

CurrentState Output

S1 S0 Y0 0 10 1 01 0 0

Page 47: Digital System Engineering

3.4.2 State Encoding

• ตาราง State Transition และ Output ของรหส Hot One แสดงไดดงตาราง และสามารถเขยนเปนสมการบลนไดดงนS’2 = S1

S’1 = S0

S’0 = S2

Y = S0

S’0001

S2001

CurrentState

NextState

S1 S0 S’2 S’10 1 0 11 0 1 00 0 0 0

S2001

CurrentState Output

S1 S0 Y0 1 11 0 00 0 0

Page 48: Digital System Engineering

3.4.3 Moore และ Mealy Machine• เนองจาก Output ของ Moore Machine จะขนกบคา

ของ Current State เทานน ดงนนใน State Transition Diagram จงเขยน Output ไวในวงกลม

ของ State• แตเนองจาก Output ของ Mealy Machine จะขนกบ

คาของ Current State และ Input ดงนน Output จงถกเขยนไวตรงลกศร

Page 49: Digital System Engineering

3.4.3 Moore และ Mealy Machine• ตวอยางการออกแบบวงจร Sequential

แบบ Mealy Machine• หนยนตหอยทากตวหนงถกออกแบบให

คลานอยบนเทปกระดาษจากซายไปขวา โดยในทกๆ 1 Clock หนยนตจะอาน

ขอมล 0 หรอ 1 ทอยบนเทป• หนยนตจะยมเมอขอมลทอาน 4 bit

สดทายโดยอานจากซายไปขวาเปน 1101• กำาหนดให A เปนขอมล Input ทอานไดจากเทปกระดาษ

• Y เปน Output เพอสงใหหนยนตยม ม คาเปน TRUE ถาตองการใหยมและ

FALSE ถาไมตองการ

Page 50: Digital System Engineering

3.4.3 Moore และ Mealy Machine• เราสามารถออกแบบ

State Transition Diagram ของ Moore Machine ไดดงรป

• ตารางของ State Transition และOutput สามารถแสดงได

ดงตารางท 3.11 และ3.12

• เนองจากม State ทงหมด 5 State เรา

สามารถเขยนเปนรหสเลข ฐาน 2 ดงน

S0=000, S1=001, S2=010, S3=011,S4=100

Page 51: Digital System Engineering

3.4.3 Moore และ Mealy Machine

• เราสามารถเขยนตาราง State Transition และOutput ใหมไดดงตารางท 3.13 และ 3.14S2’=S1S0A, S1’=/S1S0A + S1/S0+ S2A, S0’=/S2/S1/S0+S1/S0/A, Y=S2

Page 52: Digital System Engineering

3.4.3 Moore และ Mealy Machine

• วงจรควบคมหนยนตหอยทากออกแบบโดยใช Moore Machine

Page 53: Digital System Engineering

3.4.3 Moore และ Mealy Machine• เราสามารถออกแบบ

State Transition Diagram ของ Mealy Machine ไดดงรป

• บนลกศรแตละเสนมคา ของ A/Y โดยท A เปน

Input ททำาใหเกดการเปนState และ Y คอคาOutput

• ตารางรวมของ State Transition และOutput สามารถแสดงได

ดงตารางท 3.15

Page 54: Digital System Engineering

3.4.3 Moore และ Mealy Machine• เราสามารถเขยนเปนรหส

เลขฐาน 2 ดงนS0=00, S1=01, S2=10, S3=11

• เราสามารถเขยนตารางรวม ใหมของ State

Transition และ Output ไดดงตารางท 3.16

S1’=S1/S0 + /S1S0A, S0’=/S1/S0A + S1/S0/A + S1S0A, Y=S1S0A

Page 55: Digital System Engineering

3.4.3 Moore และ Mealy Machine

• วงจรควบคมหนยนตหอยทากออกแบบโดยใช Mealy Machine

Page 56: Digital System Engineering

3.43 Moore และ Mealy Machine

• Timing diagram ของ Moore และ Mealy machine แสดงไดดงรป

Page 57: Digital System Engineering

3.43 Moore และ Mealy Machine

• จากรปจะเหนวาสญญาณ Output ของ Mealy เกด กอนของ Moore เนองจากมนตอบสนองตอสญญาณ

Input มากกวารอการเปลยน State

Page 58: Digital System Engineering

3.43 Moore และ Mealy Machine

• ถา Output ของ Mealy โดยใช flip-flop มนจะตรง กบ Output ของ Moore

• ดงนนการเลอกชนดของ FSM ใหพจารณาวาตองการให สญญาณ Output ตอบสนองตอการเปลยน State

หรอสญญาณ Input

Page 59: Digital System Engineering

3 .4.4 Factoring State Machines• ในระบบ FSM ทมความซบซอนเราสามารถทำาใหการ

ออกแบบไดงายขน ไดโดยการแบงเปนหลายๆวงจรททำางานรวมกน

• โดยการตอ Output เขากบ Input ของวงจรถดไป• การออกแบบลกษณะนเรยกวาการทำา Factoring ของ

วงจร State Machine

Page 60: Digital System Engineering

3 .4.4 Factoring State Machines• ตวอยางท 3.8 การทำา Unfactored และ Factored

State Machine• จงดดแปลงวงจรควบคมไฟจราจรจากหวขอท 3.4.1 ให

มโหมดพาเหรด ในโหมดนไฟจราจรบนถนน Bravado จะเปนสเขยวในขณะทมขบวนพาเหรดซงมการเดนแบบเปนกลมๆแยกจากกน

• วงจรควบคมมสญญาณ Input เพมขนมาอก 2 สญญาณคอ P และ R

• ปอน P อยางนอย 1 Clock เพอเขาสโหมดพาเหรด• ปอน R อยางนอย 1 Clock เพอออกจากโหมดพาเหรด• เมออยในโหมดพาเหรด วงจรควบคมจะทำางานตามปกต

จนกระทง LB เปลยนเปนสเขยว จากนน LB จะเปนสเขยวไปจนกวาจะออกจากโหมดพาเหรด

Page 61: Digital System Engineering

3 .4.4 Factoring State Machines• เรมจากการเขยน Block Diagram

สำาหรบ FSM วงจรเดยว ดงแสดงในรป(a)

• จากนนจงเขยน Block Diagram สำาหรบ FSM 2 วงจรดงแสดงในรป (b)

• วงจร Mode FSM จะสงสญญาณ M เมอมนอยในโหมดพาเหรด

• วงจร Light FSM จะควบคมไฟจราจรโดย ขนกบสญญาณ M และสญญาณจาก

เซนเซอร TA และ TB

Page 62: Digital System Engineering

3 .4.4 Factoring State Machines

• State Transition Diagram ของวงจรควบคมแบบSingle FSM

• S0 ถง S3 เปน State ของโหมดปกต และ S4 ถง S7 เปนโหมดพาเหรด

Page 63: Digital System Engineering

3 .4.4 Factoring State Machines

• จะเหนไดวา State Transition Diagram ของทง 2 สวนคลายกนมาก

• แตในโหมดพาเหรด FSM จะอยใน S6 เพอทำาใหไฟบน ถนน Bravado เปนสเขยว

Page 64: Digital System Engineering

3 .4.4 Factoring State Machines

• สญญาณ P และ R เปนตวควบคมการยายจากโหมดปกตไปโหมดพาเหรด

• การออกแบบวงจร FSM แบบ Single จะยงยากมาก

Page 65: Digital System Engineering

3 .4.4 Factoring State Machines• รปดานขวามอแสดงการทำา

Factored FSM• Mode FSM ม 2 State ในการตรวจสอบวาสญญาณไฟอยในโหมดปกตหรอโหมดพาเหรด

• Light FSM ถกดดแปลงใหอยใน S2 ในขณะท M เปน TRUE

Page 66: Digital System Engineering

3 .4.4 Factoring State Machines• ตาราง State Transition ของ Light FSM

• สวนตาราง Output สามารถดไดจากตารางท 3.5

Input

TA TB1 x0 x

Mxx

CurrentState

NextState

S1 S0 S’1 S’00 0 0 00 0 0 1

x xx 1

x1

0 1 1 01 0 1 0

x 0x x

0x

1 0 1 11 1 0 0

Page 67: Digital System Engineering

3 .4.4 Factoring State Machines• ตาราง State Transition ของ Mode FSM

• สมการบลนของ Output M คอM = S

Input

P R0 x1 x

CurrentState

NextState

S S’0 00 1

x 0x 1

1 11 0

Page 68: Digital System Engineering

3.4.5 FSM Review• การออกแบบวงจร Sequential โดยใชวธ FSM มขนตอนดงตอไปน1. กำาหนดสญญาณ Input และ Output2. เขยน State Transition Diagram3. ในกรณทตองการออกแบบ Moore Machine

1. เขยนตาราง State Transition2. เขยนตาราง Output

4. ในกรณทตองการออกแบบ Mealy Machine1. เขยนตารางรวมของ State Transition และ Output

5. เลอกวธการเขารหส รหสทถกเลอกจะมผลกบการออกแบบวงจร

6. เขยนสมการบลนสำาหรบ Next State และ Output7. เขยนวงจร Sequential

Page 69: Digital System Engineering

3.5 Timing ของ Sequential Logic• เราเรยกกระบวนการท Flip-Flop กอปปอนพท D ไปยง

เอาทพท Q ทขอบขาขนของ Clock วาการสมสญญาณD ทขอบของ Clock

• ถา D มโลจกคงทท 0 หรอ 1 เมอตอนขอบขาขนของClock เราสามารถบอกไดวาโลจกของ Q จะเปนคาอะไร

• แตถา D มการเปลยนแปลงในเมอตอนขอบขาขนของClock จะเกดอะไรขน

• สถานการณนจะคลายกบการถายรปกบกำาลงกระโดดลงสระนำา

• ถาเราถายรปกอนทกบจะกระโดด เราจะไดรปกบบนขอบสระ

• แตถาเราถายรปกบหลงจากกระโดด เราจะเหนเพยงแคนำาในสระทกระเพอม

• แตถาเราถายรปขณะทกบกำาลงกระโดด เราจะเหนภาพเบลอของกบทกำาลงกระโดดลงสระนำา

Page 70: Digital System Engineering

3.5 Timing ของ Sequential Logic• จะเหนไดวาการทำางานของกลองถกกำาหนดโดย

Aperture Time ซงคอระยะเวลาทวตถทถกถายรปจะตองอยนงเพอใหไดภาพทคมชด

• เชนเดยวกนวงจร Sequential กม Aperture Time ในชวงขอบขาขนของ Clock เพอใหไดสญญาณ

Output ทถกตอง• Aperture Time ของวงจร Sequential ถกกำาหนด

โดย Setup Time และ Hold Time ซงคอเวลากอนและหลงขอบขาขนตามลำาดบ

• เชนเดยวกบการทเราไมสามารถใชคาโลจกทมแรงดนอย ใน Forbidden Zone เรากไมสามารถทจะใชสญญาณ

Output ทอยในชวงเลา Aperture Time• ดงนนในวงจร Sequential เราจงตองพจารณาเวลา

เปนแบบ Discrete ทเรยกวา Clock Cycle ดงเชนกบ ทเราพจารณาวาสญญาณมคาเปน Discrete 1 และ 0

Page 71: Digital System Engineering

3.5 Timing ของ Sequential Logic• สญญาณอาจจะเกด Glitch และ Oscillate ในชวง

Aperture Time• เราจะพจารณาเฉพาะโลจกสดทายซงมคาคงท ตอนทสน

สดของ Clock Cycle เทานน• ดงนนเราสามารถเขยน A[n] คอคาของสญญาณ A ท

เวลาสนสดของ Clock Cycle ท n โดยท n เปนเลขจำานวนเตม

• ระยะเวลาของ Clock Cycle จะตองนานพอทจะทำาให สญญาณทกสญญาณมคาคงท ซงเปนการจำากด

ความเรวของระบบ• นอกจากนในวงจรจรง Flip-Flop ทกตวไมไดรบ

สญญาณ Clock พรอมกน• เราเรยกชวงเวลาทผนผวนนวา Clock Skew ซงจะ

ทำาใหตองเพมคาบเวลาของสญญาณ Clock ใหมากขน

Page 72: Digital System Engineering

3.5 Timing ของ Sequential Logic• ในการใชงานจรงสถานการณอาจจะยงยากมากขนยกตวอยางเชน

• พจารณาวงจร Sequential ทไดรบสญญาณ Input จากปมกด

• มความเปนไปไดทผใชอาจจะกดปมตอนท Clock เปนขอบขาขนพอด

• เราเรยกเหตการณแบบนวา Metastability ซง Flip-Flop จะไดรบคาทอยระหวาง 0 และ 1

• เราสามารถแกปญหาลกษณะนไดโดยใชวงจรSynchronizer ซงเปนวงจรทมโอกาสนอยมากทจะ

สรางสญญาณ Output ทมโลจกผดปกต• ในหวขอนจะพดถงวธการแกปญหาเหลานทงหมด

Page 73: Digital System Engineering

3.5.1 Dynamic Discipline• วงจร synchronous sequential เชน

Flip-Flop หรอ FSM มขอกำาหนดทางเวลาดงแสดงในรปดานขวามอ

• เมอเกดขอบขาขน สญญาณ Output จะเรมตน เปลยนคาหลงจาก Clock-to-Q Contamination

Delay (tccq) และจะไดคาสดทายทถกตอง ณ เวลาClock-to-Q Propagation Delay (tpcq)

• คา Delay 2 คานใชบอกคา Delay ทเรวทสดและชาทสด

• เพอใหวงจรสมสญญาณ Input ทถกตอง สญญาณInput จะตองมคาทถกตองเปนเวลา tsetup กอนขอบขา

ขน และตองคงคานนไปจนหลงจากขอบขาขนเปนเวลาthold

Page 74: Digital System Engineering

3.5.1 Dynamic Discipline• tsetup + thold เรยกวา Aperture Time• หลกการของ Dynamic Discipline กำาหนดวา

สญญาณ Input ของวงจร AsynchronousSequential จะตองมคาทเสถยรคงทในระหวาง

เวลา Setup และ Hold ของ Aperture Time

Page 75: Digital System Engineering

3.5.2 System Timing

• Clock Period หรอ Cycle Time (tc) คอเวลา ระหวางขอบขาขนของสญญาณ Clock 2 ลกทอยตด

กน• ความถของสญญาณ Clock สามารถคำานวณไดจาก 1/

tc• ถาความถ Clock เพมขนกจะทำาใหวงจร Sequential ทำางานไดเรวขน

• รป (a) แสดงเสนทางทวไปของวงจร Synchronous Sequential ทเราตองการคำานวณหา Clock Period

Page 76: Digital System Engineering

3.5.2 System Timing

• Register R1 จะสรางสญญาณ Output Q1 ตอน ขอบขาขนของ Clock

• Q1 ถกปอนใหวงจร Sequential ซงจะสรางสญญาณD2 ใหกบ Register R2

• Timing Diagram ในรป (b) แสดงใหเหนวาสญญาณQ1 จะคงทหลงจาก Contamination Delay Output

• Q1 ทคงทจะถกปอนใหกบวงจร Combinational และOutput D2 จะคงทหลงจากระยะเวลา Propagation Delay

Page 77: Digital System Engineering

3.5.2 System Timing

• ลกศรสเทาแสดง Contamination Delay ของ R1 และวงจร Combinational

• ลกศรสนำาเงนแสดง Propagation Delay ของ R1 และวงจร Combinational

Page 78: Digital System Engineering

3.5.2 System Timing : Setup Time Constraint• Timing Diagram ของรปดานขวา

มอแสดง Maximum Delay ซงแสดงโดยลกศรสนำาเงน

• เพอใหตรงตามเงอนไข Setup Time ของ R2 สญญาณ D2 จะตองมคา

คงทกอนเวลา Setup ของ Clock ลกตอไป

• ดงนนเราสามารถเขยนสมการสำาหรบClock Period ตำาสดไดดงนTc >= tpcq+tpd+tsetup

Page 79: Digital System Engineering

3.5.2 System Timing : Setup Time Constraint• ในทางการคา Clock Period ถกกำาหนดโดยหวหนา

วศวกร หรอแผนกการตลาด• นอกจากนคา tpcq และ tsetup ถกกำาหนดโดยโรงงาน• ดงนนเราสามารถแกสมการเพอหาคา Propagation

Delay สงสดของวงจร Combinational ซงสวนใหญจะเปนตวแปรเพยงตวเดยวทสามารถควบคมไดโดยวศวกรผออกแบบไดดงนtpd <= Tc-(tpcq+tsetup)

• tpcq+tsetup เรยกวาคา Sequencing Overhead• ในทางอดมคตคา tpd ควรจะเทากบ Tc• แตในทางปฏบตคาดงกลาวจะถกลดทอนลงไปโดย

Sequencing Overhead ของ Flip-Flop

Page 80: Digital System Engineering

3.5.2 System Timing : Setup Time Constraint• สมการของ tpd เรยกวา Setup Time Constraint

เพราะมนขนกบคา Setup Time ซงเปนตวจำากดคา สงสดของ tpd

• นอกจากนคา tpcq และ tsetup ถกกำาหนดโดยโรงงาน• ถา tpd มคามากเกนไป คา D2 จะไมคงทในเวลาท R2

ตองการสมคา ดงนน R2 กจะสมคาทไมถกตอง ทำาใหวงจรทำางานผดพลาด

• เราสามารถแกปญหาไดโดยการเพม Clock Period หรอออกแบบวงจร Combinational ใหมใหมคา

Propagation Delay นอยลง

Page 81: Digital System Engineering

3.5.2 System Timing : Hold Time Constraint• ในกรณของ Hold Time Constraint นน

สญญาณ D2 จะตองมคาคงทจนถงเวลา Thold หลงจากขอบขาขนของ Clock

• จาก Timing Diagram สญญาณ D2 อาจจะ เปลยนทนทหลงจาก tccq+tcd หลงจากขอบขาขน

ของสญญาณ clock.• ดงนนเราสามารถเขยนเปนสมการดงน

tccq+tcd>=thold

Page 82: Digital System Engineering

3.5.2 System Timing : Hold Time Constraint• เนองจาก tccq และ thold เปนคณสมบตของ

Flip-Flop ซงผออกแบบวงจรไมสามารถควบคมไดดงนนเขยนสมการใหมเพอหาคาContamination Delay จากวงจรCombinational ดงนtcd>=thold-tccq

• เราเรยกสมการดงกลาววา min-delayconstraint เนองจากมนกำาหนดคา Delay ตำาสดของ

วงจร Combinational

Page 83: Digital System Engineering

3.5.2 System Timing : Hold Time Constraint• โดยทวไปเราจะสนนษฐานวาโลจกเกทใดๆสามารถท

จะเชอมตอกนไดโดยไมมปญหาเรอง Timing• ตวอยางเชนเราคาดหวงวาเราสามารถตอ Flip-

Flop 2 ตวเขาดวยกนไดดงรปโดยไมมปญหาHold Time

• ตวอยางน tcd=0 เนองจากไมมวงจรCombinational ระหวาง Flip-Flop ทง 2

• ดงนนเราสามารถเขยนสมการไดดงนthold<=tccq

• ดงนน Flip-Flop ทดจะตองม Hold Time สน กวา Contamination Delay

Page 84: Digital System Engineering

3.5.2 System Timing : Hold Time Constraint• ปกต Flip-Flop จะถกออกแบบมาให thold=0 ดงนนถา

ไมมการกำาหนดคา thold กใหใช thold=0 และไมตอง พจารณา Hold Time Constraint

• แตถา thold!=0 จะตองแกปญหาโดยการเพมContamination Delay ของวงจร Combinational ซงจำาเปนจะตองออกแบบวงจรใหม

• ปญหาของ Hold Time Constraint แตกตางจากSetup Time Constraint ตรงทเราไมสามารถแก

ปญหาไดโดยการเปลยนคา Clock Period• การออกแบบวงจรเพอแกปญหา Hold Time

Constraint อาจจะใชเวลาหลายเดอนและใชเงนเปน จำานวนมาก ดงนนมนจงเปนปญหาทสำาคญมาก

Page 85: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• ปญหา Setup และ Hold Time Constraint เปนตว

กำาหนดคา Delay สงสดและตำาสดของวงจรCombinational ทอยระหวาง Flip-Flop

• ในปจจบนคา Minimum Delay จะถกออกแบบใหมคา เทากบ 0 ดงนนเราสามารถทจะตอ Flip-Flop 2 ตวเขา

ดวยกนไดอยางไมมปญหา• จำานวนเกทสงสดทสามารถนำามาตอเรยงกนใน Critical

Path ของวงจรความเรวสงถกกำาหนดโดย Maximum Delay Constraint เนองจากวงจรทใช Clock

ความถสงจะทำาให Clock Period สนลง

Page 86: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• ตวอยางท 3.9 Timing Analysis• กำาหนดให Flip-Flop มคา clock-to-Q

contamination delay เทากบ 30ps และ Propagation Delay เทากบ 80ps

และม Setup Time เทากบ 50ps และ Hold Time เทากบ 60ps

• โลจกเกททกตวมคา Propagation Delay เทากบ40ps และ Contamination Delay เทากบ 25psd

• จงหาคา Maximum Clock frequency และจะเกด Hold Time Violation หรอไม

Page 87: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• รป (a) แสดง waveform เมอสญญาณมการเปลยนแปลง

• สญญาณ A ถง D เปน Output ของ Register ดงนนพวกมนจง

เปลยนหลงจากขอบขาขนของClock ไมนาน

• Critical Path จะเกดขนเมอB=1, C=0, D=0 และ A

เปลยนจาก 0 เปน 1• ทำาให N1 และ X’ เปลยนจาก 0

เปน 1 และ Y’ เปลยนจาก 1 เปน0 ดงแสดงในรป (b)

Page 88: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• เสนทางนม Propagation

Delay ของเกท 3 ตว• สญญาณ Y’ จะตองเปลยนจาก 1

เปน 0 กอนขอบขาขนของ Clock ลกตอไป

• ดงนน Minimum Cycle Time คำานวณไดจากTc>=tpcq+3tpd+tsetup

=80+3*40+50=250ps• ดงนน Maximum Clock

Frequency เทากบ 1/Tc = 4GHz

Page 89: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• Short Path เกดขนเมอ A=0

และ C เปลยนจาก 0 เปน 1 ทำาใหX’ เปลยนจาก 0 เปน 1 ดงแสดง

ในรป (c)• ในกรณของ Short Path เรา

สมมตวา Output ของเกททกตว จะเปลยนหลงจาก

Contamination Delay• เนองจากเสนทางนมเกทเพยงตว

เดยวดงนน X’ จะเปลยนหลงจากtccq+tcd=30+25=55ps

Page 90: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• แตเนองจาก Flip-Flop มคา

Hold Time เทากบ 60ps หมายความวา X’ จะตองมคาคงท

เปนเวลา 60ps หลงจากขอบขา ขน เพอให Flip-Flop สมคาทถก

ตอง• ในกรณน X’=0 ทขอบขาขนของ

Clock ลกแรก ดงนนเราจง ตองการให Flip-Flop ทำาการสม

คา X=0• เนองจาก X’ ไมไดมคาคงทนานพอ

ดงนนคา X ทถกสมจงไมสามารถ คาดการณได ดงนนวงจรนจงเกด

Hold Time Violation• และอาจเกดความผดพลาดขนท

ความถ Clock เทาใดกได

Page 91: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• ตวอยางท 3.10 การแก Hold

Time Violation• เราสามารถแกปญหา Hold Time

Violation ของวงจรในตวอยางท 3.9 ไดโดยการใส Buffer เขาไป

เพอทำาให Short Path ชาลงดงแสดงในรป

• กำาหนดให Buffer มPropagation Delay เทากบเกทตวอนๆ

• เราสามารถหาคา Maximum Clock Frequency และตรวจสอบ

วาเกด Hold Time Violation ขนหรอไมดงตอไปน

Page 92: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• Timing Diagram แสดง

Waveform ของการเปลยนแปลงของสญญาณตางๆในวงจร

• Critical Path จาก A ไปยง Y ไมมการเปลยนแปลงเนองจากเปนเสน

ทางทไมไดใส Buffer เพมเขาไป• ดงนน Maximum Clock

Frequency ยงคงเปน 4 GHz เทาเดม

• แต Short Path ชาลงเนองจากContamination Delay ของBuffer

Page 93: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• ตอนน X’ จะไมเปลยนแปลงจนกระทงtccq+2tcd=30+2*25=80ps

• เวลาดงกลาวเกดหลงจาก 60ps ของ Hold Time has elapsed

ดงนนวงจรนจงทำางานไดถกตอง• ตวอยางนใชคา Hold Time ทไม

ถกตองเพอแสดงถงปญหาของHold Time

• Flip-Flop สวนใหญจะถกออกแบบ ให thold<tccq เพอหลกเลยงปญหา

Hold Time

Page 94: Digital System Engineering

3.5.2 System Timing : รวมทกอยางเขาดวยกน• แตใน Microprocessor หลายตวซงรวมถง Pentium

4 จะใชอปกรณทเรยกวา Pulsed Latch แทนการใชFlip-Flop

• Pulsed Latch ทำางานคลายกบ Flip-Flop แตมClock-To-Q ทสนและมคา Hold Time ทยาว

• โดยปกตเราสามารถแกปญหาไดโดยการเพม Flip-Flop• แตสวนใหญแลวการแกปญหา Hold Time จะทำาให

Critical Path ชาลงซงจะทำาให Maximum Clock Frequency ลดลงเชนกน

Page 95: Digital System Engineering

3.5.3 Clock Skew• ในการวเคราะหกอนหนานเราสมมตฐานวาสญญาณ

Clock มาถง Register ทกตวพรอมกน แตในทาง ปฏบต Register แตละตวจะไดรบสญญาณ Clock ไม

พรอมกน• ตวอยางเชนสายสญญาณ Clock ทตอกบ Register

แตละตวยาวไมเทากนทำาใหสญญาณ Clock เกดการDelay ทไมเทากน

• การทสญญาณ Clock ถกจายใหกบเกทกอนทจะจายให กบ Flip-Flop ดงในหวขอท 3.5.2 กทำาใหเกดการ

Delay ได ดงนนถา Flip-Flop บางตวมการตอเกทตรง ขา Clock และบางตวไมไดตอเกท กจะทำาใหเกดการ

Delay ไมเทากนได• เราเรยกการเหตการณนวา Clock Skew

Page 96: Digital System Engineering

3.5.3 Clock Skew

• จากรปตวอยางจะเหนวา Clk2 มากอน Clk1 เนองจาก สายของสญญาณ Clock ยาวไมเทากน

• ถามการออกแบบสายของ Clk1 ใหมกอาจจะทำาให Clk1 มาถงกอน Clk2 ได

• ในการวเคราะห Timing เราจะพจารณากรณทแยทสดเพอรบประกนวาวงจรยงคงทำางานไดในกรณทแยทสด

Page 97: Digital System Engineering

3.5.3 Clock Skew

• รปดานบนเปน Timing Diagram ของวงจรSequential ทรวม Clock Skew เขาไปดวย

• เสนทบแสดง Clock ทชาทสดทอาจจะมาถง Register ตวใดกได

• เสนบางแสดง Clock ทอาจจะมาถง Register ณ เวลา ใดกไดในชวงเวลา tskew

Page 98: Digital System Engineering

3.5.3 Clock Skew• เรมจากพจารณา Setup Time Constraint• ในกรณทแยทสด R1 ไดรบ Clock ลกทชาทสด

กำาหนดใหเปน Clk1 แต R2 ไดรบ Clock ลก ทเรวทสด กำาหนดใหเปน Clk2

• ทำาใหเหลอเวลานอยทสดทขอมลสามารถทจะจากR1 ไปยง R2

• ขอมลสงผานจาก R1 ไปยงวงจร Combinational และ ตองถง R2 กอนเวลา Setup

Page 99: Digital System Engineering

3.5.3 Clock Skew• ดงนนจงสรปไดวา

Tc>=tpcq+tpd+tsetup+tskew

tpd<=Tc-(tpcq+tsetup+tskew)

Page 100: Digital System Engineering

3.5.3 Clock Skew• จากนนพจารณา Hold Time Constraint• ในกรณทแยทสดคอ R1 ไดรบ Clock ลกทเรวท

สด แต R2 ไดรบลกทชาทสด• ขอมลทสงผาน Register และวงจร

Combinational จะตองมาถง Register หลงจากเวลา Hold Time ของ Clock ลกท

ชาทสด• เราสามารถเขยนเปนสมการไดดงน

tccq+tcd>=thold+tskew

tcd>=thold+tskew-tccq

Page 101: Digital System Engineering

3.5.3 Clock Skew• จะเหนไดวา Clock Skew จะทำาใหระยะเวลาของ Setup

Time และ Hold Time เพมขน• ระยะเวลา Setup Time ทเพมขนจะทำาใหเวลาการ

ทำางานของวงจร Combinational สนลง• ระยะเวลา Hold Time ทเพมขนจะทำาใหคา Delay ตำา

สดของวงจร Combinational เพมขน• ถงแมวาคา thold ของ Flip-Flop ทเลอกใชมคาเทากบ 0

กตาม แตถา tskew>tccq อาจจะทำาใหเกดปญหาเวลาเอาFlip-Flop 2 ตวมาตอเขาดวยกนได

• เพอไมเกดปญหามาเกนไป ผออกแบบจะตองปองกนไมให คา Clock Skew มากเกนไป

Page 102: Digital System Engineering

3.5.3 Clock Skew• ตวอยางท 3.11 จากวงจรในตวอยางท 3.9 จง

หาคาความถสงสด และตรวจสอบวาเกด HoldTime Violation หรอไม กำาหนดใหคาClock Skew เทากบ 50ps

• Clock Skew ไมทำาให Critical Path เปลยน แตจะทำาให Setup Time เพมขน ดงนน

Tc>=tpcq+3tpd+tsetup+tskew

= 80+3*40+50+50=300ps• ดงนนความถสงสดคอ fc=1/Tc=3.33 GHz

Page 103: Digital System Engineering

3.5.3 Clock Skew• Clock Skew จะทำาใหคา Hold Time

เพมขน เทากบ 60+50=110ps• Clock Skew ไมทำาให Critical Path

เปลยน แตจะทำาให Setup Time เพมขน ดงนนTc>=tpcq+3tpd+tsetup+tskew

= 80+3*40+50+50=300ps• ดงนนความถสงสดคอ fc=1/Tc=3.33 GHz• Short Path ยงคงมคาเทาเดมคอ 55ps • ดงนนคา Hold Time เพมขนเทากบ 60+500 =

110ps ซงมคามากกวา 55ps มาก ดงนนวงจรจงม ปญหาเรอง Hold Time Violation

Page 104: Digital System Engineering

3.5.4 Metastability• เมอมการตดตอกบผใช มนไมสามารถรบ

ประกนไดสญญาณ Input ของวงจรSequential จะมคาคงททชวงเวลาAperture Time

• จากวงจรตวอยาง เมอไมมการกดปม D=0 และเมอกดปม D=1

• เนองจากผใชอาจจะกดปมทเวลาใดกได ดง นนสถานการณทเปนไปได 3 อยางคอ

• Case I ผใชกดปมกอนขอบขาขน ดงนนQ=1

• Case II ผใชกดปมหลงจากขอบขาขน ดง นน Q=0

• Case III ผใชกดปมระหวาง tsetup ถง thold ทำาใหคา Q ไมแนนอน

Page 105: Digital System Engineering

3.5.4 Metastability• Metast ในทางปฏบตเมอ Flip-Flop ทำาการสม

สญญาณ Input ทมการเปลยนแปลงคาระหวางเวลาAperture Time จะทำาให Q มแรงดนระหวาง 0 และVDD ซงอยในชวง Forbidden Zone อยชวขณะ

• เราเรยกสถานะของ Q แบบนวา Metastability State• และ Q จะเปลยนเปนโลจก 0 หรอ 1 (Stable State) ในทสด

• ระยะเวลาท Q ใชเปลยนเปน Stable State เรยกวาResolution Time

Page 106: Digital System Engineering

3.5.4 Metastability• Resolution Time• ถา Input ของ Flip-Flop มการเปลยนคา ณ เวลาใด

กไดระหวาง Clock Cycle จะทำาให Resolution Time (tres) มคาไมแนนอน

• ถา Input เปลยนภายนอกเวลา Aperture Time จะ ทำาให tres=tpcq

• แตถาภายในเวลา Aperture Time จะทำาให tres ใชเวลานานมากขนมาก

• จากทฤษฎและการทดลองแสดงใหเหนวาคาความนาจะ เปนท tres จะมคามากกวาเวลา t จะลดลงแบบ

Exponential ตามเวลา tP(tres>t) = T0/Tc e-t/t

โดยท Tc เปน Clock Period และ T0 และ t เปน คณสมบตของ Flip-Flop

• สมการนจะใชไดกตอเมอ t มคามากกวา tpcq มากๆ

Page 107: Digital System Engineering

3.5.4 Metastability• จากสมการจะเหนไดวาคา T0/Tc เปนตวกำาหนดคาความ

นาจะเปนท Input จะเปลยนคาภายในเวลา Aperture Time

• คาความนาจะเปนนจะลดลงถา Clok Period Tc เพมขน• t เปนคา Time Constant ใชกำาหนดความเรวท Flip-

Flop จะออกจาก Metastability State• คาของ t ขนกบคา Delay ของ Gate ทอยใน Flip-

Flop

Page 108: Digital System Engineering

3.5.4 Metastability• สรปคอถา Input ขอวงจร Bistable อยางเชน Flip-

Flop มการเปลยนแปลงในชวง Aperture Time จะ ทำาให Output อยในสถานะ Metastabilit State เปน

เวลานาน กอนทจะกลบไปเปน Stable State• เราไมสามารถบอกคาสงสดของ tres วาเปนเทาใด• แตคาความนาจะเปนทจะเกด tres มคาสง จะลดลงแบบ

Exponential• ดงนนถาเรารอจนนานกวาเวลา tpcq กมความเปนไปไดสง

ท Output ของ Flip-Flop จะเขาส Stable State

Page 109: Digital System Engineering

3.5.5 Synchronizers• การรบสญญาณ Input จากภายนอกเชนผใช เปนสงท

หลกเลยงไมได และสญญาณเหลานจะเปนสญญาณแบบAsynchronous เสมอ

• ถาวงจร Sequential ไมสามารถจดการกบสญญาณเหลานอยางถกตองจะทำาใหแรงดนของสญญาณภายใน

วงจรอยในสถานะ Metastability State และทำาใหการทำางานของวงจรผดพลาดได

• ผออกแบบวงจรจะตองออกแบบวงจรใหมความเปนไปได นอยทสดทวงจรจะเขาสสถานะ Metastability State

เมอวงจรไดรบสญญาณ Input แบบAsynchronous จากภายนอก

• การลดคาความเปนไปไดจะขนกบลกษณะของการนำาไปใช งาน เชนผใชสามารถยอมรบไดถาโทรศพทมอถอทำางาน

ผดพลาด 1 ครงใน 10 ป เพราะปกตผใชจะปดโทรศพทและเปดใหมถาโทรศพทมปญหา

Page 110: Digital System Engineering

3.5.5 Synchronizers• แตสำาหรบเครองมอแพทยซงมความสำาคญมากตอชวต

มนษย เราอาจจะยอมรบใหมโอกาสทจะเกดความผด พลาด 1 ครงทเวลา 1010 ป

• เพอปองกนไมใหวงจรทำางานผดพลาด จะตองปอนInput แบบ Asynchronous ทกสญญาณผานวงจรSynchronizer เพอใหสญญาณมโลจกทถกตอง

Page 111: Digital System Engineering

3.5.5 Synchronizers• วงจร Synchronizer มสญญาณ Input อย 2

สญญาณคอ สญญาณ Input D ซงเปนสญญาณแบ บ Asynchronous และ Clock

• วงจร Synchronizer จะสรางสญญาณ Output Q ทมโลจกทถกตองภายในระยะเวลาทจำากด

• ถา D มคาคงทในระหวาง Aperture Time จะทำาให Q มโลจกตรงกบโลจกของ D

• แตถา D มคาไมคงทในระหวาง Aperture Time โลจก ของ Q อาจจะเปน 0 หรอ 1 กได

Page 112: Digital System Engineering

3.5.5 Synchronizers• เราสามารถสรางวงจร Synchronizer แบบ

งายๆโดยใช Flip-Flop 2 ตว• F1 จะสม D ตอนขอบขาขนของ Clk• ถา D มคาไมคงทจะทำาให D2 มสถานะ

Metastability State ชวขณะ• ถา Clock Period นานพอ จะทำาใหมความ

เปนไปไดสงท D2 จะมสถานะ StableState กอนจบ Clock Period

• จากนน F2 กจะสม D2 ทมสถานะ Stable ทำาใหโลจก ของ Q คงท

Page 113: Digital System Engineering

3.5.5 Synchronizers• ถา Q มสถานะ Metastability State แสดงวาวงจร

Synchronizer ทำางานผดพลาด• วงจรจะทำางานผดพลาดไดในกรณท D2 ไมไดมสถานะ

คงท กอนเวลา Setup ของ F2 นนคอคา tres>Tc-tsetup• เราสามารถคำานวณหาความเปนไปไดทวงจรทำางานผดพลาดไดจากP(failure) = T0/Tc e-(Tc-tsetup)/t

• สมการนใชคำานวณหาคาความเปนไปไดทจะทำางานผด พลาดในกรณท D มการเปลยนคาเพยงครงเดยว

• แตถา D มการเปลยนคา N ครงตอวนาท ความนาจะเปน ทวงจรจะทำางานผดพลาดใน 1 วนาทคอ

P(failure)/sec = N*T0/Tc e-(Tc-tsetup)/t

Page 114: Digital System Engineering

3.5.5 Synchronizers• ความนาเชอถอ (Reliability) ของวงจรวดจากคา

Mean Time between failure (MTBF)MTBF = 1/P(failure)/sec = T0*eTc-tsetup/t/(N*T0)

• สมการแสดงใหเหนวาคา MTBF เพมขนแบบExponential เมอเราเพมคา Tc

Page 115: Digital System Engineering

3.5.5 Synchronizers• ตวอยางท 3.13 วงจร Synchronizer สำาหรบวงจร

FSM• จากตวอยางวงจรควบคมไฟจราจร วงจรจะไดรบ

สญญาณ Input แบบ Asynchronous จาก Sensor ทอยบนถนน

• ถาวงจร Synchronizer ถกใสเขาไปเพอใหวงจรควบคมไฟจราจรทำางานไดอยางถกตอง

• สมมตใหสญญาณ Input ถกปอนใหวงจรเปนจำานวน0.2 ครงตอวนาท และ Flip-Flop ของวงจรควบคมไฟ

จราจรมคณสมบตดงตอไปน t=200ps, T0=150ps และ tsetup=500ps จงคำานวณหา Clock Period ของ

วงจร Synchronizer เพอใหคา MTBF มคาเกน 1 ป

Page 116: Digital System Engineering

3.5.5 Synchronizers• เนองจาก 1 ปมคาประมาณ p*107 วนาท ดงนน

• เราสามารถคำานวณหาคาของ Tc ไดโดยใชวธทางNumerical ซงจะไดคาประมาณ Tc=3.036 ns

12

12500 10200 10

71210

0.2 150 10

cT

cT ep

Page 117: Digital System Engineering

3.6 Parallelism• เราสามารถวดความเรวของวงจรดจตอลไดจากคา

Latency และ Throughput ของ Token• Token หมายถงกลมของ Input ทถกปอนใหวงจรเพอ

ใหได Output ออกมา• Latency หมายถงระยะเวลาท Token 1 อนถกสงผาน

วงจรจนได Output ออกมา• Throughput หมายถงปรมาณ Token ทงหมดใน 1 หนวยเวลา

Page 118: Digital System Engineering

3.6 Parallelism• ตวอยางท 3.14 Throughput และ Latency ของ

รานคกก การทำาคกกประกอบดวย 2 ขนตอนคอ การ คลงคกกซงใชเวลา 5 นาท จากนนจงวางคกกในถาด และ

นำาไปอบคกกซงใชเวลา 15 นาท เนองจากเจาของราน คกกมถาดและเตาอบเพยงอยางละ 1 ดงนนเขาจงตอง

รอใหอบคกกได 1 ถาดแลวจงสามารถทำาคกกถาดตอไป จงคำานวณ Latency และ Throughput ของการทำา

คกก• ในตวอยางน Token คอคกก 1 ถาด Latency คอระยะ

เวลาในการทำาคกก 1 ถาด ซงคอ 1/3 ชวโมง• Throughput ของการทำาคกกคอจำานวนถาดคกกท

ทำาไดใน 1 ชวโมง ซงจะได 3 ถาดตอชวโมง

Page 119: Digital System Engineering

3.6 Parallelism• เราสามารถเพม Throughput ไดโดยการประมวลผล

Token หลายๆอนพรอมๆกน• เราเรยกการทำางานแบบนวาการทำางานแบบขนาน

(parallelism) ซงสามารถทำาได 2 วธคอ1. Spatial Parallelism เปนการใสวงจรหลายๆวงจร

เขาไปเพอใหสามารถประมวลผล Token หลายๆอนไดพรอมกนในเวลาเดยวกน

2. Temporal Parallelism เปนการแบง Token ออก เปนหลายๆ สวน(Stage) คลายกบสายการผลต ยก

ตวอยางเชนแบงการประมวลผลออกเปน 6 สวน ถง แมวา Token ทกอนจะตองถกประมวลผลทง 6 สวน

แตเนองจากแตละสวนการประมวลผลสามารถทำางานได พรอมกน ดงนนเราสามารถประมวผล Token ไดพรอม

กน 6 อน

Page 120: Digital System Engineering

3.6 Parallelism• ตวอยางท 3.15 การทำาคกกแบบขนาน• ถาเจาของรานตองการทำาคกกใหเรวขน เขาอาจจะเลอกได

2 วธคอ1. วธ Spatial Parallelism เขาขอใหเพอนทมถาดและ

เตาอบมาชวยทำาคกก2. วธ Temporal Parallelism เขาซอถาดเพมอก 1

ถาด ดงนนในระหวางทรออบคกก เขาสามารถทจะคลงคกกของถาดตอไปไดทนท

• คา Latency และ Throughput ของวธ Spatial Parallelism, Temporal Parallelism และใชทง 2

วธพรอมกน

Page 121: Digital System Engineering

3.6 Parallelism

• Latency คอระยะเวลาทใชอบคกก 1 ถาด ซงไมวาจะใช วธแบบ Spatial หรอ Temporal หรอทง 2 วธพรอม

กน คา Latency ของการทำาคกก 1 ถาดคอ 1/3 ชวโมง

• Throughput คอจำานวนถาดคกกททำาไดใน 1 ชวโมง ถาเจาของรานเลอกวธ Spatial Parallelism ซงเขา

และเพอนชวยกนทำาคกก ดงนน Throughput ของวธน คอ 6 ถาดตอชวโมง

Page 122: Digital System Engineering

3.6 Parallelism

• ถาใชวธ Temporal Parallelism เจาของรานจะใสคกก ถาดใหมในเตาอบทกๆ 15 นาท ดงนนใน 1 ชวโมงเขาจะ

อบคกกได 4 ถาด• ถาเขาและเพอนใชวธ Spatial และ Temporal

Parallelism พรอมกน เขาจะทำาคกกได 8 ถาดตอชวโมง

Page 123: Digital System Engineering

3.6 Parallelism• จงพจารณางานทมคา Latency เทากบ L ในระบบทไม

ไดทำางานแบบขนาน คา Throughput เทากบ 1/L• ในระบบททำางานแบบ Spatial Parallelism ทมวงจร

ทงหมด N วงจรทำางานพรอมกน จะไดคา Throughput เทากบ N/L

• ในระบบททำางานแบบ Temporal Parallelism ทวงจร สามารถแบงออกเปนทงหมด N สวนโดยทแตละสวนใช

เวลาในการทำางานเทากน คา Throughput จะเทากบN/L และใชเพยงแควงจรเดยวเทานน

• แตเนองจากในความเปนจรงมนยากทจะแบงวงจรออก เปนหลายๆสวนทใชเวลาในการทำางานเทากน และสวนท

ทำางานนานทสดใชเวลาเทากบ L1 ดงนนคาThroughput เทากบ 1/L1

Page 124: Digital System Engineering

3.6 Parallelism• ในทางปฏบตเรานยมใชการทำางานแบบ Temporal

Parallelism มากกวาเนองจากสามารถเพมคาThroughput ใหมากขนโดยใชวงจรเพยงชดเดยวเทานน

• การออกแบบวงจร Sequential ททำางานแบบTemporal Parallelism สามารถทำาไดโดยการแบง

วงจร Combinational ออกเปน N สวน• แตละสวนจะเชอมตอกนผาน Register• เนองจากแตละสวนมวงจรขนาดเลกลง ดงนนคา tpd

ของแตละวงจรจงนอยลงทำาใหใชสญญาณ Clock ทมความถมากขนได

• Register ทำาหนาทปองกนไมให Token ของวงจรCombinational ไปรบกวน Token ของวงจรCombinational ถดไป

Page 125: Digital System Engineering

3.6 Parallelism• วงจร Sequential ตวอยางเปนวงจรทไมไดออกแบบใหทำางาน

แบบ Parallelism• โดยประกอบดวยวงจร

Combinational ทงหมด 4 วงจร Critical คอเสน ทางทผานวงจรท 2, 3, และ 4 สมมตวา Register ทใช

มคา tpcq=0.3ns และ tsetup=0.2ns• ดงนน Tc=0.3+3+2+4+0.2=9.5ns• วงจรนมคา Latency=9.5ns• มคา Throughput=1/9.5ns=105MHz

Page 126: Digital System Engineering

3.6 Parallelism• ทำาการดดแปลงวงจรเดมใหมการ

ทำางานแบบ Parallelism โดย แบงวงจรออกเปน 2 สวน ดงรป

• วงจรสวนแรกมคาTc=0.3+3+2+0.2=5.5ns

• และวงจรสวนท 2 มคา Tc=0.3+4+0.2=4.5ns• เนองจาก Clock จะตองชาพอทจะทำาใหวงจรทกสวน

ทำางานได ดงนน Tc ของวงจร Sequential คอ 5.5ns• คา Latency เทากบ 2 Clock หรอ 11ns• และ Throughput เทากบ 1/5.5ns = 182MHz

Page 127: Digital System Engineering

3.6 Parallelism• ถาแบงวงจรเดมออกเปน 3 สวนดงรป

• Tc ของวงจร Sequential เทากบ 4.5ns

• Latency เทากบ 3 Clock หรอ 13.5ns• Throughput=1/4.5ns = 222MHz• จากตวอยางทง 2 จะเหนวาการแบงวงจร Sequential

ออกเปนหลายๆสวนจะทำาใหคา Latency เพมขน แตจะ ทำาใหคา Throughput เพมขน

Page 128: Digital System Engineering

3.6 Parallelism• ในทางปฏบตเราไมสามารถแบงวงจร Sequential ออกเปนหลายๆสวนไดเสมอไป

• เชนถาวงจร Sequential มการทำางานทขนกบOutput ของการทำางานกอนหนาน แทนทจะขนกบOutput แตละสวนของการทำางานปจจบน

• ตวอยางเชนถาเจาของรานไมสามารถทำาคกกแบบขนาน ได ถาเขาตองการชมรสชาตของคกกทอบเสรจแลว เพอ

จะไดปรบปรงรสชาตของคกกในครงถดไป