חדשות היום

מדוע LTspice טוב יותר בהפקת תוצאות נכונות מיישומי SPICE אחרים – חלק ב’

מהנדסים אנלוגיים מסתמכים מאד על סימולציות בכדי לצפות ביצועי מעגלים. ערכו של סימולטור נמדד ביכולתו לחזות את המציאות הפיזית ובמהירותו להפיק תוצאות אלו. אי התאמה בין הסימולציה לביצועים אמתיים יכולה לגרום למוצר להיקלע למחזורי בדיקות יקרים נוספים.

בחלק הראשון של מאמר זה אשר פורסם בגיליון הקודם סקרנו את איטרציית ניוטון, Sparse Matrix ואינטגרציה עקיפה.

כמסקנה מחלק א’ הבנו שנדרשת שיטה בעלת מהירות ודיוק אך ללא תוצאות הצלצולים הקיימים בה. בעוד ש-PSpice נפטרה מהצלצולים ב-Trap על ידי שימוש באינטגרציית Gear ובניסיון לבחור גודל צעד בזמן שיהיה מספיק טוב, ישנה גישה אחרת שהיא להשתמש בגרסה שונה במקצת של אינטגרציית Trap כך שהיא תדכא את הצלצולים  הקיימים בה ותציג בתקווה שגיאה קטנה של התנהגות המעגל האמיתית. ישנה אפשרות אך היא אינה מומלצת לשנות את אינטגרציית ה-Trap ב-LTspice עם אופציה שאינה מופיעה בתיעוד הנקראת TrapDamp. על ידי הוספת דירקטיבת

ה-SPICE:  לסכמת המעגל ב-LTspice. אפשר יהיה למצוא ערך של TrapDamp שמעתיק את התנהגות האינטגרציה של  (8). למרות זאת, אין זה מומלץ להשתמש באופציה זו מכיוון שהיא מדכאת התנהגות מעגלים רגילה ואין בה צורך ב-LTspice, אשר משתמשת בשיטה טובה יותר של דיכוי הצלצולים ב-Trap.

LTspice משתמשת בשיטת אינטגרציה שהיא שינוי של אינטגרציית Trap, שלה המהירות והדיוק של Trap אך ללא מצג השווא של הצלצולים. שינוי של שיטת Trap הומצאה על ידי לפני כמה שנים והייתה בשימוש נרחב ב-LTspice. למיטב ידיעתי, זו השיטה הטובה ביותר לאינטגרציה של משוואות דיפרנציאליות של מעגלים אנלוגיים והיא לא שוכפלה בשום תוכנת SPICE אחרת. זוהי השיטה היחידה שאני ממליץ עליה לתכן מעגלים. LTspice כמו כן תומכת בשימוש של שיטות נוספות וידועות כגון Trap ו-Gear וזאת בכדי שהמשתמש יוכל לשכפל את התוצאות השגויות המתקבלות מסימולטורים שונים של SPICE ויוכל לוודא כי המודלים מפורשים באותה דרך ורק ששיטת האינטגרציה היא שונה.

איור 3 הופק באמצעות שיטת Trap ששונתה והקיימת ב-LTspice. שימו לב שאין שינוי באמפליטודת הצלצולים אפילו אחרי שהצלצול קיים כמה אלפי מחזורים. דבר זה מדגים ששיטת Trap ששונתה והקיימת ב-LTspice, אינה מציגה מצג שווא של דיכוי ערכים נומריים. כמו כן, שיטת Trap ששונתה זו שימשה להפקת איור 5, שבו תוכנת ה-LTspice חשפה את אי היציבות הקיים במגבר.

בכדי להציג את היכולת של שיטת Trap ששונתה בכדי להיפטר מהצלצולים בשיטה זו ב-LTspice, אנו  צריכים מעגל שחסין לצלצולי Trap. צלצולים אלו חלים כאשר קיימת בעיה בהצגה מדויקת של התנהגות מעגל בזמן מתמשך כאשר נעשית אינטגרציה מסדר שני של קבועי זמן דיסקרטיים. בעיה זו יכולה להיות מופחתת באמצעות שימוש מושכל בגודל צעד הזמן ושליטה בסדר האינטגרציה.

