Menu
Coddy logo textTech

סיכום — בנק קריאה כפולה

חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 25 מתוך 38.

challenge icon

אתגר

בינוני

ממשו ארבע מילים של 8 סיביות, עם כתיבה אחת מסונכרנת לשעון ושתי יציאות קריאה רשומות של הנתונים הישנים, qa ו־qb. we כותב ל־waddr. rst סינכרוני מאפס רק את qa ואת qb. אחרת, re מאפשר קריאה הן מ־raddr_a והן מ־raddr_b; קריאות שאינן מאופשרות שומרות על ערכן. כתיבות המתרחשות באותו חזית שעון אינן משנות את הערכים הישנים שנלכדים בקריאות האלה. הבדיקות מאתחלות את המילים לפני הקריאה. עמודות הפלט: qa, qb. כל אותות הבקרה והנתונים יציבים לפני כל חזית שעון עולה; התוצאות נצפות לאחר מכן.

השלימו את design.v ושמרו על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויי קלט ומדפיס את הפלטים לאחר שהם מתייצבים. הוא בוחר תרחיש באמצעות ארגומנט סימולטור כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיפו הדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בשורה חדשה.

נסו בעצמכם

module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr_a, input [1:0] raddr_b, input [7:0] data, output reg [7:0] qa, output reg [7:0] qb);
    // החליפו את מציין המקום הזה בתכנון שלכם.
    initial qa = 0;
    initial qb = 0;
endmodule

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

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