Menu
Coddy logo textTech

טבלאות 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; אין צורך בקלט סטנדרטי. אל תוסיפו הדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בתו newline.

נסו בעצמכם

module dut (input [2:0] addr, output [7:0] y);
    // החליפו את מציין המקום הזה בתכנון שלכם.
    assign y = 0;
endmodule
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנון RTL ואימות

תרגלו בעצמכם: קומפיילר Verilog אונליין