מכיוון ש-LTspice היא תוכנת ה-Spice הפופולארית ביותר בעשר השנים האחרונות (9), היא התנסתה בסימולציה של מספר רב של מעגלים שונים וצברה מידע שנאסף ונכתב לתוך פותר הסימולציות בכדי להימנע מצלצולים בשיטת פתרון Trap, לכן יש לעבוד קצת בכדי למצוא דוגמה נגדית. איור 6 מראה מעגל שגורם לצלצולים בשיטת Trap עקב הקיבול הגבוה והלא לינארי של שערי ה-MOSFETs בעלי גודל חריג. צלצולי Trap נראים בזרם הדוחף את השער,  I ().

איור 7 משווה את אינטגרציית ה-Trap לאינטגרציית Trap ששונתה ב-LTspice. האיור השמאלי מראה את תוצאות הסימולטור בשימוש בסימולציית Trap, ובאיור הימני אותן הסימולציות בשימוש בסימולציית Trap ששונתה ב-LTspice ומראה בברור את ההבדל בצלצולים המתקבלים.

אם תרצו להפיק מחדש את התוצאות הללו ב-LTspice, עברו ללוח הבקרה (Control Panel) ללשונית SPICE ושנו את כפתור הרדיו של ברירת המחדל של שיטת האינטגרציה, בצד שמאל למעלה. (Default Integration Method) בהתאם. ה-Netlist לסימולציה זו היא:

* Trap Ringing Example V2 N001 0 3.3

V1 N002 0 PULSE(0 3.3 1n 1u)

M1 OUT N002 N001 N001 P

M2 OUT N002 0 0 N

.tran 0 1.2u 0 .1n

.model N NMOS(Tox=20n Vto=.5 + Gamma=.5 UO=650 Rs=10)

.model P PMOS(Tox=20n + Vto=-.5 Gamma=.5 UO=650 + Rs=10)

.probe

.end

רוב תוכנות ה-SPICE לא יריצו את הקוד הזה כפי שנדרש, מכיוון שרוב תוכנות ה-SPICE משתמשות במודל קיבול של מאייר (Meyer Capacitance Model) לסוגים אלו של טרנזיסטורי MOSFET. הסיבה היא שמודל מאייר לקיבול לא משמר מטען ואינו מדויק לערוצים קצרים. מודל זה הוצא משימוש בשנות ה-90. ה-LTspice, כמוה גם ה-PSpice החליפו את מודל מאייר לקיבול במודל מטען יאנג-צ’אטרג’י (Yang-Chatterjee Charge Model). מכיוון ששני הסימולאטורים משתמשים באותן משוואות מעודכנות של שמירת מטען, הם אמורים להפיק את אותן התוצאות. אך כאשר נעשית השוואת סימולציות בין ה-LTspice ל-PSpice, כפי שנראה באיור 8, PSpice מראה תוצאות שגויות במידה ניכרת. האוסילציות הנראות בסימולציית ה-PSpice אינן צלצולים המיוחסים לשיטת ה-Trap, מכיוון שהתנודות הללו אינן מגודל צעד אחד למשנהו וכמו כן, כפי שהוזכר, ב-PSpice לא משתמשים ב-Trap. תוצר לוואי לא רצוי זה הוא כמעט בוודאות טעות בהבחנה של משוואות המטען לקיבולים במודל יאנג-צ’אטרג’י ויישומם במודל המטען של יאנג-צ’אטרג’י ב-PSpice.

סיכום

LTspice לא הייתה האימפלמנטציה הראשונה של SPICE והיא אינה תוכנת ה-SPICE החינמית היחידה, אך היא הטובה ביותר והנפוצה ביותר. איטרציות ניוטון, שיטת דילול מטריצות (Sparse Matrix) ואינטגרציה עקיפה (Implicit Integration) הן שיטות הליבה הנומריות של LTspice. חוסן הסימולאטור, מהירותו, מהימנותו ואחידותו תלויות ביישום שיטות אלו.

