เหตุใดการลดระดับ D-Flip Flops จึงป้องกันการแพร่กระจาย


15

ฉันเข้าใจว่า metastability คืออะไร แต่ไม่เข้าใจว่าการเชื่อมโยง flip flops เข้าด้วยกันช่วยลดสิ่งนี้ได้อย่างไร

หากการส่งออกของ flipflop แรกคือ metastable นี้จะได้รับการใช้เป็นอินพุตสำหรับอันที่สอง แต่ฉันไม่เห็นว่าฟลิปฟล็อปที่ 2 จะสามารถทำอะไรกับอินพุตนี้และทำให้มันเสถียร

ขอบคุณล่วงหน้า!


2
มองหาโอกาสที่จะพูดถึงลาของ Buridan เสมอ: en.wikipedia.org/wiki/…
copper.hat

คำตอบ:


11

metastability ไม่สามารถ 'หาย' แต่ถ้าคุณรอนานพอโอกาสของมันที่เกิดขึ้นสามารถทำโดยพลการขนาดเล็ก เมื่อคุณได้รับมันลงไปหนึ่งครั้งในยุคของจักรวาลมันอาจจะไม่ทำให้คุณเดือดร้อน

มันก็เหมือนกับการทำให้ดินสอดูสมดุล มีแนวโน้มที่จะล้มลงและยิ่งคุณรอนานเท่าไหร่โอกาสที่จะยืนอยู่ก็จะน้อยลงเท่านั้น

มีปัญหาสองข้อที่ต้องรอนานและหนึ่งในนั้นคือปัญหาพื้นฐาน

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

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

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


6
ตัวอย่างเช่นเมื่อฉันทำการออกแบบชิปฉันเป็นเจ้าของ 'metastability นาฬิกาข้ามเราทำคณิตศาสตร์คำนวณหาโอกาสของความล้มเหลวของ synchroniser ที่แต่ละ flop กลุ่มของ flop ฯลฯ ฯลฯ ดูว่าผลลัพธ์จะเป็นอย่างไร เป็น ... ส่วนใหญ่พิกเซลบนจอแสดงผลอาจเบียดเสียดในที่สุดตลอดทางข้ามชิปลงมาประมาณสองครั้งทุก ๆ สองปี - นี่คือกราฟิกการ์ดสำหรับ Win95 ซึ่งในเวลานั้นไม่สามารถอยู่ได้นานกว่า ประมาณหนึ่งวันเราตัดสินใจว่าจะไม่มีใครสังเกตเห็นเครื่องซิงโครไนเซอร์ 2 ปี MTBF
Taniwha

7
นอกจากนี้สิ่งหนึ่งที่ไม่มีใครพูดถึงคือสิ่งที่เกิดขึ้นกับความล้มเหลวในการแพร่กระจายกรณีที่เลวร้ายที่สุดอย่างแน่นอน ... บางครั้งความล้มเหลวของตัวประสานข้อมูลทำให้เกิดความล้มเหลวในการแกว่งภายในความถี่ที่สูงอย่างน่างงงวย ได้รับ anti-metastability synchroniser flops ที่ภัยพิบัติ buzzy สามารถติดเชื้อ flops ทั้งหมด (ตามที่แฟน ๆ ออกมา) ส่งผลให้เกิดกระแสดึงครั้งใหญ่และแม้กระทั่งความร้อนสูงเกินไปและการเสียชีวิตของชิป - ดังนั้นจงใส่ใจสิ่งนี้เป็นปัญหา
Taniwha

@Neil_UK คุณใช้คำว่าสลักซึ่งฉันคิดว่าสับสน ในแวดวงของฉันสลักเป็นองค์ประกอบอะซิงโครนัส ฉันจะเรียกพวกเขาว่ารองเท้าแตะเพื่อความชัดเจน
jalalipop

1
@jalalipop ฉันใช้สลักหมายถึง flip-flop แม้ว่าความหมายของมันอาจเปลี่ยนไปในหลายสิบปีนับตั้งแต่ที่ฉันเริ่มใช้ ในขณะที่ฉันยอมรับว่า 'latch' โดยทั่วไปหมายถึงชนิดโปร่งใสแบบอะซิงโครนัสพวกเขาก็ทนทุกข์ทรมานจาก metastability หากข้อมูลเปลี่ยนแปลงบนขอบ 'latching' ของอินพุตที่เปิดใช้งาน โดยทั่วไปแล้วฟลิปฟล็อปหลักจะถูกสร้างขึ้นภายในจากสลักสองอันที่ขับเคลื่อนด้วยนาฬิกา ขอบคุณที่พูดถึงมันฉันจะแก้ไขคำตอบเพื่อชี้แจง
Neil_UK

