*R1, R2* = 1 kΩ, *R3, R4* = 10 kΩ
**ฟลิปฟล็อป** (อังกฤษ: flip-flop) หรือ **แลตช์** (อังกฤษ: latch) เป็นวงจรอิเล็กทรอนิกส์ที่มีเอาต์พุตคงที่อยู่ 2 สถานะ คือ {\displaystyle Q} และ {\displaystyle {\overline {Q}}} ซึ่งมีค่าทางตรรกศาสตร์ตรงข้ามกัน เช่น ถ้า {\displaystyle Q} = 1,{\displaystyle {\overline {Q}}} = 0 ฟลิปฟล็อปยังเป็นอุปกรณ์ทางตรรกศาสตร์ซึ่งมีหน่วยความจำขนาดหนึ่งบิต ซึ่งบางครั้งอาจเรียกว่าเป็นอุปกรณ์ที่เสถียรภาพแบบสองสถานะ นั่นคือฟลิปฟล็อปหนึ่งตัวสามารถใช้เก็บค่า 0 หรือ 1 ได้ ซึ่งฟลิปฟล็อปจะทำงานเมื่อสัญญาณนาฬิกามีการเปลี่ยนแปลงค่า สำหรับช่วงเวลาอื่น ๆ ฟลิปฟล็อปจะคงค่าหรือจำค่าเดิมไว้ได้ ดังนั้น ฟลิปฟล็อปจึงเป็นส่วนประกอบพื้นฐานในการสร้างตัวนับ เรจิสเตอร์ และหน่วยความจำ เพื่อเก็บข้อมูลในรูปของเลขฐานสอง ซึ่งในปัจจุบันเราใช้ฟลิปฟล็อปกันอย่างกว้างขวางในอุปกรณ์ดิจิตอลเหมือนเป็นชิ้นส่วนความจำ คุณลักษณะอีกอย่างหนึ่งของฟลิปฟล็อปที่แตกต่างกับเกต คือ สามารถรักษาหรือเปลี่ยนแปลงสถานะของเอาต์พุตได้โดยใช้สัญญาณอินพุต

**พัลส์นาฬิกา** (clock pulse) เป็นวิธีการที่ทำให้ฟลิปฟล็อปแต่ละตัวสามารถเปลี่ยนสภาวะไปพร้อม ๆ กันได้โดยต้องมีการให้สัญญาณการเปลี่ยนสภาวะ ซึ่งทำให้ไม่ต้องใช้ฟลิปฟล็อปต่อร่วมกันหลาย ๆ อัน

ประเภทของฟลิปฟล็อป
------------------

### ดีฟลิปฟล็อป

*ดูบทความหลักได้ใน ดีฟลิปฟล็อป*
**ดีฟลิปฟล็อป** (D flip-flop) จะมีการทำงานเมื่อถูกกระตุ้นด้วยสัญญาณนาฬิกาหรือ clock (CLK) ซึ่งสัญญาณนาฬิกาจะเปลี่ยนแปลงจาก 0>1>0>1>... เช่นนี้เรื่อยไป การกระตุ้นด้วยสัญญาณนาฬิกามีสองแบบคือ

* ขอบขาขึ้น (positive หรือ rising edge) คือ จะมีการเปลี่ยนแปลงจาก 0 เป็น 1
* ขอบขาลง (negative หรือ falling edge) คือ จะมีการเปลี่ยนแปลงจาก 1 เป็น 0

ตารางการทำงานของดีฟลิปฟล็อป

| {\displaystyle CK} | {\displaystyle D} | {\displaystyle Q}n+1 |
| --- | --- | --- |
| ^ | 0 | {\displaystyle 0} |
| ^ | 1 | {\displaystyle 1} |
| 0 | X | {\displaystyle Q}n |

ทีฟลิปฟล็อป
### ทีฟลิปฟล็อป

*ดูบทความหลักได้ใน ทีฟลิปฟล็อป*
**ทีฟลิปฟล็อป** หรือ**ท็อกเกิลฟลิปฟล็อป** (T flip-flop หรือ Toggle flip-flop) จะมีอินพุตสองตัว คือ T (toggle) และ C (clock) อินพุต T ใช้เพื่อ toggle หรือกลับค่าเอาต์พุตของฟลิปฟล็อป
* T มีค่า 1 ค่าของ Q จะถูก toggle นั่นคือกลับค่าจาก 0 เป็น 1 หรือ 1 เป็น 0
* T มีค่า 0 ค่าของ Q จะไม่เปลี่ยนแปลง

ตารางการทำงานของ T flop-flop

| {\displaystyle T} | {\displaystyle Q}ปัจจุบัน |
| --- | --- |
| 0 | {\displaystyle Q}ก่อนหน้านี้ |
| 1 | {\displaystyle {\overline {Q}}}ก่อนหน้านี้ |

### เจเคฟลิปฟล็อป

*ดูบทความหลักได้ใน เจเคฟลิปฟล็อป*
**เจเคฟลิปฟล็อป** (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 ทั้งคู่ ฟลิปฟล็อปจะกลับค่าเดิม

Timing diagram ของเจเคฟลิปฟล็อป
สถานะของ JKฟลิปฟล็อปขณะที่ฟลิปฟล็อปถูกกระตุ้น

JK ฟลิปฟล็อป

| {\displaystyle J} | {\displaystyle K} | {\displaystyle Q}ปัจจุบัน |
| --- | --- | --- |
| 0 | 0 | {\displaystyle Q}ก่อนหน้านี้ |
| 1 | 0 | {\displaystyle Set} |
| 0 | 1 | {\displaystyle Reset} |
| 1 | 1 | {\displaystyle {\overline {Q}}}ก่อนหน้านี้ |

### อาร์เอสฟลิปฟล็อป

**อาร์เอสฟลิปฟล็อป** (R-S 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ฟลิปฟล็อปสามารถสรุปการทำงานได้ดังนี้

| {\displaystyle S} | {\displaystyle R} | {\displaystyle Q} | {\displaystyle {\overline {Q}}} | การทำงาน |
| --- | --- | --- | --- | --- |
| 0 | 0 | {\displaystyle Q} | {\displaystyle {\overline {Q}}} | เก็บค่าเดิมไว้ ไม่เปลี่ยนแปลง (hold state) |
| 1 | 0 | {\displaystyle 1} | {\displaystyle 0} | เซต (set) |
| 0 | 1 | {\displaystyle 0} | {\displaystyle 1} | รีเซต (reset) |
| 1 | 1 | {\displaystyle 0} | {\displaystyle 0} | ไม่ใช้งาน (race condition) |

ดูเพิ่ม
-------

* แลตช์ (อิเล็กทรอนิกส์)

แหล่งข้อมูลอื่น
---------------

* จำลองสัญญาณอาร์เอสฟลิปฟล็อป [*ลิงก์เสีย*]
* จำลองสัญญาณฟลิปฟล็อบ