ทำไมเราถึงเลือก Flip Flops


19

ฉันพยายามทำความเข้าใจ Flip Flops & Latches ฉันอ่านจากหนังสือ Digital Logic โดย Morris Mano สิ่งหนึ่งที่ฉันไม่สามารถเข้าใจได้คือเหตุผลที่เราเฝ้าดูรองเท้าแตะ

ฉันเข้าใจว่าทำไมเราถึงต้องการ 'เปิดใช้งาน' หรือสลักแบบมีขอบ แต่การใช้นาฬิกาคืออะไร ฉันไม่สามารถเข้าใจสิ่งนี้ ทำไมเราไม่สามารถเปิดใช้งาน flip-flop ที่จำเป็นและให้อินพุตได้ ในขณะที่เราเปลี่ยนอินพุตเอาต์พุตจะเปลี่ยน เหตุใดเราต้องเปลี่ยนผลลัพธ์ด้วยขอบนาฬิกาที่เพิ่มขึ้นหรือลดลง (ในกรณีที่มีการเปิดใช้งานฟลิปฟล็อป)

ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้ชื่นชม

คำตอบ:


18

เหตุผลหนึ่งที่เรานาฬิกาฟลิปฟล็อปเพื่อที่ว่าจะไม่มีความวุ่นวายเมื่อเอาท์พุตของฟลิปฟล็อปถูกป้อนผ่านฟังก์ชั่นลอจิกและกลับสู่อินพุตของพวกเขาเอง

หากมีการใช้เอาต์พุตของ flip-flop เพื่อคำนวณอินพุตของมันมัน behooves เราให้มีพฤติกรรมที่เป็นระเบียบ: เพื่อป้องกันสถานะของ flip-flop ไม่ให้เปลี่ยนแปลงจนกระทั่งเอาต์พุต (และดังนั้นอินพุต) จึงมีความเสถียร

การตอกบัตรช่วยให้เราสามารถสร้างคอมพิวเตอร์ซึ่งเป็นเครื่องรัฐ: พวกเขามีสถานะปัจจุบันและคำนวณสถานะต่อไปของพวกเขาขึ้นอยู่กับสถานะปัจจุบันและอินพุตบางส่วน

ตัวอย่างเช่นสมมติว่าเราต้องการสร้างเครื่องที่ "คำนวณ" การเพิ่มจำนวน 4 บิตจาก 0000 เป็น 1111 แล้วล้อมรอบเป็น 0000 และดำเนินต่อไป เราสามารถทำได้โดยใช้การลงทะเบียน 4 บิต (ซึ่งเป็นธนาคารของสี่ flip-flop D) เอาต์พุตของรีจิสเตอร์ถูกใส่ผ่านฟังก์ชัน combinatorial logic ซึ่งเพิ่ม 1 (ตัวบวกสี่บิต) เพื่อสร้างค่าที่เพิ่มขึ้น ค่านี้จะถูกป้อนกลับไปยังการลงทะเบียน ตอนนี้เมื่อใดก็ตามที่ขอบนาฬิกามาถึงการลงทะเบียนจะยอมรับค่าใหม่ซึ่งเป็นหนึ่งบวกกับค่าก่อนหน้า เรามีพฤติกรรมที่เป็นระเบียบและคาดเดาได้ซึ่งดำเนินการผ่านตัวเลขไบนารีโดยไม่มีความผิดพลาดใด ๆ

พฤติกรรมการตอกบัตรมีประโยชน์ในสถานการณ์อื่นด้วย บางครั้งวงจรมีอินพุตจำนวนมากซึ่งไม่เสถียรในเวลาเดียวกัน หากผลผลิตถูกสร้างขึ้นจากอินพุตทันทีมันจะไม่เป็นระเบียบจนกว่าอินพุตจะทรงตัว ถ้าเราไม่ต้องการวงจรอื่นที่ขึ้นกับเอาท์พุทเพื่อดูความโกลาหลเราจะทำให้วงจรมีสัญญาณนาฬิกา เราอนุญาตให้มีเวลาพอสมควรสำหรับอินพุตที่จะชำระและจากนั้นเราระบุไปยังวงจรเพื่อรับค่า

