העברה קדימה בקריאה ובכתיבה
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 24 מתוך 38.
ממשק זיכרון חייב להגדיר את התנהגות הקריאה והכתיבה לאותה כתובת. העברה בוחרת במפורש את נתוני הכתיבה הנכנסים במקרה של התנגשות, וכך מתקבלת התנהגות של נתונים חדשים. ללא מעקף זה, תבנית הקריאה הלא־חוסמת הקודמת לוכדת נתונים ישנים. מצבי הזיכרון של ההתקנים שונים זה מזה, ולכן סמנטיקת סימולציה לבדה אינה מבטיחה מיפוי מסוים לפרימיטיב.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
if(re) begin
if(we && waddr==raddr) q <= data;
else q <= mem[raddr];
endהמעקף בוחר במילה הנכנסת רק במקרה של התנגשות כתובות אמיתית.
הגדירו במפורש את התנהגות ההתנגשות וודאו שהיא תואמת למצב הזיכרון שנבחר בחומרה.
אתגר
בינונימממשים זיכרון בן ארבע מילים עם קריאה רשומה והעברת נתונים חדשים. כללי הכתיבה והאיפוס/הפעלת הקריאה תואמים לשיעור הקודם. בקריאה מופעלת שמתנגשת בכתיבה מופעלת לאותה כתובת, q קולט את הנתונים הנכנסים במקום את המילה הישנה. בקריאות אחרות הוא קולט את mem[raddr]. עמודות הפלט: q. כל אותות הבקרה והנתונים יציבים לפני כל חזית שעון עולה; התוצאות נצפות לאחר מכן.
השלימו את design.v ושמרו על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויים בקלטים ומדפיס את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט סימולטור כגון +CASE=1; אין צורך בקלט סטנדרטי. אל תוסיפו הדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בתו שורה חדשה.
נסו בעצמכם
module dut (input clk, input rst, input we, input re, input [1:0] waddr, input [1:0] raddr, input [7:0] data, output reg [7:0] q);
// החליפו את מציין המקום הזה בתכנון שלכם.
initial q = 0;
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימן5זיכרון וטבלאות חיפוש
טבלאות ROM קומבינטוריותאחסון במערך רגיסטריםיציאות קריאה עם רגיסטריםהעברה קדימה בקריאה ובכתיבהסיכום — בנק קריאה כפולהתרגלו בעצמכם: קומפיילר Verilog אונליין