אימות שבבים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
תקלדות, קישורים חיצוניים וביטול כתב נטוי.
שורה 1:
{{להשלים|כל הערך=כן|נושא=מחשוב}}
 
'''אימות שבבים''' (ב[[אנגלית]]: '''Chip Verification''') הוא תהליך שנועד לבצע אימות ל[[תכן]] של [[רכיב אלקטרוני]] על מנת לבחון את ההתנהגות של הרכיב. אם לאורך הבדיקות נמצא שהרכיב המתוכנן אינו פועל כפי שמצופה ממנו - הרי שהתגלתה תקלה או שגיאה בתכן. במצב זה, יש לתקן את התכן ולחזור שנית על תהליך האימות, עד לקבלת רכיב נקי מתקלות ובעיות.
 
 
==רקע==
התהליך מתכנון ועד ייצור [[שבב]] (צ'יפ) הוא תהליך ארוך-זמן ועלותו עלולה להגיע למליוני דולרים. ההתקדמות [[טכנולוגיה|הטכנולוגית]] האדירה בייצור שבבים ובמורכבות שלהם הן מבחינת הלוגיקה שלהם והן מבחינת השילוב שלהם עם זיכרון פנימי וארכיטקטורות אחרות יצרה תחום מורכב מאוד של בדיקת השבבים על ידי שיטות מתוחכמות המצריכות ידע רב בתכנות ובהבנת הלוגיקה העומדת מאחורי השבב.
בשונה מ[[הנדסת תוכנה]] ואימות תוכנה (QA), קשה מאוד ולעתים בלתי אפשרי לגלות ולתקן טעות שלא נתגלהנתגלתה בשלב התכנון, לכן תהליך האימות חשוב כל כך בייצור שבבים.
הווריפיקציה העיקרית בפרויקט מתבצעת על הdesignה-design הכתוב בשפת [[RTL]] כגון [[Verilog]] או [[VHDL]].
בדרך כלל, מקובל שהאדם המבצע את הוריפיקציההווריפיקציה אינו אותו אדם הכותב את ה-design, מאחר שאחד הגורמים לבאגיםל[[באג|באגים]] הוא תפישה מוטעית של ההגדרה של הפונקציונליות, וכאשר אותו אדם מבצע את שני התפקידים, הוא נשאר "כלוא" בקונספציה המוטעית שלו.
 
==אופן הביצוע==
שורה 28:
*[[systemVerilog]] - הרחבה של שפת [[Verilog]] שנועדה לאפשר תיאור גם של הדזיין וגם של הוריפיקציה באותה שפה (IEEE 1800TM)
* VERA של חברת synopsys
* Specman שנוצרה במקור בחברת Verisity ונרכשה על ידי חברת [[cadence]]. הכלי המתאים ל[[מעגל אלקטרוני דיגיטלי|מעגלים דיגיטליים]]. את סביבות הווריפיקציה של ספקמן כותבים בשפתב[[שפת תכנות|שפת התכנות]] e.
* SystemC, המבוססת על שפת [[C++|++C]], ומיועדת בעיקר עבור דיזיין שנוצר ב SystemC
*כמו כן, ישנן חברות רבות אשר משתמשותהמשתמשות בכלים פנימיים, אשר עושים שימוש בשפות סטנדרטיות, כגון verilogVerilog או [[C (שפת תכנות)|C]]
 
== סביבת העבודה ==
 
לכל רכיב חשמלי ישנם [[אות (סיגנל)|אות]]ות כניסה אותם הוא מקבל מרכיבים אלקטרוניים אחרים במעגל, ואותות מוצא, אותם הוא מפיק לאור תפקידו במעגל החשמלי. על מנת לבדוק שאותות המוצא עונים על הדרוש, יש לספק לרכיב המתוכנן את אותות הכניסה המתאימים, ולוודא שהוא אכן מגיב בצורה הרצויה והמתוכננת. לשם כך בונים סביבה המכילה את הרכיבים הבאים:
 
 
 
* '''reference model''' - מחשב את המוצא הצפוי עבור קלט נתון.
* '''scoreboard''' - מבצע השוואה של המוצא בפועל עם הערך הצפוי (שהתקבל מה- reference model)
* '''agent''' - מנהל את הממשק עם הרכיב החשמלי, וכולל בתוכו :
** '''driver''' - אחראי על ייצור של אותות כניסה, ברמה גבוהה ונוחה לניהול.
** '''bfm''' - אחראי על תרגום הקלט שייצר ה driver לרמה של אותות הכניסה הפיזיים.
** '''monitor''' - אחראי לדגום את אותות הכניסה והיציאה הפיזיים, והעברתם לעיבוד:
*** אותות הכניסה עוברים לעיבוד של ה- reference model
*** אותות היציאה עוברים לבדיקה של ה- scoreboard.