การตอกบัตรยังเป็นส่วนหนึ่งของความหมายของรองเท้าแตะบางชนิด โฆษณา flip flop ไม่สามารถกำหนดได้หากไม่มีสัญญาณนาฬิกา หากไม่มีอินพุตนาฬิกามันจะละเว้นอินพุต D ของมัน (ไร้ประโยชน์!) หรือเพียงคัดลอกอินพุตตลอดเวลา (ไม่ใช่ฟล็อปฟลอป!) RS flip-flop ไม่มีนาฬิกา แต่ใช้สองอินพุต เพื่อควบคุมสถานะซึ่งอนุญาตให้อินพุตเป็น "การตอกบัตรด้วยตนเอง": เช่นเพื่อป้อนเข้าเช่นเดียวกับทริกเกอร์สำหรับการเปลี่ยนสถานะ flip-flop ทั้งหมดต้องการการรวมกันของอินพุตที่โปรแกรมสถานะของพวกเขาและการรวมกันของอินพุตบางอย่างช่วยให้พวกเขารักษาสถานะของพวกเขา หากชุดของอินพุตทริกเกอร์การเขียนโปรแกรมทั้งหมดหรือหากชุดค่าผสมทั้งหมดของอินพุตถูกละเว้น (สถานะได้รับการดูแล) แสดงว่าไม่มีประโยชน์ ตอนนี้นาฬิกาคืออะไร นาฬิกาเป็นนาฬิกาพิเศษ อินพุตเฉพาะซึ่งแยกความแตกต่างว่าอินพุตอื่นถูกละเว้นหรือไม่ว่าจะตั้งโปรแกรมอุปกรณ์หรือไม่ มันจะมีประโยชน์ที่จะมีสิ่งนี้เป็นอินพุตแยกต่างหากแทนที่จะให้มันถูกเข้ารหัสในหลายอินพุต


มันสมเหตุสมผลเมื่อคุณอธิบายความต้องการการตอกบัตรสำหรับเครื่องนับหรือเครื่องรัฐ หากไม่มีนาฬิกาเลยตัวนับเพียงแค่เปลี่ยนค่าของมัน (& รีเซ็ต) และเริ่มต้นอย่างไม่สิ้นสุดหรือไม่ และเหมือนกันกับเครื่องรัฐ (จากสิ่งที่ฉันอ่านจาก wiki เคาน์เตอร์เพียงเครื่องจักรชนิดหนึ่งเนื่องจากสถานะกำลังถูกเปลี่ยนแปลง) แต่ถึงแม้จะมีการลงทะเบียนเรายังใช้นาฬิกาในกรณีนั้นทำไม? ฉันต้องการทราบว่ามี flipflops (สามารถ) ใช้ในแอปพลิเคชันใด ๆ ที่ไม่มีนาฬิกาหรือไม่
avi

ตอนนี้มาถึงจุดที่มีเสถียรภาพถ้าเอาท์พุทยังคงมีการเปลี่ยนแปลงจากนั้นอุปกรณ์อื่น ๆ ที่ต้องการเอาท์พุท flipflops จะไม่สามารถรับได้อย่างถูกต้องและอาจมีพฤติกรรมที่ผิดปกติ ดังนั้นปัญหาเสถียรภาพนี้คืออะไร? ตอนนี้ฉันกำลังพยายามที่จะเข้าใจแนวคิดของความมั่นคง โดยเฉพาะอย่างยิ่งคุณมีสองปรสิตอธิบาย: "เพื่อป้องกันไม่ให้สถานะของฟลิปฟล็อปเปลี่ยนไปจนกระทั่งเอาท์พุท "บางครั้งวงจรมีอินพุตจำนวนมากซึ่งไม่เสถียรในเวลาเดียวกัน"
avi

7

