כיסוי מקרי קצה ובקרה
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 29 מתוך 38.
לעבור כמה בדיקות זה לא אותו דבר כמו לבדוק את התרחישים החשובים. עקבו אחר הבדיקה של ערכי מינימום, מקסימום וערכים רגילים, והאם בקרות מתחרות התרחשו יחד. דגל כיסוי מתעד ש-case נצפה; הוא לא מוכיח שהתכנון הגיב כראוי. שלבו כיסוי עם בדיקות תוצאות.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;מסכת הסיביות זוכרת אילו קטגוריות הופיעו, בלי להחליף התאמות קודמות.
שלבו כיסוי של גבולות ושל שילובי בקרה עם בדיקות נכונות בלתי תלויות.
אתגר
בינוניעקבו אחר שלוש קבוצות כיסוי של הקלט ב־seen בלי לאפס פגיעות קודמות: סיבית 0 מתעדת value=0, סיבית 1 מתעדת value=15, וסיבית 2 מתעדת ערכים מ־1 עד 14. הקלטים מכילים סיביות ידועות. הקורא מאתחל את seen=0 לפני תרחיש. המודול הזה מכיל task שמיועד לסימולציה בלבד, ונקרא על ידי ספסל הבדיקה הנעול. עמודות הפלט: seen כמספר עשרוני.
השלימו את design.v ושמרו על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויים בקלט ומדפיס את הפלטים לאחר התייצבותם. הוא בוחר תרחיש באמצעות ארגומנט של סימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. השאירו את ההדפסה ואת בקרת התרחישים בספסל הבדיקה הנעול; ממשו רק את גוף ה־task. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח יחיד ומסתיימים בשורה חדשה.
נסו בעצמכם
module dut;
task observe;
input [3:0] value;
inout [2:0] seen;
begin
// השלימו את משימת הבדיקה.
seen=seen;
end
endtask
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימן3RTL לשימוש חוזר
פונקציות קומבינטוריותפרמטרים בטוחים מבחינת רוחבלולאות GenerateGenerate מותנהסיכום - מסכת ביטים לשימוש חוזר6סביבות בדיקה עם בדיקה עצמית
בדיקות בארבעה מצביםמשימות בדיקה לשימוש חוזרמודלי ייחוס וניקודכיסוי מקרי קצה ובקרהסיכום - בדיקת מחברתרגלו בעצמכם: קומפיילר Verilog אונליין