חיים כהן, Freescale Semiconductor
עקב המורכבות ההולכת וגוברת בחלוקה של תחומים בעלי הספק מורכב וארכיטקטורות הספק, קיים צורך משמעותי באימות פיזי ופונקציונלי של לוגיקות ההספק המורכבות הללו. יחד עם זאת, למרות המאמצים הרבים של מהנדסי אימות, בעיות מסוימות יכולות לחמוק מהעין ולהגיע לסיליקון. כדי למנוע כשלים בסיליקון בשל בעיות של הספק נמוך, מהנדסים צריכים למצוא מתודולוגיות חדשניות לניהול בעיות לא צפויות של הספק נמוך.
CPF (פורמט הספק נפוץ), פורמט סטנדרטי המממש את כוונת תכנון הספק, משמש מהנדסי אימות כדי לטפל בבעיות תכן הקשורות להספק נמוך. כפי שמוצג באיור 1(A), לתכן ללא CPF יש קישוריות לוגית בלבד. אבל ברגע ש-CPF נכנס לשימוש, כפי שמוצג באיור 1(B), קישוריות ההספק של התכן נכנסה אף היא לתמונה. כל התכנים של הספק נמוך צריכים לקיים את מפרטי ההספק הנמוך המוגדרים ב-CPF, ולפיכך השימוש בהם צריך להיות חלק ממחזור התכנון שלהם.
כדי להבטיח שהתכן יתאים למגבלות ההספק הנמוך המוגדרות ב-CPF, צריך לבצע בדיקות סטטיות ודינמיות בהשתמש ב-CPF.
בתחילה, נדמה שאימות סטטי או אימות דינמי לבדם מספיקים כדי לאתר את כל הבעיות הקשורות להספק נמוך, ושאין צורך לבצע את שתי הבדיקות. אבל במציאות, אין זה כך. לכל בדיקת אימות הספק נמוך, לדינמית ולסטטית, יש היקף אימות שונה והשימוש בכל אחת מהן לבדו אינו מספיק כדי להבטיח אימות נאות של התכן.
במאמר זה נדון בצורך לבצע בדיקות הספק נמוך דינמיות וסטטיות בהשתמש ב-CFP משותף.
הצורך באימות הספק נמוך סטטי
בדיקות אימות הספק נמוך סטטיות מסייעות לאמת את היישום הנכון של טכניקות תכן להספק נמוך בהשתמש בטכניקות פורמליות (לעומת סימולציה) בשלב מוקדם בתהליך התכן. הבדיקות הסטטיות הללו ב-RTL מסייעות לברר את השלמות של ה-CPF מראש, ולהבטיח שה-CPF מכיל את כל כללי הבידוד ומסיט הרמה להצטלבות בין תחום ההספק והמתח. צריך להבטיח שאף תא הספק נמוך לא ייחסר בין שני תחומי מתח או הספק. אימות סטטי מוסיף ערך על ידי זיהוי “באגים” אשר אחרים היה קשה ויקר למצוא באמצעות סימולציות RTL.
אך יש בעיות מסוימות שלא ניתן לאתר על ידי בדיקות סטטיות. כעת נדון בכמה מהתרחישים הללו ביתר פירוט.
הבנייה עם לוגיקה לקויה בזמן יישום התכן הפיזי
כעת נדון בתכן עם שני תחומי הספק (התחום הדלוק תמיד ותחום המיתוג) כאשר יש הצטלבות בין התחום הדלוק תמיד ותחום המיתוג, כמוצג באיור 2.
תא הבידוד של רמה logic_0 היה אמור להיכנס בהצטלבות הזו. כעת, ההבנייה הלוגית בזמן אופטימיזציית התזמון קרתה בהצטלבות, כך שצמד המהפכים מתווסף לרשת כמוצג באיור 3.
כעת, כאשר תא בידוד מסוג logic_0 מוכנס בהצטלבות זו, כמוצג באיור 4, התכנון פועל כהלכה בזמן פעולה רגילה, כאשר תא הבידוד נמצא במצב מעקף במהלך מצב זה. אבל כאשר התכן נכנס למצב המתנה (“סטנדביי”), תא הבידוד מאופשר על ידי קביעת אות “iso_en”. עם ההפעלה של תא הבידוד, קבוע (למשל Logic 0) יתקדם מהיציאה של תא הבידוד לתחום הדלוק תמיד. במהלך שלב ההמתנה, Logic 0 מאולץ על ידי תא הבידוד, אבל בגלל המהפך אשר נוסף בזמן האופטימיזציה, Logic 1 מגיע ללוגיקה בתחום המיתוג, והדבר יפגע בתפקוד התכנון.
סוגים של תאי בידוד:
בדיקת הספק נמוך סטטית יכולה לסייע לזהות את תאי הבידוד החסרים במקומות בהם יש הצטלבות בין התחום המופעל והתחום הכבוי. אך בדיקה זו לא יכולה להבטיח את סוג תא הבידוד (סוג logic_0 או logic_1), שצריך להימצא באותה הצטלבות ספציפית.
רצף הפעולות של אותות בקרת הספק נמוך קריטיים:
בדיקות אימות סטטיות לא יכולות לאמת את רצף הפעולות בו ניתן לקבוע אותות הספק נמוך קריטיים. הדוגמה הבסיסית לבדיקה כזו היא בדיקת בידוד המבטיחה שאות בקרת בידוד נקבע לפני כיבוי אספקת החשמל. לאחר מכן מפעילים את אספקת החשמל בחזרה לפני שבקרת הבידוד מנותקת, כפי שמוצג באיור 5.
הצורך באימות הספק
נמוך דינמי
בדיקות הספק נמוך דינמיות מאפשרות לאמת את הפונקציונליות של כל האלמנטים של ניהול ההספק. כדי להשיג זאת, מפעילים סט של גירויים על:
(Design under Test) (תכנון תחת בדיקה) הבודק את הפונקציונליות הלוגית של התכנון.
(Common power Format) (פורמט הספק נפוץ), הבודק את כוונת ההספק על פי התכנון.
הגירוי הוא שילוב של אותות הנשלחים בהתאם לכוונת ההספק ולפונקציונליות של ה-DUT. על פי הגירויים המופעלים, חלק מסוים מה-RTL נכבה, וחלק ממנו נשאר תמיד מופעל. הסימולטור מאלץ את Xs על האותות המתקבלים מאזורים כבויים לאזורים דלוקים תמיד, כדי לדמות את מצבם הכבוי. אם הפונקציונליות הדרושה לא נפגעת בשל ה-Xs הללו, התכן נחשב תקין מבחינת הספק נמוך.
אך יש בעיות מסוימות שלא ניתן לאתר בהשתמש בשיטה זו. הבעיות הללו, אם הן נותרות ללא טיפול, יכולות לגרום לכשל בסיליקון. כעת נדון בכמה מהתרחישים הללו ביתר פירוט.
מסיט רמה חסר:
נבחן תכן עם שני בלוקים הפועלים על שני ספקי כוח שונים (1.2 וולט ו-3.3 וולט). יש דרישה לתא מסיט רמה באותות העוברים מהתחום של 1.2 וולט לתחום של 3.3 וולט, כפי שמוצג באיור 6. מטרת התא הזה היא להסיט את המתח ממצב נמוך לגבוה.
מסיט רמה
באופן לוגי, הפונקציונליות של תא מסיט רמה דומה לזו של חוצץ (כלומר קלט = פלט). לכן, אם תא מסיט רמה חסר במקום כלשהו, כלי הסימולציה לא יסמן שגיאה, אבל במציאות הדבר יכול לגרום לזרמי עכבה נמוכה, ולפיכך לכשל בסיליקון.
תאי בידוד חסרים בנתיב הלוגי של הבדיקה:
ניקח לדוגמה תכן עם שני תחומי הספק שונים, כפי שמוצג באיור 7.
תחום דלוק תמיד עם אספקה PD_AO
תחום מיתוג עם אספקה PD_SW
תא בידוד
במצב המתנה (“סטנדביי”), PD_SW ייכבה אבל PD_AO יהיה דלוק. לכן, לא יהיה צורך בתא בידוד בכל הצטלבות אותות מתחום המיתוג לתחום הדלוק תמיד. כעת ניקח לדוגמה Flip-Flop (בתחום המיתוג), שהיציאה שלו מחוברת לפין סרוק של Flip-Flop (באמצעות חוצצים מסוימים) בתחום הדלוק תמיד.
אם תא בידוד חסר בהצטלבות הזו, כלי הסימולציה לא יאתר שגיאה מאחר והנתיבים הללו לא נבדקים בסימולציות פונקציונליות. אך מאחר והתחומים הכבויים לא מפעילים את היציאות שלהם יותר, והיציאות שלהם הופכות לצמתים צפים, ערך האות הלא צפוי בהצטלבות עלול לגרום לצריכת זרם גבוהה בשל רמה לוגית לא מתאימה, והדבר עלול לגרום לכשל בסיליקון.
קישוריות הספק שגויה של בלוק אנלוגי:
עבור כלי סימולציה דיגיטלי, כל רשתות ההספק נחשבות לזהות באופן בלתי תלוי ברמת המתח הקשורה לאותה רשת הספק. לכן, אם מתבצעת קישוריות הספק שגויה בבלוק אנלוגי, ייתכן שלא יהיה ניתן לאתר זאת בהשתמש בסימולציה והסיליקון עלול להיכשל בשל כך.
מסקנה
הפיתוח של תכנית מודע להספק המסתמך על תחומי הספק מרובים יוצר הזדמנויות נוספות לטעויות. טכניקות אימות הספק נמוך דינמיות וסטטיות מהוות חלק בלתי נפרד מהאימות של התכן המיועד להספק נמוך. אפשר לאמת את שלמות ה-CPF על ידי ביצוע בדיקות הספק נמוך סטטיות ב-RTL עם CPF. לאחר מכן, אפשר להשתמש ב-CPF הזה לצורך סימולציות RTL, במיוחד כאשר תוכנית ניהול ההספק היא מורכבת מאוד.