Jewish Heritage Month Presentation

Download Report

Transcript Jewish Heritage Month Presentation

Digital System Engineering
บทที่ 3.
Sequential Logic Design
ั ญาณ Output ของ Sequential Logic จะขึน
• สญ
้ กับ
ข ้อมูลในปั จจุบน
ั และอดีตทีป
่ ้ อนให ้กับวงจร
• ดังนัน
้ Sequential Logic จึงเป็ นวงจรทีม
่ ค
ี วามจา
• Sequential Logic อาจจะนาเอาข ้อมูลในอดีตทัง้ หมดมา
ใชร่้ วมกัน
• หรืออาจจะแบ่งข ้อมูลในอดีตออกเป็ นข ้อมูลขนาดเล็ก
หลายๆข ้อมูล ทีเ่ รียกว่า State
็ ของข ้อมูล เรียกว่า State
• State ในวงจรดิจต
ิ อลคือเซท
ั ญาณ Output
Variable ซงึ่ เอาไว ้ใชก้ าหนดค่าของสญ
ในอนาคต
3.2 LATCHES และ FLIP-FLOPS
วงจร Cross-Coupled Inverter
• อุปกรณ์พน
ื้ ฐานของหน่วยความจาคือ 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
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=0
้ น 1 (R=1) ทาให ้
Input ของ N1 อย่างน ้อย 1 เสนเป็
Q=0 และ Q=0 ถูกป้ อนเป็ น Input ให ้กับ N2 เนือ
่ งจาก
Input ของ N2 คือ Q=0 และ S=0 ดังนัน
้ /Q=1
• กรณีท ี่ 2. R=0, S=1
้ น 1 (S=1) ทาให ้
Input ของ N2 อย่างน ้อย 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
็ ให ้เป็ น 1
• ถ ้า S=1 R=0 Q จะถูกเซท
็ ให ้เป็ น 0
• ถ ้า S=0 R=1 Q จะถูกรีเซท
็ หรือรีเซท
็ มันจะเก็บค่าเดิม
• ถ ้า 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
3.2.3 D Flip-Flop
• ดังนัน
้ D Flip-Flop จึงทาการสง่ ค่าของ D ไปยังค่า Q
ั ญาณ Clk เปลีย
เมือ
่ สญ
่ นจาก 0 เป็ น 1 (Rising Edge)
ื่ เรียกหลายชอ
ื่ คือ Master-Slave Flip• D Flip-Flop มีชอ
Flop, Edge-Triggered Flip-Flop หรือ Positive EdgeTriggered 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 Resettable
็ ทันทีทม
ั ญาณ
Flip-Flop จะถูกรีเซท
ี่ ส
ี ญ
Reset
Timing Diagram ของ D Latch และ
D Flip-Flop
3.3 Synchronous Logic Design
3.3.1 วงจรทีม
่ ป
ี ั ญหาบางวงจร
• Astable Circuit
โลจิกของ X, Y, Z มีคา่ ไม่เสถียร (Unstable) หรือเรา
เรียกว่า Astable
3.3 Synchronous Logic Design
3.3.1 วงจรทีม
่ ป
ี ั ญหาบางวงจร
• ตัวอย่างการเกิด Race Condition
A
B
A
B
N1
N2
Q
B
B
N1
Q
N2
• ตัวอย่างเป็ นการออกแบบวงจร D Flip-Flop แบบใหม่
โดยกาหนดให ้มี Truth Table ดังแสดงในรูป
• กาหนดให ้ตอนเริม
่ ต ้น A, B และ Output = 1
• จากนัน
้ จึงเปลีย
่ น B ให ้เป็ น 0 จากTruth Table ค่า Q
จะต ้องคงค่าสถานะเดิมคือ 1 ไว ้
3.3 Synchronous Logic Design
3.3.1 วงจรทีม
่ ป
ี ั ญหาบางวงจร
• ตัวอย่างการเกิด Race Condition
A
B
A
B
N1
N2
Q
B
B
N1
Q
N2
• เมือ
่ 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
3.3 Synchronous Logic Design
3.3.1 วงจรทีม
่ ป
ี ั ญหาบางวงจร
• จะเห็นว่าวงจร D Flip-Flop ทีอ
่ อกแบบใหม่นี้ ถ ้า Not
Gate มี Propagation Delay มากเกินไป จะทาให ้ไม่
สามารถเก็บสถานะเดิมของ Q ได ้เมือ
่ B เปลีย
่ นเป็ น 0
• การทีว่ งจรทางานผิดพลาดเนือ
่ งจาก Propagation
้
Delay ในบางเสนทางมี
คา่ มากเกินไปนี้ เราเรียกว่าการ
เกิด Race Condition ซงึ่ จะเกิดกับวงจรทีม
่ ก
ี ารป้ อน
ั ญาณ Output กลับไปที่ Input
สญ
• วงจรทีอ
่ อกแบบเหมือนกันทุกอย่าง วงจรหนึง่ อาจจะ
ทางานปกติ แต่อก
ี วงจรอาจจะไม่ทางานเนือ
่ งจากใน
้
กระบวนการผลิต อาจจะมีบางเสนทางที
ม
่ ค
ี า่ Delay
ต่างออกไปเล็กน ้อย
• หรือในกรณีทอ
ี่ ณ
ุ หภูมส
ิ งุ ขึน
้ อาจจะทาให ้ Propagation
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
A
B
Q
N1
B
B
N2
N1
Q
SET
D
Clk
Q
N2
CLR
Q
Clk
• เราสามารถแก ้ปั ญหาของการเกิด Racing ในวงจร
Sequential ได ้โดยการใส่ Register เข ้าไปใน Cyclic
Path
• เริม
่ ต ้นกาหนดให ้ Clk ของ Register เป็ น 0 ดังนัน
้ มันจึง
กัน
้ ไม่ให ้ Q ย ้อนกลับไปที่ Input
• ดังนัน
้ เมือ
่ B เปลีย
่ นเป็ น 0 แต่ /B ยังคงเป็ น 0 อยู่
3.3.2 Synchronous Sequential Circuit
A
B
Q
N1
B
B
N2
N1
Q
SET
D
Clk
Q
N2
CLR
Q
Clk
• แต่ Output ของ Register ยังคงเป็ น 1 อยู่
• และเมือ
่ /B เปลีย
่ นเป็ น 1 จึงทาให ้ N2=1 และทาให ้ Q
เปลีย
่ นกลับเป็ น 1 ซงึ่ เป็ นสถานะทีถ
่ ก
ู ต ้อง
• จากนัน
้ จึงป้ อน Clk = 1 เพือ
่ ให ้ Register ปล่อยให ้ค่า
Q ทีถ
่ ก
ู ต ้องย ้อนกลับไปหา Input ได ้
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 เท่านัน
้ หรือเราเรียกว่า
ั ญาณ Clock
State ถูก Synchronized กับสญ
้
ั ญาณ Input ทีป
• ถ ้า Clock ชาพอจนกระทั
่งสญ
่ ้ อนให ้กับ
ั ญาณ
Register ทุกตัวเปลีย
่ นเป็ นค่าทีถ
่ ก
ู ต ้องก่อนทีส
่ ญ
Clock ลูกต่อไปจะมา ก็จะทาให ้ไม่เกิด Race
Condition
• การแก ้ Race ในวงจร Sequential โดยการใส่ Register
เข ้าไปใน Feedback Path จะทาให ้วงจร Sequential
ั ญาณ Clock
ทางาน Synchronous กับสญ
3.3.2 Synchronous Sequential Circuit
• วงจร Sequential ประกอบด ้วย State จานวน k ตัว
{S0,S1,…,Sk-1}
ั ญาณ Clock เป็ นตัวกาหนดการ Synchronous
• มีสญ
ั ญาณ Clock เป็ นตัวกาหนด
โดยทีข
่ อบขาขึน
้ ของสญ
เวลาการเปลีย
่ นแปลงของ State
ั ลักษณ์ S) และ Next
• เราจะใช ้ Current State (ใชส้ ญ
ั ลักษณ์ S’) เป็ นตัวกาหนดค่าของ State
State (ใชส้ ญ
ปั จจุบน
ั และ State ของ Clock ลูกต่อไป
• Functional Specification จะเป็ นตัวกาหนดค่าของ Next
State และค่าของ Output ทีไ่ ด ้จากการรวมกันของ
Current State และ Next State
• Timing Specification ประกอบด ้วยระยะเวลาสูงสุด
3.3.2 Synchronous Sequential Circuit
• และเวลา Setup (tsetup) และ Hold (thold) คือเวลาที่
ั ญาณ Input จะต ้องคงทีเ่ มือ
สญ
่ เปรียบเทียบกับเวลาที่
ั ญาณ Clock
จะต ้องป้ อนขอบขาขึน
้ ของสญ
3.3.2 Synchronous Sequential Circuit
• กฎของการออกแบบวงจร Synchronous Sequential คือ
• วงจรจะต ้องประกอบด ้วย Register และวงจร
Combinational
• จะต ้องมี Register อย่างน ้อย 1 ตัว
ั ญาณ Clock ตัวเดียวกัน
• Register ทุกตัวจะต ้องใชส้ ญ
้
• 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 ชนิดคือ
ั ญาณ Output จะขึน
• Moore Machine สญ
้ กับค่า Current
State เท่านัน
้
ั ญาณ Output จะขึน
• Mealy Machine สญ
้ กับค่า Current
ั ญาณ Input
State และสญ
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
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
ั ญาณไฟจราจรเขียว เหลืองและแดงสามารถ
• และสญ
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
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
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 ทีอ
่ า่ นได ้
จากเทปกระดาษ
3.4.3 Moore และ Mealy Machine
• เราสามารถออกแบบ
State Transition
Diagram ของ Moore
Machine ได ้ดังรูป
• ตารางของ State
Transition และ Output
สามารถแสดงได ้ดัง
ตารางที่ 3.11 และ 3.12
• เนือ
่ งจากมี State ทัง้ หมด
5 State เราสามารถเขียน
เป็ นรหัสเลขฐาน 2 ดัง
เป็ น
3.4.3 Moore และ Mealy Machine
• เราสามารถเขียนตาราง State Transition และ Output
ใหม่ได ้ดังตารางที่ 3.13 และ 3.14
S2’=S1S0A, S1’=/S1S0A + S1/S0+ S2A,
S0’=/S2/S1/S0+S1/S0/A, Y=S2