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

التوليد الشرطي

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

يختار generate-if بنيةً عتاديةً باستخدام parameter ثابت. تتم صياغة فرع واحد فقط لمثيل معيّن. يختار تعبير if إجرائي أو شرطي السلوك في وقت التشغيل؛ ولا يحل محل تهيئة generate.

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

generate
    if(INVERT) begin: inverted
        assign y = ~a;
    end else begin: direct
        assign y = a;
    end
endgenerate

يحدد parameter أيّ مشغّل يتم إنشاؤه لهذا المثيل.

استخدم generate-if للإعدادات الثابتة، واختر RTL العادي لعناصر التحكم في وقت التشغيل.

challenge icon

التحدي

متوسط

استخدم generate الشرطي: MODE=0 يمرّر a دون تغيير؛ أما MODE=1 فيعكس جميع البتات الثمانية لـ a. الإدخال b غير مستخدم. تكون قيمة MODE إما 0 أو 1. ينشئ testbench تكوينَي التشغيل ويطبع y0 ثم y1.

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

جرّب بنفسك

module dut #(parameter MODE=0) (input [7:0] a,b, output [7:0] y);
    assign y=0;
endmodule
quiz iconاختبر نفسك

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

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

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