ความรู้เกี่ยวกับวงจรซีเควนเชียล
(Sequential Circuit)
<< 14.1 ประเภทของวงจรซีเควนเชียล << 14.2 ลักษณะสัญญาณอินพุต << 14.3 ตารางสเตจและแผนภาพสเตจ << 14.4 แลตซ์ (Latch)
วงจรดิจิตอลที่ประกอบด้วยเกตแต่เพียงอย่างเดียวนั้นเรียกว่าเป็นวงจรประเภท Combination Logic Circuit วงจรประเภทนี้ Output
ของมันที่เวลาใดๆ จะเป็น Function ของ Input ที่เวลานั้นๆเท่านั้น ซึ่งโดยทั่วไปแล้วในระบบดิจิตอลจะต้องมีวงจรเพิ่มเติมที่สามารถใช้เก็บข้อมูล
ต่างๆ ได้และยังสามารถทำการคำนวณทางด้านคณิตศาสตร์ (Mathematical) หรือปฏิบัติการทางด้าน Logic (Logical operation) กับ
ข้อมูลเหล่านั้นได้ อุปกรณ์ที่ใช้สำหรับเก็บข้อมูลต่างๆ ไว้ได้ก็คือหน่วยความจำ (Memory) หรืออุปกรณ์ที่เรียกว่า Flip Flop นั่นเอง เมื่อนำหน่วย
ความจำ (Flip Flop) เข้ามารวมกับวงจร Combination Logic ทำให้ Output ของมันที่เวลาใดๆ เป็น Function ของ Input จากภายนอกที่
ี่เวลานั้นๆ และก็ยังเป็น Function ของข้อมูลที่เก็บไว้ในหน่วยความจำนั้นๆ ด้วย เราเรียกวงจรประเภทนี้ว่าวงจร Sequential ซึ่ง
มี Block Diagram ดังแสดงตามรูปที่ 14.1 (ข)
|
รูปที่ 14.1 แสดงโครงสร้างของวงจร คอมไบเนชั่นและวงจรซีเควนเชียล
|
รูปที่ 14.1 (ก) แสดงโครงสร้างวงจรคอมไบเนชั่น โดยที่เอาต์พุตของวงจรจะขึ้นอยู่กับอินพุตขณะนั้นเพียงอย่างเดียว
รูปที่ 14.1 (ข) แสดงโครงสร้างของวงจรซีเควนเชียล จะประกอบด้วยวงจรคอมไบเนชั่นและหน่วยความจำ (Memory)
ส่วนที่เป็นหน่วยความจำ จะทำหน้าที่เป็นวงจรป้อนกลับ (Feedback) ดังนั้น เอาต์พุตของวงจรจะขึ้นอยู่กับทั้งอินพุตและ
ข้อมูลที่เก็บไว้ในหน่วยความจำ
|
สัญญาณจากภายนอกที่จ่ายให้กับวงจร เรียกว่า อินพุต เขียนแทนด้วย
สัญญาณเอาต์พุตของวงจร เขียนแทนด้วย
สัญญาณจากเอาต์พุตของหน่วยความจำจะป้อนกลับไปเป็นอินพุตของวงจรคอมไบเนชั่นเรียกสัญญาณส่วนนี้ว่า Present State
หรือสถานะปัจจุบัน ได้ แก่
กรณีที่ใช้ D Flip-Flop เป็นหน่วยความจำ จะเรียกสัญญาณที่เป็นอินพุตของหน่วยความจำว่า Next State หรือสถานะถัดไป
ได้แก่ แต่ถ้าเป็นฟลิปฟลอปชนิดอื่น ค่า Next State จะเกิดขึ้นจากการทำงานของฟลิปฟลอป
สัญญาณนาฬิกา (Clock) ทำหน้าที่ควบคมการทำงานของฟลิปฟลอป ซึ่งอาจจะมีหรือไม่มีก็ได้แล้วแต่ชนิดของวงจร สัญญาณนาฬิกา
มีลักษณะเป็นพัลส์ (Pulse) มีการนับช่วงคาบเวลา 2 แบบ คือ
|
1. นับช่วงขอบลง (Negative Edge) ของพัลส์
2. นับช่วงขอบขึ้น (Positive Edge) ของพัลส์
รูปที่ 14.2 แสดงรูปของพัลส์ ช่วงขอบลง และขอบขึ้น
|
14.1 ประเภทของวงจรซีเควนเชียล
วงจรซีเควนเชียลแบ่งเป็น 2 ชนิดคือ
1. วงจรซิงโครนัส (Synchronous Sequential) เป็นวงจรที่มีสัญญาณนาฬิกาเสมอ โดยฟลิปฟลอปทุกตัวจะได้รับ
สัญญาณนาฬิกาจากภายนอกเหมือนกัน
2. วงจรอะซิงโครนัส (Asynchronous Sequential) เป็นวงจรที่อาจจะมีหรือไม่มีสัญญาณนาฬิกาก็ได้ ถ้ามีสัญญาณ
นาฬิกาจะมีฟลิปฟลอปอย่างน้อย 1 ตัว ไม่ได้ต่อกับสัญญาณนาฬิกาโดยตรง
|
14.2 ลักษณะสัญญาณอินพุต
สัญญาณอินพุตจากภายนอกที่จ่ายให้กับวงจรซีเควนเชียลแบ่งเป็น 2 แบบ คือ
1. อินพุตแบบระดับสัญญาณ (Level)
2. อินพุตแบบพัลส์ (Pulse) เป็นอินพุตที่เข้ามาในช่วงเวลาสั้นๆ ถ้าเป็นวงจรที่มีสัญญาณนาฬิกาจะกำหนดความกว้าง
ของพัลส์เท่ากับความกว้างพัลส์ของสัญญาณนาฬิกา
ลักษณะของสัญญาณทั้ง 2 แบบ แสดงดังรูปที่ 14.3 ซึ่งเป็นกรณีที่อินพุตเป็น 101110
|
รูปที่ 14.3 แสดงลักษณะอินพุตของวงจรซีเควนเชียล
|
วงจรซิงโครนัส ไม่ว่าอินพุตจะเป็นแบบระดับสัญญาณหรือแบบพัลส์ การออกแบบวงจรจะใช้วิธีการเดียวกัน วงจรอะซิงโครนัส
การออกแบบจะขึ้นอยู่กับลักษณะของอินพุต ถ้าอินพุตเป็นแบบระดับสัญญาณ เรียกว่า วงจร Fundamental Mode ถ้าอินพุต
เป็นแบบพัลส์เรียกว่า วงจร Pulse Mode
<< Go To Top
|
14.3 ตารางสเตจและแผนภาพสเตจ
ประโยชน์ของตารางสเตจ (State Table) และแผนภาพสเตจ (State Diagram) ก็คือใช้ในการอธิบายคุณสมบัติการทำงาน
ของวงจรซีเควนเชียล ซึ่งเป็นการแสดงความสัมพันธ์ระหว่างอินพุต เอาต์พุต Present State และ Next State ของวงจรตาราง
สเตจมีลักษณะเป็นตารางเหมือน KM ด้านหนึ่งเขียนแทนด้วยอินพุต อีกด้านหนึ่งเขียนแทนด้วย Present State ส่วนค่าในตารางจะ
เขียนในรูปฟอร์ม Next State/Output ดังรูปที่ 14.4 (ก) แผนภาพสเตจ หรือบางครั้งเรียกว่า กราฟสเตจ (State Graph) มีลักษณะ
เป็นกราฟ จะเขียน Present State และ Next State ลงในวงกลม (หรือรูปอย่างอื่น) มีลูกศรชี้จาก Present State ไปหา Next State
ที่ลูกศรเขียนกำกับด้วย Input/Output ดังรูปที่ 14.4 (ข)
|
รูปที่ 14.4 แสดงลักษณะของตารางสเตจและแผนภาพสเตจ
|
Present State และ Next State อาจเขียนในรูปตัวเลขหรืออักษรก็ได้ทั้งตารางสเตจ และแผนภาพสเตจจะใช้อธิบายคุณสมบัติ
ของวงจรซีเควนเชียลได้เหมือนกัน ต่างกันที่รูปฟอร์มเท่านั้น รูปฟอร์มทั้ง 2 รูปแบบสามารถใช้แทนกันได้ และแปลงจากรูปฟอร์มหนึ่ง
ไปเป็นอีกรูปฟอร์มหนึ่งได้ ทั้ง State Diagram และState Table มีหน้าที่แสดงการเปลี่ยนแปลง State ของวงจรSequential
กล่าวคือมันจะแสดงให้เราได้ทราบว่าที่ Present state ใดๆ เมื่อวงจรได้รับ Input เข้ามาแล้ว Stateของวงจรจะเปลี่ยนแปลงอย่างไร
บ้าง รวมทั้งแสดง Output ของวงจรที่เวลานั้นๆ ว่าเป็นอย่างไรด้วยState Diagram และ State Table มีวิธีการเขียนได้ 2 แบบคือ
แบบของ Mealy และแบบของ Moore
|
14.3.1 แบบของ Mealy (Mealy Model)
การเขียน State Diagram ตามแบบของ Mealy ใช้ตัวอักษรเขียนอยู่ในวงกลม โดยที่ตัวอักษรแสดงถึง State ต่างๆ
การเชื่อมโยงระหว่าง Present State กับ Next State เชื่อมด้วยเส้นตรงหรือเส้นโค้ง โดยมีหัวลูกศรกำกับไว้ และแต่ละ
เส้นที่เชื่อมโยงกันนั้น ก็ยังมีตัวเลข 2 ชุด กำกับไว้อีกด้วยโดยตัวเลขชุดแรกแสดงถึง Input ส่วนตัวเลขชุดหลังแสดงถึง Output
ของวงจร เช่น 1/0 หมายความว่า เมื่อวงจรได้รับ Input = 1 ก็จะให้ Output = 0 เป็นต้น สำหรับตัวอย่างของ State Table
และ State Diagram แสดงตามรูปที่ 14.5
|
รูปที่ 14.5 Mealy Model
|
จากรูปที่ 14.5 อธิบายได้คือ
- ถ้า State A เป็น Present State และวงจรได้รับ Input x = 0 แล้ว Next State ของวงจรจะเป็น State B และให้ Output Z = 1
แต่ถ้าวงจรได้รับ Input x = 1 Next State ก็จะเป็น State C และให้Output Z = 0
- ถ้า State B เป็น Present State และวงจรได้รับ Input x = 0 แล้ว Next State ของวงจรก็ยังคงอยู่ที่ State B หรือไม่มีการเปลี่ยน
แปลงและให้ Output Z = 0 แต่ถ้าวงจรได้รับ Input x = 1 Next State ก็จะเป็น State A และให้Output Z = 1
- ถ้า State C เป็น Present State และวงจรได้รับ Input x = 0 แล้ว Next State ของวงจรจะเป็น State A และให้ Output Z = 0
แต่ถ้าวงจรได้รับ Input x = 1 Next State ของวงจรก็ยังคงอยู่ที่ State C และให้ Output Z = 0
จาก State Table หรือ State Diagram ดังแสดงตามรูปที่14.5 กำหนดให้วงจรเริ่มตั้งต้นทำงาน (Starting State) ที่ State Aและ
ป้อน Input Sequence x = 001101100 ให้กับวงจรแล้วเราสามารถเขียน State Sequence (Next State) และ Output Sequence
(Z) ได้ดังนี้
|
Input Sequence x = 0 0 1 1 0 1 1 0 0
Present State PS = A B B A C A C C A
Next State NS = B B A C A C C A B
Output Sequence Z = 1 0 1 0 0 0 0 0 1
|
14.3.2 แบบของ Moore (Moore Model)
การเขียน State Diagram ตามแบบของ Moore ใช้ตัวอักษรและตัวเลขเขียนอยู่ในวงกลม โดยที่ตัวอักษรแสดงถึง State ต่างๆ
ส่วนตัวเลขแสดงถึง Output ที่เวลานั้นๆ เช่น A/0 หมายความว่าที่State A ณ เวลาใดเวลาหนึ่งถ้าได้รับ Input ใดๆ แล้ว วงจรจะให้
Output = 0 เป็นต้น การเขียนเชื่อมโยงระหว่าง Present State กับ Next State จะเชื่อมด้วยเส้นตรงหรือเส้นโค้ง โดยมีหัวลูกศร
กำกับไว้และแต่ละเส้นที่เชื่อมโยงกันก็ยังมีตัวเลข 1 ชุด ซึ่งแสดงถึงการป้อน Input กำกับไว้อีกด้วยMoore Model ใช้ในกรณีที่ Output
ของวงจรไม่ได้ขึ้นอยู่กับ Input แต่จะขึ้นอยู่กับ Present State เท่านั้น ดังนั้น State Table และ State Diagram ตามแบบของ
Moore จึงแตกต่างกันกับแบบของ Mealy ดังแสดงตามรูปที่ 14.6
|
รูปที่ 14.6 Moore Model
|
จากรูปที่ 14.6 อธิบายได้คือ
- ถ้าให้ State A เป็น Present State และวงจรได้รับ Input x = 0 แล้ว Next State ของวงจรจะเป็น State C และให้
Output Z = 0 แต่ถ้าวงจรได้รับ Input x = 1 Next State ก็เป็น State B และให้ Output Z = 0
- ถ้าให้ State B เป็น Present State และวงจรได้รับ Input x = 0 แล้ว Next State ของวงจรก็ยังคงอยู่ที่ State B
หรือไม่เปลี่ยนแปลง และให้ Output Z = 1 แต่ถ้าวงจรได้รับ Input x = 1 Next State ก็เป็น State C และให้ Output Z = 1
- ถ้าให้ State C เป็น Present State และวงจรได้รับ 1 Input x = 0 แล้ว Next State ของวงจรจะเป็น State B และให้
Output Z = 0 แต่ถ้าวงจรได้รับ Input x = 1 Next State ก็เป็น State A และให้ Output Z = 0 จาก State Table หรือ
State Diagram ตามรูปที่ 14.6 หากกำหนดให้วงจรเริ่มตั้งต้นทำงาน (Starting State) ที่ State B และป้อน Input Sequence
x = 101100011 ให้กับวงจรแล้วสามารถเขียน State Sequence (Next State) และ Output Sequence (Z) ได้ดังนี้
|
Input Sequence x = 1 0 1 1 0 0 0 1 1
Present State S = B C B C A C B B C
Next State NS = C B C A C B B C A
Output Sequenc e Z = 1 0 1 0 0 0 1 1 0
|
ตัวอย่างที่ 14.2 จากตารางสเตจในตัวอย่างที่ 14.1 ถ้าป้อนสัญญาณอินพุต x = 0110101100 ให้กับ
วงจร กำหนดให้วงจรเริ่มทำงานที่สเตจเริ่มต้น ( ) = A จงหาลำดับของเอาต์พุตและ
สเตจสุดท้าย (Present state สุดท้ายหลังจากที่ป้อนอินพุตให้กับวงจรครบทุกบิต)
วิธีทำ
ลำดับของเอาต์พุต คือ 0100110111, สเตจสุดท้ายคือ สเตจ C ตอบ
|
จากโจทย์ตัวอย่างที่ 14.2 ต้องการหาสเตจสุดท้ายหลังจากอินพุตเข้ามาครบทุกบิต ดังนั้นจึงต้องกำหนดช่วงเวลา (Time)
ให้มากกว่าจำนวนบิตของอินพุต 1 ช่วงเวลา โจทย์กำหนดอินพุต 10 บิต จึงกำหนดช่วงเวลาขึ้นมา 11 ช่วงคือ Time 1 ถึง 11
แต่ละช่วงเวลาเขียนอินพุตเรียงตามลำดับโจทย์กำหนดสเตจเริ่มต้นเป็น A จึงเขียน Present State A ลงในช่วง Time 1 จาก
นั้นพิจารณาแต่ละช่วงดังนี้
|
ช่วง Time 1
Present state เป็น A อินพุตเป็น 0 จากตารางสเตจจะได้ Next State เป็น D เอาต์พุตเป็น 0 เมื่อช่วงเวลาเปลี่ยนจาก
Time 1 เป็น Time 2 จะทำให้ Next State D ในช่วง Time 1 เปลี่ยนเป็น Present State D ในช่วง Time 2
ช่วง Time 2
Present State เป็น D อินพุตเป็น 1 จากตารางสเตจจะได้ Next State เป็น Bเอาต์พุตเป็น 1 เมื่อช่วงเวลาเปลี่ยนจาก
Time 2 เป็น Time 3 จะทำให้ Next State B ในช่วง Time 2 เปลี่ยนเป็น Present State B ในช่วง Time 3
ในช่วงเวลาอื่นๆ ก็จะพิจารณาในทำนองเดียวกัน จนกระทั่งครบทุกค่าอินพุตก็จะได้คำตอบ คือลำดับของเอาต์พุตและสเตจสุดท้าย
|
14.4 แลตซ์ (Latch)
แลตซ์เป็นอุปกรณ์พื้นฐาน ทำหน้าที่เก็บข้อมูลชั่วคราว โดยแลตซ์ 1 ตัว จะเก็บข้อมูลได้เพียง 1 บิต
|
14.4.1
หรือ Set-Reset Latch เป็นแลตซ์ที่มีอินพุตเป็นแบบ Active Low ลักษณะของ
แสดงดังรูปที่ 14.7
รูปที่ 14.7 แสดงลักษณะของ S-R Latch
|
ประกอบด้วย 2 อินพุต คือ Set (S), Reset (R) และมี 2 เอาต์พุต คือ โดยเอาต์พุตจะต้องมีลอจิกตรงข้ามกันเสมอ
เป็นอุปกรณ์ที่ได้จากการนำแนนด์เกต 2 ตัว มาต่อแบบป้อนกลับ โดยเอาต์พุตของ แนนด์เกต
ตัวหนึ่งป้อนกลับ ไปเป็นอินพุตของ แนนด์เกต อีกตัวหนึ่ง เรียกการต่อวงจรลักษณะนี้ว่า Cross-Coupled Feedback การทำงานของ Latch
แสดงดังรูปที่ 14.8
|
ปที่ 14.8 แสดงการทำงานของ
|
จากการทำงานของวงจรในรูป 14.8 นำไปเขียนเป็นตารางความจริงได้ดังตารางที่ 14.1 (ก) โดยนำมาเขียนเฉพาะเอาต์พุต เท่านั้น ส่วน
จะมีค่าตรงข้ามกับ จากตารางที่ 14.1 (ก) จัดตารางใหม่ได้เป็น ตารางที่ 14.1 (ข)
|
ตารางที่ 14.1 (ก) ตารางความจริงที่ได้จากวงจร ตารางที่ 14.1 (ข) ตารางความจริงที่นำไปใช้งาน
|
จากคุณสมบัติตามตารางความจริงตารางที่ 14.1 (ข) จะนำไปเขียนแทนด้วยสัญลักษณ์ รูปที่ 14.7 (ข) ดังนั้นคุณสมบัติของ
สามารถพิจารณาได้จากสัญลักษณ์รูปที่ 14.7 (ข) โดย ตรง ซึ่งมีหลักการพิจารณาดังนี้
|
ขา Set (S) หมายถึง อินพุตที่ควบคุมให้เอาต์พุตเป็น 1
ขา Reset (R) หมายถึง อินพุตที่ควบคุมให้เอาต์พุตเป็น 0
ถ้าอินพุต S Active (มีลอจิกเป็น 0) จะทำให้เอาต์พุตเป็น 1
ถ้าอินพุต R Active (มีลอจิกเป็น 0) จะทำให้เอาต์พุตเป็น 0
ถ้าทั้ง S และ R ไม่ Active เอาต์พุตจะเหมือนเดิม
ถ้า S และ R Active พร้อมกัน ไม่สามารถนำไปใช้งานได้
|
14.4.2 S-R Latch
S-R Latch เป็นแลตซ์ที่มีอินพุตเป็นแบบ Active High ดัดแปลงมาจาก Latch โดยการเปลี่ยนวงจรจากแนนด์เกต มาเป็นนอร์เกต
ดังรูปที่ 14.9
|
รูปที่ 14.9 แสดงลักษณะของ S-R Latch
|
การทำงานของวงจร S-R Latch วิเคราะห์ได้เช่นเดียวกับวงจร โดยสามารถเขียนเป็นตารางความจริงได้ดังตารางที่ 14.2
ตารางที่ 14.2 แสดงตารางความจริงของ S-R Latch
|
14.4.3 เบอร์ไอซีที่เป็นแลตซ์
74279 Quad เป็นแลตซ์ที่อินพุตเป็นแบบ Active Low ซึ่งมีคุณสมบัติการทำงานแสดงดังรูปที่ 14.10
|
รูปที่ 14.10 แสดงการทำงานไอซีเบอร์ 74279
|
จากสัญญาณรูปที่ 14.10 (ค) เริ่มต้นการทำงานให้ S และ R เป็น l Q เป็น 0
เมื่อเวลา t1, R เปลี่ยนเป็น 0 แลตซ์ได้รับการ Reset ทำให้ Q เป็น 0 เหมือนเดิม
เมื่อเวลา t2, S เปลี่ยนเป็น 0 แลตซ์ได้รับการ Set ทำให้ Q เป็น 1 ไม่ว่าสัญญาณที่ขา S จะเปลี่ยนแปลงอย่างไรก็ตาม Q
จะยังคงเหมือนเดิม
เมื่อเวลา t5, R เปลี่ยนเป็น 0 แลตซ์ได้รับการ Reset ทำให้ Q เป็น 0 ไม่ว่าสัญญาณที่ขา R จะเปลี่ยนแปลงอย่างไรก็
ตาม Q จะยังคงเป็น 0 เหมือนเดิม
|
ตัวอย่าง การนำ Latch ไปใช้งานแสดงดังรูปที่ 14.11 เป็นการนำ Latch ไปแก้ความผิดเพี้ยนของสัญญาณที่เกิดจากการสั่นของสวิตซ์
(Contact Bounce) ซึ่งเรียกว่า Contact Debounce
รูปที่ 14.11 แสดงการใช้ แก้ Contact Bounce
|
จากรูปที่ 14.11 (ก) ขณะที่สวิตซ์ต่อที่ตำแหน่ง 1 จะได้ เป็น 0 เมื่อเปลี่ยนตำแหน่งสวิตซ์ไปที่ตำแหน่ง 2 จะได้ เป็น 1 แต่เนื่อง
จากการสั่นของสวิตซ์ทำให้สัญญาณ มีการเปลี่ยน แปลง ระหว่าง 0 กับ 1 เรียกลักษณะสวิตซ์แบบนี้ว่า Contact Bounce ถ้านำสัญญาณ
ไปป้อนให้กับวงจรลอจิก ทำให้วงจรลอจิกทำงานผิดพลาดได้ เพื่อแก้ Contact Bounce ที่เกิดขึ้น จึงดัดแปลงวงจรใหม่ดังรูปที่ 14.11 (ข)
ขณะที่สวิตซ์ต่อที่ตำแหน่ง 1 จะได้ เป็น 0 เมื่อเปลี่ยนตำแหน่งสวิตซ์ไปที่ตำแหน่ง 2 จะได้ เป็น 1 ถึงแม้ Contact จะสั่นสัญญาณ
ก็ยังคงเป็น 1 เหมือนเดิม เรียกการทำงานแบบนี้ว่า Contact Debounce
|
รูปที่ 14.12 แสดงลักษณะของ D Latch
|
การทำงานของวงจรแสดงดังรูปที่ 14.13
รูปที่ 14.13 แสดงการทำงานของ D Latch
|
จากรูปที่ 14.13 (ก) เป็นกรณี G = 0 ทั้ง และ จะไม่มีการเปลี่ยนแปลง ส่วนวงจรรูปที่ 14.13 (ข) เป็นกรณี G = 1 จะทำให้
นำจากการทำงานของวงจรไปเขียนเป็นตารางความจริงได้ดังตารางที่ 14.3
|
ตารางที่ 14.3 แสดงตารางความจริง
|
ไม่มีความคิดเห็น:
แสดงความคิดเห็น