Mikroelektronikai tervezrendszerek sszefoglals Hierarchikus ramkrlers Top level design

  • Slides: 53
Download presentation
Mikroelektronikai tervezőrendszerek Összefoglalás

Mikroelektronikai tervezőrendszerek Összefoglalás

Hierarchikus áramkörleírás Top level design: core tappancsok Core: A_funkció + B_funkció A_funkció: AA_funkció +

Hierarchikus áramkörleírás Top level design: core tappancsok Core: A_funkció + B_funkció A_funkció: AA_funkció + AB_funkció: BA_funkció + BB_funkció AA_funkció Cellakönyvtári elem

Áramkörkifejtés Hierarchia szintek Áramkörkifejtés = design flattening Top level design Hierarchikus design Részáramkörök Cella

Áramkörkifejtés Hierarchia szintek Áramkörkifejtés = design flattening Top level design Hierarchikus design Részáramkörök Cella szintű funkciók Áramköri hierarchia-kifejtő program Flat design Cellák

Layout előállítása • Kifejtett áramkörleírás • Floorplan – core kialakítása – tappancsgyűrű kialakítása (pad

Layout előállítása • Kifejtett áramkörleírás • Floorplan – core kialakítása – tappancsgyűrű kialakítása (pad limited, core limited) – cellák elhelyezése • Globális huzalozás – huzalozási csatornák kialakítása – föld és táp ellátás (supply tree) • Részletes huzalozás • DRC

Layout előállítása • Kifejtett áramkörleírás • Floorplan – core kialakítása – tappancsgyűrű kialakítása (pad

Layout előállítása • Kifejtett áramkörleírás • Floorplan – core kialakítása – tappancsgyűrű kialakítása (pad limited, core limited) – cellák elhelyezése • Globális huzalozás – huzalozási csatornák kialakítása – föld és táp ellátás (supply tree) • Részletes huzalozás • DRC

IC tervezés és gyártás közvetlen végfelhasználói igények szerint • Szereplők: – – IC gyár

IC tervezés és gyártás közvetlen végfelhasználói igények szerint • Szereplők: – – IC gyár - silicon foundry (pl. ST, AMS, Philips, . . . ) Szoftverház - EDA vendor (pl. Cadence) Tokozó üzem MPW szolgáltató - silicon broker (pl. EUROPRACTICE, CMP, MOSIS) – Végfelhasználó, aki egyben tervező is (pl. mi) • MPW gyártás = Multi-project Wafer – – 1 Si szeleten 10 -15 chip, gyártási alkalmak (run-ok): 2 -3 havonta átfutás: layout beküldésétől tokozott chip-ig: 2 -3 hónap költségmegosztás, területarányos fizetés Pl. : 250 EUR/mm 2, 4 mm 2 1000 EUR + 100 EUR tokozás 5 tokozott chip, 10 tokozatlan chip (66 EUR/chip) – tipikus felhasználás: prototípus gyártás – small volume production: pl. 5 -6 szelet 1 chip-pel

MPW chip gyártás Tervező 1 MPW szolgáltató Tervező 2 Tervező 3

MPW chip gyártás Tervező 1 MPW szolgáltató Tervező 2 Tervező 3

MPW chip gyártás Tervezési szabályok, eszközparaméterek, cellakönyvtár IC gyár Chip layout-ok egyesítve Si szelet

MPW chip gyártás Tervezési szabályok, eszközparaméterek, cellakönyvtár IC gyár Chip layout-ok egyesítve Si szelet 10 -15 áramkörrel Tokozó üzem Tervező szoftver, design kit Tokozott IC-k MPW szolgáltató Tervező és felhasználó Chip layout Pucér chip-ek EDA vendor Tervező szoftver Tokozott IC

Ami eljut az IC gyárba. . . • … az a layout • “Szabványos”

Ami eljut az IC gyárba. . . • … az a layout • “Szabványos” reprezentációk – CIF, – GDS 2 Ezek ún. de facto ipari szabványok

Layout reprezentációk Áttekintés

Layout reprezentációk Áttekintés

Layout = maszkok geom. leírása • Leírásmódok: – alfanumerikus: • “emberi fogyasztásra” is alkalmas

Layout = maszkok geom. leírása • Leírásmódok: – alfanumerikus: • “emberi fogyasztásra” is alkalmas • ákár kézzel is írhatóak, editálhatóak (milliméter papír, kézi adatbevitel) • cél: egyszerű átvitel különböző programok, rendszerek között. Pl. : layout editor pattern generátor • CIF - Caltech Intermediate Format, GAELIC, EGL (M. o) – bináris: • • belső ábrázolás mindig bináris tömör csak géppel olvasható GDS 2 file formátum • Fordítás a leírásmódok között pl. : GDS 2 CIF

Layout = maszkok geom. leírása • Másik osztályozás: – struktúrált (makro-hierarchia) • • •

Layout = maszkok geom. leírása • Másik osztályozás: – struktúrált (makro-hierarchia) • • • áttekinthetőbb reguláris layoutok előállítását nagyban segíti tömörebb többszörös makro-hívási mélység egyes műveletek a struktúrált layoutleírásokon gyorsabban elvégezhetők – kifejtett (flat) • tipikusan maszkgeneráláshoz használják – Kifejtő program: struktúrált flat • Mind az alfanumerikus, mind a bináris reprezentáció lehet struktúrált, illetve kifejtett

Layout = maszkok geom. leírása • Layout: – 2 D alakzatok halmaza – több

Layout = maszkok geom. leírása • Layout: – 2 D alakzatok halmaza – több ún. rajz síkon megadva • Rajz sík vagy réteg (layer): – logikai reprezentáció – adott szín a layout rajzon (képernyő, papírnyomat) egy technológiai lépés (foto)maszkja vagy egy pszeudó layer (nincs hozzá maszk) • Layout makro: – egy vagy több rajzsíkon létrehozott – alakzatok – körvonalrajzzal körülvett csoportja

Layout primitívek: egyszerű alakzatok Aktív zóna (ablaknyitó maszk a vékony oxidnak) Gate (poli-Si mintázat

Layout primitívek: egyszerű alakzatok Aktív zóna (ablaknyitó maszk a vékony oxidnak) Gate (poli-Si mintázat maszkja) Kontaktusok (ablaknyitó maszk az oxidon) S/D kivezetések (fémezés mintázat maszkja)

Layout makrok - primitívekből n. MOS tranzisztor layout rajza: layout primitívek tényleges maszkoknak megfelelő

Layout makrok - primitívekből n. MOS tranzisztor layout rajza: layout primitívek tényleges maszkoknak megfelelő rétegeken n. MOS tranzisztor layout rajza + körvonalrjaz + pinek G D n. MOS G S n. MOS tranzisztor makro: körvonalrajz, pinek rajza, feliratok: pszeudo rétegeken

Layout makrok - makrokból és primitívekből G G D n. MOS G S D

Layout makrok - makrokból és primitívekből G G D n. MOS G S D p. MOS G S

Layout makrok - makrokból és primitívekből !GND out !VDD INV !GND in !VDD Ez

Layout makrok - makrokból és primitívekből !GND out !VDD INV !GND in !VDD Ez is tehát egy hierarchikus leírás. A kifejtés eredménye a hiavtkozott makrok és primitívek behelyettesítésevel előálló, csak layout primitíveket tartalmazó leírás. A pszeudó rétegeken lévő információt a végén elhagyjuk belőle.

Layout makrok - egyre jobban kifejtve: Level 1: két makrohívás (áramköri mag, tappancsgyűrű)

Layout makrok - egyre jobban kifejtve: Level 1: két makrohívás (áramköri mag, tappancsgyűrű)

Layout makrok - egyre jobban kifejtve: Level 2: tappancsgyűrű részekre osztva

Layout makrok - egyre jobban kifejtve: Level 2: tappancsgyűrű részekre osztva

Layout makrok - egyre jobban kifejtve: Level 3: tappancsgyűrű tovább osztva, huzalozási csatornák, cellasorok

Layout makrok - egyre jobban kifejtve: Level 3: tappancsgyűrű tovább osztva, huzalozási csatornák, cellasorok

Layout makrok - egyre jobban kifejtve: Level 4: tapapancs cellák és standard cellák makrohivásai

Layout makrok - egyre jobban kifejtve: Level 4: tapapancs cellák és standard cellák makrohivásai

Layout makrok - egyre jobban kifejtve: Level 5

Layout makrok - egyre jobban kifejtve: Level 5

Layout makrok - egyre jobban kifejtve: Level 6

Layout makrok - egyre jobban kifejtve: Level 6

Layout makrok - egyre jobban kifejtve: Level 7: teljesen kifejtett makrok

Layout makrok - egyre jobban kifejtve: Level 7: teljesen kifejtett makrok

Layout makrok - egyre jobban kifejtve: Level 4: tranzisztorok, kontaktusok még makrohívással

Layout makrok - egyre jobban kifejtve: Level 4: tranzisztorok, kontaktusok még makrohívással

Layout makrok - egyre jobban kifejtve: Level 6: standard cellák, kontaktusok teljesen kifejtve

Layout makrok - egyre jobban kifejtve: Level 6: standard cellák, kontaktusok teljesen kifejtve

Egy layout leíró file • CIF példa Kommentárok

Egy layout leíró file • CIF példa Kommentárok

Egy layout leíró file • CIF példa Inclue állományok

Egy layout leíró file • CIF példa Inclue állományok

Egy layout leíró file • CIF példa Egység: 0. 01 micron

Egy layout leíró file • CIF példa Egység: 0. 01 micron

Egy layout leíró file • CIF példa Alakzat megadása: L - layer

Egy layout leíró file • CIF példa Alakzat megadása: L - layer

Egy layout leíró file • CIF példa Alakzat megadása: L - layer P -

Egy layout leíró file • CIF példa Alakzat megadása: L - layer P - poligon

Egy layout leíró file • CIF példa Makrohívás: C - call • Nehezn áttekinthető.

Egy layout leíró file • CIF példa Makrohívás: C - call • Nehezn áttekinthető. Olvashatóbb nyelvi példa: GAELIC

GAELIC layout leírás - primitívek • File kezdete: háttérrács megadása UNITS=MICRONS, GRID=1. 0; •

GAELIC layout leírás - primitívek • File kezdete: háttérrács megadása UNITS=MICRONS, GRID=1. 0; • RECT - téglalap: RECT(layer_number)x, y: dx, dy; dy x, y dx • POLY - tetszőleges poligon, hosszú (long) forma: POLY(layer_number)L, x, y: dx 1, dy 1, dx 2, dy 2, . . . dxn, dyn; Záródnia kell! Ha ortogonális a poligon, akkor minden második elem 0: short formátum 3 n x, y 4 2 1

GAELIC layout leírás - primitívek • POLY - ortogonális poligon, rövid (short) dy 4

GAELIC layout leírás - primitívek • POLY - ortogonális poligon, rövid (short) dy 4 forma: dyn x, y dx 3 dy 2 dx 1 POLY(layer_number)S, x, y: dx 1, dy 2, dx 3, dy 4, . . . , dyn; • TRACK - csík (short/long formátum): x, y W páros kell legyen W TRACK(layer_number)W, S, x, y: dx 1, dy 2, dx 3, dy 4, . . . , dyn;

GAELIC layout leírás - makrok • Group definiálás NEWGROUP név; Primitívek vagy korábbi group-ok

GAELIC layout leírás - makrok • Group definiálás NEWGROUP név; Primitívek vagy korábbi group-ok hívása … ENDGROUP; Makrohierarchia • Group “példányosítás” (hívás) GROUP név, x, y, transzformáció; Transzformáció: x tengelyre tükrözés: X y tengelyre tükrözés: Y forgatás 90 fokkal balra: R GROUP inv 100, 200, XR; x, y

GAELIC layout leírás - makrok • Group “példányosítás” (hívás) ismétléssel GROUP név, x, y,

GAELIC layout leírás - makrok • Group “példányosítás” (hívás) ismétléssel GROUP név, x, y, transzformáció, X, xtimes, dx, Y, ytimes, dy; dx ytimes dy x, y xtimes GROUP DFF 100, 200, 0, X, 4, 20, Y, 2, 15; Az ismétlési lehetőség kihasználásával egyszerűen tudunk reguláris layoutot kialakítani.

GAELIC layout leírás • Állomány vége FINISH; UNITS=MICRONS, GRID=1. 0; NEWGOUP INVER; POLY(1) S,

GAELIC layout leírás • Állomány vége FINISH; UNITS=MICRONS, GRID=1. 0; NEWGOUP INVER; POLY(1) S, 4, 4: 48, 40, -16, -8, -24, 32, 8, 16, -16, 80; RECT(3) 0, 20: 56, 8; POLY(3) S, 0, 40: 32, 28, 8, 16, -20, -24; . . RECT(5) 0, 6: 56, 10; RECT(5) 0, 70: 56, 10; ENDGROUP; . . GROUP INVER, 10, 0; . . FINISH;

A belső leírás • Tömör kell legyen bináris • Jól kereshető kell legyen láncolt

A belső leírás • Tömör kell legyen bináris • Jól kereshető kell legyen láncolt adatstruktúra (pl. gyűrű) adat = alakzat HP EP 2 3 1 5 1 2 1 3 5 2 3 5

A belső leírás • Egyszerű módosíthatóság HP EP 2 3 37 1 5 1

A belső leírás • Egyszerű módosíthatóság HP EP 2 3 37 1 5 1 2 1 17 3 5 2 3 5 1 3 7

A belső leírás • Egyszerű módosíthatóság HP EP 2 3 35 1 2 1

A belső leírás • Egyszerű módosíthatóság HP EP 2 3 35 1 2 1 3 31 5 2 3 5 • Listákat (gyűrűket) alakíthatunk ki alakzatokból, group-okból, maszksíkokból, stb.

Az alakzatok belső reprezentációja • Csúcspont koordinátás (kontúros) leírás – Probléma a többszörösen öf.

Az alakzatok belső reprezentációja • Csúcspont koordinátás (kontúros) leírás – Probléma a többszörösen öf. alakzat, mert az több kontúrt jelent. Sokszor felhasítják – Érdemes tárolni a befoglaló téglalapot és a speciális jelleget (pl. ort. poligon) • Lefedő alakzatos tárolás (téglalap, trapéz)

Az alakzatok belső reprezentációja • Bittérképes leírás (bit-map) 0 0 0 0 0 1

Az alakzatok belső reprezentációja • Bittérképes leírás (bit-map) 0 0 0 0 0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 • Lényegi koordinátás bittérkép (variable grid) 0 0 0 0 1 1 0 0 0 0

Műveletek: • Logikai műveletek NEW_LAYER = LAYER 1 AND LAYER 2 NEW_LAYER = LAYER

Műveletek: • Logikai műveletek NEW_LAYER = LAYER 1 AND LAYER 2 NEW_LAYER = LAYER 1 OR LAYER 2 stb. – Bittérképes ábrázolás esetén könnyű megvalósítani. – Mire jók? Pl. layout-visszafejtésnél ún. felismerő rétegek létrehozása GATE = ACTIVE AND POLY

Műveletek: • Logikai műveletek, példa:

Műveletek: • Logikai műveletek, példa:

Műveletek: • Geometriai műveletek - pl. méretváltoztatás – Hízlalás – Fogyasztás – Gond a

Műveletek: • Geometriai műveletek - pl. méretváltoztatás – Hízlalás – Fogyasztás – Gond a felhasított alakzatoknál – Egymásnak csak bizonyos korlátokkal az inverzei

Műveletek: • Topológiai műveletek: C = CONTAIN(A, B); A C rétegre kerülnek a B

Műveletek: • Topológiai műveletek: C = CONTAIN(A, B); A C rétegre kerülnek a B réteg összes olyan alakzatai, amelyek A alakzataiba beleesnek A B C

Műveletek: • Topológiai műveletek: DISJUNCT OVERLAP INTERSECT CONTAIN

Műveletek: • Topológiai műveletek: DISJUNCT OVERLAP INTERSECT CONTAIN

Műveletek: • Ellenőrző műveletek: WIDTH(A) < 0. 5 Az A réteg minden olyan alakzatát

Műveletek: • Ellenőrző műveletek: WIDTH(A) < 0. 5 Az A réteg minden olyan alakzatát szolgáltatja, amely keskenyebb 0. 5 egységnél SPACING (A, B) < 0. 5 Az A réteg minden olyan alakzatát szolgáltatja, amely keskenyebb 0. 5 egységnél

Az algoritmusokra épülő programok • • • Layout editor Szimbolikus editor layout kompaktor DRC

Az algoritmusokra épülő programok • • • Layout editor Szimbolikus editor layout kompaktor DRC (tervezési szabályellenőrzés) Lv. S (visszafejtés)

DRC Layout leírás (CIF) program Tervezési szabály leírás (technológiai file) hibageometriák hibajelzések

DRC Layout leírás (CIF) program Tervezési szabály leírás (technológiai file) hibageometriák hibajelzések

Példa terv. szabály leírására Rétegleírás szakasz AKTIV is POLY, RECT mask 1 KONT is

Példa terv. szabály leírására Rétegleírás szakasz AKTIV is POLY, RECT mask 1 KONT is RECT mask 4 A 1 is POLY, RECT mask 1 eredeti származtatott GATE = AKTIV*POLYSI D = AKTIV ‘ - 2. 0 (metszet) (zsugor)

Példa terv. szabály leírására Szabály szakasz RULE ACSIK FAIL ‘Tul keskeny’ if WIDTH(AKTIV) <

Példa terv. szabály leírására Szabály szakasz RULE ACSIK FAIL ‘Tul keskeny’ if WIDTH(AKTIV) < 0. 8 END RULE ATAV FAIL ‘Tul kozel’ END if SPACING(AKTIV, A 1) < 0. 8

Példa terv. szabály leírására Szabály szakasz RULE KONTPOLI FAIL ‘Nem joo ’ if CONTAIN

Példa terv. szabály leírására Szabály szakasz RULE KONTPOLI FAIL ‘Nem joo ’ if CONTAIN (POLYSI, KONT) and CLEARANCE (KONT, POLYSI) < 0. 2 END