מודלי ייחוס וניקוד
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 28 מתוך 38.
סביבת בדיקה שבודקת את עצמה מחשבת את ההתנהגות הצפויה באופן בלתי תלוי בפלט התכנון. מודל ייחוס יכול להשתמש בחשבון פשוט, גם כשהמימוש משתמש במבנה אחר. לוח ניקוד סופר תצפיות ואי־התאמות. אתחל את המונים שלו פעם אחת בכל תרחיש והשווה רק לאחר שפלט התכנון התייצב.
קטע רלוונטי; ההצהרות והחיבורים שסביבו מסופקים באתגר.
expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;הערך הצפוי נובע מההתנהגות המוגדרת של הקלט, ולא מהעתקה של actual.
חשב ערכים צפויים באופן עצמאי, דגום בזמן מוגדר ועקוב אחר כל תוצאה שנבדקה.
אתגר
בינוניממשו בדיקת ייחוס למחבר לא מסומן בן ארבע סיביות. חשבו את התוצאה המתמטית המלאה בת חמש הסיביות של a+b, ואז החזירו ok=1 רק אם actual תואם בדיוק לתוצאה זו בהשוואה בארבעה מצבים. המודול הזה מכיל task המיועד לסימולציה בלבד, ונקרא על ידי ספסל הבדיקה הנעול. עמודות הפלט: ok.
השלימו את design.v ושמרו על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויים בקלטים ומדפיס את הפלטים לאחר שהם מתייצבים. הוא בוחר תרחיש באמצעות ארגומנט סימולטור כגון +CASE=1; אין צורך בקלט סטנדרטי. השאירו את ההדפסה ואת בקרת התרחישים בספסל הבדיקה הנעול; ממשו רק את גוף ה-task. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח אחד ומסתיימים בשורה חדשה.
נסו בעצמכם
module dut;
task check_sum;
input [3:0] a,b;
input [4:0] actual;
output ok;
reg [4:0] expected;
begin
// השלימו את משימת הבדיקה.
ok=0;
end
endtask
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימן3RTL לשימוש חוזר
פונקציות קומבינטוריותפרמטרים בטוחים מבחינת רוחבלולאות GenerateGenerate מותנהסיכום - מסכת ביטים לשימוש חוזר6סביבות בדיקה עם בדיקה עצמית
בדיקות בארבעה מצביםמשימות בדיקה לשימוש חוזרמודלי ייחוס וניקודכיסוי מקרי קצה ובקרהסיכום - בדיקת מחברתרגלו בעצמכם: קומפיילר Verilog אונליין