חדשות היום

קיצור תולדות הזמן בעידן המודולינג

משה בובליל, RACHIPמשה בובליל, RACHIP. נהלי פרויקטים של SoC חייבים להבין במתודולוגיות ReUse ומידול כמו ESL ו-SystemC, מפני שזו הדרך היחידה לקצר את הזמן הנדרש מפיתוח להוצאה לשוק ולקצור הכנסות לפני המתחרים.

אחד האתגרים המורכבים בפיתוח שבבים הוא העברת ארכיטקטורות מורכבות המכילות יחידות עיבוד (DSP) ויחידות העברת אינפורמציה (Communication Channel) מיחידת עיבוד אחת לשנייה.
ככל שדרישות מהירות השבבים עולות כך גם הארכיטקטורה של יחידות העיבוד משתנה ושיטות העברת האינפורמציה משתנות על מנת להגיע ליכולות הביצוע. דבר המחייב תכנון מחדש של השבב. תהליך פיתוח שבבים לוקח זמן רב, בממוצע 24 חודשים שלרוב מהווים זמן יקר ולא מנוצל בעקבות עבודה טורית והתחלה מאוחרת של פיתוח התוכנה. מכיוון שהשוק דורש מוצר שבבי כל 12 חודשים עלה הצורך לקצר את זמן פיתוח השבבים. ישנן מספר שיטות לקיצור זמן הפיתוח של השבבים: הכפלת צוותי הפיתוח שמאפשר פיתוח בדרוג, ReUse של יחידות משניות, ו”מידול”- יצירת מודלים של חומרה במתודולוגית (Electronic System Level) שניתן ליישם באמצעות MATLAB, SystemC ועוד. שימוש במידול מפשט את התכנון ומאפשר לארכיטקט המערכת לממש במהירות את הרכיב ולאמת את התכנון שלו. בנוסף, מהנדסי מערכת בד”כ לא רוצים להטריד את עצמם ב-RTL ופרטיו, וכן המידול מאפשר למהנדסי התוכנה לפתח DRIVERS לחומרה לפני שהחומרה מוכנה.

SystemC – שפת מידול
שפת SystemC הינה שפת תוכנה עילית המדמה את החומרה. שפה זו פותחה על מנת לאפשר למהנדסי תוכנה, ארכיטקטים ומהנדסי ווריפיקציה לייעל את תכנון המערכת. בעזרת סביבת מידול לפונקציונליות המבוקשת ב-high level, מתאפשרת קבלת אינדיקציה לנכונות ואיכות הפיתוח בשלב מוקדם יותר ובזמן קצר יותר. המודל בשפת SystemC מאפשר להעריך ביצועים ולשפר את הארכיטקטורה אם נדרש. בנוסף, המודל מאפשר לעשות חלוקה בין חומרה לתוכנה תוך אנליזה של התוצאה המצופה, והוא אף מאפשר לאנשי התוכנה להתחיל “לסמלץ” את הקוד שלהם על המודל.

מדוע עדיפה ה-SystemC על פני שפות עיליות אחרות?
במערכות, כמו שבבים, יש צורך לדמות עבודה של תהליכים רבים הרצים במקביל, כגון העברת מידע או קבלת מידע. שפות מונחות עצמים אינן נותנות דגש וכלים לתהליכים אלו בצורה מושלמת. שפת SystemC מתבססת על שפת C ויחד עם זאת מאפשרת לדמות תהליכים מקביליים ע”י היעזרות בספריות שונות (כמו: tlm scml). כל בלוק מיוצג על ידי מחלקה בשפת C, הבלוקים מכילים threads (תהליכים) שמסוגלים לתקשר בסביבת סימולציית זמן.
במובן מסוים ניתן לומר ש-SystemC מדמה את שפות החומרה הידועות Verilog ו-VHDL ברמה אבסטרקטית גבוהה יותר, ולכן היא מוגדרת כשפת model (דגם) ברמת מערכת.

ספריות ב-SystemC
על מנת שהעברת המידע וקבלת מידע בין המודלים תיושם באופן הרצוי,
ל-SystemC – ישנן שתי ספריות באמצעותן ניתן לדמות העברת מידע מכל סוג שהוא, שמירה בזיכרון, שליפה מהזיכרון ועוד: (transaction level modeling)
ו- (SystemC Modeling Library).

Tlm:
ספריה שמאפשרת העברת מידע גדול בין בלוקים בבת אחת, בשונה משפות החומרה שבהן ניתן להעביר מידע קטן יותר. יתרונה הגדול הוא חסכון בזמן ואפשרות קבלת נתונים בבת אחת. המחיר של ההפשטה במימד הזמן הוא פחות התאמה לתזמונים של החומרה. המודל עובד לפי הטרנזקציות ולא לפי מחזורי השעון של החומרה.
לצד המקבל את הטרנזקציות זיכרון מוגדר לשם החזקת המידע המתקבל. ברגע שהבלוק המעביר מבצע write המידע קיים בזיכרון ללא התערבות כלשהי והצד המקבל מחליט אם ומתי לקרוא אותו.
Scml:
תפקידה של ספריה זו לפשט את היצירה של המודלים. היא מבוססת על המתודלוגיה של TLM ומאפשרת מידול של זיכרון ורגיסטרים.
שפת SystemC מיישמת עקרונות אלו ובעצם מביאה לנו מודל שיכול לשמש את מפתחי המוצר עוד לפני שהמוצר קיים בפועל.
Scml Tlm התפתחו על מנת להפחית את עלות הפיתוח על ידי תקשורת יעילה ושימוש חוזר בפונקציות ותבניות מוכנות.
1.שפת SystemC מממשת את עקרונות מתודולוגית ESL, בכך שנותנת דגש על הפשטת תכנון המערכת בדרך חסכונית ומהירה.
2. שפת SystemC מתייחסת למערכת
ב-high level בניגוד לשפת חומרה.
3. שפת SystemC מבוססת על שפה עילית ויחד עם זאת נותנת ייצוג לחומרה.
4. SystemC modeling מדמה את המערכת בכדי לאמת ולייעל את תכנון השבב.
יתרונות המידול
האפשרות לדמות את המערכת במהירות כדי לאמת ולייעל את תכנון השבב, לחקור אלגוריתמים שונים, לבדוק את המערכת, להסיק מסקנות תוך כדי פיתוח השבב לפני שהושקעו בו משאבים רבים מדי ולזרז את זמן הפיתוח.

העתיד כבר כאן?
כיום לא באה ה-SystemC להחליף את שפות החומרה, אלא לשמש כאמצעי לשיפור המערכת. יחד עם זאת, לאחרונה החלו חברות ה-EDA לפעול על מנת לממש מעבר אוטומטי מ-SystemC ל-RTL. החברה מפתחת וממדלת מערכות בשפת SystemC תוך שימת דגש על בנית סביבות עבודה לפרויקטים של ESL, מידול בלוקים של מערכות בזמן קצר. בניית test bench לבדיקת בלוקים, אינטגרציה של הבלוקים במערכת הכללית והתממשקות והרצת סביבות המידול ביחד עם סביבת הוריפיקציה הקיימת ב-system Verilog Specmen.

בכתיבת הכתבה השתתפו צוות SYSTEM-C בחברת רייציפ.

משה בובליל, RACHIP

תגובות סגורות