วงจรซีเควนเชียลแบบซิงโครนัส
(Synchronous Sequential)
<< กลับหน้าหลัก
<< 16.1 โมเดลของวงจรวงจรซีเควนเชียลแบบซิงโครนัส << 16.2 การวิเคราะห์วงจรซีเควนเชียลแบบซิงโครนัส << 16.3 การออกแบบวงจรซีเควนเชียลแบบซิงโครนัส << 16.4 การลดทอนสเตตของวงจรซีเควนเชียลแบบซิงโครนัส
วงจรซีเควนเชียลแบบซิงโครนัส เป็นวงจรที่ต้องมีสัญญาณนาฬิกาเสมอ และฟลิปฟลอปทุกตัวต้องได้รับสัญญาณนาฬิกาจากภายนอกพร้อมกัน ดังนั้น
ฟลิปฟลอบทุกตัวต้องเป็นแบบมีขา Clock และขา Clock ต้องต่อร่วมกัน การทำงานของวงจรจะอยู่ภายใต้การควบคุมของสัญญาณนาฬิกา ถ้าไม่มีสัญญาณ
นาฬิกาเข้ามาวงจรจะไม่ทำงาน
|
16.1 โมเดลของวงจรวงจรซีเควนเชียลแบบซิงโครนัส
วงจรซิงโครนัสจะมีโครงสร้าง 2 แบบ คือ Mealy Model และ Moore Model ดังรูปที่ 16.1
|
|
รูปที่ 16.1 (ก) เป็นโครงสร้างแบบ Mealy Model โครงสร้างแบบนี้เป็นโครงสร้างโดยทั่วไปของวงจรซิงโครนัส ทั้ง Next State และเอาต์พุต
จะขึ้นอยู่กับ Present State และอินพุตของวงจรเขียนสมการได้เป็น
|
|
รูปที่ 16.1 (ข) เป็นโครงสร้างแบบ Moore Model โครงสร้างแบบนี้ Next State จะขึ้นอยู่กับ Present Stateและอินพุตของวงจรเหมือน
วงจรแบบแรก แต่เอาต์พุตจะขึ้นอยู่กับ Present State เพียงอย่างเดียว เขียนสมการได้เป็น
|
|
วงจรแบบ Moore Model บางวงจร เอาต์พุตจะเป็นตัวเดียวกับสเตต (เช่น วงจรนับ) กรณีนี้จะไม่เขียนเอาต์พุตลงในตารางสเตตหรือแผนภาพสเตต
<< Go To Top
|
16.2 การวิเคราะห์วงจรซีเควนเชียลแบบซิงโครนัส การวิเคราะห์วงจรเป็นการพิจารณาคุณสมบัติของวงจร โดยการแสดงารูปของตารางสเตตหรือแผนภาพสเตตของวงจรนั้นๆ 16.2.1 สรุปตารางความจริงและสมการลอจิกของฟลิปฟลอป ในการวิเคราะห์วงจรมีความจำเป็นต้องใช้ตารางความจริงและสมการลอจิกของฟลิปฟลอป ซึ่งสามารถสรุปได้ดังนี้ |
|
16.2.2 วิธีการเขียนตารางสเตตและแผนภาพสเตตของวงจร
จากวงจรจะเขียนเป็นตารางสเตตก่อน แล้วจึงเปลี่ยนไปเป็นแผนภาพสเตต การเขียนตารางสเตตของวงจรเขียนได้ 3 วิธี คือ
1. เขียนจาก Timing Diagram โดยการป้อนอินพุตให้กับวงจร (สามารถกำหนดอินพุตขึ้นมาได้โดยอิสระ) แล้วทำการ
เขียนรูปคลื่นแต่ละตำแหน่งของวงจร เช่น Present State (เอาต์พุตของฟลิปฟลอป) อินพุตของฟลิปฟลอป และ
เอาต์พุตของวงจร แล้วเปลี่ยนไปเป็นตารางสเตต
2. เขียนจาก KM โดยการเขียน KM เอาต์พุตของวงจร อินพุตของฟลิปฟลอป แล้วใช้ตารางความจริงของฟลิปฟลอปแปลง
จากอินพุตของฟลิปฟลอปไปเป็น Next State นำ Next State และเอาต์พุตของวงจรไปเขียนรวมกันเป็นตารางสเตต
3.เขียนจากสมการลอจิก โดยการแทนค่าตัวแปรลงในสมการ Next State ของฟลิปฟลอปแล้วนำไปเขียนเป็นตารางสเตต
ในกรณีที่หน่วยความจำเป็น D Flip-Flop วิธีนี้จะเหมือนกับวิธี KM
|
ตัวอย่างที่ 16.1 จงเขียนตารางสเตตและแผนภาพสเตตของวงจร
|
วิธีทำ
จากวงจรที่โจทย์กำหนดใช้ D Flip-Flop เป็นหน่วยความจำ ที่ขา D ของฟลิปฟลอปสามารถ เขียนเป็น Next State Y ได้
เขียนสมการลอจิกของวงจรได้เป็น
|
|
วงจรซิงโครนัสจะใช้สัญญาณนาฬิกาควบคุมการทำงานของวงจร ดังนั้นการเขียน Timing Diagram จะต้องเขียนรูปคลื่นสัญญาณ
นาฬิกาก่อนเสมอ โดยมีจำนวนพัลส์ เท่ากับจำนวนบิตของอินพุต (โจทย์ข้อนี้มี 7 พัลส์) การนับช่วงคาบเวลาให้พิจารณาจากขา Clock ของ
ฟลิปฟลอป เนื่องจากฟลิปฟลอปเป็นแบบ Negative Edge-Triggered จึงนับคาบเวลาที่ขอบลงของสัญญาณนาฬิกา
เขียนรูปคลื่นอินพุตให้ซิงโครไนซ์กับรูปคลื่นสัญญาณนาฬิกา ส่วนรูปคลื่นอื่นๆ ได้แก่ Present State y, Next State Y และเอาต์พุต
z สามารถเขียนได้โดยการพิจารณาในแต่ละช่วงเวลาของสัญญาณนาฬีกา ดังนี้
|
ช่วงเวลาที่ 1 นำค่าสเตตเริ่มต้น (
|
|
ตัวอย่างที่ 16.2 จงเขียนตารางสเตตและแผนภาพสเตตของวงจร
|
วิธีทำ
จากวงจรเขียนสมการลอจิกได้เป็น
|
ใช้ตารางความจริงของ Clocked T Flip-Flop ประกอบในการเขียน Timing Diagramได้ดังรูป
|
|
เขียนรูปคลื่นสัญญาณนาฬิกาแบบนับคาบเวลาที่ขอบลง (เพราะฟลิปฟลอปเป็นแบบ Negative Edge -Triggered) จำนวน 8 พัลส์เท่ากับ
จำนวนบิตของอินพุต เขียนรูปคลื่นอินพุตเป็นแบบพัลส์ให้ซิงโครไนซ์กับรูปคลื่นสัญญาณนาฬิกา พิจารณาแต่ละช่วงเวลาของสัญญาณนาฬิกาเพื่อเขียน
รูปคลื่น Present State y อินพุตฟลิปฟลอป T และเอาต์พุต z วงจรนี้ไม่สามารถเขียนรูปคลื่น Next State Y เนื่องจากฟลิปฟลอบที่ใช้ในวงจรไม่ใช
่ D Flip-Flop
ช่วงเวลาที่ 1 นำค่าสเตตเริ่มต้น (
|
หารูปคลื่นช่วงเวลาอื่นๆ โดยวิธีการเดียวกัน จาก Timing Diagram นำไปเขียนตารางสเตต
โดยเขียนรูปฟอร์มตารางสเตตขึ้นมาหาค่า Next State/Output ในแต่ละช่องค่า Next Stateให้ดูจากค่า Present State ในช่วงเวลาถัดไป
ซึ่งสามารถหาได้ดังนี้
- ช่อง x = 0, y = 0 หาได้จากช่วงเวลาที่ 1 หรือ 4 หรือ 6 ซึ่งจะมีเอาต์พุตเป็น 0 ค่า Next State
ดูจากรูปคลื่น Present State ในช่วงเวลาถัดไปคือ ช่วงเวลาที่ 2 หรือ 5 หรือ 7 จะได้ Next state เป็น 1 ดังนั้น ค่า Next state/Output
คือ 1/0
- ช่อง x = 0, y = 1 หาได้จากช่วงเวลาที่ 7 ค่าเอาต์พุตคือ 0 ค่า Next State ดูจาก Present State
ในช่วงเวลาที่ 8 คือ 1 ดังนั้น ค่า Next State/Output คือ 1/0
- ช่อง x = l, y = 0 หาได้จากช่วงเวลาที่ 3 ค่าเอาต์พุตคือ 0 ค่า Next Ste ดูจาก Present State ในช่วงเวลาที่ 4 คือ 0 ดังนั้น ค่า
Next State/Output คือ 0/0
- ช่อง x = 1, y = 1 หาได้จากช่วงเวลาที่ 2 หรือ 5 ค่าเอาต์พุตคือ 1 ค่า Next State ดูจาก Present State ในช่วงเวลาที่ 3 หรือ 6 คือ 0
ดังนั้นค่า Next State/Output คือ 0/1
กรณีอินพุตเป็นแบบพัลส์ การอ่านค่าอินพุตหรือเอาต์พุตใน Timing Diagram ต้องดูที่ตำแน่งพัลส์ของสัญญาณนาฬิกา หรือช่วงเวลาที่
สัญญาณนาฬิกาเป็น 1 เท่านั้น (สำหรับกรณีสัญญานาฬิกาเป็นแบบพัลส์บวก)จะได้ตารางสเตตดังนี้
|
|
วิธีที่ 2 ใช้ KM
เขียน KM ของ z และ T จากนั้นใช้ตารางความจริงของ Clocked T Flip-Flop เปลี่ยนจากอินพุต T ไปเป็น Next State Y
|
|
การแปลงจากตาราง T ไปเป็นตาราง Y ให้ดูจากตารางความจริงของ Clocked T Flip-Flopโดยวิธีการแปลงดังนี้ - ช่อง x = 0, y = 0 มีค่า T เป็น 1 จากตารางความจริงของฟลิปฟลอป เอาต์พุตของฟลิปฟลอป จะเป็นค่าตรงข้ามกับค่าเดิม ดังนั้น หาค่า Next State Y ได้โดยดูจากค่า Present State y ที่อยู่ข้างหน้าตาราง เนื่องจาก y = 0 จะได้ Next state Y มีค่าตรงข้าม คือ 1 - ช่อง x = 0, y = 1 มีค่า T เป็น 0 เอาต์พุตของฟลิปฟลอปยังคงเหมือนค่าเดิมดังนั้นหาค่า Next State Y โดยดูจากค่า Present State y ที่อยู่ข้างหน้าตาราง เนื่องจาก y = 1 จะได้ Next State Y มีค่าเหมือนค่าเดิม คือ 1 - ช่อง x = 1, y = 0 และ x = 1, y = 1 ก็หาค่า Next State Y ได้ในทำนองเดียวกันนำ Y และ z ไปเขียนรวมกันเป็นตารางสเตต |
|
วิธีที่ 3 ใช้สมการลอจิก
|
|
16.3 การออกแบบวงจรซีเควนเชียลแบบซิงโครนัส
การวิเคราะห์วงจรที่กล่าวมาแล้ว เป็นการเขียนตารางสเตตและแผนภาพสเตตของวงจรส่วนการออกแบบวงจรจะพิจารณาในทางตรงกันข้าม
กล่าวคือจะกำหนดตารางสเตต หรือแผนภาพสเตต ขึ้นมาก่อน แล้วแปลงกลับไปเป็นวงจร
16.3.1 สรุป Input Table และสมการลอจิกของฟลิปฟลอป
ในการอกแบวงจรมีความจำเป็นต้องใช้ Input Table และสมการลอจิกของฟลิปฟลอป ซึ่งสามารถสรุปได้ดังนี้
|
|
16.3.2 ขั้นตอนการออกแบบวงจร
การออกแบบวงจรซีเควนเชียลแบบซิงโครนัสมีขั้นตอนการออกแบบดังนี้
1. ศึกษาปัญหาโจทย์ และเขียนตารางสเตต
2. ทำการลดทอนสตตของวงจรให้มีจำนวนสเตตน้อยที่สุดโดยที่วงจรยังคงมีคุณสมบัติเหมือนเดิม
3. ถ้าตารางสเตตอยู่ในรูปตัวอักษรหรือตัวเลขฐานสิบ ให้เปลี่ยนเป็นเลขฐานสอง เรียกตารางสเตตในกรณีนี้ว่า Binary State
Table หรือ Transition Table
4. กำหนดชนิดฟลิปฟลอปที่จะใช้ในวงจร ทำการเขียน KM อินพุตของฟลิปฟลอป (เรียก KM นี้ว่า Excitation Map) และ
เขียน KM เอาต์พุตของวงจร (เรียก KM นี้ว่า Output Map)
5. ทำการลดทอน Excitation Map และ Output Map เขียนเป็นสมการลอจิก
6. นำสมการลอจิกไปเขียนเป็นวงจรในขั้นตอนการออกแบบจะไม่กล่าวถึงสัญญาณนาฬิกา แต่เป็นที่ทราบว่าต้องเป็นสัญญาณ
นาฬิกาจ่ายให้กับวงจรเสมอ วงจรจึงจะทำงานได้
|
ตัวอย่างที่ 16.3 จงออกแบบวงจรซิงโครนัสที่มีคุณสมบัติเป็นไปตามตารางสเตตที่กำหนด โดยใช้ D Flip-Flop เป็นหน่วยความจำ
|
วิธีทำ ออกแบบวงจรตามขั้นตอนดังนี้
1. โจทย์กำหนดตารางสเตตมาให้ จึงนำมาใช้โดยตรง
2. การลดทอนสเตตจะยังไม่กล่าวถึงในตอนนี้
3. กำหนด State Assignment และเขียน Transition Table นำจำนวนสเตตไปกำหนดจำนวนฟลิปฟลอบ
จากสมการ
|
|
เมื่อ
จากโจทย์ จำนวนสเตต |
4. เขียน Excitation Map และ Out Map
|
Excitation Map
|
5. เขียนสมการลอจิก
|
ตัวอย่างที่ 16.4 จงออกแบบวงจรซิงโครนัส ที่มีคุณสมบัติเป็นไปตามตารางสเตต ที่กำหนดในตัวอย่างที่ 16.3 โดยใช้ J-K Flip-Flop
เป็นหน่วยความจำ
วิธีทำ ขั้นตอนที่ 1-3 เหมือนตัวอย่างที่ 16.3 จะได้ Transition Table เป็น
|
|
4. เขียน Excitation Map และ Output MapExcitation Map เป็นการแปลง Next State ไปเป็นอินพุต J,K โดยใช้ Input Table ของ
|
5. เขียนสมการลอจิก
|
6. นำสมการลอจิกไปเขียนวงจรลอจิก
|
16.3.3 การออกแบบวงจรโดยใช้สมการลอจิก
ในหัวข้อที่แล้ว เป็นวิธีการออกแบบวงจรโดยใช้ Input Table ของฟลิปฟลอป ซึ่งเป็นวิธีการที่นิยมใช้กันทั่วไป ในหัวข้อนี้จะกล่าวถึง
การออกแบบวงจรโดยใช้สมการลอจิกของฟลิปฟลอบ ซึ่งเป็นอีกวิธีหนึ่งที่ใช้ในการออกแบบวงจรได้เช่นกันการออกแบบวงจรโดยวิธีนี้จะ
แตกต่างกับวิธีแรกเฉพาะการหาสมการอินพุตของฟลิปฟลอปเท่านั้น ส่วนการหาสมการเอาต์พุตของวงจรยังคงเหมือนกับวิธีแรก เช่น
ในตัวอย่างที่ 16.4 ถ้าจะออกแบบวงจรโดยใช้สมการลอจิกของฟลิปฟลอปมีวิธีการดังนี้จาก Transition Table ตัวอย่างที่ 16.4
|
|
|
16.4 การลดทอนสเตตของวงจรซีเควนเชียลแบบซิงโครนัส
ความซับซ้อนของวงจรซีเควนเชียลจะขึ้นอยู่กับจำนวนสเตตของวงจรโดยตรง ยิ่งมีจำนวนสเตตมาก ก็ต้องใช้จำนวนฟลิปฟลอปมากขึ้นตาม
ใช้จำนวนอุปกรณ์มากขึ้น และการออกแบบวงจรก็ยากขึ้นเช่นกัน ดังนั้นก่อนที่จะออกแบบวงจรซีเควนชียลจะต้องทำการลดทอนสเตตของวงจร
ให้เหลือน้อยที่สุดเท่าที่จะทำได้ โดยที่คุณสมบัติของวงจรไม่เปลี่ยนแปลง
16.4.1 Equivalent State
Equivalent State หมายถึง สเตตตั้งแต่ 2 สเตตขึ้นไปที่มีคุณสมบัติในการทำงานเหมือนกัน ซึ่งสามารถจำนวนสเตตลง
เหลือเพียง 1 สเตตเท่านั้น
การพิจารณา Equivalent State ทำได้โดยการนำสเตตมาเปรียบเทียบกันทีละ 2 สเตต สเตตที่ Equivalent กันต้อง
มีคุณสมบัติดังนี้
1. ที่อินพุตเดียวกันต้องมีเอาต์พุตเหมือนกัน
2. ที่อินพุตเดียวกัน Next State ต้อง Equivalent กัน
|
ตัวอย่างที่ 16.5 จากตารางสเตตที่กำหนด จงหา Equivalent State
|
วิธีทำ นำสเตตมาเปรียบเทียบกันทีละ 2 สเตต โดยต้องพิจารณาทุกกรณีที่จะเป็นไปได้
|
เมื่อ n คือ จำนวนสเตตทั้งหมด
r คือ จำนวนสมาชิกในกลุ่ม (r = 2)
|
ได้แก่ A,B AC, AD, BC, BD และ CD นำแต่ละกลุ่มไปพิจารณาตามคุณสมบัติดังนี้
กลุ่ม AC, BC และ CD ไม่ Equivalent เนื่องจากไม่เป็นไปตามคุณสมบัติข้อ 1
กลุ่ม AB และ AD ไม่ Equivalent เนื่องจากไม่เป็นไปตามคุณสมบัติข้อ 2
กลุ่ม BD จะ Equivalent กันเนื่องจากเป็นไปตามคุณสมบัติข้อ 1 และ 2
ดังนั้น B และ D สามารถตัดออกได้ 1 สเตต ถ้าตัดสเตด D ออก จะได้ตารางสเตตหลังจากการลดทอนสเตตดังนี้
|
|
การลดทอนสเตตในตัวอย่างที่ 16.5 เป็นการนำสเตตมาเปรียบเทียบกันโดยตรง ถ้าตรงตามคุณสมบัติทั้ง 2 ข้อ ก็จะ Equivalent กัน
แต่ถ้าไม่ตรงตามคุณสมบัติอย่างน้อย 1 ข้อ ก็จะไม่ Equivalent เรียกการลดทอนสเตตสวิธีนี้ว่า วิธี Inspection เป็นวิธีที่ไม่เหมาะจะ
ใช้กับวงจรที่มีจำนวนสเตตมากๆ
วิธีลดทอนสเตตแบ่งออกเป็น 3 วิธีคือ
1. วิธี Inspection
2 วิธี Partitioning
3. วิธี Implication Table
ในที่นี้จะกล่าวเฉพาะวิธี Implication Table เท่านั้น
|
16.4.2 การลดทอนโดยวิธี Implication Table
เพื่อจะได้เข้าใจหลักการของ Implication Table ได้ง่ายขึ้น จึงใช้ตารางสเตตประกอบการอธิบายดังนี้
|
|
1. เขียน Implication Table โดยการนำ Present State มาเขียนตามแนวนอนและแนวตั้ง โดยแนวนอนเริ่มเขียนจากซ้ายไปขวา
ตั้งแต่สเตตที่ 1 ไปเรื่อยๆ ยกเว้นสเตตสุดท้ายไม่ต้องเขียน ส่วนแนวตั้งเริ่มเขียนจากข้างล่างขึ้นข้างบน ตั้งแต่สเตตสุดท้ายมาเรื่อยๆ
ยกเว้นสเตตที่ 1 ไม่ต้องเขียน
|
|
จากตารางสเตตที่กำหนด เขียนเป็น Implication Table ได้ดังนี้
|
2. ตรวจสอบคุณสมบัติข้อ 1 พิจารณาแต่ละคู่ของ Present State ว่าที่อินพุตเดียวกันมีเอาต์พุตเหมือนกันหรือไม่ (ต้องพิจารณาทุกค่าอินพุต)
ถ้าที่อินพุตเดียวกันอย่างน้อย 1 ค่าอินพุตมีเอาต์พุตต่างกัน ให้ใส่เครื่องหมาย X ลงในช้องนั้น ถ้าเอาต์พุตเหมือนกันให้เว้นว่างไว้
|
|
3. หา Next State โดยการเขียน Next State ลงในช่องว่างของตาราง ค่า Next State ที่ไม่ต้องเขียนลงตารางมี 2 กรณี คือ
(1) Next State ที่เหมือนกัน
(2) Next State ที่ซ้ำกับ Present State
|
|
4. ตรวจสอบคุณสมบัติข้อ 2 ในช่องที่มี Next State กำกับอยู่ให้ตรวจสอบดูว่า Next State เหล่านั้น Equivalent กันหรือไม่ ถ้า
Next State ไม่ Equivalent กัน ก็ตัดช่องนั้นออก โดยการเขียนเครื่องหมาย / ลงช่องนั้น
|
|
5. ผลการลดทอนสเตต ในช่องที่ไม่มีเครื่องหมาย X หรือ / แสดงว่า Present State คู่นั้น Equivalent กัน สามารถลดทอนสเตตได้
จากตารางจะได้ว่า B Equivalent C ดังนั้น จึงลดเหลือสเตตเดียว ถ้าตัดสเตต C ออกจะได้ผลการลดทอนสเตตดังตารางสเตตข้างล่าง
|
|
ตัวอย่างที่ 16.6 จงลดทอนสเตตของตารางสเตตที่กำหนด
|
16.4.3 Merger Diagram
ในการลดทอนสเตต บางครั้งสเตตที่ Equivalent กันมีมากกว่า 2 สเตต การพิจารณาว่าสเตตในแต่ละกลุ่มสามารถทอนลง
เหลือกี่สเตตพิจารณาได้จาก Merger Diagram Merger Diagram เป็นกราฟที่ได้จากกานำสเตตทุกสเตตมาเขียนแทนด้วยจุด
แล้วเขียนเส้น ตรงเชื่อมต่อระหว่างสเตตที่ Equivalent กัน ถ้าสเตตในกลุ่มใดมีเส้นตรงเชื่อมต่อถึงกันหมดทุกสเตต (ทุกสเตตใน
กลุ่ม Equivalent กันทั้งหมด) สามารถลดทอนสเตตทั้งกลุ่มนั้นเหลือเพียง 1 สเตตตัวอย่าง Merger Diagram ที่สามารถ
ลดทอนให้เหลือเพียง 1 สเตต แสดงดังรูปที่ 16.5
|
|
ตัวอย่างที่ 16.7 จงลดทอนสเตตของตารางสเตตที่กำหนด
|
ตัวอย่างที่ 16.8 จงออกแบบวงจรนับแบบซิงโครนัส (Synchronous Counter) ที่แสดงผลเป็นเลข
ฐานสอง ซึ่งมีสวิตซ์ควบคุม 2 ตัว คือ S0 และ S1
|
|
จากข้อมูลที่โจทย์กำหนดให้เขียนเป็นแผนภาพสเตตของวงจร เนื่องจากเป็นวงจรที่เอาต์พุตเหมือนกับสเตต จึงไม่เขียนเอาต์พุตในแผนภาพสเตต
|
|
|
นำสมการลอจิกไปเขียนเป็นวงจรลอจิกดังรูป
|
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น