ทำไมฟลิปฟลิปต์มักเปิดทำงานที่ขอบของนาฬิกา


14

โดยทั่วไปแล้วในการออกแบบดิจิทัลเราจัดการกับ flip-flop ที่ถูกทริกเกอร์ในการเปลี่ยนสัญญาณนาฬิกาแบบ 0 ต่อ 1 ฉันได้ตระหนักถึงอนุสัญญานี้ตั้งแต่การศึกษาครั้งแรกของฉันเกี่ยวกับวงจรตามลำดับ แต่ยังไม่ได้ถามจนถึงตอนนี้

ตัวเลือกระหว่างทริกเกอร์ขอบบวกและทริกเกอร์ขอบทริกเกอร์โดยพลการหรือไม่? หรือมีเหตุผลในทางปฏิบัติที่ว่าทำไม flip-flop ที่ถูกกระตุ้นจากขอบบวกกลายเป็นสิ่งที่โดดเด่น?


2
วิธีที่สิ่งเหล่านี้ส่วนใหญ่เกิดขึ้นคือบางคนทำแบบนี้คนอื่นต้องทำให้ฮาร์ดแวร์เข้ากันได้และทำแบบเดียวกันและไม่กี่ปีต่อมาคุณก็มีมาตรฐานโดยไม่ตั้งใจ
Connor Wolf

1
ฉันทำงานกับ Flip-flop ซึ่งส่วนใหญ่เป็น Falling Edge เรียกใช้ ฉันมีคำถามตรงข้าม!
Swanand

คำตอบ:


10

เดาที่ดีที่สุด: แนวโน้มในเชิงบวกขอบเป็นผลพลอยได้ของการออกแบบพยายามที่จะใช้พื้นที่เล็ก ๆ น้อย ๆ / ชิ้นส่วนที่เป็นไปได้ก่อนปี 1970 มาตรการประหยัดค่าใช้จ่ายในการผลิตโดยเพิ่มจำนวนชิปต่อแผ่นเวเฟอร์ DFF ที่เป็น pos / neg-edge ที่ทันสมัยมักจะมีพื้นที่รวมเท่ากันดังนั้นแนวโน้มของ edge-edge ในปัจจุบันจึงเป็นแนวปฏิบัติดั้งเดิม

การประหยัดพื้นที่มาจากการออกแบบ D-flip-flop "คลาสสิค" ส่วนประกอบหลัก / ทาสที่ทันสมัยของ D-flip-flop สามารถใช้สลัก 5 ตัวสองตัว; สิทธิบัตรWO1984003806 A1และUS4484087 Aทั้งคู่ยื่นฟ้องเมื่อวันที่ 23 มีนาคม 2527 สิทธิบัตร D-latch 8 ตัวคือ transitor 8 ก.พ. 2513 US3641511 เพื่อประโยชน์ในการออกแบบที่เรียบง่ายโดยใช้สลัก SR / SnRn จะถูกอ้างอิงเป็น "Classical" และ "Modern" สำหรับการออกแบบโดยใช้สิทธิบัตร D-latch / S-cell ที่กล่าวถึง

ในการออกแบบ IC เกต NAND ใช้พื้นที่น้อยกว่าเกท NOR เนื่องจากคุณสมบัติลักษณะของ NMOS และ PMOS รูปแบบที่นั่นแนวโน้มลดขนาดพื้นที่ลดหลั่น D-latches แบบฟอร์ม SnRn latches จะเล็กกว่าจาก latches SR การออกแบบ D-flip-flop แบบคลาสสิคนั้นยึดตามประตูตรรกะเหล่านี้ หลังจากค้นหาการออกแบบหลายแบบการออกแบบที่เป็นบวกที่คลาสสิกมีขนาดเล็กกว่านั้นการออกแบบที่เป็นลบที่คลาสสิกเสมอ การย้ายถิ่นฐานไปสู่ยุคใหม่เกิดขึ้นเนื่องจากค่าใช้จ่ายของชิปดีขึ้น: การประหยัดพื้นที่และค่าลิขสิทธิ์