@ Tamiwha คุณสามารถให้คำตอบกับไดอะแกรมและค่าคงที่เวลาและคณิตศาสตร์เพื่ออธิบายพฤติกรรมภายในของสลักในขณะที่พยายามแก้ไข คุณต้องแสดงให้เห็น (อย่างที่คุณรู้) ว่าการวนลูปและเวลาการงอกใหม่คงที่และพื้นเสียง (ความร้อนและ VDD) ส่งผลกระทบต่อความสามารถในการแก้ไขอย่างไร
analogsystemsrf

9

มันลดความน่าจะเป็นของการแพร่กระจายที่มีผลต่อวงจรโดยให้เวลาเพิ่มขึ้นจนกว่าจะใช้สัญญาณจริง ด้วย flip-flop สองตัวจะช่วยให้รอบสัญญาณนาฬิกาเพิ่มเป็นพิเศษเพื่อให้สัญญาณสงบลง ด้วยสามจะอนุญาตให้สองรอบนาฬิกาพิเศษ


2
คำตอบที่ดี. จุดสำคัญคือความสามารถในการแพร่กระจายไม่ได้ป้องกันเราเพียงแค่ลดความน่าจะเป็นให้อยู่ในระดับที่ยอมรับได้
Elliot Alderson

1
ดังนั้นฟล็อปฟล็อป cascading จึงให้เวลาสำหรับสัญญาณที่จะตกลงระหว่าง 0 ถึง 1 แต่มันไม่ได้แก้ปัญหาค่าผิดหรือเปล่า? เนื่องจากสัญญาณ metastable สามารถตกลงทั้งสองวิธีได้หรือไม่
Wouter

2
@WouterA ถ้ามันเป็น metastable ค่าทั้งสองก็จะถูกต้อง
253751

4
ฉันไม่คิดว่านี่เป็นคำตอบที่ดีมีเพียงฟล็อปแรกเท่านั้นที่สุ่มสัญญาณอินพุตในกรณีนี้ ดังที่ได้กล่าวมาแล้วสิ่งที่เกิดขึ้นคือความน่าจะเป็นของการแพร่กระจายที่เกิดขึ้น (ขึ้นอยู่กับการได้รับผลป้อนกลับภายในของลูปความเร็วสัญญาณนาฬิกาและอัตราของสิ่งที่สุ่มตัวอย่างผ่านระหว่างขีด จำกัด อินพุต) จำนวนน้อย <1 = p - สอง flops ให้เรา p ^ 2 โอกาสที่ MS จะผ่าน 2 flops, 3 p ^ 3 ฯลฯ และอื่น ๆ
Taniwha

4

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

การเรียงลำดับรองเท้าแตะสาม (หรือมากกว่า) ที่ออกแบบมาอย่างดีสามารถเพิ่มเวลาระหว่างเหตุการณ์ให้เป็นอย่างยุคของโลก


ขึ้นอยู่กับอัตรานาฬิกาและเทคโนโลยีการผลิตของคุณ หนึ่งฟลิปฟล็อปอาจเพียงพอสำหรับ MTBF ของคุณที่จะเล็กมากตราบใดที่คุณหย่อนตัวสูง
jalalipop

@jalalipop แน่นอน มีข้อมูลการทดสอบจริงบางอย่าง (ลงวันที่แล้ว) ในเอกสารต้นฉบับ IEEE DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany

@jalalipop: โดยทั่วไปนี่เป็นปัญหาที่เกี่ยวข้องมากกว่าเมื่อคุณไม่สามารถรับประกันเวลาหย่อน ... การออกแบบแบบอะซิงโครนัสเช่น FIFO ที่สื่อสารระหว่างซีพียูคอร์และ SOC เมื่อนาฬิกาที่เกี่ยวข้องไม่ได้ล็อคเฟส มิฉะนั้นคุณเพียงแค่ตั้งค่าเวลาในการติดตั้งอย่างหนักและการรับประกันความรวดเร็วจะไม่เกิดขึ้น
jbord39

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

2

เพราะ flip-flop ตัวแรกแม้ว่ามันจะเป็น metastable จะมีช่วงเวลาทั้งหมดของนาฬิกาเพื่อรักษาเสถียรภาพ เมื่อถึงเวลาที่ flip-flop ตัวที่สองสุ่มตัวอย่าง flip-flop ตัวแรกเอาต์พุตของมันอาจมีเสถียรภาพอยู่แล้ว


1

หากคุณต้องการความตื่นเต้นในการ metastability ใช้สองอินเวอร์เตอร์ช้ามากเชื่อมต่อพวกเขากลับไปด้านหลังและอคติพวกเขา (ในการจำลอง) ที่ VDD / 2 จากนั้นลบการเอนเอียงและดูความเร็วในการแก้ไขระดับลอจิก 1 และลอจิก 0 คุณอาจต้องเลือกแรงดันไบอัสเริ่มต้นนอกเหนือจาก VDD / 2

หาก flipflops 2 หรือ 3 ของคุณช้าเมื่อเทียบกับช่วงเวลาของนาฬิกาชีวิตอาจเต็มไปด้วยปัญหา


1

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

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