ฟลิปฟล็อปที่ขอบที่เพิ่มขึ้นอาจมองเห็นเป็นสองแลตช์กลับไปด้านหลังซึ่งหนึ่งในนั้นถูกเปิดใช้งานไม่นานหลังจากสัญญาณนาฬิกาลดลงและยังคงเปิดใช้งานจนกว่าจะสูง วินาทีจะเปิดใช้งานหลังจากที่นาฬิกาสูงและยังคงเปิดใช้งานจนกว่าจะเหลือน้อย การมีช่วงเวลาสั้น ๆ ในระหว่างที่ไม่ได้เปิดใช้งาน flip flop หมายความว่าเอาต์พุตของ flip flop อาจถูกป้อนกลับอย่างปลอดภัยไปยังอินพุตผ่านตรรกะ combinatorial การเปลี่ยนแปลงเอาต์พุตในหนึ่งรอบสัญญาณนาฬิกาอาจทำให้อินพุตเปลี่ยน แต่การเปลี่ยนแปลงอินพุตนั้นจะไม่มีผลใด ๆ จนกว่าจะถึงรอบนาฬิกาถัดไป

ในอดีตมันเคยเป็นเรื่องธรรมดาสำหรับอุปกรณ์ดิจิตอลที่จะใช้สิ่งที่เรียกว่า "นาฬิกาสองเฟส" ซึ่งมีสายนาฬิกาสองเส้นซึ่งสูงสำหรับช่วงเวลาที่ไม่ทับซ้อนกันในแต่ละรอบ แลตช์ทั้งหมดแบ่งออกเป็นสองกลุ่มโดยมีหนึ่งนาฬิกาควบคุมกลุ่มแรกของแลตช์และอีกกลุ่มหนึ่งควบคุมวินาที ในกรณีส่วนใหญ่เอาต์พุตของแต่ละกลุ่มจะถูกใช้เพื่อคำนวณอินพุตของอีกกลุ่มเท่านั้น แต่ละรอบนาฬิกาประกอบด้วยหนึ่งหรือมากกว่าพัลส์ในนาฬิกาแรกอย่างน้อยหนึ่งรอบจะต้องตรงตามข้อกำหนดความยาวขั้นต่ำและพัลส์หนึ่งรายการขึ้นไปในวินาที (ข้อกำหนดเดียวกัน) ข้อดีอย่างหนึ่งของการออกแบบเช่นนี้คือมันสามารถทนการเอียงของนาฬิกาได้มากหากเวลาตายระหว่างเฟสนาฬิกาเกินจำนวนนาฬิกาที่เอียง

อีกวิธีที่ "ทันสมัย" คือการให้ทุกองค์ประกอบล็อค (ลงทะเบียน) ได้รับสายนาฬิกาเดียวและสร้างนาฬิกาภายในที่ไม่ได้ซ้อนทับกัน สิ่งนี้ต้องการให้นาฬิกาเอียงสูงสุดไม่เกินเวลาการแพร่กระจายต่ำสุดระหว่างการลงทะเบียน แต่เครื่องมือที่ทันสมัยทำให้สามารถควบคุมการเอียงของนาฬิกาได้แม่นยำกว่าที่เป็นไปได้ในทศวรรษที่ผ่านมา นอกจากนี้ในหลายกรณีการตอกบัตรแบบเฟสเดียวทำให้การออกแบบง่ายขึ้นโดยไม่จำเป็นต้องแบ่งโลจิกออกเป็นสองกลุ่ม


2