ขุดลึกลงไปอีกเล็กน้อยเพื่อแสดงให้เห็นถึงความแตกต่างของพื้นที่:

คลาสสิก D-flip-flop ที่เป็นขอบบวกแบบคลาสสิก:คำอธิบายและไดอะแกรมD flip-flop แบบคลาสสิกโดยวิกิพีเดียใช้ NAND2 ห้าอันและ NAND3 หนึ่งอัน สิ่งนี้ใช้ทั้งหมด NMOS สิบสามและ PMOS สิบสาม

แผนผัง

จำลองวงจรนี้ - แผนผังที่สร้างโดยใช้CircuitLab

คลาสสิก D-flip-flop ที่เป็นลบได้ที่ดีที่สุดที่ฉันพบคือใช้ D-Latches สองอันและอินเวอร์เตอร์สองตัว รูปแบบการอ้างอิงแผนผังhttp://students.cs.byu.edu/~cs124ta/labs/L02-FSM/HowToUseMasterSlave.html สิ่งนี้ใช้ NMOS ทั้งหมดสิบแปดและ PMOS สิบแปด การวางอินเวอร์เตอร์บนแรงกดแบบคลาสสิกด้านบนจะลดจำนวนทรานซิสเตอร์ของการออกแบบนี้ ไม่ว่าจะเป็นกรณีใดขอบด้านลบแบบคลาสสิกจะมีขนาดใหญ่กว่าและมีขอบด้านบวก

แผนผัง

จำลองวงจรนี้

การออกแบบ D-flip-flop ที่ทันสมัยสามารถดูได้จากสิทธิบัตรWO1984003806 A1และUS4484087คำอธิบาย D-latch ห้าทรานซิสเตอร์ สิ่งนี้ใช้ทั้งหมดห้า NMOS และ PMOS fice; ประหยัดพื้นที่ขนาดใหญ่เมื่อเทียบกับคลาสสิก การกลับคำสั่งของ master / slave จะสร้างฟลิปฟล็อปขอบลบที่มีขนาดเท่ากัน

แผนผัง

จำลองวงจรนี้

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


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

1
@ trav1s ฉันอัปเดตคำตอบของฉันพร้อมตัวอย่างและการวิจัยสิทธิบัตร
เกร็ก

ฉันสงสัยว่าชิปตัวใดที่ใช้เทคนิคอื่น ๆ สำหรับสลักที่ต้องใช้งานตามขอบของนาฬิกาที่ใช้ภายนอก ยกตัวอย่างเช่นการใช้การตอกบัตรสองเฟสและเซมิ - ไดนามิกลอจิกหนึ่งสามารถลดจำนวนที่ต้องการของทรานซิสเตอร์ต่อฟล็อพถึงเจ็ด [วิธีการแบบไดนามิกเต็มรูปแบบจะเป็นหก แต่การเพิ่มทรานซิสเตอร์ที่เจ็ดทำให้เราสามารถเพิ่มสถานะ ]
supercat

@ Greg ทำงานได้ดีมาก การค้นพบของคุณเป็นสิ่งที่ฉันคาดหวัง ทรานซิสเตอร์ 10T นั้นในตอนท้ายเป็นสิ่งที่สวยงาม
travisbartley

คำตอบที่น่าสนใจและลึกซึ้งมาก คุณกำลังบอกว่าแนวโน้ม posedge มาก่อนยุค 70 แต่นี่ไม่สอดคล้องกับการค้นพบของฉัน (ดูคำตอบของฉัน) อะไรทำให้คุณคิดขึ้นกับวันนี้ แค่เดาหรือคุณมีข้อมูลเพิ่มเติมหรือไม่ ถ้าเป็นหลังฉันจะดีใจที่ได้รับการอ้างอิง (เพื่อที่จะปรับปรุงคำตอบของฉันเอง :))
Vasiliy

