15
1 הטכניון- הפקולטה להנדסת חשמל מ.ט.ל. המעבדה ל- VLSI חוברת הדרכה על בניתLayout עם ה כלי16.1 Innovus עםDesign Kit Tower 0.18u גואל סמואל הקדמה התחברות ממחשביLinux-PC זאת הדרך המומלצת לעבוד ה. פשוט יש לבצעlogin לתחילת העבודה. ניתן לפתוח חלון טרמינל באמצעותApplicationsSystem ToolsTerminal התחברות ראשונית ממחשביWindows-PC יש להתחבר באמצעותGoGlobal www.technion.ac.il/GG . רקע כלי ה- Innovus מ אפשר תכנון ומימוש של המסכות מעגלVLSI באופן אוטומטי.Innovus הוא כלי מתוחכם מאד ומסוגל לבצע:- timing analysis - physical synthesis - clock tree synthesis - power analysis - voltage (IR) drop analysis - signal integrity analysis - crosstalk analysis מעבר לאנליזות השונ ות הכלי מסוגל לבצע תיקונים אוטומטיים ב- layout לתיקון התקלות שנתגלו. חשוב לכוון את הכלי בצורה נכונה על מנת לקבל תכנון אופטימאל י. באופן כללי ניתן לומר שקיימים שני שלבים עיקריים של בניתlayout אוטומטי למעגל. ראשית מבצעים את תכנון ה- floorplan כלומר מיקום הבל וקים בתכנון ו מיקום הכניסות/יציאות שלהם, בשלב שני מבצעים את מיקום תאי הספרייה והחיווט שלהם בכל תת בלוק ובין כל תתי הבלוקים. הכלי מאפשר מימוש מהיר מאד של "אב טיפוס" של ה- layout על מנת לקבל הערכ ה טובה של מיקום התאים ואורך החוטים, מידע שניתן להזין לכלי הסינת זה ותזמון כך שניתן יהיה לקבל מעגל העומד בדרישות מהר יותר. ההסבר להלן מתאר מימוש שלlayout סופי ולא רק "אב טיפוס". בתכנונים גדולים מומלץ לבנות את ה- layout בצורה היררכית. ברוב הפרויקטים אין צורך לעבוד בשיטה ההיררכית. שיטת העבודה כאן תהיהtop->down כלומר ראשית יבנה ה- floorplan של כל השבב כולל חלוקה לתת בלוקים. לאחר מכן ימומש של תת בלוק בנפ ר ד. בשלב האחרון יבוצעו ה פעולות הנדרשות לחיבור הבלוקים ביחד. אם אתה בכל זאת שוקל לעבוד היררכית, עליך להתייעץ עם צוות המעבדה. ראשית נתאר מימושlayout של מעגל שכולו מבוצע ברמת היררכיה יחידה. תיאור של שימוש בכלי האנליזה השונים יובא בהמשך. באופן כללי ניתן לומר שבניתlayout שטוח מורכב מה שלבים הבאים :

Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

1

מ.ט.ל. הפקולטה להנדסת חשמל -הטכניון

VLSI -המעבדה ל

Innovus 16.1כלי ה עם Layoutבנית חוברת הדרכה על Design Kit Tower 0.18u עם

גואל סמואל

הקדמה

Linux-PCהתחברות ממחשבי ניתן לפתוח חלון לתחילת העבודה. loginה. פשוט יש לבצע זאת הדרך המומלצת לעבוד

ApplicationsSystem ToolsTerminalטרמינל באמצעות

Windows-PCהתחברות ראשונית ממחשבי .GoGlobal – www.technion.ac.il/GGיש להתחבר באמצעות

רקע Innovus באופן אוטומטי. VLSIתכנון ומימוש של המסכות מעגל אפשרמ Innovus -הכלי

הוא כלי מתוחכם מאד ומסוגל לבצע:

- timing analysis

- physical synthesis

- clock tree synthesis

- power analysis

- voltage (IR) drop analysis

- signal integrity analysis

- crosstalk analysis

לתיקון התקלות layout -ות הכלי מסוגל לבצע תיקונים אוטומטיים במעבר לאנליזות השונ

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

בשלב , הכניסות/יציאות שלהםמיקום וקים בתכנון וכלומר מיקום הבל floorplan -תכנון ה .ובין כל תתי הבלוקים שני מבצעים את מיקום תאי הספרייה והחיווט שלהם בכל תת בלוק

טובה של העל מנת לקבל הערכ layout -הכלי מאפשר מימוש מהיר מאד של "אב טיפוס" של ה

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

טיפוס".

ברוב הפרויקטים אין צורך לעבוד בצורה היררכית. layout -בתכנונים גדולים מומלץ לבנות את השל floorplan -ראשית יבנה הכלומר top->downשיטת העבודה כאן תהיה . בשיטה ההיררכית

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

להתייעץ עם צוות המעבדה.

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

שלבים הבאים :מה

Page 2: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

2

קריאת קבצי הטכנולוגיה .1 רים כלומר אחרי סינתזה( של המעגל)ברמת שע verilog -קריאת קובץ ה .2

הראשוני Floorplan -אתחול והגדרת ה .3

תאיםמיקום ה .4