בסופו של דבר, צריך להרוויח את האמון של המתכננים המשתמשים בו שהוא יכול לפתור בצורה נכונה את התנהגות המעגל. דבר זה בלתי אפשרי באם הסימולאטור לא מבצע את פעולות הליבה הנומריות שהוא אמור לבצע בצורה נכונה. סימולאטור ה-LTspice מבצע את שיטות אלו בצורה נכונה ובצורה טובה יותר מכל יישום SPICE אחר.

הערות שוליים

(1) אחרת הפתרון של המערכת הלינארית משמש כצעד איטרציה: המעגל הלא לינארי המקורי מורחב מחדש כטור טיילור חדש לפתרון זה, שוב כאשר רק שני הביטויים הראשונים נשמרים ואחר כך פתרון לשאר המערכת של המשוואות הלינאריות הסימולטניות. התהליך חוזר על עצמו עד אשר הוכח בהצלחה שהפתרון שנמצא מוצלח.

(2) PSpice הוא סימן מסחרי של Cadance. נעשה שימוש בגרסה 9.2 בשביל התמונות במאמר.

(3) ככל שמדללים יותר את המטריצה כך היא יכולה יותר להיות רשומה כאלכסון. כלומר, מטריצה פתורה. מכיוון שמטריצות מעגלים אנלוגיים דלילות מאד, שיפור פירוק לגורמים LU עם SuperLU לא מוסיף יתרון מהירות משמעותי.

(4) השמטה של גורמים לא ידועים במטריצה כרוכה בחיבור, חיסור וכפל. פעולות אלו כרוכות רק בשלושה מחזורי שעון. (יש גם כמה חלוקות שעולות ביותר משלושה מחזורי שעון, אך יש חלוקה אחת בהשמטה של אלמנט לא ידוע). הבאת מידע שידוע רק על ידי הכתובת של הכתובת של  כתובת הבסיס שבה קיים האינדקס לוקח הרבה יותר זמן משלושה מחזורי שעון.

(5) ספרות בנושא זה מציינת כי הפתרון הנומרי אינו יחיד אם גודל צעד הזמן קטן מספיק מובטח, אבל למעשה גישה עם אינטגרציה מפורשת וגודל צעד זמן מוגבל לא עובד אלא אם כן אפשר לשלב אותו נומרית עם דיוק אינסופי. השגיאה לא מתווספת לאינסוף מכיוון שהנגזרת מקורבת עם הבדלי דגימה סופיים. אין סימולאטורים מוצלחים למעגלים אנלוגים כלליים אשר משתמשים ב-Explicit Integration.

(6) SPICE לעיתים עובר לאינטגרציה מסדר ראשון וזאת אם אירוע ידוע שאינו רציף ולו נגזרת מסדר ראשון, לדוגמה מעבר בין שני סגמנטים ישרים אשר נוצרו ע”י Piecewise Linear או פונקציית פולס של מקור זרם עצמאי, רוב יישומי ה-SPICE יעברו לאינטגרציה מסדר ראשון של היגבי אותו מעגל במעבר.

(7) למשתמשים יש נטייה להיות חשדנים בהקשר ל-SPICE מכיוון שספרות פופולארית מורידה בערכם של סימולאטורי ה-SPICE.

(8) HSPICE הוא סימן מסחרי של Synopsis.

(9) תוכנת ה-LTspice מורדת מהאתר 4 פעמים בכל דקה והיא הנושא של מספר הרב ביותר של קבוצות משתמשים מכל סימולאטור אחר. משימוש במספרים של חברות הפצה של תוכנות SPICE אחרות ובהתבסס על תקשורת פרטית עם נציגי חברות בנושא, ה-LTspice מופצת ונעשה בה שימוש פי שלוש מכל תוכנת SPICE אחרת.

מייק אנגלהארט

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