เราทุกคนรู้ว่าวงจรดิจิตอลจริงจะมีประตูจำนวนมาก สัญญาณอาจต้องใช้หลายเส้นทางเพื่อไปที่ประตูสุดท้ายที่ให้สัญญาณออก สัญญาณใช้เวลาพอสมควรในการ "แพร่กระจาย" บนเส้นทางที่แตกต่างไปถึงประตูสุดท้าย เวลาในการเผยแพร่ไม่เหมือนกันในเส้นทางที่แตกต่างกัน สิ่งนี้นำไปสู่สิ่งที่เราเรียกว่าบกพร่อง ความผิดพลาดเกิดขึ้นเนื่องจากบางเส้นทางสั้นกว่าเส้นทางอื่นและเมื่อสัญญาณมาถึงประตูสุดท้ายก่อนหน้านี้ที่ใช้เส้นทางที่สั้นกว่ามันจะส่งผลทันทีก่อนที่สัญญาณอื่น ๆ ที่อยู่บนเส้นทางที่ยาวกว่าจะไปถึงประตู ผลลัพธ์ที่เกิดขึ้นในชั่วขณะนั้นผิดและอาจเป็นอันตรายในวงจรดิจิตอลที่นำไปสู่ข้อผิดพลาดที่แพร่กระจาย

ตอนนี้ฉันมาถึงสาเหตุที่เราต้องการนาฬิกา นาฬิกาเป็นหลัก "ประสาน" วงจรกับสัญญาณภายนอกเดียว คิดว่ามันเป็นจังหวะที่วงจรมีการปรับให้ชอบเพลง สิ่งต่าง ๆ เกิดขึ้นกับนาฬิกานี้ไม่มี clock = circuit ถูกปิดใช้งาน โดยใช้นาฬิกาเราจะทำให้แน่ใจว่าชิ้นส่วนที่แตกต่างกันของการทำงานวงจรในความสามัคคีในเวลาเดียวกัน วิธีนี้พฤติกรรมของวงจรสามารถทำนายได้มากขึ้น นอกจากนี้ยังได้รับผลกระทบน้อยลงจากการเปลี่ยนแปลงความล่าช้าในการแพร่กระจายโดยอุณหภูมิและความผันแปรของการผลิต ครอบคลุมถึงนาฬิกา

flip flops เป็นองค์ประกอบวงจรดิจิตอลที่ดำเนินการ (เปลี่ยนเอาต์พุตเพื่อตอบรับอินพุตที่พอร์ตอินพุต) เมื่อมี "CLOCK EDGE" เกิดขึ้น ขอบนาฬิกาคือเมื่อสัญญาณนาฬิกาเริ่มจาก 0 ถึง 1 หรือจาก 1 ถึง 0 เพียงแค่วาดคลื่นนาฬิกาและคุณจะรู้ว่าฉันหมายถึงอะไร มีกลุ่มองค์ประกอบอีกกลุ่มหนึ่งที่เรียกว่าแลตช์เอาต์พุตของแลตช์เปลี่ยนเพื่อสะท้อนอินพุตเมื่อสัญญาณควบคุมบางตัวอยู่ที่ระดับตรรกะเฉพาะและไม่รอขอบใด ๆ สัญญาณควบคุมนี้เรียกว่าเปิดใช้งานในแลตช์ แลตช์อาจใช้งานได้เมื่อเปิดใช้งานเป็น 1 และเปลี่ยนเอาต์พุตหรือเมื่อเปิดใช้งานเป็น 0 ขึ้นอยู่กับประเภทสลัก ในทางตรงกันข้าม Flips flops ทำอะไรบางอย่างเท่านั้นเมื่อพวกเขาถูกป้อนโดยนาฬิกา EDGE โปรดทราบความแตกต่างนี้ระหว่างสลักและฟลิปฟล็อปและโปรดจำไว้ว่าแลตช์เชื่อมต่อกันเพื่อสร้างฟลิปฟล็อปเพื่อให้การเปิดใช้งานทำให้ฟลิปฟล็อปพลิกทำอะไรบางอย่างเมื่อขอบนาฬิกาเกิดขึ้น ในกรณีนี้เราตั้งชื่อ Enable ให้สัญญาณนาฬิกาและมันก็สมเหตุสมผลดีเช่นกัน นาฬิกาสำหรับมนุษย์จะไปติ๊กเห็บเห็บฟล็อปฟล็อปทำอะไรที่เห็บและไม่มีอะไรอยู่ระหว่างเห็บ

หากยังไม่ชัดเจนกว่าที่คุณจะได้รับประโยชน์จากการชมการบรรยาย nptelhrd ใน youtube จากสถาบันเทคโนโลยีแห่งอินเดียในวงจรดิจิตอล


