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

تحدٍّ - مسار التكافؤ

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

challenge icon

التحدي

متوسط

أنشئ خط أنابيب للتكافؤ من مرحلتين. أولًا، التقط بيانات البايت وin_valid. عند حافة الساعة التالية غير المرتبطة بإعادة الضبط، يكون خرج التكافؤ هو XOR الاختزالي للبايت الملتقط سابقًا عندما تكون صلاحية ذلك البايت السابق مرتفعة، وإلا فالقيمة صفر. إن out_valid هو إشارة الصلاحية المؤخرة نفسها. تؤدي rst المتزامنة إلى مسح المرحلتين والمخرجات. أعمدة الخرج: parity، out_valid. تكون جميع إشارات التحكم والبيانات مستقرة قبل كل حافة صاعدة للساعة؛ وتُرصد النتائج بعدها.

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

جرّب بنفسك

module dut (input clk, input rst, input in_valid, input [7:0] data, output reg parity, output reg out_valid);
    // استبدل هذا العنصر النائب بتصميمك.
    initial parity = 0;
    initial out_valid = 0;
endmodule

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

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