בדיקות בארבעה מצבים
חלק מהיחידה תכנון RTL ואימות במסלול ה-Verilog של Coddy. שיעור 26 מתוך 38.
על סביבת בדיקה להתייחס לערכים לא ידועים במכוון. השוואה רגילה עשויה להחזיר X, מה שעלול להסתיר כישלון בתנאי if. השוואת case ושוויון ואי־שוויון, === ו־!==, משווים את כל ארבעת הערכים כפשוטם ומחזירים ערך בוליאני ידוע. פעולת XOR מצמצמת ולאחריה השוואת case ל־X יכולה לזהות ביטים לא ידועים. השתמשו בהם כבדיקות סימולציה, לא כמודל של חומרה שמזהה ערכי X פיזיים.
קטע רלוונטי; ההצהרות והחיבורים שמסביב מסופקים באתגר.
if(actual !== expected) errors = errors + 1;הבדל שכולל X או Z נספר במקום להיעלם לתוך תנאי לא ידוע.
השתמשו בהשוואות מפורשות של ארבעה מצבים בבודקי סימולציה והגדירו כיצד יש להתייחס לערכים לא ידועים.
אתגר
בינוניזהו בודק שמיועד לסימולציה בלבד, ולא לוגיקת נתיב נתונים שניתנת לסינתזה. יש לקבוע את mismatch כאשר actual ו-expected שונים בהשוואה בארבעה מצבים. אם לשניהם יש X או Z באותם מיקומים, הם נחשבים שווים. התוצאה חייבת להיות תמיד 0 או 1 ידועים. עמודות הפלט: mismatch. כל ערכי הגירוי הם ערכים בינאריים ידועים.
יש להשלים את design.v ולשמור על שמות המודולים והיציאות שלו. testbench.v הנעול מספק שינויים בקלט ומדפיס את הפלטים לאחר שהתייצבו. הוא בוחר תרחיש באמצעות ארגומנט של הסימולטור, כגון +CASE=1; אין צורך בקלט סטנדרטי. אין להוסיף להדפסות, השהיות או סיום סימולציה לתכנון. הפלט הצפוי הוא שורה אחת של ערכים עשרוניים לכל תצפית, מופרדים ברווח יחיד ומסתיימים בשורה חדשה.
נסו בעצמכם
module dut (input [3:0] actual, input [3:0] expected, output mismatch);
// החליפו את מציין המקום הזה בתכנון שלכם.
assign mismatch = 0;
endmoduleהשיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנון RTL ואימות
1RTL קומבינטורי אמין
ערכי ברירת מחדל מונעים נעילותמקודדי עדיפותאימות One-Hotפענוח Case בטוחסיכום - נתב בקשות2רוחבי מילה ואריתמטיקה עם סימן
שימור ביטי נשאהשוואות עם סימןהזזות ימינה אריתמטיותגלישה ורוויהסיכום - הפרש עם סימן3RTL לשימוש חוזר
פונקציות קומבינטוריותפרמטרים בטוחים מבחינת רוחבלולאות GenerateGenerate מותנהסיכום - מסכת ביטים לשימוש חוזר6סביבות בדיקה עם בדיקה עצמית
בדיקות בארבעה מצביםמשימות בדיקה לשימוש חוזרמודלי ייחוס וניקודכיסוי מקרי קצה ובקרהסיכום - בדיקת מחברתרגלו בעצמכם: קומפיילר Verilog אונליין