Upload
morey
View
70
Download
0
Embed Size (px)
DESCRIPTION
Digital System Engineering. บทที่ 3. Sequential Logic Design. สัญญาณ Output ของ Sequential Logic จะขึ้นกับข้อมูลในปัจจุบันและอดีตที่ป้อนให้กับวงจร ดังนั้น Sequential Logic จึงเป็นวงจรที่มีความจำ Sequential Logic อาจจะนำเอาข้อมูลในอดีตทั้งหมดมาใช้ร่วมกัน - PowerPoint PPT Presentation
Citation preview
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.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