יציאות קריאה עם רגיסטרים
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 23 מתוך 38.
קריאה רשומה לוכדת נתונים מהזיכרון בקצה שעון ושומרת את הערך הזה לאחר מכן. הפעלת קריאה יכולה לשמר את הפלט הקודם במחזורים שבהם היא מושבתת. איפוס אוגר הקריאה אינו מחייב לנקות כל מילת זיכרון. בהשמות קריאה וכתיבה לא חוסמות, ביטוי הקריאה רואה את המילה שלפני הקצה.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
always @(posedge clk) begin
if(we) mem[waddr] <= data;
if(rst) q <= 0;
else if(re) q <= mem[raddr];
endאוגר הפלט מתעדכן רק בקצה שצוין ובנתיב המאופשר.
השהיית קריאת מסמך, התנהגות כשקריאה מושבתת ואיזה איפוס מצב אכן מנקה.
אתגר
בינוניממשו זיכרון בן ארבע מילים ברוחב 8 סיביות עם כתיבה סינכרונית וקריאה רשומה q. we כותב בקצוות העולים. rst מאפס באופן סינכרוני רק את q; אחרת re טוען ל-q את הערך מ-mem[raddr] שלפני הקצה; כאשר re=0, הערך של q נשמר. הזיכרון אינו מתאפס, והכתיבות אינן תלויות ב-rst. אם הקריאה והכתיבה משתמשות באותה כתובת בקצה אחד, q מקבל את המילה הישנה. הבדיקות מאתחלות מילים לפני קריאות מאופשרות. עמודות הפלט: 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 אונליין