ฟลิปฟล็อป
|
|
มีการแนะนำว่า แลตช์ (อิเล็กทรอนิกส์) ควรย้ายมารวมกับบทความนี้หรือส่วนนี้ (อภิปราย) |
| บทความนี้ไม่มีการอ้างอิงจากเอกสารอ้างอิงหรือแหล่งข้อมูล โปรดช่วยพัฒนาบทความนี้โดยเพิ่มแหล่งข้อมูลน่าเชื่อถือ เนื้อหาที่ไม่มีการอ้างอิงอาจถูกคัดค้านหรือนำออก |
ฟลิปฟล็อป (อังกฤษ: flip-flop) หรือ แลตช์ (อังกฤษ: latch) เป็นวงจรอิเล็กทรอนิกส์ที่มี Output คงที่อยู่ 2 สถานะ คือ
และ
ซึ่งมีค่า ทางลอจิกตรงข้ามกัน เช่น ถ้า
= 1,
= 0 ฟลิปฟล็อปยังเป็นอุปกรณ์ทางลอจิกซึ่งมีหน่วยความจำขนาดหนึ่งบิต ซึ่งบางครั้งอาจเรียกว่า เป็นอุปกรณ์ที่เสถียรภาพแบบสองสถานะ นั่นคือ ฟลิปฟล็อป หนึ่งตัวสามารถใช้เก็บค่า 0 หรือ 1 ได้ ซึ่งฟลิปฟล็อปจะทำงานเมื่อสัญญาณนาฬิกามีการเปลี่ยนแปลงค่า สำหรับช่วงเวลาอื่นๆ ฟลิปฟล็อปจะคงค่าหรือจำค่าเดิมไว้ได้ ดังนั้น ฟลิปฟล็อป จึงเป็นส่วนประกอบพื้นฐานในการสร้างตัวนับ เรจิสเตอร์ และหน่วยความจำ เพื่อเก็บข้อมูลในรูปของเลขฐานสอง ซึ่งในปัจจุบันเราใช้ ฟลิปฟล็อป กันอย่างกว้างขวางในอุปกรณ์ดิจิตอล เหมือนเป็นชิ้นส่วนความจำ คุณลักษณะอีกอย่างหนึ่งของฟลิปฟล็อปที่แตกต่างกับ gate คือ สามารถรักษาหรือเปลี่ยนแปลงสถานะของเอาต์พุตได้โดยใช้สัญญาณอินพุต
clock pulse เป็นวิธีการที่ทำให้ฟลิปฟล็อปแต่ละตัวสามารถเปลี่ยนสภาวะไปพร้อมๆ กันได้โดยต้องมีการให้สัญญาณการเปลี่ยนสถาวะ ซึ่งสัญญาณนี้เรียกว่า Clock pulse(CK)ส่วนนี้เองที่ทำให้ไม่ต้องใช้ฟลิปฟล็อปต่อร่วมกันหลายๆ อัน
ฟลิปฟล็อป ประกอบด้วย 4 ประเภทคือ ดีฟลิปฟล็อป ทีฟลิปฟล็อป เจเคฟลิปฟล็อป และเอสอาร์ฟลิปฟล็อป
เนื้อหา |
ดีฟลิปฟล็อป [แก้]
- ดูบทความหลักได้ใน ดีฟลิปฟล็อป
ดีฟลิปฟล็อป (D flip-flop) จะมีการทำงานเมื่อถูกกระตุ้นด้วยสัญญาณนาฬิกาหรือ clock (CLK) ซึ่งสัญญาณนาฬิกาจะเปลี่ยนแปลงจาก 0>1>0>1>... เช่นนี้เรื่อยไป การกระตุ้นด้วยสัญญาณนาฬิกามีสองแบบคือ
- ขอบขาขึ้น (positive หรือ rising edge) คือ จะมีการเปลี่ยนแปลงจาก 0 เป็น 1
- ขอบขาลง (negative หรือ falling edge) คือ จะมีการเปลี่ยนแปลงจาก 1 เป็น 0
ตารางการทำงานของดีฟลิปฟล็อป
![]() |
![]() |
n+1 |
|---|---|---|
| ^ | 0 | ![]() |
| ^ | 1 | ![]() |
| 0 | X | n |
ทีฟลิปฟล็อป [แก้]
- ดูบทความหลักได้ใน ทีฟลิปฟล็อป
- ทีฟลิปฟล็อปหรือท๊อกเกิลฟลิปฟล็อป (T flip-flop หรือ Toggle flip-flop) จะมีอินพุตสองตัว คือ T (toggle) และ C (clock) อินพุต T ใช้เพื่อ toggle หรือกลับค่า output ของฟลิปฟล็อป
- T มีค่า 1 ค่าของ Q จะถูก toggle นั่นคือกลับค่าจาก 0 เป็น 1 หรือ 1 เป็น 0
- T มีค่า 0 ค่าของ Q จะไม่เปลี่ยนแปลง
ตารางการทำงานของ T flop-flop
![]() |
ปัจจุบัน |
|---|---|
| 0 | ก่อนหน้านี้ |
| 1 | ก่อนหน้านี้ |
เจเคฟลิปฟล็อป [แก้]
- ดูบทความหลักได้ใน เจเคฟลิปฟล็อป
เจเคฟลิปฟล็อป (JK flip-flop) จะมีอินพุตสามตัว คือ J, K และ C (clock)
- J ใช้ในการ set ค่าของฟลิปฟล็อป คือทำให้ฟลิปฟล็อปมีค่าเป็น 1 ดังนั้นถ้า J=1 และ K=0 แล้ว Q จะเท่ากับ 1
- K ใช้ในการ reset ค่าของฟลิปฟล็อป คือทำให้ฟลิปฟล็อปมีค่าเป็น 0 ดังนั้นถ้า K=1 และ J=0 แล้ว Q จะเท่ากับ 0
- ถ้า J และ K เป็น 0 ทั้งคู่ ฟลิปฟล็อปจะคงค่าเดิมไว้
- ถ้า J และ K เป็น 1 ทั้งคู่ ฟลิปฟล็อปจะกลับค่าเดิม
สถานะของ JKฟลิปฟล็อปขณะที่ฟลิปฟล็อปถูกกระตุ้น
![]() |
![]() |
ปัจจุบัน |
|---|---|---|
| 0 | 0 | ก่อนหน้านี้ |
| 1 | 0 | ![]() |
| 0 | 1 | ![]() |
| 1 | 1 | ก่อนหน้านี้ |
อาร์เอสฟลิปฟล็อป [แก้]
อาร์เอสฟลิปฟล็อป (SR flip-flop) เป็นฟลิปฟล็อปสมมติ เพราะอินพุตแบบอาร์เอสมักเป็นแลตซ์ไม่ใช่ฟลิปฟล็อป ซึ่งจะมีอินพุตสามตัว คือ S (set), R (reset) และ C (clock)
- S ใช้ในการ set ค่าของฟลิปฟล็อป คือทำให้ฟลิปฟล็อปมีค่าเป็น 1 ดังนั้นถ้า S=1 และ R=0 แล้ว Q จะเท่ากับ 1
- R ใช้ในการ reset ค่าของฟลิปฟล็อป คือทำให้ฟลิปฟล็อปมีค่าเป็น 0 ดังนั้นถ้า R=1 และ S=0 แล้ว Q จะเท่ากับ 0
- ถ้า S และ R เป็น 0 ทั้งคู่ ฟลิปฟล็อปจะคงค่าเดิมไว้
- ถ้า S และ R เป็น 1 ทั้งคู่ ถือเป็นกรณีที่ผิดปรกติ เพราะว่าเอาต์พุตของฟลิปฟล็อปไม่ได้ถูกกำหนดไว้ในกรณีนี้(ภาวะแข่งขัน)
ฟังก์ชันการทำงานของ SRฟลิปฟล็อปสามารถสรุปการทำงานได้ดังนี้
![]() |
![]() |
![]() |
![]() |
การทำงาน |
|---|---|---|---|---|
| 0 | 0 | ![]() |
![]() |
เก็บค่าเดิมไว้ ไม่เปลี่ยนแปลง (hold state) |
| 1 | 0 | ![]() |
![]() |
เซต (set) |
| 0 | 1 | ![]() |
![]() |
รีเซต (reset) |
| 1 | 1 | ![]() |
![]() |
ไม่ใช้งาน (race condition) |
สรุป [แก้]
ฟลิปฟล็อป ประกอบด้วย 4 ประเภท คือ D, T, JK, และ SR การอธิบายนั้นก็จะเรียงตามความง่ายในการใช้งาน โดยเรียงจากง่ายไปยาก แต่ในการสร้างฟลิปฟล็อปนั้น เราจะเริ่มต้นสร้างจาก Rs ก่อน แล้วจึงนำ Rs ไปสร้างฟลิปฟล็อปแบบอื่น