מימוש רשת ההספקה .5

חיווט התכנון .6

הגדרת סביבת העבודה לפני תחילת העבודה יש ליצור ספריה חדשה ולהעתיק קבצי הגדרות. צור ספרייה חדשה:

mkdir innovus

cd innovus

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

המסונתז לספריה החדשה. verilogהעתק את הקובץ יש להעתיק גם את הקבצים הבאים:

cp /users/iit/cadence/tsl018c/env.globals .

cp /users/iit/cadence/tsl018c/cds.lib .

cp /users/iit/cadence/tsl018c/mmmc.view .

cp /users/iit/cadence/tsl018c/top.sdc .

הכנת הקובץ המסותנז

של האריזה. לפני תחילת pins -הנחוצים לחיבור של השבב ל padsנתז אינו מכיל הקובץ המסולקובץ. ניתן לעשות זאת באופן ידני או באמצעות pads -, יש להוסיף את הlayout -העבודה על ה

סקריפט אשר יעדכן את הקובץ באופן אוטומטי. לשם בניית הקובץ יש להריץ את הסקריפט הבא:

/users/iit/cadence/tsl018c/gentop.pl verilog_file_name top_module_name לדוגמא:

/users/iit/cadence/tsl018c/gentop.pl decoder.v decoder

בסיום הריצה יתקבלו שני קבצים:top.v

top.io

כי הסקריפט פעל בהצלחה, יש יש לוודא. pads-נמצא התכנון המעודכן כולל ה top.v-בקובץ ה באמצעות העורך: top.v-קובץ הלפתוח את

nedit top.v ולוודא כי בשורות הראשונות מופיעים חיווטים:

module top();

wire wire1;

wire wire2; …

במידה ומופיעים רק שני חיווטים:module top();

wire net1000;

wire net1001;

כראוי, מומלץ לעיין הוקלד top_module_name-, יש לוודא כי שם ההסקריפט לא רץ כראוי בקובץ המסונתז ולוודא כי זהו אכן השם הנכון.

יופיעו השורות הבאות : top.v -שנוצר ב Verilog -לשים לב שביש ראשית,

Page 3: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

3

pv0a PAD_G1 ; ) (

pv0c PAD_G3 ( .VSSC(VSS) );

pvda PAD_I1 ; ) (

pvdc PAD_I3 ( .VDDC(VDD) );

קיימת בעיה . pvdc -ו pv0cולא כפי שצוין לעיל pvdi -וב pv0i -שתמש ב: בעקרון נדרש לה חשוב -ו pv0c -לרשתות ההספקה ולכן בשלב זה נשתמש ב pvdiואת pv0iלא מחבר את Innovus -ש

pvdc .ונחליף אותן בהמשך הדרך

משתנה, יש להקפיד על שמות זהים, top module-לפעמים לאחר ביצוע הסינתזה, שם ה -הערהיש להסירו מהקובץ המסונתז על מנת שהסקריפט יעבוד module-לשם ה '\'במידה והתווסף סימן

כראוי. -ניתן למצוא ב pads -שמכיל גם את התכנון וגם א ה verilogדוגמא של קובץ

/users/iit/cadence/tsl018b/top.v שים לב ל- pads של קווי ההספקה ושל פינות ה- layout.

)חלק א'( RAMנות *שילוב זכרו towerשל הפרויקט נוצרו באמצעות הכלי של RAM-כרונות היאת השלב הבא יש לבצע במידה וז

המופיע באתר. במידה ויש לכם Using Tower 0.18u RAM memoriesובאמצעות המדריך זכרונות אחרים ניתן לדלג על שלב זה.

הגדרה ריקה מכיל top.v -קובץ הש איש לוודלא בוצעה סינתזה. RAM-ה Moduleכאמור עבור לדוגמא :של הזיכרון

module mymem ( A, CEB, WEB,

OEB, CSB, I, O);

input [7:0] A ;

input CEB ;

input WEB ;

input OEB ;

input CSB ;

input [31:0] I ;

output [31:0] O ;

