سيشن في وركشوب لتعليم ال Digital IC كان مطلوب مني اني اعمل باوربوينت عن موضوع
Clock Domain Crossing (CDC)
هي عملية نقل البيانات أو الإشارات بين نطاقين (domains) يعملان على ساعات مختلفة (different clock frequencies or phases) داخل نفس الـ ASIC.
المشكلة الأساسية:
عند انتقال إشارة من دومين إلى آخر بساعتين مختلفتين، لا يوجد تزامن (synchronization) بينهما،
وهذا قد يؤدي إلى:
Metastability (عدم استقرار في الفليب فلوب).
Data corruption (فساد البيانات).
Glitches (نبضات خاطئة).
أنواع البيانات التي تعبر الدومينات:
Single-bit signals (مثل reset أو enable).
Multi-bit buses (مثل data bus أو address).
Control + Data handshakes (عند إرسال البيانات في بروتوكول معين).
طرق الحل (Techniques):
1. Double Flop Synchronizer
يستخدم لنقل إشارة مفردة (single-bit).
يتكون من فليب فلوبين متتاليين في الدومين المستقبِل لتقليل احتمالية الـ metastability.
2. Handshake Synchronization
يستخدم عند نقل عدة بتات (multi-bit) أو بيانات تحتاج تأكيد (acknowledge).
يعتمد على إشارات مثل valid وready لضمان أن البيانات مستقرة قبل قراءتها.
3. Asynchronous FIFO
يُستخدم لنقل بيانات بعرض كبير أو بسرعات مختلفة بين الدومينات.
يحتوي على write pointer في دومين و read pointer في الآخر، مع Gray code لتجنب أخطاء التزامن.