3

มีข้อสมมติฐานพื้นฐานบางอย่างที่นี่ซึ่งถูกกล่าวถึงในบทความอื่น (ซึ่งตอนนี้ฉันหาไม่ได้แล้ว)

หากคุณนับจำนวนทั้งหมดขององค์ประกอบตรรกะที่วางไว้และตรรกะนาฬิกา (จำนวนรวมของ FF ที่จัดส่ง) พวกเขาอาจจะอยู่ในโปรเซสเซอร์และไมโครโปรเซสเซอร์, Intel, DEC ฯลฯ การรวมตัวกันของสิ่งนี้คือคุณท้ายกลุ่มเล็ก ๆ คน / ทีมที่รับผิดชอบการออกแบบครอบคลุมหลายสิบปีโดยมีรายละเอียดของงานภายในไม่มากนัก

ในทางกลับกันคุณมีทีมงานมากมายที่ทำงานใน ASIC กับโครงการอื่น ๆ อีกมากมาย แต่มีปริมาณน้อยกว่า

การออกแบบตัวประมวลผลส่วนใหญ่ไม่ใช่นาฬิกาขอบบวกหรือลบ แต่ได้รับการออกแบบโดยใช้สลักคู่ NOC (รูปแบบนาฬิกาที่ไม่ได้ซ้อนทับกัน) ฟรี

ดังนั้นคุณจะจบลงด้วยอินพุต -> (ลอจิกเมฆ) -> แลตช์จากนาฬิกา -> ลอจิกเมฆ -> นล็อคจาก! ซึ่งเป็นรูปแบบบัญญัติของนายทาส FF ที่มีตรรกะยัดอยู่ข้างใน

วิธีการออกแบบประเภทนี้มีข้อดีหลายประการ แต่ก็มีความซับซ้อนเพิ่มเติม

อีกสิ่งที่โชคร้ายคือวิธีการออกแบบนี้ไม่ได้สอนในมหาวิทยาลัยส่วนใหญ่ การออกแบบ Intel x86 ทั้งหมดเป็นแบบนี้ (ต้องไม่สับสนเกี่ยวกับการทำงานภายนอกของส่วนต่อประสานกับการดำเนินงานภายใน) ด้วย SOC คอร์ที่สามารถสังเคราะห์ได้อย่างน่าทึ่งที่พวกเขาออกแบบมาสำหรับโทรศัพท์มือถือ

วาทกรรมที่ยอดเยี่ยมเกี่ยวกับเรื่องนี้สามารถพบได้ใน "Dally, William J. และ John W. Poulton" วิศวกรรมระบบดิจิตอล สำนักพิมพ์มหาวิทยาลัยเคมบริดจ์, 1998. หัวข้อ 9.5 กล่าวถึง "open loop synchronous timing" <-chapter title แต่การอ้างถึง "การกำหนดเวลาแบบ Edge-triggered นั้นไม่ค่อยได้ใช้ในไมโครโปรเซสเซอร์ระดับ high-end และการออกแบบระบบส่วนใหญ่เพราะมันจะส่งผลให้รอบเวลาต่ำสุดขึ้นอยู่กับการเอียงของนาฬิกา"

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


ผมอ่านนี้สามครั้ง แต่ฉันยังคงไม่สามารถดูนี้เป็นวิธีที่เกี่ยวข้องกับคำถามของ OP ...
Vasiliy

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

คำสำคัญในชื่อเรื่องคือ "มักจะ" - 1) ในจำนวนรวมของชิปประเภทต่าง ๆ ที่ได้รับการออกแบบ - จากนั้น ASIC flow และ edge trigger จะเป็นปกติ 2) ถ้าจำนวนทั้งหมดขององค์ประกอบลอจิกที่ส่งมา / ทรานซิสเตอร์ซีพียูออกแบบให้ชนะและจากนั้นสลักตามนาฬิกาสองครั้งชนะแล้วคำสั่งนั้นไม่ถูกต้อง
placeholder

