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

جداول ROM التوافقية

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

يصف جدول بحث ثابت تعيينًا للقراءة فقط من العنوان إلى البيانات. يمكن لـ case أو function كامل التعبير عن المحتويات. مع قراءة توافقية، يؤدي تغيير العنوان إلى تغيير الخرج دون انتظار نبضة ساعة. تختار أداة التركيب تنفيذًا مناسبًا؛ ولا يضمن هذا المصدر استخدام بدائية ذاكرة محددة في FPGA.

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

function [7:0] lookup;
    input [1:0] addr;
    begin
        case(addr)
            0: lookup=3;
            1: lookup=5;
            2: lookup=8;
            3: lookup=13;
            default: lookup=0;
        endcase
    end
endfunction

يحدد كل عنوان ثابتًا معرّفًا دون الاحتفاظ بالمخرج السابق.

حدِّد كل إدخال في الجدول، وميِّز بين زمن استجابة البحث التوافقي وزمن استجابة القراءة المسجَّلة.

challenge icon

التحدي

متوسط

نفّذ جدول بحث تجميعيًا من ثمانية إدخالات. تُرجع العناوين من 0 إلى 7 القيم 3،5،8،13،21،34،55،89 على التوالي. استخدم case كاملًا قائمًا على function لقيادة y. أعمدة الإخراج: y. جميع قيم التحفيز هي قيم ثنائية معروفة.

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

جرّب بنفسك

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

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

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

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