"การใช้นาฬิกาทำให้แน่ใจว่าส่วนต่าง ๆ ของวงจรทำงานร่วมกันในเวลาเดียวกัน" - เราจะทำสิ่งนี้ได้อย่างไร ฉันจะตรวจสอบวิดีโอ
avi

โปรดทราบว่าฟลิปฟล็อปเป็นอุปกรณ์ที่เปลี่ยนเอาต์พุตของพวกมันเพื่อสะท้อนอินพุตที่ขอบที่เพิ่มขึ้น (หรือขอบที่ตกลงมาหากเป็นขอบลบที่เรียกฟล็อปฟล็อป) ของสัญญาณควบคุมสำหรับขอบบวกที่เปิดฟล็อปฟล็อป สัญญาณควบคุมนี้เรียกว่านาฬิกาเนื่องจากมีลักษณะเป็นระยะ ๆ เช่นเห็บเห็บของนาฬิกาแขวนผนังของเรา หากสัญญาณนาฬิกามีอยู่ฟลิปฟล็อปจะทำอะไรบางอย่างมิฉะนั้นอินพุตจะไม่ทำให้อะไรเกิดขึ้นกับเอาต์พุต โปรดทราบความแตกต่างและความคล้ายคลึงกันระหว่างสลักและฟลิปฟล็อปตั้งแต่เริ่มแรกเพื่อไม่ให้สับสน
quantum231

1

มีสิ่งต่าง ๆ เช่นเคาน์เตอร์แบบอะซิงโครนัส นี่คือหนึ่ง: - ป้อนคำอธิบายรูปภาพที่นี่

มันเป็นที่รู้จักกันในชื่อเคาน์เตอร์ระลอกเพราะเมื่อชีพจรเข้ามาที่อินพุต (เปลี่ยนสถานะของ flip-flop ที่ 1) การเปลี่ยนแปลงสถานะนั้นใช้เวลาระยะเวลาอัน จำกัด ในการกระเพื่อมผ่านไปยัง flip-flop ที่เหลืออยู่ ในช่วงระยะเวลาเล็ก ๆ แต่ จำกัด เวลาเอาท์พุท ABCD จะมีค่าชั่วคราวที่ไม่สามารถคาดเดาได้จนกว่าฟล็อปฟล็อปสุดท้ายจะตัดสิน

หากเอาต์พุต ABCD ถูกป้อนทั้งหมดผ่าน D-flip-flop และโอเวอร์คล็อกเข้าด้วยกันบางครั้งหลังจากช่วงเวลาที่ผ่านมา ABCD เวอร์ชั่น "ดีกว่า" นี้จะไม่ "แสดง" พฤติกรรมชั่วขณะนี้

เพื่อหลีกเลี่ยงวิศวกรนี้บางครั้งใช้วงจรสัญญาณนาฬิกา ขออภัยข้อมูลจากด้านซ้ายของแผนที่นี้และแผนที่ Q0 ถึง Q3 ไปยัง ABC และ D ในแผนภาพก่อนหน้า: -

ป้อนคำอธิบายรูปภาพที่นี่

มันซับซ้อนกว่าเล็กน้อย แต่ก็เร็วกว่าและมีชิ้นส่วนน้อยกว่าเมื่อเปรียบเทียบกับตัวนับ asynch ที่มีประเภท D ในเอาต์พุต


ดีด้วยเคาน์เตอร์มันทำให้รู้สึก แต่มีแอพพลิเคชั่นใดบ้างที่ใช้ flipflops โดยไม่มีนาฬิกา? หรือ flipflops ไม่สามารถใช้โดยไม่มีนาฬิกา?
avi