1
คุณไม่สามารถดูอินเทอร์เฟซของชิปเหล่านี้เพื่อพิจารณาว่าการดำเนินการภายในคืออะไร ดังที่ฉันได้กล่าวถึง Master Slop Flip Flop ว่าเป็นรุ่นที่เรียบง่ายของนาฬิกาสองเฟสแบบลอจิกสองครั้งที่ใช้การออกแบบคลาวด์แบบลอจิก การวิเคราะห์เวลาไม่ยากจริง ๆ แล้วมันง่าย คุณควรแน่ใจว่าโดเมนนาฬิกาของคุณดีขึ้น
placeholder

1
ไม่คำสำคัญคือ "flip-flop" และ "edge of clock" สลักเป็นอุปกรณ์ที่มีความละเอียดอ่อนระดับไม่ไวต่อขอบ คนแอปเปิ้ลและส้ม - ถ้าฉันต้องการที่จะรู้ว่าทำไมส้มเป็นส้มความจริงที่ว่ามีหลายคนที่ชอบแอปเปิ้ลไม่เกี่ยวข้องอย่างสมบูรณ์
Vasiliy

2

ประสิทธิภาพของเทคโนโลยี CMOS ในปัจจุบัน (ในแง่ของพลังงาน / พื้นที่ / ความเร็ว / ค่าใช้จ่าย) ดูเหมือนจะไม่ตอบสนองต่อแผนการเรียกใช้

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

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

ภายใต้สมมติฐานทั้งหมดข้างต้นฉันเห็นความเป็นไปได้สองประการ:

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

เพื่อที่จะดูว่าเมื่อใดที่การกระตุ้นจากขอบบวกกลายเป็นมาตรฐานฉันตัดสินใจที่จะทำตามวิวัฒนาการของรูปแบบการตอกบัตรของIntel :

  1. φ2
  2. 8086 : การล็อค Data Out ถูกทำที่ขอบลบของ CLK
  3. 80386 : ใช้ขอบบวกของ CLK2
  4. 80486 : ใช้ขอบบวกของ CLK
  5. Pentium : ใช้ค่าบวกของ CLK ...

ดูเหมือนว่า Intel เริ่มต้นด้วยการเรียกใช้ขอบลบ (หากคำนี้อาจถูกนำไปใช้กับซีพียูแรก) แต่เปลี่ยนเป็นขอบบวกที่เริ่มต้นด้วย 386

8086 ใช้เทคโนโลยี HMOS ( ตรรกะ NMOSของDepletion-loadบางชนิด) ในขณะที่ 80386 เป็น CHMOS (เป็น CMOS ชนิดหนึ่ง) ดูเหมือนว่าการยอมรับขอบบวกที่เกิดขึ้นควบคู่กับการใช้เทคโนโลยี CMOS เราสันนิษฐานว่า CMOS ไม่ได้ให้ประโยชน์ใด ๆ กับการทริกเกอร์ขอบบวกดังนั้นจึงดูเหมือนว่าข้อตกลงนี้เป็นไปตามอำเภอใจ

อย่างไรก็ตามเราต้องจำไว้สามจุด:

  • เราสันนิษฐานว่าเทคโนโลยี CMOS ปัจจุบันไม่ได้ให้ประโยชน์ใด ๆ
  • ข้อสันนิษฐานข้างต้นไม่ได้รับการพิสูจน์หรือถกเถียงในรูปแบบใด ๆ
  • จากเอกสารข้อมูลมีความชัดเจนในสิ่งที่ขอบ Data Out latched อย่างไรก็ตามสิ่งนี้อาจไม่แสดงถึงการใช้งานภายใน

เห็นได้ชัดว่ามีห้องสำหรับการวิจัยเพิ่มเติม ยังมีต่อ...

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