endmodule

)זהה גם לשם שנבחר macro-בשורת ה lef-כרון כפי שמופיע בקובץ היהוא שם הז mymemכאשר לקווים בודדים. buses -יתכן שהסינתזה פירקה את ה כרון עם הכלי(.יבעת היצירה של הז

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

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

, הקובץ env.globalsוטען את קובץ load. בחלון שנפתח לחץ על Design File Importלחץ על מגדיר את הדברים הבאים:

- top.v זהו הקובץ שנוצר באמצעותgentop והגדרת ה-top module .שלו )תזמונים, הספקים...(. towerרכיבי אפיון של המכילים tlf, lefקבצי - .mmmc.view -קובץ זה נקרא ע"י קובץ ה. top.sdc קובץ אילוצי תזמון -. )קובץ זה גם הוא נוצר באמצעות pads-המגדיר את מיקום ה -לדוגמא IO FILE-מיקום קובץ ה -

gentop) VSS -ו Power (VDD VDDC VDDO-, הגדרות מתחי ההספקה בadvanced-בלשונית ה -

(VSSC VSSO. .OKלחץ על

Page 4: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

4

הכלי מאפשר הצגת התכנון בשלשה ייצוגים שונים : חשוב :

: מציג מיקום הבלוקים Floorplan Viewא.

: מציג מיקום התאים הבסיסיים Amoeba (placement) Viewב.

ם של המימוש: מציג את כל הפרטי Physical Viewג.

בצד ימין : viewניתן לעבור בין הייצוגים ע"י לחיצה על שלשת הכפתורים במסגרת

שמירת התכנון

. אחרי הפעלת הכלי DesignSave Designניתן לשמור את העבודה בכל שלב בעזרת הפקודה :

.DesignRestore Designמחדש ניתן להעלות את התכנון מחדש בעזרת :

)חלק ב'( RAMכרונות *שילוב זיובאמצעות המדריך towerיש לבצע במידה והם נוצרו באמצעות הכלי של RAMכרונות ישילוב ז

Using Tower 0.18u RAM memories כרונות אחרים ניתן יהמופיע באתר. במידה ויש לכם ז לדלג על שלב זה.

בשדה RAM -של ה LEF file -של הזיכרון. הוסף את שם ה LEF file -עליך לטעון את ה .1 .Import-הבחלון LEF File -ה

-ו tsl18_memory_typ.libנוצרים שני קבצים בשם RAM-בתהליך יצירת ה .2mymem_typ.lib צריך לצור קובץ חדש בשם .mem_typ.lib על ידי הוספת התוכן שלmymem_typ.lib לקובץtsl18_memory_typ.lib בדיוק לפני השורה האחרונה. את

mem_typ.lib יש להוסיף לשדה של ה- Timing Libraries.

הערות :

הוא שם התכנון. סביר designכאשר design.globalsיוצרת קובץ בשם saveלחיצה על .1להניח שיהיה צורך לחזור על טעינת התכנון מספר פעמים. בפעם הבאה שמבצעים

DesignImport ניתן ללחוץ על הכפתורload התצורה השמורה על מנת להעלות את ובכך לחסוך מילוי כל שדות הטופס. design.globals -ב

מספר שלם( מכיל עותק של כל הפקודות שביצעת. ניתן N) innovus.cmdNהקובץ .2. אם יש צורך בביצוע הפקודות פעם נוספת, ניתן scriptfileלהעתיק את הפקודות לקובץ

לעשות זאת בעזרת :source scriptfile

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

( שדרכו terminal -)כלומר ה unix -( מריצים בחלון הsourceכל פקודה ידנית )כגון פקודת .3 הופעל הכלי.

בכל חלון אין לשנות את מצב הכפתורים והשדות, אלא אם צוין אחרת. .4

כרונות.יעד כאן ז .OKנה לחץ על לטעי

Floorplan -הגדרת ה

ראשית נקבע את הגודל של הסריג. לחץ על :

ניתן בתפריט זה. FloorplanSpecifyבעזרת לחיצה על Floorplan-צורת ה יש להגדיר את כעת :Floorplan-להגדיר את המאפיינים של ה

Page 5: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

5

Core to IOבמרכז התפריט וודא כי – I/O pads -ל (core)יש לשנות את המרחק בין הליבה .א

Boundary מסומן. שנה את ערכי ארבע השדות"Core to…" ראה תמונה(100-ל( .

אם יסתבר שהגודל רת המחדל. ים גודל שבב שנקבע ע"י ברלעבוד ע ישגודל השבב: הגדרת .ג

. Die Size by Width Heightלא מתאים, ניתן לשנותו בעזרת השדות הם שמימדי השבב שוב. וודא FloorPlanSpecify פתח את הטופס של : וב מאדחש .ד

0.01ושנה את גודל השבב לכפולה של Die Sizeאם זה לא מתקיים לחץ על .0.01כפולות של שקיבלת. הקרובה ביותר לגודל

Design Browser

, בחר ToolsDesign Browserפתח כלי זה מאפשר חיפוש ובחירה של תאים ו/או רשתות. )עיגול עם מלבן באמצע(. Zoom Selectedאת האובייקט הרצוי ולחץ על הכפתור

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

Power Connect Global Netsעבור .VDD רשוםVDD בשדותPin Names ו- To Global

Net ולחץ על הכפתורAdd to List לחץ על .applyספקות : א. חזור על הפעולה עבור כל אחד מה VDD VDDC VSS VSSC.

ולחץ To Global Net -בשדה VDDם ו, רשTie High, לחץ על Pins -כעת מחק את הכל משדה ה

Pin -ו Instance Basename-ה ות. מחק את הכל משדapply. לחץ על Add to Listעל הכפתור

Names לחץ על ,Tie Lowם ו, רשVSS בשדה- To Global Net ולחץ על הכפתורAdd to List . .closeולאחר מכן על applyלחץ על

הרצת הקובץ:source /users/iit/cadence/tsl018c/glnets.src

זאת באופן אוטומטי. תמבצע

grid -ל pads -הצמדת ה ובצע : pads -הבחר את כל

snapFPlanIO -userGrid

iopads -השלמת מסגרת ה יש למלא את הרווחים בתאי מילוי. בצע זאת בעזרת הפקודה:

source /users/iit/cadence/tsl018c/iofill.src

Page 6: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

6

)שלב ג'( RAM*מיקום תאי עבור לשלב הבא. RAMאם התכנון לא מכיל תאי

)בצד moveשל פקודת icon -ימין למטה(. לחץ על הבחר את התא )בד"כ הוא נמצא בצד שמאל למעלה(. לחץ על התא והזז אותו למקום הרצוי. יש להשאיר מקום פנוי מסביב לתא עבור

ולחץ על 30 -. שנה את כל האפסים לFloorplanEdit Halosבחר את התא ולחץ על -החיווטO.Kמיקרון מסביב לתא. 30 . פעולה זאת מונעת מיקום תאים אחרים בתווך של

ספקהאהגדרת רשת ה ספקות בעזרת שתי פקודות :אהניתן לממש את רשת

PowerPower PlanningAdd Rings .א PowerPower PlanningAdd Stripes .ב

סביב כל בלוק או סביב אספקהטבעות הוסף PowerPower PlanningAdd Rings בעזרת זה טבעות רצויות ובחר:בחלון שנפתח, הגדר איכל הליבה.

בלבד. VSS-ו nets :VDD -בחר ב - left,right :M5הצלעות - top,bottom :TOP_Mהצלעות - 6רוחב הפס : - 1.8מרחק בין הפסים : -

.Centre of Channel –בחר ב offsetליד -

.applyבסוף לחץ על יף רצועות נוספות של קווי ניתן להוס Power->Power Planning->Add Stripesבעזרת

השלם את הטופס באופן שתואם את הטופס של הטבעות: ספקה.אה בלבד. VSS -ו nets :VDD -בחר ב -

M5הצלעות האנכיות : - TOP_Mהצלעות האופקיות : - בדרך כלל נגדיר רק צלעות אנכיות או צלעות אופקיות - 6רוחב הפס : - 1.8מרחק בין הפסים : -

90רשום : X from right -ו X from left -ב -

ובחר את האופציות: Advanced -לחץ על כפתור ה -- Omit Stripes inside block rings ו- - Omit stripes over selected blocks/domains קודם עליך לבחור את כל הבלוקים( –

שלא אמורים להיות מכוסים בקווי ההספקה( – RAMלמשל תאי

.applyלחץ על :script -ניתן לבצע את הפעולות הנ"ל עם ה

source /users/iit/cadence/tsl018c/power.src

מיקום התאיםלמקם תאים תוך כדי Innovus -בשלב זה נרצה למקם את התאים. על מנת לגרום ל

אופטימיזציה בתזמון הכללי יש לספק את האילוצים המתאימים. למיקום התאים בתנאים אלה הרץ :

source /users/iit/cadence/tsl018c/place.src

:ניתן לבצע רק מיקום בעזרת פקודות התפריטPlaceSpecifyPlacement Blockage

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

PlaceStandard Cells

ים את השטח באופן מלא.בחלון שנפתח. התאים אינם מכס OKלחץ על

Page 7: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

7

Clock Tree Synthesis (CTS) –עץ שעון מאוזן

יש להלן דוגמא של רצף הפקודות שממשות על שעון. יש להתאים את הפקודות שמימוש שלכם. באדום מתאים לתכנון : text -לוודא שה

create_ccopt_clock_tree -name top -source I5/CIN

set_ccopt_mode -cts_inverter_cells "invbd2 invbd4 invbd7 invbda invbdf \

invbdk" -cts_target_skew 0.2 -cts_target_slew 0.2

set_ccopt_mode -cts_buffer_cells {bufbd1 bufbd2 bufbd3 bufbd4 bufbd7}

set_ccopt_property target_max_trans 150ps

set_ccopt_property target_skew 0.2

create_route_type -name RT_trunk_leaf -top_preferred_layer M4 - \

bottom_preferred_layer M3 -preferred_routing_layer_effort high

set_ccopt_property route_type RT_trunk_leaf -net_type leaf

set_ccopt_property route_type RT_trunk_leaf -net_type trunk

set_ccopt_mode -integration native

ccopt_design -cts

בקובץ :פקודות אופטימיזציה נוספות( וגם)ניתן למצוא את הפקודות /users/iit/cadence/tsl018c/ccopt.src

הערות :

במקרה זה יש להעתיק את הקובץ ולתקן את העותק המקומי. - את העותק המקומי מרצים בעזרת : -

- source ccopt.src

של הכלי. manual -ב של הפקודות השונותעל מבנה ראה הסבר - מציין שהשורה ממשיכה לשורה הבאה. "\" - לפני הכנסת תאי המילוי. CTSיש להריץ -

- CTS קובץ הניתן לשמור את . דשיוצר מבנה ח- Verilog .החדש

.Clock->CCopt Clock Tree Debuggerניתן לראות את העץ בעזרת : -

מילוי הרווחים את הרווחים בתאי מילוי. בצע זאת בעזרת הפקודה:יש למלא

source /users/iit/cadence/tsl018c/fill.src

ההנחה כאן, היא שהתכנון מכיל תאים סטנדרטיים בלבד. הסבר עבור מקרים אחרים יובא בהמשך.

ספקהאחיווט קווי ה

.OKלחץ על .pad_rings -חשוב : כבה את הכפתור של ה .RouteSpecial Routeלחץ על

חיווט התכנון

בחר לביצוע חיווט מלא של התכנון. RouteNanorouteRoute ן לבצע את החיווט בעזרת נית

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

source /users/iit/cadence/tsl018c/route.src

פקסאנליזת ה

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

Page 8: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

8

o .ניתן להריץ אנליזה זאת עם וגם ללא ווקטורים

אנליזת הספק סטטית .OKולחץ על static-בחר ב Power-> Power Analysis->Setup -בועבור Flop Activity -ל (0.2) הכנס מספר מתאים Power-> Power Analysis->Run -ב

Clock Gate Activity (0.1) בשדה .Results Directory רשום./SPA ולחץ עלOKבחלון ה .- terminal תתקבל התוצאה. התוצאות תשמרנה בספריה שציינת בשדהRun Directory בחלון

מטעינה ופריקה של כולל את כל צריכת ההספק שנובעת internal power -. הrpt.*בקובץ הקודםמתייחס לצריכת ההספק switching power -בתוך התא ו Short Circuit Currentקבלים וגם

.טעינה ופריקה של קבלים מחוץ לתאמשנובעת

ל המנחה()לבצע רק בהוראה מפורשת ש דינמיתאנליזת הספק

ההסבר כאן יתאר רק אנליזת הספק דינמית ללא ווקטורים.. חשוב גם להכניס את vectorless -ו dynamic-בחר ב Power-> Power Analysis->Setup -ב

:Power Grid Libraries -של ההמיקום /tools/kits/tower/PDK_TS18SL/iit/tower_allcells/fast_allcells.cl

Flop Activity -הכנס מספר מתאים ל Power-> Power Analysis->Run -ב .OKולחץ על בחלון הקודם. Run Directoryהתוצאות תשמרנה בספריה שציינת בשדה .OKולחץ על (0.5)

ניתן לראות את התוצאות בספריה זאת עם :Power->Report->Dynamic Waveforms. :בחלון שנפתח בחר ב

Power (Current) Waveforms .א

בחלון הרצה. Run Directoryבחר בספריה שציינת בשדה State Directoryבשדה .ב

dynamic_VDD.ptiavgובחר הקובץ Addלחץ על .ג

Total Current -בחר ב Composite Waveformבשדה .ד

Plotלחץ על .ה

- IR Drop Rail Analysis אנליזתת מסוימת. התנגדות זאת גורמת למפל למעגל יש התנגדו VSS -ו VDDלקווי המתכת שמספקים

-נקי בקו ה 0מלא ו/או מתח VDDמתח לאורך הקו וכתוצאה מזה, המעגלים אינם מקבלים VSS תופעה זאת נקראת .IR Drop סטטי. בנוסף לכך לקווים המוליכים את ההספקות מהאריזה

IRמפל מתח הנקרא אל תוך השבב השראות לא זניחה. שינויים בזרם בתדרים גבוהים גם יגרמו ל

Drop .דינמי

סטטי ודינמי. על מנת לעשות זאת Rail Analysisאו IR Dropמאפשר חישוב של velocityהכלי , Rail Analysisביצוע מידע מדויק על צריכת הספק סטטי ודינמי של המעגל עצמו. לפני ביש צורך

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

.Early Rail Analysisחובה לבצע

Early Rail Analysis לעתים, יש צורך בבחינת קווי ההספקות בשלב מוקדם מאד של התכנון. קיימת אפשרות לביצוע

Rail Analysis על סמך הערכת הספק בלבד(Early Rail Analysis). Power->Rail Analysis->Setup Rail Analysisפתח את הכלי :

.Early -בחר ב Analysis Stage -ה עבור :Power Grid Libraries -הגדר את ה

/tools/kits/tower/PDK_TS18SL/iit/tech_pgv/techonly.cl

50 -ל Source Search Distanceקבע את יש להדליק את : Advanced בלשונית של

-Skip Virtual Via Insertion for "all"

Page 9: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

9

- Techlib Generation "false" של הטופס. OKלחץ על

.Power -> Rail Analysis -> Run Rail Analysis -בחר ב מלא את הטופס באופן הבא :

יש ללחוץ עליו פעם אחת לכל Power Net – Ground Netבשורות של Addאם מופיע כפתור -

שורה. Area Based -בחר ב Power Dataעבור - במקרה זה( 0.4: רשום את צריכת ההספק המשוערת ) Total Power לחץ על- 0.9V –: רשום את מתח ההספקה Biasעבור -

רשום את צריכת הזרם הממוצעת המשערת. Total Currentבשדה של XY -ב -ב של האספקות. בחר Pads -את המיקום של ה יםמגדירש pp.* ציוביש להכין קכעת,

File ולחץ על Create .

VSSרשום את שם הרשת : -

Get Coordלחץ על -

VSS -ה pad -פס המתכת שיוצא מ לחץ על - בחר במתכת המתאימה -

. יופיע עיגול צהוב.addלחץ על -

. vsstop.ppושמור את הנתונים בקובץ saveעל לחץ. VSS של pads -כל ה חזור על הפעולות עבור .VDD padחזור על הפעולה עבור כל .כפי שמופיע באיור לעיל Fileרשום את השם הזה בשדה

Page 10: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

10

Power-Report-Power and Railיש ללחוץ על בסוף החישוב תבצע את האנליזה. OKלחיצה על

Results להציג תוצאות על מנתPower Analysis ו/או (Early) Rail Analysis. לחץ עלDB

Setup ריה האנליזה מופיעות בספ. תוצאותERAבחר ב .- Browse שליד ה- Rail Database בחר . -Noneבמקום .DomainName_25C_avg_1 -ולאחר מכן בספריה עם שם דומה ל ERA -ב

Clear בחר ב- IR Drop . כעת יוצגו התוצאות של גםVDD וגם- VSSל . לחיצה עLayers/Nets מאפשרת בחירה ברשת אחת בלבד.

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

לצוות המעבדה.

)לבצע רק בהוראה מפורשת של המנחה( אנליזת תזמוןן קריאת קובץ נטען בהצלחה בזמ mmmc.view -נתין לבצע את האנליזה הזאת רק אם קובץ ה

מגדיר את פינות התזמון השונות וגם mmmc.view -בתחילת העבודה. קובץ ה top.globals -ה top.sdc -המגדיר את כל אילוצי התזמון. על קובץ ה top.sdcבשם טוען את קובץ האילוצים

להכיל לכל הפחות את הגדרת השעון :create_clock clock_pin_name –name clock_name –period 10 –waveform {0 5}

יש לציין זאת בטופס. CTSאם בוצע – Timing Timingבצע : Timing Debug Timingכדי לראות את התוצאות :

2gdsיצירת קובץ

. לאחר המעבר ניתן LVS -ו DRCקובץ זה נחוץ על מנת שאפשר יהיה להעביר את התכנון לכלי

ים אם יש צורך בכך. הקובץ נוצר בעזרת הפקודה:ידני layoutיהיה גם לבצע תיקוני GDS Design-> Save-> . בשדה והכנס שם קובץ היציאה בחלון שנפתח- Map File : רשום

./users/iit/cadence/tsl018b/gds2_6lm.map

Page 11: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

11

OAיצירת קובץ ולאחר מכן OpenAccess (OA)לשמור בפורמט היא LVS -ו DRCלכלי לעבור דרך נוספת

virtuoso -יש להעביר את התכנון ל ןהשיטה הזאת אינה עובדת בשלב זה ולכ. virtuoso-לפתוח ב

.gds -בעזרת קובץ ה

אם סביבה זו לא קיימת הגדר .virtuoso ראשית, עליך לצור ספריה שבה ישמר התכנון בסביבתאת השורות והוסף cds.lib-. ערוך את קובץ הcadence virtuosoאחת כפי שמוסבר במסמך

הבאות:DEFINE tsl018fsb /tools/kits/tower/libs/OA/tsl018fsb

DEFINE tsl018iob /tools/kits/tower/libs/OA/tsl018iob

. virtuosoבאמצעות הפקודה virtuosoשמור את השינויים וצא מהעורך. הפעל את , בצד ימין layout לדוגמא ספרייה בשם FileNewLibraryכעת צור ספריה חדשה באמצעות

. בחלון OKולחץ "Attach to an existing technology library"סמן את Technology file-ב .OK. לחץ ts018_prim-הבא בחר ב

לחץ על:את התכנון בצורה הבא, Innovusכעת ניתן לשמור בכלי

DesignSave Design AsOA

:layoutלספריית שמור את התכנון

.layout -ל abstract -של כל התאים מ views -בתא שנוצר, יש לשנות את ה חשוב : לבצע רק בהוראה מפורשת של המנחה(מכאן ואילך יש ) LAYOUT -. בדיקת ה4

הכנת הסביבה 4.1

בעזרת הפעל את הכלי. virtuosoשל manual -ראשית עליך להכין סביבה כפי שהוסבר ב הפקודה:

virtuoso

-ו project_username. ניתן לראות שתי ספריות : design_manager -פתח את ה

project_master. ניתן לעבוד עם כל אחת .

layout -תיקון ה 4.2 בהתאם. pvdi -ו pv0i -ל pvdc -ו pv0cיש להחליף את כל תאי Layout -ב

:cdlיצירת קובץ 4.3

-נוצר מקובץ ה layout -א לא קיימת כי הדורשת את הסכמה של המעגל. לרב, הי LVS -בדיקה הverilog שיצר כלי הסינתזה. כלי ה- LVS יש מבצע את ההשוואה ברמה של טרנזיסטורים ולכן

קובץ זה נמצא בספריה (. verilog( של הסכמה )קובץ cdlלהכין תיאור ברמת הטרנזיסטור )קובץ

Page 12: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

12

top.enc.dat בספרית העבודה שלInnovus בצורה מקובצתtop.v.gz . ,את לפרוש יש ראשית. pvdc -ו pv0c -בולא pvda -וב pv0a -הבא. בעקרון נדרש להשתמש ב הקובץ ולבצע את השינוי

בקובץ מופיעות השורות הבאות :pv0a PAD_G1 ;) (

pv0c PAD_G3 ( .VSSC(VSS) );

pvda PAD_I1 ;) (

pvdc PAD_I3 ( .VDDC(VDD) );

-שנה את השורות ל

pv0a PAD_G1 ;) (

pv0i PAD_G3 ( .VSSC(VSS) );

pvda PAD_I1 ;) (

pvdi PAD_I3 ( .VDDC(VDD) );

באופן הבא: V2CDLבעזרת תוכנית בשם cdl-הקובץ ניתן ליצור את

/tools/mentor13/Calibre/ixl_cal_2013.2_35.25/bin/v2lvs -v top.v -o top.cdl

על מנת להריץ .top.cdl. הפקודה הנ"ל יוצרת קובץ בשם verilog -שם קובץ ה הוא top.v כאשר

ס לכל הודעת להתייח. חשוב mentorפקודה יש לוודא עם צוות המעבדה שיש לך הרשות של כלי טעות שמתקבלת כתוצאה של הריצה.

: שמתקבל cdlתיקונים ידניים נדרשים לקובץ

.pfrelrיש למחוק את השורות עם .א : להוסיףיש קובץ תחילת הב .ב

.GLOBAL VSS

.GLOBAL VDD

.include /users/iit/cadence/tsl018b/cdl/tsl18fs120.cdl

.include /users/iit/cadence/tsl018b/cdl/tsl18cio150.cdl

כך שיראו כך : pads -יש לתקן את הפינים של כל התאי ה .ג

XI16 pt3o01 $PINS VDD=VDD VSS=VSS VDDO=VDDO VSSO=VSSO PAD=net111 I=wire_st

XI5 pc3d01 $PINS VDD=VDD VSS=VSS VDDO=VDDO VSSO=VSSO PAD=net100 CIN=wire_clk

XD31 pc3b01 $PINS VDD=VDD VSS=VSS VDDO=VDDO VSSO=VSSO PAD=D1 OEN=V2 I=D1 CIN=KD

XPAD_G1 pv0a $PINS VSSO=VSSO VDD=VDD VSS=VSS VDDO=VDDO

XPAD_G3 pv0i $PINS VSSO=VSSO VDD=VDD VSS=VSS VDDO=VDDO

XPAD_I1 pvda $PINS VSSO=VSSO VDD=VDD VSS=VSS VDDO=VDDO

XPAD_I3 pvdi $PINS VSSO=VSSO VDD=VDD VSS=VSS VDDO=VDDO

כך שהמשפט יראה VSS=VSS -ו VDD=VDDלכל הופעה של תא סטנדרטי יש להוסיף .ד כך:

XU57 inv0d0 $PINS VDD=VDD VSS=VSS ZN=n52 I=n47

LVS -ו DRCהרצת 4.5

ראשית . virtuosoמתבצעות בכלים שמופעלים באמצעות הפקודה layout -כל הבדיקות על ה

עלינו לבנות את סביבת העבודה של הכלי.

למשל: cadenceבנה ספריה חדשה בשם mkdir cadence

עבור לספריה חדשה :cd cadence

הפעלת הכלים. הקפד לעשות תמיד לפני

:TOWER 0.18uעבור טכנולוגיות

Page 13: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

13

שלך מכיל את השורות הבאות: cshrc. -וודא שקובץ הsource /users/iit/cadence/source_cadence617

setenv DRCTEMPDIR /tmp/drcusername

epxxxx)הוא שם החשבון של המשתמש )בדר"כ usernameכאשר :הפקודה ניתן לערוך את הקובץ בעזרת

nedit ~/.cshrc &

מסודר neditוסגור את save-שמור את השינויים באמצעות ה ,את הקובץ במידת הצורך שנה .על מנת שיחולו השינויים מחדש loginבצע יש ל. ExitFileבאמצעות

העתק את הקובץ הבא לספרית העבודה :

cp /tools/kits/tower/TS18SL/iit/KIT.cshrc .

ושנה את השורה הבאפתח את הקובץ setenv PROJ_ROOT /users/user_name/cadence

יצביע על ספרית העבודה שלך. בצע את הפקודות הבאות : PROJ_ROOT-כל ש

source KIT.cshrc

echo username > user_list

מהווה שם החשבון שלך. usernameכאשר makeProjectTree Project -flow T18C6DNSL1 -users user_list -cds -ver -assura -pvs

הוא שם )כלשהו( שיינתן לפרויקט. Projectכאשר יותר מפעם אחת לפרויקט!( makeProjectTree)אין לבצע את הפקודה

virtuosoעבודה עם הפעלת הכלי

לאחר מכן, כל פעם שמפעילים את הכלי, יש לבצע את הפקודות הבאות :

cd cadence source KIT.cshrc

cdsprj Project virtuoso &

לסביבה החדשה layout -ה ראשית יש להעביר

:virtuoso -. בעת יש להעלות את הקובץ לספרייה בgds2קובץ נשמר בהתכנון innovusבכל File->Import->Streamהפעל virtuosoבכלי - את שם הספרייה Library Nameובשדה gds2 -את שם קובץ ה Input File -הכנס בשדה ה -

project_username אוproject_master.

בחר Available Libraries -בחלון ה Libraries -לחץ על לשונית ה.Show Optionsלחץ על -. Translateלחץ על . Reference Libraries -והעבר אותן לחלון ה tsl018fsb tsl018iob: ב

.כלשהו רשום שם setup -הכלי יבקש שם קובץ לשמירת ה

Tool->Libraryבספרייה שלך. פתח חלון layoutתהליך זה יוצר תא בשם של התכנון שלך ומסוג

Manager .על מנת לראות את הספריות והתאים חשוב:

. אם הם אינם core -ספקה של האמחוברים לקווי ה VSS -וה VDDשל pads -. בדוק שה1. לאחר layout -ניתן לבצע זאת ב י הרצת הבדיקות.מחוברים יש לחבר אותם באופן ידני לפנ

! רצוי cancelולא על OKבחירת השכבה ואת הרוחב מבצעים את החיווט ובסוף לוחצים על להוסיף שמות לקווי האספקה!

של כל תתי הבלוקים. gds2 -יש לקרוא את קבצי הקודם אם התכנון הוא היררכי, . 2

Page 14: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

14

Assura :virtuosoשמופעות מתוך Assuraתבצעות בכלי בשם מ layout-הבדיקות על ה

DRC (Design Rule Check)בדיקת

הוא שם החשבון שלך. drcuserכאשר tmp/drcuser/צור ספריה בשם -

שיצרת. layout -פתח את ה -

. Assura->Run DRCלחץ על -

(. undefined)במקום ts18sl_6M1Lבחלון שנפתח, בחר בטכנולוגיה : -

רשום :יהיה Switch Namesבשדה -" 6LM OA "

שנפתח. Progressגם בחלון OK. לחץ על OKלחץ על -

.YESבסיום הריצה הכלי ישאל אם ברצונך לראות את הטעויות, לחץ על - ניתן לראות את הטעויות השונות ע"י לחיצת על החצים בחלון שנפתח. -

LVS (Layout Vs. Schematic)בדיקת

לסכמה בכל המישורים: Layout -בין הבדיקה זו משווה מול השרטוט הסכמתי. Layout -התאמת בין שמות הצמתים שקבעתם בשרטוט ה - התאמה בחיבוריות שבין האלמנטים. - .התאמה בערכי הרכיבים )גדלי הטרנזיסטורים, ערכי הקבלים וכו'( - התאמה במספר האלמנטים וסוגיהם. - שיצרת. layout -פתח את ה - Assura->Run LVSלחץ על - (. undefined)במקום ts18sl_6M1Lבחלון שנפתח, בחר בטכנולוגיה : -