@avi ตัวอย่างแรก (ตัวนับ async) ไม่จำเป็นต้องถือเป็นการรับข้อมูลจาก "นาฬิกา" อาจเป็นพัลส์ที่มาจากเซ็นเซอร์แม่เหล็กเพื่อดูว่าเพลาหมุนเร็วแค่ไหน จะมีนาฬิกา "ต้นแบบ" บนระบบที่ "นับ" นับทุกวินาที แต่ "สัญญาณ" ที่เข้าสู่เคาน์เตอร์ไม่จำเป็นต้องเป็นนาฬิกา เอาท์พุทจากตัวเปรียบเทียบแบบอะนาล็อกสามารถ "นาฬิกา" a "1" ไปยังเอาท์พุทของประเภท D และเอาท์พุทจากตัวเปรียบเทียบแบบอะนาล็อกอื่นสามารถรีเซ็ตประเภท D - นี้สามารถใช้ในการผลิตสัญญาณที่ได้จากรูปคลื่นอนาล็อก - ไม่มีนาฬิกา เช่นนี้
Andy aka

ฉันจะถือว่าพฤติกรรมของตัวนับระลอกเป็นปริมาณมากกว่าเชิงคุณภาพที่แตกต่างจากตัวนับแบบซิงโครนัส เอาต์พุตของตัวนับทั้งสองจะกลายเป็นโมฆะในช่วงระยะเวลาหนึ่งหลังจากที่นาฬิกาพัลส์มาถึงและจะสามารถใช้งานได้อีกครั้งหลังจากนั้น ตัวนับซิงโครนัสจะมีหน้าต่างที่เล็กกว่าในระหว่างที่เอาต์พุตไม่ถูกต้อง แต่หน้าต่างจะไม่เป็นศูนย์ในกรณีใด ๆ นอกจากนี้ยังเป็นที่น่าสังเกตว่าความเร็วนับสูงสุดกับตัวนับที่วาดจะถูก จำกัด ด้วยความยาวตัวนับ หนึ่งสามารถหลีกเลี่ยงข้อ จำกัด ที่ ...
SuperCat

... โดยให้โซ่เริ่มต้นที่บิตที่สี่สร้าง "และ" ของสามบิตแรกจากนั้นให้แต่ละบิตพลิกถ้าอินพุตจากห่วงโซ่ยกสูง 2 บิตสูง 1 บิต สูงและบิต 0 สูง แม้ว่าจะมีการนับพัลส์เจ็ดครั้งในเวลาที่จำเป็นสำหรับสัญญาณในการแพร่กระจายผ่านห่วงโซ่การถือซึ่งจะไม่มีปัญหาเนื่องจากห่วงโซ่การขนส่งจะเริ่มต้นการแพร่กระจายการดำเนินการเมื่อนับ xxx111 ... ถึง 111000 แต่ผลลัพธ์จะไม่สำคัญจนกว่า ชีพจรนาฬิกาหลังจาก xxx111 ... ถึง 111111
supercat

ตัวนับคลื่นกระเพื่อมนั้นเรียบง่าย แต่ถูกรบกวนในโลกแห่งความเป็นจริงของวงจรดิจิตอลที่ฉันทำงานมันเป็นเรื่องดีที่จะรู้ว่ามีอยู่จริง แต่มันก็ไม่น่าเป็นไปได้สูงที่คุณจะได้รับอนุญาตให้ใช้กับโครงการจริง มันสามารถนำมาใช้ในการออกกำลังกายเล็ก ๆ น้อย ๆ ที่ธรรมชาติ "ไม่ตรงกัน" ของพวกเขาไม่ใช่ปัญหา
quantum231

0

เพราะมันง่ายต่อการออกแบบระบบซิงโครนัส (ระบบซิงโครนัสหมายถึงคอลเลกชันของ combinatorial logic และ flip-flops แบบ clocked) กว่าระบบแบบอะซิงโครนัสและระบบแบบซิงโครนัสมีความน่าเชื่อถือมากกว่า อย่างไรก็ตามการออกแบบเครื่องจักรแบบอะซิงโครนัสมีคุณค่าในการศึกษาเพราะสามารถคำนวณผลลัพธ์ได้เร็วขึ้นและมีพลังงานต่ำกว่าระบบแบบซิงโครนัส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.