כמה מילים על וריפיקציה
-
כמה מילים על וריפיקציה
מה זה וריפיקציה? וריפיקציה זהו תהליך שנקרא בעברית אימות שבבים הוא נועד לבצע אימות לתכן (תהליך פיתוח החומרה) של צ’יפ (רכיב אלקטרוני) על מנת לבחון את ההתנהגות של הרכיב. אם לאורך הבדיקות נמצא שהרכיב המתוכנן אינו פועל כפי שמצופה ממנו – הרי שהתגלתה תקלה או שגיאה בתכן וזה מה שנקרא באג. במצב זה, יש לתקן את התכן ולחזור שנית על תהליך האימות, עד לקבלת רכיב נקי מתקלות ובעיות. רקע התהליך מתכנון ועד ייצור שבב (צ’יפ) הוא תהליך ארוך-זמן ועלותו עלולה להגיע למיליוני דולרים. ההתקדמות הטכנולוגית האדירה בייצור שבבים ובמורכבות שלהם הן מבחינת הלוגיקה שלהם והן מבחינת השילוב שלהם עם זיכרון פנימי וארכיטקטורות אחרות יצרה תחום מורכב מאוד של בדיקת השבבים על ידי שיטות מתוחכמות המצריכות ידע רב בתכנות ובהבנת הלוגיקה העומדת מאחורי השבב. בשונה מהנדסת תוכנה ואימות תוכנה (QA), קשה מאוד ולעיתים בלתי אפשרי לגלות ולתקן טעות שלא נתגלתה בשלב התכנון, לכן תהליך האימות חשוב כל כך בייצור שבבים. הוריפיקציה העיקרית בפרויקט מתבצעת על ה-design הכתוב בשפת RTL כגון Verilog או VHDL. בדרך כלל, מקובל שהאדם המבצע את הוריפיקציה אינו אותו אדם הכותב את ה-design, מאחר שאחד הגורמים לבאגים הוא תפישה מוטעית של ההגדרה של הפונקציונליות, וכאשר אותו אדם מבצע את שני התפקידים, הוא נשאר “כלוא” בקונספציה המוטעית שלו. אופן הביצוע כיום, ישנם שבבים מאוד מורכבים, ולכן מחלקים את השבב הנבדק ל”בלוקים” – קטעי קוד, כאשר כל בלוק מבצע פונקציונליות מסוימת של השבב. עבור כל בלוק נבנית סביבת בדיקה נפרדת. לאחר שכל בלוק נמצא תקין, מבצעים בדיקות אינטגרציה של כל הבלוקים ביחד, על-מנת לוודא שכל המכלולים עובדים כמו שצריך. תהליך הוריפיקציה הוא תהליך איטרטיבי המורכב ממספר שלבים: הבנת תכן הרכיב על כל תכונותיו ויכולותיו (לא נכנסים למימוש). הגדרת המקרים שאותם צריך למדל (coverage). כתיבת תוכנית עבודה שמגדירה מה ייבדק, ואיך (Verification Plan) קידוד סביבת הוריפיקציה. הרצת הבדיקות. ניתוח “נפילות” של טסטים וניתוח חורים שלא כוסו עדכון קוד הדזיין וסביבת הוריפיקציה בהתאם לאחר מכן, נמשך התהליך של הרצה-ניתוח-תיקון עד שכל המקרים שאמורים להתמדל נוצרו. סביבת העבודה לכל רכיב חשמלי ישנם אותות כניסה אותם הוא מקבל מרכיבים אלקטרוניים אחרים במעגל, ואותות מוצא, אותם הוא מפיק לאור תפקידו במעגל החשמלי. על מנת לבדוק שאותות המוצא עונים על הדרוש, יש לספק לרכיב המתוכנן את אותות הכניסה המתאימים, ולוודא שהוא אכן מגיב בצורה הרצויה והמתוכננת. לשם כך בונים סביבה המכילה את הרכיבים הבאים: רפרנס מודל (reference model) – מחשב את המוצא הצפוי עבור קלט נתון. סקורבורד (scoreboard) – מבצע השוואה של המוצא בפועל עם הערך הצפוי (שהתקבל מה- reference model) אייג’נט (agent) – מנהל את הממשק עם הרכיב החשמלי, וכולל בתוכו : דרייבר (driver) – אחראי על ייצור של אותות כניסה, ברמה גבוהה ונוחה לניהול. בי אף אם (bfm) – אחראי על תרגום הקלט שייצר ה driver לרמה של אותות הכניסה הפיזיים. מוניטור (monitor) – אחראי לדגום את אותות הכניסה והיציאה הפיזיים, והעברתם לעיבוד: אותות הכניסה עוברים לעיבוד של ה- reference model אותות היציאה עוברים לבדיקה של ה- scoreboard. במתודולוגיות עבודה שונות ייתכנו שמות שונים לחלקים השונים של סביבת הוריפיקציה שפות וריפיקציה השפה המתקדמת ביותר היום היא system verilog במתדולוגית uvm. שפה נוספת שמשתמשים בה הרבה היא e בסביבת specman.
Log in to reply.