JK-FlipFlop
จากวิกิพีเดีย สารานุกรมเสรี
JK-FlipFlop
J-K ฟลิปฟลอป จะทำโดยนำ R-S ฟลิปฟลอปและเพิ่มวงจรลอจิกเข้าไปบางส่วนนอกจากนี้ J-K ฟลิปฟลอปยังเป็นฟลิปฟลอปที่สามารถนำไปสร้างเป็นฟลิปฟลอปประเภทอื่น ๆ ได้อีกด้วย
ในรูปที่1 จะนำเอาเกดแบบ AND สองตัวมาต่อกับ R-S ฟลิปฟลอปแบบใช้สัญญาณกระตุ้นโดยนำเอาต์พุต Q และ Q- มาป้อนกลับให้เกตแต่ละตัว การป้อนกลับนี้จะทำให้สภาวะที่ Q และ Q- มีค่าเท่ากันนั้นหายไป วงจรนี้จะเรียกว่า J-K ฟลิปฟลอป โดยมีสัญญาณเข้าสองขาคือ J และ K
ฟลิปฟลอปตามรูป เมื่อสัญญาณกระตุ้น CLK เป็นลอจิก "1" จะเกิดการทำงาน ถ้าเป็นลอจิก "0" จะอยู่ในสภาวะแลตช์ข้อมูล จากรูปจะพบอินพุต J และ K จะมีค่าเป็นไปได้ทั้งหมด 4 รูปแบบ โดยพิจารณาได้ดังต่อไปนี้ (ดูที่รูปประกอบ) แบบแรก ถ้า J = "0" และ K = "0" กรณีนี้จะทำให้ขา S และ R ของ R-S ฟลิปฟลอปเป็นลอจิก "0" ทั้งคู่ ทำให้ฟลิปฟลอปอยู่ในสภาวะคงค่าข้อมูล(latch) โดย Q และ Q- จะเก็บค่าเดิมเอาไว้ แบบที่สอง ถ้า J = "0" และ K = "1" กรณีนี้ขา S จะเป็น "0" ถ้าภาวะเดิมของฟลิปฟลอปมี Q = "1" และ Q- = "0" จะทำให้อินพุต R เป็น "1" ดังนั้น S = "0" และ R = "1" หมายความว่าฟลิปฟลอปอยู่ในสถานะล้างค่า(reset) และถ้าภาวะเดิมของฟลิปฟลอปมี Q = "0" และ Q- = "1" จะทำให้ขา R เป็น "0" ดังนั้น เมื่อ S = "0" (J = "0")ฟลิปฟลอปจะคงค่า์ข้อมูล(latch) ทำให้ Q = "0" และ Q- = "1" ตามเดิม สรุปได้ว่า ถ้า J = "0" และ K = "1" จะทำให้ J-K ฟลิปฟลอป อยู่ในสภาวะถูกล้างค่า(reset) แบบที่สาม ถ้า J = "1" และ K = "0" กรณีนี้อาศัยหลักการวิเคราะห์ตามแบบที่สอง จะพบว่าจะทำให้ฟลิปฟลอปอยู่ในสภาวะตั้งค่า(set) แบบที่สี่ ถ้า J = "1" และ K = "1" กรณีนี้ถ้าภาวะเดิม Q = "1" และ Q- = "0" ทำให้อินพุต S เป็น "0" และ R เป็น "1" จะทำให้ฟลิปฟลอปถูกล้างค่า(reset) โดย Q จะเปลี่ยนเป็นลอจิก "0" ถ้าภาวะเดิม Q = "0" และ Q- = "1" ทำให้อินพุต S เป็น "1" และ R เป็น "0" จะทำให้ฟลิปฟลอปถูกตั้งค่าใหม่(set) โดย Q จะเป็นลอจิก "1" ดังนั้นสรุปได้ว่าถ้า J = "1" และ K = "1" เมื่อมีสัญญาณพัลส์เข้ามา เอาต์พุตของฟลิปฟลอปจะเปลี่ยนเป็นค่าตรงกันข้ามจากสภาวะเดิม เราเรียกการเปลี่ยนแปลงนี้ว่า Toggle Action หรือการกลับค่าของสัญญาณ การทำงานของ J-K ฟลิปฟลอป เมื่อมีสัญญาณกระตุ้นเข้ามาสามารถสรุปได้ดังตารางต่อไปนี้
เนื่องจากวงจรของ J-K ฟลิปฟลอป จะต้องนำสัญญาณทางเอาต์พุตป้อนกลับมาทางอินพุต การใช้งานบางประเภทจะทำให้ฟลิปฟลอปทำงานผิดพลาดได้ ถ้าหากมีการใช้ J-K ฟลิปฟลอป แบบมีสัญญาณพัลส์ควบคุม(Cp) จะนำ J-K ฟลิปฟลอป สองตัวมาต่อกัน เรียกว่า Master-Slave J-K ฟลิปฟลอป โดยตัวแรก เรียกว่า Master ตัวที่สอง เรียกว่า Slave ดังรูป โดยให้ขา Q ของ Master ต่อกับขา J ของ Slave และ Q- ของ Master ต่อกับขา K ของ Slave
จากรูป จะพบว่าถ้าให้สัญญาณควบคุมเป็น "1" จะทำให้เกตแบบ AND ตัวที่ 1 และ 2 ส่งข้อมูลจาก J,K เข้าไปใน Master และขณะนั้นตัว Slave จะอยู่ในสภาวะคงค่าข้อมูล(latch) แต่ถ้าสัญญาณควบคุมเป็น "0" จะทำให้ตัว Master อยู่ในสภาวะคงค่าข้อมูล ส่วนตัว Slave จะรับข้อมูลจาก Q และ Q- ของ Master เข้ามา และทำงานตามที่ตัว Master ได้คงค่าข้อมูลเอาไว้ สำหรับสัญลักษณ์ของ Master –Slave J-K ฟลิปฟลอป จะเหมือนกับ J-K ฟลิปฟลอป ธรรมดา
J-K ฟลิปฟลอปแบบกระตุ้นด้วยขอบของสัญญาณ ฟลิปฟลอปประเภทนี้ถ้ามีข้อมูลเข้ามาทางขา J และ K เอาต์พุตจะเปลี่ยนแปลงเมื่อมีสัญญาณเข้ามาทาง Cp (เปลี่ยนจากลอจิก "1" เป็นลอจิก "0" หรือเปลี่ยนจากลอจิก "0" เป็นลอจิก "1")สัญลักษณ์ของ J-K ฟลิปฟลอปแบบกระตุ้นด้วยขอบขาขึ้นและขาลงแสดงได้ดังรูป
ในรูป (ก) ค่าเอาต์พุต Q ของฟลิปฟลอปจะเปลี่ยนแปลงเมื่อมีขอบขาขึ้นเข้ามาหรืออินพุต Cp เปลี่ยนจากลอจิก "0" เป็นลอจิก "1" ส่วนรูป(ข) จะเป็นการกระตุ้นด้วยขอบขาลง เอาต์พุต Q จะเปลี่ยนแปลงเมื่ออินพุต Cp เปลี่ยนจากลอจิก "1" เป็นลอจิก "0" ในขาของไอซีประเภทนี้จะเขียนลาเบลเป็น Cp การทำงานของ J-K ฟลิปฟลอปที่กระตุ้นด้วยขอบขาลงแสดงได้ดังรูป (ข)
ไอซี J-K ฟลิปฟลอป
ไอซีเบอร์ 7476 และ 74LS76 เป็นไอซี J-K ฟลิปฟลอปที่นิยมใช้กันมาก โดยภายในไอซีจะประกอบด้วย J-K ฟลิปฟลอปสองตัว และมีขาอินพุตอะซิงโครนัสสองขา (RD และ SD) ขาอินพุตซิงโครนัสสามขา (Cp , J , K) ไอซีเบอร์ 7476 จะกระตุ้นด้วยขอบขาขึ้น และภายในฟลิปฟลอปแต่ละตัวจะมีโครงสร้างแบบ Master – Slave ส่วนเบอร์ 74LS76 จะกระตุ้นด้วยขอบขาลง ดังรูป เป็นสัญลักษณ์และลักษณะขาของ 74LS76 ในรูป (ก) และค่าในตารางจะเห็นว่า ขาอินพุตอะซิงโครนัส RD และ SD จะแอกทีฟลอจิก "0" โดยถ้าขา SD ถูกเซตเป็นลอจิก "0" จะทำให้เอาต์พุต Q เป็นลอจิก "1" และถ้าขา RD เป็นลอจิก "0" จะทำให้ฟลิปฟลอปถูกรีเซตเอาต์พุต Q จะเป็นลอจิก "0"
ในการใช้งานแบบซิงโครนัสจะใช้ขาอินพุต J , K และ Cp และให้ลอจิก "1" กับขาอะซิงโครนัส RD และ SD โดยอินพุต J-K จะถูกอ่านเข้าไปในฟลิปฟลอปหลังจากที่ขอบขาลงเข้ามายัง Cp เป็นเวลา 20 ns ดังนั้นในการใช้งานเราต้องอินพุตข้อมูลกับ J-K ก่อนเป็นเวลา 20 ns เนื่องจากเวลาหน่วงภายในฟลิปฟลอปเอง