רשום :יהיה Switch Namesבשדה -" 6LM OA "

נכונים. Layout Design Source -וה Schematic Design source -ודא ששדות ה -- Schematic Design source ך להיות : צריnetlist לחץ על .Add ורשום את שם קובץ ה- cdl

(top.cdl). - Layout Design Source : צריך להיותDFII.וודא שהשדות מכילים את שם התא הנכון . מעבר לזה, השתמש בבררות המחדל של הטופס. -

על שני החלונות שמופיעים. OKושוב על OKלחץ על - .Assura->Close Runיצות לחץ על בין שתי ר - .YES. לחץ על LVS Debug Environment -אם להיכנס ל שואלבסיום הריצה, הכלי - ( ניתן לראות את הטעויות.View)תחת LVS Debugבאמצעות החלון -ולאחר מכן summary -ניתן ללחוץ על האלמנטים השונים ב Cell Listאם בוחרים שם בשדה -

. layout -כלי שמאפשר הצגת הטעויות על הסכמה ועל ה open toolעל ראות מידע רב לגבי תוצאות הבדיקה ניתן ל Viewתחת LVS Debug Environmentבחלון -

.Views -של שני ה netlist -כולל ה

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

מופיע עם סוגריים מסוג ][, ובסכמה עם סוגריים מסוג ><. layout -ב BUS: שם של בעיה .1

כפתור : ואז לחץ על View Additional Functionsלחץ על assura: בחלון של פתרוןModify changeLabel Function שמאפשר החלפת הסוגריים. לחץ על הכפתור, בשדה

Page 15: Innovus 16.1 ילכה םע Layout תינב לע הכרדה תרבוחvlsi.eelabs.technion.ac.il/.../2018/05/innovus67_tsl018.pdf1 למשח תסדנהל הטלוקפה .ל.ט.מ - ןוינכטה

15

Replace Sub Strings רשום "[" בשדהOLD בשדה -ו ">"NEW לחץ על .Add

Command to Listחזור על הפעולה עבור "]" ו .- ."<"

של הרמה העליונה. במשפט זה, רשומים כל הכניסות SUBCKTקיים משפט cdl -בקובץ ה .2או במקום המתאים pins -כ layout -והיציאות לתא. כל השמות האלה, חייבים להופיע ב

.cdl -ן יש למחוק אותם מקובץ הלחלופי

מתבצע pads -קיימת בעיה בחיבורים למצע. חיבורי המצע של הבתכנון padsכאשר קיימים .3 .layout -ב VDDC -ו VSSC שמות לקווים. עליך להוסיף VSSCושל התאים דרך VSSדרך

חשוב לשים לב לרווחים!

יש למחוק אותן. pads -על ה VSS -ו VDDיצר טבעות של קווי Innovusאם .4

VDD -ו VSSניתן לקצר בין ”multiple bulk connections“על מנת למנוע שגיאות של .5 .layout -בסכמה וב