digital system engineering
DESCRIPTION
Digital System Engineering. บทที่ 3. Sequential Logic Design. สัญญาณ Output ของ Sequential Logic จะขึ้นกับข้อมูลในปัจจุบันและอดีตที่ป้อนให้กับวงจร ดังนั้น Sequential Logic จึงเป็นวงจรที่มีความจำ Sequential Logic อาจจะนำเอาข้อมูลในอดีตทั้งหมดมาใช้ร่วมกัน - PowerPoint PPT PresentationTRANSCRIPT
Digital System Engineering
บทท 3.Sequential Logic Design
• สญญาณ Output ของ Sequential Logic จะขนกบขอมลในปจจบนและอดตทปอนใหกบวงจร
• ดงนน Sequential Logic จงเปนวงจรทมความจำา• Sequential Logic อาจจะนำาเอาขอมลในอดตทงหมดมาใชรวมกน
• หรออาจจะแบงขอมลในอดตออกเปนขอมลขนาดเลก หลายๆขอมล ทเรยกวา State
• State ในวงจรดจตอลคอเซทของขอมล เรยกวา State Variable ซงเอาไวใชกำาหนดคาของสญญาณ Output ในอนาคต
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
3.2 LATCHES และ FLIP-FLOPS
• อปกรณทม N Stable State จะมขาวสารทงหมดlog2N bits
• เราสามารถใช Bistable ในการเกบขอมลแตละบท• ขอมลทกอยางจะถกเกบไวใน Q ถาในอดต Q=0 มนจะม
คาเปน 0 ไปตลอด หรอถามนเคยมคาเปน 1 มนจะมคา เปน 1 ไปตลอด
• สวน /Q จะมคาตรงกนขามกบ Q เสมอ ดงนน /Q จงไมไดเกบขาวสารใดๆ
3.2 LATCHES และ FLIP-FLOPS• ปญหาของการใชวงจร Cross-Coupled Inverter
คอตอนทจายไฟใหกบวงจร เราไมสามารถทำานายไดวา สถานะของ Q และ /Q จะเปนเชนไร มนจะเปลยนคาไป
เรอยๆ เมอมการเปดเครองครงตอไป• ถงแมวา Cross-Coupled Inverter จะสามารถเกบ
บทของขาวสารได แตเนองจากมนไมมสญญาณ Input ทำาใหผใชไมสามารถปอนขาวสารทตองการเกบเขาไปในวงจรได
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
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
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
3.2.2 D Latch
• ปญหาของ RS Latch คอเราไมสามารถควบคมวาจะใหQ ของ RS Latch เปลยนคาเมอไหร
• D Latch ถกออกแบบมาใหสามารถเปลยนคาของ Q ได เฉพาะตอนท Clk = 1 และคาของ Q = D
• ถา Clk=0 คาของ Q จะคงโลจกเดมไว
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
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
3.2.4 Register• N bit Register เปนการนำาเอา
D Flip-Flop จำานวน N ตวมา ตอขา Clk รวมกน
3.2.5 Enable Flip-Flop
• En=0 D Flip-Flop จะไมสามารถ Latch ขอมลได• En=1 D Flip-Flop สามารถ Latch ขอมลได
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
Timing Diagram ของ D Latch และ D Flip-Flop
3.3 Synchronous Logic Design3.3.1 วงจรทมปญหาบางวงจร• Astable Circuit
โลจกของ X, Y, Z มคาไมเสถยร (Unstable) หรอเรา เรยกวา Astable
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
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
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 ของแตละเสนทางเปลยนไป ดงนนการทำางานของวงจรจงขนกบอณหภมดวย
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 ทถกตองเสมอ
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
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
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
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
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 มการเปลยนแปลง
3.3.2 Synchronous Sequential Circuit• และเวลา Setup (tsetup) และ Hold (thold) คอ
เวลาทสญญาณ Input จะตองคงทเมอเปรยบเทยบกบ เวลาทจะตองปอนขอบขาขนของสญญาณ Clock
3.3.2 Synchronous Sequential Circuit• กฎของการออกแบบวงจร Synchronous
Sequential คอ• วงจรจะตองประกอบดวย Register และวงจร
Combinational• จะตองม Register อยางนอย 1 ตว• Register ทกตวจะตองใชสญญาณ Clock ตวเดยวกน• Cyclic Path ทกเสนทางจะตองม Register อยางนอย
1 ตว• วงจร Sequential ทไมไดทำางานแบบ Synchronous
จะเรยกวาวงจร Asynchronous Sequential
3.3.3 วงจร Sequential แบบSynchronous และแบบ Asynchronous• วงจร Synchronous Sequential ออกแบบไดงาย
กวาวงจร Asynchronous Sequential• แตวงจร Synchronous Sequential ยงมความ
จำาเปนในบางกรณเชนในกรณทมการสอสารระหวางวงจรSequential 2 วงจรทใช Clock คนละตว หรอใชความถคนละความถเปนตน
3.4 Finite State Machines
• วงจร Synchronous Sequential สามารถเขยนอย ในรปของ Finite State Machine (FSM) ดงแสดง
ในรป• FSM ประกอบดวย
• Register จำานวน k ตวซงทำาใหม State ทงหมด 2k state
• Input จำานวน M ตว• Output จำานวน N ตว
3.4 Finite State Machines
• สญญาณ Clock• และบางวงจรอาจจะมสญญาณ Reset
• FSM สามารถแบงออกเปน 2 ชนดคอ• Moore Machine สญญาณ Output จะขนกบคา
Current State เทานน• Mealy Machine สญญาณ Output จะขนกบคา
Current State และสญญาณ Input
3.4.1 ตวอยางการออกแบบ FSM• จงพจารณาการออกแบบ FSM เพอควบคมไฟจราจร• ในการออกแบบวงจรควบคมไฟ
จราจรมการตดตง Sensor TA บนถนน Academic และ TB บน
ถนน Bravado• Output ของ Sensor จะเปน
TRUE ถามรถบนถนน และFALSE ถาไมมรถ
• สญญาณไฟจราจร LA และ LB โดยสามารถควบคมใหมนเปนไฟส
แดง เหลอง และเขยวได
3.4.1 ตวอยางการออกแบบ FSM
• วงจรควบคมสญญาณไฟจราจร สามารถเขยนเปน Block Diagram
ไดดงรป• โดยกำาหนให
• Clk แตละลกหางกน 5 วนาท• ทขอบขาขนของ Clk แตละลก สของ
สญญาณไฟจราจร LA และ LB จะ เปลยนไปตามคา TA และ TB ทวดได
• สญญาณ Reset เอาไวใชกำาหนดคาเรมตนของวงจรควบคม
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)
3.4.1 ตวอยางการออกแบบ FSM• จากนนถามรถบนถนน Bravado สญญาณไฟจะไมเปลยน
• แตถาไมมรถบนถนน Bravado จะใหLA แดงและ LB เหลอง (S3) 5 วนาท
• จากนนจะให LA เขยวและ LB แดง(S1)
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
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
3.4.1 ตวอยางการออกแบบ FSM• ในทำานองเดยวกนเราสามารถสรางตารางความสมพนธ
ระหวาง State และสญญาณ ไฟจราจร LA และ LB ไดดง
ตารางท 3.5• และเขยนสมการบลนไดดงน
LA1=S1
LA0=/S1S0
LB1=/S1
LB0=S1S0
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
3.4.1 ตวอยางการออกแบบ FSM
• จากนนจงเขยนวงจรของ Next State จากสมการบล นของ S’1 และ S’0
3.4.1 ตวอยางการออกแบบ FSM
• สดทายเขยนวงจรสรางสญญาณ Output จากสมการบ ลนของ LA1, LA0, LB1, LB0
3.4.1 ตวอยางการออกแบบ FSM
• Timing Diagram ของวงจรควบคมไฟจราจร
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
3.4.2 State Encoding• จะเหนไดวาการเขารหสแบบ One Hot จะใช Register
มากกวาการเขารหสเลขฐาน 2 แตขอดของการเขารหส แบบ One Hot คอการออกแบบวงจร Next State
และ Output จะงายกวาและใชอปกรณนอยกวาการเขา รหสเลขฐาน 2
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
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
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
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
3.4.3 Moore และ Mealy Machine• เนองจาก Output ของ Moore Machine จะขนกบคา
ของ Current State เทานน ดงนนใน State Transition Diagram จงเขยน Output ไวในวงกลม
ของ State• แตเนองจาก Output ของ Mealy Machine จะขนกบ
คาของ Current State และ Input ดงนน Output จงถกเขยนไวตรงลกศร
3.4.3 Moore และ Mealy Machine• ตวอยางการออกแบบวงจร Sequential
แบบ Mealy Machine• หนยนตหอยทากตวหนงถกออกแบบให
คลานอยบนเทปกระดาษจากซายไปขวา โดยในทกๆ 1 Clock หนยนตจะอาน
ขอมล 0 หรอ 1 ทอยบนเทป• หนยนตจะยมเมอขอมลทอาน 4 bit
สดทายโดยอานจากซายไปขวาเปน 1101• กำาหนดให A เปนขอมล Input ทอานไดจากเทปกระดาษ
• Y เปน Output เพอสงใหหนยนตยม ม คาเปน TRUE ถาตองการใหยมและ
FALSE ถาไมตองการ
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
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
3.4.3 Moore และ Mealy Machine
• วงจรควบคมหนยนตหอยทากออกแบบโดยใช Moore Machine
3.4.3 Moore และ Mealy Machine• เราสามารถออกแบบ
State Transition Diagram ของ Mealy Machine ไดดงรป
• บนลกศรแตละเสนมคา ของ A/Y โดยท A เปน
Input ททำาใหเกดการเปนState และ Y คอคาOutput
• ตารางรวมของ State Transition และOutput สามารถแสดงได
ดงตารางท 3.15
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
3.4.3 Moore และ Mealy Machine
• วงจรควบคมหนยนตหอยทากออกแบบโดยใช Mealy Machine
3.43 Moore และ Mealy Machine
• Timing diagram ของ Moore และ Mealy machine แสดงไดดงรป
3.43 Moore และ Mealy Machine
• จากรปจะเหนวาสญญาณ Output ของ Mealy เกด กอนของ Moore เนองจากมนตอบสนองตอสญญาณ
Input มากกวารอการเปลยน State
3.43 Moore และ Mealy Machine
• ถา Output ของ Mealy โดยใช flip-flop มนจะตรง กบ Output ของ Moore
• ดงนนการเลอกชนดของ FSM ใหพจารณาวาตองการให สญญาณ Output ตอบสนองตอการเปลยน State
หรอสญญาณ Input
3 .4.4 Factoring State Machines• ในระบบ FSM ทมความซบซอนเราสามารถทำาใหการ
ออกแบบไดงายขน ไดโดยการแบงเปนหลายๆวงจรททำางานรวมกน
• โดยการตอ Output เขากบ Input ของวงจรถดไป• การออกแบบลกษณะนเรยกวาการทำา Factoring ของ
วงจร State Machine
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 จะเปนสเขยวไปจนกวาจะออกจากโหมดพาเหรด
3 .4.4 Factoring State Machines• เรมจากการเขยน Block Diagram
สำาหรบ FSM วงจรเดยว ดงแสดงในรป(a)
• จากนนจงเขยน Block Diagram สำาหรบ FSM 2 วงจรดงแสดงในรป (b)
• วงจร Mode FSM จะสงสญญาณ M เมอมนอยในโหมดพาเหรด
• วงจร Light FSM จะควบคมไฟจราจรโดย ขนกบสญญาณ M และสญญาณจาก
เซนเซอร TA และ TB
3 .4.4 Factoring State Machines
• State Transition Diagram ของวงจรควบคมแบบSingle FSM
• S0 ถง S3 เปน State ของโหมดปกต และ S4 ถง S7 เปนโหมดพาเหรด
3 .4.4 Factoring State Machines
• จะเหนไดวา State Transition Diagram ของทง 2 สวนคลายกนมาก
• แตในโหมดพาเหรด FSM จะอยใน S6 เพอทำาใหไฟบน ถนน Bravado เปนสเขยว
3 .4.4 Factoring State Machines
• สญญาณ P และ R เปนตวควบคมการยายจากโหมดปกตไปโหมดพาเหรด
• การออกแบบวงจร FSM แบบ Single จะยงยากมาก
3 .4.4 Factoring State Machines• รปดานขวามอแสดงการทำา
Factored FSM• Mode FSM ม 2 State ในการตรวจสอบวาสญญาณไฟอยในโหมดปกตหรอโหมดพาเหรด
• Light FSM ถกดดแปลงใหอยใน S2 ในขณะท M เปน TRUE
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
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
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
3.5 Timing ของ Sequential Logic• เราเรยกกระบวนการท Flip-Flop กอปปอนพท D ไปยง
เอาทพท Q ทขอบขาขนของ Clock วาการสมสญญาณD ทขอบของ Clock
• ถา D มโลจกคงทท 0 หรอ 1 เมอตอนขอบขาขนของClock เราสามารถบอกไดวาโลจกของ Q จะเปนคาอะไร
• แตถา D มการเปลยนแปลงในเมอตอนขอบขาขนของClock จะเกดอะไรขน
• สถานการณนจะคลายกบการถายรปกบกำาลงกระโดดลงสระนำา
• ถาเราถายรปกอนทกบจะกระโดด เราจะไดรปกบบนขอบสระ
• แตถาเราถายรปกบหลงจากกระโดด เราจะเหนเพยงแคนำาในสระทกระเพอม
• แตถาเราถายรปขณะทกบกำาลงกระโดด เราจะเหนภาพเบลอของกบทกำาลงกระโดดลงสระนำา
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
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 ใหมากขน
3.5 Timing ของ Sequential Logic• ในการใชงานจรงสถานการณอาจจะยงยากมากขนยกตวอยางเชน
• พจารณาวงจร Sequential ทไดรบสญญาณ Input จากปมกด
• มความเปนไปไดทผใชอาจจะกดปมตอนท Clock เปนขอบขาขนพอด
• เราเรยกเหตการณแบบนวา Metastability ซง Flip-Flop จะไดรบคาทอยระหวาง 0 และ 1
• เราสามารถแกปญหาลกษณะนไดโดยใชวงจรSynchronizer ซงเปนวงจรทมโอกาสนอยมากทจะ
สรางสญญาณ Output ทมโลจกผดปกต• ในหวขอนจะพดถงวธการแกปญหาเหลานทงหมด
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
3.5.1 Dynamic Discipline• tsetup + thold เรยกวา Aperture Time• หลกการของ Dynamic Discipline กำาหนดวา
สญญาณ Input ของวงจร AsynchronousSequential จะตองมคาทเสถยรคงทในระหวาง
เวลา Setup และ Hold ของ Aperture Time
3.5.2 System Timing
• Clock Period หรอ Cycle Time (tc) คอเวลา ระหวางขอบขาขนของสญญาณ Clock 2 ลกทอยตด
กน• ความถของสญญาณ Clock สามารถคำานวณไดจาก 1/
tc• ถาความถ Clock เพมขนกจะทำาใหวงจร Sequential ทำางานไดเรวขน
• รป (a) แสดงเสนทางทวไปของวงจร Synchronous Sequential ทเราตองการคำานวณหา Clock Period
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
3.5.2 System Timing
• ลกศรสเทาแสดง Contamination Delay ของ R1 และวงจร Combinational
• ลกศรสนำาเงนแสดง Propagation Delay ของ R1 และวงจร Combinational
3.5.2 System Timing : Setup Time Constraint• Timing Diagram ของรปดานขวา
มอแสดง Maximum Delay ซงแสดงโดยลกศรสนำาเงน
• เพอใหตรงตามเงอนไข Setup Time ของ R2 สญญาณ D2 จะตองมคา
คงทกอนเวลา Setup ของ Clock ลกตอไป
• ดงนนเราสามารถเขยนสมการสำาหรบClock Period ตำาสดไดดงนTc >= tpcq+tpd+tsetup
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
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 นอยลง
3.5.2 System Timing : Hold Time Constraint• ในกรณของ Hold Time Constraint นน
สญญาณ D2 จะตองมคาคงทจนถงเวลา Thold หลงจากขอบขาขนของ Clock
• จาก Timing Diagram สญญาณ D2 อาจจะ เปลยนทนทหลงจาก tccq+tcd หลงจากขอบขาขน
ของสญญาณ clock.• ดงนนเราสามารถเขยนเปนสมการดงน
tccq+tcd>=thold
3.5.2 System Timing : Hold Time Constraint• เนองจาก tccq และ thold เปนคณสมบตของ
Flip-Flop ซงผออกแบบวงจรไมสามารถควบคมไดดงนนเขยนสมการใหมเพอหาคาContamination Delay จากวงจรCombinational ดงนtcd>=thold-tccq
• เราเรยกสมการดงกลาววา min-delayconstraint เนองจากมนกำาหนดคา Delay ตำาสดของ
วงจร Combinational
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
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 อาจจะใชเวลาหลายเดอนและใชเงนเปน จำานวนมาก ดงนนมนจงเปนปญหาทสำาคญมาก
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 สนลง
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 หรอไม
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)
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
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
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 เทาใดกได
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 ขนหรอไมดงตอไปน
3.5.2 System Timing : รวมทกอยางเขาดวยกน• Timing Diagram แสดง
Waveform ของการเปลยนแปลงของสญญาณตางๆในวงจร
• Critical Path จาก A ไปยง Y ไมมการเปลยนแปลงเนองจากเปนเสน
ทางทไมไดใส Buffer เพมเขาไป• ดงนน Maximum Clock
Frequency ยงคงเปน 4 GHz เทาเดม
• แต Short Path ชาลงเนองจากContamination Delay ของBuffer
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
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 ลดลงเชนกน
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
3.5.3 Clock Skew
• จากรปตวอยางจะเหนวา Clk2 มากอน Clk1 เนองจาก สายของสญญาณ Clock ยาวไมเทากน
• ถามการออกแบบสายของ Clk1 ใหมกอาจจะทำาให Clk1 มาถงกอน Clk2 ได
• ในการวเคราะห Timing เราจะพจารณากรณทแยทสดเพอรบประกนวาวงจรยงคงทำางานไดในกรณทแยทสด
3.5.3 Clock Skew
• รปดานบนเปน Timing Diagram ของวงจรSequential ทรวม Clock Skew เขาไปดวย
• เสนทบแสดง Clock ทชาทสดทอาจจะมาถง Register ตวใดกได
• เสนบางแสดง Clock ทอาจจะมาถง Register ณ เวลา ใดกไดในชวงเวลา tskew
3.5.3 Clock Skew• เรมจากพจารณา Setup Time Constraint• ในกรณทแยทสด R1 ไดรบ Clock ลกทชาทสด
กำาหนดใหเปน Clk1 แต R2 ไดรบ Clock ลก ทเรวทสด กำาหนดใหเปน Clk2
• ทำาใหเหลอเวลานอยทสดทขอมลสามารถทจะจากR1 ไปยง R2
• ขอมลสงผานจาก R1 ไปยงวงจร Combinational และ ตองถง R2 กอนเวลา Setup
3.5.3 Clock Skew• ดงนนจงสรปไดวา
Tc>=tpcq+tpd+tsetup+tskew
tpd<=Tc-(tpcq+tsetup+tskew)
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
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 มากเกนไป
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
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
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 ไมแนนอน
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
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 มากๆ
3.5.4 Metastability• จากสมการจะเหนไดวาคา T0/Tc เปนตวกำาหนดคาความ
นาจะเปนท Input จะเปลยนคาภายในเวลา Aperture Time
• คาความนาจะเปนนจะลดลงถา Clok Period Tc เพมขน• t เปนคา Time Constant ใชกำาหนดความเรวท Flip-
Flop จะออกจาก Metastability State• คาของ t ขนกบคา Delay ของ Gate ทอยใน Flip-
Flop
3.5.4 Metastability• สรปคอถา Input ขอวงจร Bistable อยางเชน Flip-
Flop มการเปลยนแปลงในชวง Aperture Time จะ ทำาให Output อยในสถานะ Metastabilit State เปน
เวลานาน กอนทจะกลบไปเปน Stable State• เราไมสามารถบอกคาสงสดของ tres วาเปนเทาใด• แตคาความนาจะเปนทจะเกด tres มคาสง จะลดลงแบบ
Exponential• ดงนนถาเรารอจนนานกวาเวลา tpcq กมความเปนไปไดสง
ท Output ของ Flip-Flop จะเขาส Stable State
3.5.5 Synchronizers• การรบสญญาณ Input จากภายนอกเชนผใช เปนสงท
หลกเลยงไมได และสญญาณเหลานจะเปนสญญาณแบบAsynchronous เสมอ
• ถาวงจร Sequential ไมสามารถจดการกบสญญาณเหลานอยางถกตองจะทำาใหแรงดนของสญญาณภายใน
วงจรอยในสถานะ Metastability State และทำาใหการทำางานของวงจรผดพลาดได
• ผออกแบบวงจรจะตองออกแบบวงจรใหมความเปนไปได นอยทสดทวงจรจะเขาสสถานะ Metastability State
เมอวงจรไดรบสญญาณ Input แบบAsynchronous จากภายนอก
• การลดคาความเปนไปไดจะขนกบลกษณะของการนำาไปใช งาน เชนผใชสามารถยอมรบไดถาโทรศพทมอถอทำางาน
ผดพลาด 1 ครงใน 10 ป เพราะปกตผใชจะปดโทรศพทและเปดใหมถาโทรศพทมปญหา
3.5.5 Synchronizers• แตสำาหรบเครองมอแพทยซงมความสำาคญมากตอชวต
มนษย เราอาจจะยอมรบใหมโอกาสทจะเกดความผด พลาด 1 ครงทเวลา 1010 ป
• เพอปองกนไมใหวงจรทำางานผดพลาด จะตองปอนInput แบบ Asynchronous ทกสญญาณผานวงจรSynchronizer เพอใหสญญาณมโลจกทถกตอง
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 กได
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 คงท
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
3.5.5 Synchronizers• ความนาเชอถอ (Reliability) ของวงจรวดจากคา
Mean Time between failure (MTBF)MTBF = 1/P(failure)/sec = T0*eTc-tsetup/t/(N*T0)
• สมการแสดงใหเหนวาคา MTBF เพมขนแบบExponential เมอเราเพมคา Tc
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 ป
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
3.6 Parallelism• เราสามารถวดความเรวของวงจรดจตอลไดจากคา
Latency และ Throughput ของ Token• Token หมายถงกลมของ Input ทถกปอนใหวงจรเพอ
ใหได Output ออกมา• Latency หมายถงระยะเวลาท Token 1 อนถกสงผาน
วงจรจนได Output ออกมา• Throughput หมายถงปรมาณ Token ทงหมดใน 1 หนวยเวลา
3.6 Parallelism• ตวอยางท 3.14 Throughput และ Latency ของ
รานคกก การทำาคกกประกอบดวย 2 ขนตอนคอ การ คลงคกกซงใชเวลา 5 นาท จากนนจงวางคกกในถาด และ
นำาไปอบคกกซงใชเวลา 15 นาท เนองจากเจาของราน คกกมถาดและเตาอบเพยงอยางละ 1 ดงนนเขาจงตอง
รอใหอบคกกได 1 ถาดแลวจงสามารถทำาคกกถาดตอไป จงคำานวณ Latency และ Throughput ของการทำา
คกก• ในตวอยางน Token คอคกก 1 ถาด Latency คอระยะ
เวลาในการทำาคกก 1 ถาด ซงคอ 1/3 ชวโมง• Throughput ของการทำาคกกคอจำานวนถาดคกกท
ทำาไดใน 1 ชวโมง ซงจะได 3 ถาดตอชวโมง
3.6 Parallelism• เราสามารถเพม Throughput ไดโดยการประมวลผล
Token หลายๆอนพรอมๆกน• เราเรยกการทำางานแบบนวาการทำางานแบบขนาน
(parallelism) ซงสามารถทำาได 2 วธคอ1. Spatial Parallelism เปนการใสวงจรหลายๆวงจร
เขาไปเพอใหสามารถประมวลผล Token หลายๆอนไดพรอมกนในเวลาเดยวกน
2. Temporal Parallelism เปนการแบง Token ออก เปนหลายๆ สวน(Stage) คลายกบสายการผลต ยก
ตวอยางเชนแบงการประมวลผลออกเปน 6 สวน ถง แมวา Token ทกอนจะตองถกประมวลผลทง 6 สวน
แตเนองจากแตละสวนการประมวลผลสามารถทำางานได พรอมกน ดงนนเราสามารถประมวผล Token ไดพรอม
กน 6 อน
3.6 Parallelism• ตวอยางท 3.15 การทำาคกกแบบขนาน• ถาเจาของรานตองการทำาคกกใหเรวขน เขาอาจจะเลอกได
2 วธคอ1. วธ Spatial Parallelism เขาขอใหเพอนทมถาดและ
เตาอบมาชวยทำาคกก2. วธ Temporal Parallelism เขาซอถาดเพมอก 1
ถาด ดงนนในระหวางทรออบคกก เขาสามารถทจะคลงคกกของถาดตอไปไดทนท
• คา Latency และ Throughput ของวธ Spatial Parallelism, Temporal Parallelism และใชทง 2
วธพรอมกน
3.6 Parallelism
• Latency คอระยะเวลาทใชอบคกก 1 ถาด ซงไมวาจะใช วธแบบ Spatial หรอ Temporal หรอทง 2 วธพรอม
กน คา Latency ของการทำาคกก 1 ถาดคอ 1/3 ชวโมง
• Throughput คอจำานวนถาดคกกททำาไดใน 1 ชวโมง ถาเจาของรานเลอกวธ Spatial Parallelism ซงเขา
และเพอนชวยกนทำาคกก ดงนน Throughput ของวธน คอ 6 ถาดตอชวโมง
3.6 Parallelism
• ถาใชวธ Temporal Parallelism เจาของรานจะใสคกก ถาดใหมในเตาอบทกๆ 15 นาท ดงนนใน 1 ชวโมงเขาจะ
อบคกกได 4 ถาด• ถาเขาและเพอนใชวธ Spatial และ Temporal
Parallelism พรอมกน เขาจะทำาคกกได 8 ถาดตอชวโมง
3.6 Parallelism• จงพจารณางานทมคา Latency เทากบ L ในระบบทไม
ไดทำางานแบบขนาน คา Throughput เทากบ 1/L• ในระบบททำางานแบบ Spatial Parallelism ทมวงจร
ทงหมด N วงจรทำางานพรอมกน จะไดคา Throughput เทากบ N/L
• ในระบบททำางานแบบ Temporal Parallelism ทวงจร สามารถแบงออกเปนทงหมด N สวนโดยทแตละสวนใช
เวลาในการทำางานเทากน คา Throughput จะเทากบN/L และใชเพยงแควงจรเดยวเทานน
• แตเนองจากในความเปนจรงมนยากทจะแบงวงจรออก เปนหลายๆสวนทใชเวลาในการทำางานเทากน และสวนท
ทำางานนานทสดใชเวลาเทากบ L1 ดงนนคาThroughput เทากบ 1/L1
3.6 Parallelism• ในทางปฏบตเรานยมใชการทำางานแบบ Temporal
Parallelism มากกวาเนองจากสามารถเพมคาThroughput ใหมากขนโดยใชวงจรเพยงชดเดยวเทานน
• การออกแบบวงจร Sequential ททำางานแบบTemporal Parallelism สามารถทำาไดโดยการแบง
วงจร Combinational ออกเปน N สวน• แตละสวนจะเชอมตอกนผาน Register• เนองจากแตละสวนมวงจรขนาดเลกลง ดงนนคา tpd
ของแตละวงจรจงนอยลงทำาใหใชสญญาณ Clock ทมความถมากขนได
• Register ทำาหนาทปองกนไมให Token ของวงจรCombinational ไปรบกวน Token ของวงจรCombinational ถดไป
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
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
3.6 Parallelism• ถาแบงวงจรเดมออกเปน 3 สวนดงรป
• Tc ของวงจร Sequential เทากบ 4.5ns
• Latency เทากบ 3 Clock หรอ 13.5ns• Throughput=1/4.5ns = 222MHz• จากตวอยางทง 2 จะเหนวาการแบงวงจร Sequential
ออกเปนหลายๆสวนจะทำาใหคา Latency เพมขน แตจะ ทำาใหคา Throughput เพมขน
3.6 Parallelism• ในทางปฏบตเราไมสามารถแบงวงจร Sequential ออกเปนหลายๆสวนไดเสมอไป
• เชนถาวงจร Sequential มการทำางานทขนกบOutput ของการทำางานกอนหนาน แทนทจะขนกบOutput แตละสวนของการทำางานปจจบน
• ตวอยางเชนถาเจาของรานไมสามารถทำาคกกแบบขนาน ได ถาเขาตองการชมรสชาตของคกกทอบเสรจแลว เพอ
จะไดปรบปรงรสชาตของคกกในครงถดไป