Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

اكتشاف الحواف المُعايَنة

جزء من قسم تصميم RTL والتحقق منه في رحلة Verilog على Coddy. الدرس 19 من 38.

يمكن أن يظل المستوى مرتفعًا لعدة دورات، بينما ينبغي أن تستمر نبضة الحدث لدورة واحدة. خزّن المستوى المأخوذ في العينة السابقة وقارنه بالمستوى الحالي. يفترض كاشف الحافة هذا أن الإدخال متزامن بالفعل مع هذه الساعة؛ وهو ليس مزامنًا لعبور نطاقات الساعة.

مقتطف ذو صلة؛ يتم توفير التصريحات والتوصيلات المحيطة في التحدي.

previous <= sig;
rising <= sig & ~previous;

يجعل المستوى المخزّن القديم نبضةً واحدة عند الانتقال المُعيَّن.

قارن بين المستويات الحالية والمأخوذة عيناتها سابقًا؛ استخدم هذا الكاشف مع إدخال متزامن فقط.

challenge icon

التحدي

متوسط

بالنسبة إلى الإشارة sig المتزامنة بالفعل مع clk، أنشئ نبضة مسجلة مدتها دورة واحدة عند كل انتقال مُلتقَط من 0 إلى 1. تؤدي rst المتزامنة إلى مسح المستوى السابق المخزَّن والنبضة. لذلك، ينتج عن sig المرتفعة عند أول حافة غير خاصة بإعادة الضبط نبضة. أعمدة الخرج: pulse. تكون جميع عناصر التحكم والبيانات مستقرة قبل كل حافة صاعدة للساعة؛ وتتم ملاحظة النتائج بعدها.

أكمل design.v وحافظ على أسماء الوحدات والمنافذ الخاصة به. يوفّر testbench.v المقفل تغييرات الإدخال ويطبع المخرجات بعد استقرارها. ويختار سيناريو باستخدام وسيط للمحاكي مثل +CASE=1؛ ولا حاجة إلى إدخال قياسي. لا تضف طباعة أو تأخيرات أو إنهاءً للمحاكاة إلى التصميم. الناتج المتوقع هو صف واحد من القيم العشرية لكل ملاحظة، مفصولة بمسافة واحدة ومنتهية بحرف سطر جديد.

جرّب بنفسك

module dut (input clk, input rst, input sig, output reg pulse);
    // استبدل هذا العنصر النائب بتصميمك.
    initial pulse = 0;
endmodule
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس تصميم RTL والتحقق منه

تدرّب بنفسك: مترجم Verilog عبر الإنترنت