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

الإزاحات الحسابية إلى اليمين

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

تستخدم الإزاحة الحسابية إلى اليمين >>> وتكرر بت الإشارة عندما يكون المعامل الأيسر signed. تستخدم الإزاحة المنطقية إلى اليمين >> وتملأ بالأصفار. بالنسبة إلى قيمة سالبة فردية، لا تكون الإزاحة الحسابية إلى اليمين مماثلة لقسمة integer التي تقتطع باتجاه الصفر.

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

reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);

النتيجة هي سالب اثنين لأن تمديد الإشارة يحافظ على تفسير المتمم الثنائي السالب.

استخدم معاملاً أيسر signed مع >>> عندما يكون تمديد الإشارة مطلوبًا.

challenge icon

التحدي

متوسط

أجرِ إزاحة حسابية إلى اليمين لقيمة 8-بت signed بمقدار (من 0 إلى 7). أعد النتيجة ذات 8-بت signed ‏y. تُملأ القيم السالبة ببت الإشارة الخاص بها. أعمدة الإخراج: y. جميع قيم التحفيز هي قيم ثنائية معروفة.

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

جرّب بنفسك

module dut (input signed [7:0] value, input [2:0] amount, output signed [7:0] y);
    // استبدل هذا العنصر النائب بتصميمك.
    assign y = 0;
endmodule
quiz iconاختبر نفسك

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

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

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