Wafer Fabrication
Tapeout-ից ստացված GDSII ֆայլը design-ի ամեն ֆոտոդիմակ layer-ի երկրաչափական նկարագրությունն է։ Foundry-ն այն վերածում է աշխատող silicon-ի՝ կրկնելով մի հիմնական ցիկլ — լիտոգրաֆիա, նստեցում, փորագրում, լեգիրում — design-ի ամեն metal և device layer-ի համար, երբեմն 100 կամ ավելի լիտոգրաֆիա քայլ մեկ ժամանակակից չիպի համար, նախքան ավարտված թիթեղը test արվի և dice արվի առանձին բյուրեղիկների։
Ամեն metal և device layer անցնում է նույն լիտոգրաֆիա → նստեցում → փորագրում → լեգիրում/anneal ցիկլով՝ layer-երի միջև planarized լինելով chemical-mechanical polishing-ով (CMP)։ Ավարտվելուց հետո թիթեղը test արվում է բյուրեղիկ-առ-բյուրեղիկ նախքան dice և package արվելը։
| Process քայլ | Ինչ է անում |
|---|---|
| Lithography | Project է անում ֆոտոդիմակ pattern-ը photoresist-ի վրա UV լույսով՝ սահմանելով, թե որտեղ է գործելու հաջորդ process քայլը |
| Deposition | Grow կամ coat է անում նյութ թիթեղի վրա (PVD, CVD, ALD, electrochemical deposition)՝ ձևավորելու հաջորդ layer-ը |
| Etch | Հեռացնում է նյութ ըստ լիտոգրաֆիա pattern-ի (wet կամ dry etch)՝ ֆիզիկապես ձևավորելով layer-ի երկրաչափությունը |
| Doping | Implant է անում dopant ion-ներ source/drain տիրույթներում, որին հաջորդում է annealing՝ դրանք ակտիվացնելու և implant-ի վնասը վերականգնելու համար |
| CMP (Chemical-Mechanical Polishing) | Planarize է անում թիթեղի մակերևույթը layer-երի միջև, որպեսզի հաջորդ լիտոգրաֆիա քայլն ունենա հարթ, in-focus մակերևույթ pattern անելու համար |
Process Corners
Fab-ից ոչ մի երկու տրանզիստոր նույնական դուրս չի գալիս — gate length-ը, dopant concentration-ը և oxide thickness-ը բոլորը մի փոքր տարբերվում են բյուրեղիկից բյուրեղիկ և թիթեղից թիթեղ, և այդ variation-ն ուղղակիորեն փոխում է, թե որքան արագ կամ դանդաղ է տրանզիստորը switch անում։ Ամեն հնարավոր իրական արժեք մոդելավորելու փոխարեն ժամանակային signoff-ը փոխարենը ստուգում է design-ն ընդդեմ մի քանի միտումնավոր ծայրահեղ «corner» model-ների, որոնք նախատեսված են bound անելու իրական բաշխումը. եթե design-ն աշխատում է ծայրահեղ կետերում, ապա այն պիտի աշխատի ամենուր դրանց միջև։
Corner անվան առաջին տառը NMOS speed-ն է, երկրորդը՝ PMOS speed-ը։ TT/FF/SS-ը նստած են այն diagonal-ի վրա, որտեղ NMOS-ը և PMOS-ը փոփոխվում են միասին. FS/SF-ը skewed corner-ներ են, որ օգտագործվում են rise/fall imbalance-ի նկատմամբ զգայուն design-ները stress անելու համար։ Լարումը և temperature-ը ավելացնում են ևս երկու առանցք այս process առանցքի վրա — միասին process + voltage + temperature կազմում են ամբողջ «PVT» corner տարածությունը։
| Corner | Սովորաբար օգտագործվում է |
|---|---|
| SS + ցածր լարում + բարձր temperature | Worst case setup ժամանակայինի համար — ամենադանդաղը, ինչ design-ը երբևէ լեգիտիմ կերպով կաշխատի |
| FF + բարձր լարում + ցածր temperature | Worst case hold ժամանակայինի համար — ամենաարագը, ինչ design-ը երբևէ լեգիտիմ կերպով կաշխատի, որտեղ hold violation-ներից խուսափելն ամենադժվարն է |
| TT + nominal լարում + nominal temperature | Typical-case էներգասպառման և արագագործության գնահատում — ինչպիսին «նորմալ» բյուրեղիկն ակնկալվում է լինել |
| FS / SF (skewed) | NMOS-ի և PMOS-ի drive strength-ի mismatch-ի նկատմամբ զգայուն path-երի stress-testing, ոչ միայն ընդհանուր speed-ի |
Ինչպես է fab-ը որոշում, թե որ corner-ում է հայտնվել իրական բյուրեղիկն
Corner-ները design-time modeling-ի աբստրակցիա են — իրական fabricated բյուրեղիկները բառացիորեն չեն տեսակավորվում հինգ առանձին խմբերի, դրանք հայտնվում են ինչ-որ տեղ շարունակական բաշխման վրա։ Պարզելու համար, թե որտեղ է իրականում նստած տվյալ բյուրեղիկն, foundry-ները տեղադրում են Process Control Monitor (PCM) structure-ներ — test տրանզիստորներ և ring oscillator-ներ — ֆիքսված տեղակայություններում ամեն թիթեղի վրա, բյուրեղիկ տիրույթից դուրս կամ բյուրեղիկների միջև scribe line-երում։ Արտադրությունից հետո այս structure-ները չափվում են ուղղակիորեն. ring oscillator-ի հաճախությունն (կամ test տրանզիստորի drive հոսանքը) բացահայտում է իրական NMOS-ի և PMOS-ի speed-ը այդ կոնկրետ տեղակայության silicon-ի համար, որն այնուհետև համեմատվում է signoff-ում օգտագործված corner model-ների հետ՝ ասելու, ըստ էության, «այս թիթեղի այս տիրույթը վարվում է FF corner-ին մոտ» կամ «SS-ին մոտ»։ Այդ չափումն է, որ իրականում շարժում է թե՛ binning-ը (ստորև Փուլ 12-ի post-silicon բաժինը), թե՛ պիտանի ելքի learning-ը — վերադարձնելով իրական process data-ն fab-ին, որպեսզի հաջորդ lot-ը կարողանա ավելի ամուր centered լինել նախատեսված typical corner-ի շուրջ։
On-Chip Variation և Sigma
Process corner-ները bound են անում բյուրեղիկից-բյուրեղիկ variation-ը, բայց կա երկրորդ, ավելի նուրբ էֆեկտ. նույնիսկ մեկ առանձին բյուրեղիկի ներսում ոչ մի երկու nominal-ապես նույնական տրանզիստոր նույնպես կատարյալ նույնական չեն — սա on-chip variation (OCV) է։ Քանի որ իրական չիպն ունի «նույն» բջիջի միլիոնավոր instance-ներ, դրանց վարքագիծը մեկ թիվ չէ, այլ բաշխում, և ժամանակակից signoff-ը այդ բաշխումը model է անում statistically, փոխանակ ենթադրելու, որ ամեն instance միաժամանակ իր բացարձակ worst-case-ում է։
Parametric On-Chip Variation (POCV)-ն ամեն gate-ի հապաղումն model է անում որպես mean գումարած standard deviation (sigma)՝ մեկ worst-case թվի փոխարեն, ապա signoff է անում ընտրված sigma կետում (սովորաբար 3σ, ≈99.7% ծածկույթ)՝ ոչ իրատեսական all-instances-simultaneously-worst-case ենթադրության փոխարեն։
| Variation-ի տեսակ | Վարքագիծ |
|---|---|
| Global variation | Correlated ամբողջ բյուրեղիկի (կամ թիթեղի) վրայով — շարժում է ամբողջ հապաղման բաշխումը վեր կամ վար միասին. աճում է մոտավորապես գծայնորեն path-ի երկարությանը զուգընթաց, քանի որ path-ի ամեն stage ազդվում է նույն ձևով |
| Local (random) variation | Uncorrelated, instance-ից-instance — լայնացնում է բաշխումը, ոչ թե շարժում. աճում է մոտավորապես path-ի երկարության քառակուսի արմատին զուգընթաց, քանի որ անկախ random էֆեկտները մասամբ միջինանում են երկար path-ի վրայով |
Ավելի հին OCV մեթոդաբանությունը կիրառում էր մեկ հարթ derate ամեն path-ի, անկախ դրա իրական կազմությունից. AOCV-ն (advanced OCV) դա բարելավեց՝ derate-ը փոփոխելով ըստ logic depth-ի և ֆիզիկական հեռավորության. POCV-ն (parametric OCV), որ այժմ տարածված ժամանակակից մոտեցումն է, ավելի հեռուն է գնում և հաշվում է arrival և required time-երը statistically ամեն բջիջի սեփական characterized mean/sigma-ից, ինչը հեռացնում է pessimism-ի մեծ մասը, որ հարթ derate-ն այլապես կներդներ — ուղղակիորեն համանման Sigma-AV/Sigma-DVD statistical մոտեցմանը, որ օգտագործվում է power integrity-ի համար (տես EMIR Analysis), այստեղ կիրառված ժամանակայինի համար լարման փոխարեն։
Yield
Պիտանի ելքը պարզապես արտադրված բյուրեղիկների այն մասնաբաժինն է, որ դուրս է գալիս լավ — ֆունկցիոնալ ճիշտ և spec-ին համապատասխան — թիթեղի վրա դրվածից ամեն ինչից։ Դա այն միակ թիվն է, որ design-ի որոշումները ամբողջ ճանապարհով կապում է cost-ի հետ. ավելի մեծ, խիտ բյուրեղիկն որսում է ավելի շատ random defect մեկ միավոր մակերևույթի վրա, ուստի ավելի մեծ չիպերը կառուցվածքային առումով ունեն ավելի ցածր պիտանի ելք, քան փոքրերը՝ նույն defect density-ի դեպքում, մնացած բոլոր պայմանները հավասար։
Թիթեղի map-ը գծագրում է pass/fail ամեն բյուրեղիկ տեղակայության համար։ Իրական defect-երը կլաստերանում են (particle-ներ, edge effect-ներ, լոկալ process excursion-ներ)՝ փոխանակ միատեսակ random տարածվելու։
D₀-ն defect density-ն է (միջին fatal defect-ներ մեկ միավոր մակերևույթի վրա), իսկ Acrit-ը բյուրեղիկի critical area-ն է — տոպոլոգիայի այն մակերևույթը, որ բավական զգայուն է տվյալ defect size-ի նկատմամբ, որպեսզի իրականում failure առաջացնի։ Murphy-ի model-ը ենթադրում է, որ defect density-ն ինքը փոփոխվում է թիթեղի վրայով (փոխանակ կատարյալ միատեսակ լինելու, ինչպես ենթադրում է պարզ Poisson model-ը), ինչը ավելի լավ է համապատասխանում իրական fab-երին, որտեղ defect-երը կլաստերանում են — և արդյունքում այն սովորաբար կանխատեսում է ավելի ցածր պիտանի ելք, քան պարզ Poisson-ը՝ նույն D₀-ի և բյուրեղիկ size-ի դեպքում։
| Պիտանի ելքի տեսակ | Ինչ է չափում |
|---|---|
| Die yield / functional yield | Բյուրեղիկների այն մասնաբաժինը, որ անցնում է functional և parametric test-ը թիթեղ sort-ում |
| Parametric yield | Analog/ժամանակային/էներգասպառում spec-երին համապատասխանող բյուրեղիկների մասնաբաժինը, անկախ զուտ տրամաբանական ճշտությունից — բյուրեղիկն կարող է ֆունկցիոնալ ճիշտ լինել, բայց չափազանց դանդաղ կամ չափազանց leaky՝ ընդունելի bin անելու համար |
| Test yield / package yield | Արդեն-լավ բյուրեղիկների այն մասնաբաժինը, որ վերապրում է փաթեթավորումը և final test-ը՝ առանց assembly-ի ներմուծած նոր defect-երի |
Պիտանի ելքի բարելավում
Պիտանի ելքի բարելավումը տեղի է ունենում fab/design սահմանի երկու կողմերում — fab-ը ամրացնում է իր սեփական process control-ը, և design-ը միտումնավոր դարձվում է ավելի tolerant մնացած variation-ի և defect-ների նկատմամբ։
| Տեխնիկա | Ինչպես է օգնում |
|---|---|
| Design-for-Manufacturability (DFM) ստուգումներ | Լիտոգրաֆիա-մոդելավորում, CMP-մոդելավորում և critical-area analysis աշխատեցվում են տոպոլոգիայի վրա՝ նշելու համար statistically փխրուն երկրաչափությունները նախքան tapeout-ը, ոչ թե դրանից հետո |
| Redundancy և repair | Memory-ներում spare row/column-երը (տես MBIST & Memory Testing-ի BIRA/BISR) թույլ են տալիս լոկալ defect ունեցող բյուրեղիկին դեռ առաքվել՝ փոխանակ ուղղակի scrap արվելու |
| Critical-area-ի կրճատում | Ավելի լայն wire spacing, via doubling և ավելի կանոնավոր տոպոլոգիա pattern-ներ փոքրացնում են այն մակերևույթը, որ իրականում զգայուն է տվյալ defect size-ի նկատմամբ՝ ուղղակիորեն իջեցնելով Acrit-ը պիտանի ելք ֆորմուլայում |
| Statistical (ոչ թե հարթ worst-case) margining | POCV-հիմքով ժամանակային signoff-ը (նախորդ բաժին) խուսափում է over-design անելուց ընդդեմ մի սցենարի, որ գործնականում գրեթե անհնար է իրականում պատահի, ինչը այլապես վատնում է area/էներգասպառում՝ հետապնդելով margin, որ չի բարելավում իրական պիտանի ելքը |
| Binning | Այն մասերը, որ չեն համապատասխանում ամենաբարձր speed/էներգասպառում grade-ին, բայց դեռ ճիշտ են աշխատում ավելի ցածր grade-ում, վաճառվում են այդ ավելի ցածր bin-ում՝ փոխանակ scrap արվելու — վերականգնելով արժեք parametric, ոչ միայն կատաստրոֆիկ variation-ից |
| Yield learning loop | Inline metrology-ն և թիթեղ-map defect data-ն վերադարձվում են fab line-ին՝ գտնելու և ուղղելու տվյալ պահի գերիշխող defect mechanism-ը — հենց դրա համար է, որ տվյալ process node-ի պիտանի ելքը կայուն կերպով բարձրանում է սկզբնական risk production-ից դեպի իր mature-node առաստաղը ժամանակի ընթացքում |
Post-Silicon Bring-Up և ATPG
Այս կետը մինչև այժմ ամեն ինչ նախապատրաստություն էր։ Այս բաժինը ընդգրկում է, թե ինչ է իրականում կատարվում, երբ թիթեղները վերադառնում են fab-ից. structural ATPG test-ը, որ ստանում է ամեն առանձին բյուրեղիկն նախքան առաքվելը, և առանձին, շատ ավելի խորը characterization ու debug աշխատանքը, որ արվում է առաջին մի քանի մասերի վրա՝ հաստատելու, որ design-ն ինքն ճիշտ է։
First silicon-ն անցնում է bring-up և խորը characterization մեկ անգամ. ամեն հաջորդ բյուրեղիկ երբևէ տեսնում է միայն արագ structural ATPG pass-ը թիթեղ sort-ում և final test-ում, գումարած qualification screening այն մասերի համար, որոնք դրա կարիքն ունեն։
Ինչ է իրականում աշխատում ATPG-ն, երբ չիպերը վերադառնում են
Scan և MBIST pattern-ները, որ generated են դեռ Scan & ATPG-ում և MBIST-ում, հենց այն են, ինչ իրականում աշխատում է այստեղ — first-silicon bring-up-ը նոր test content չի հորինում, դա այն կետն է, որտեղ այդ pattern-ները առաջին անգամ կիրառվում են իրական ֆիզիկական բյուրեղիկի վրա և validated են tester-ի դեմ։ Այս փուլում աշխատող տիպիկ structural content. stuck-at scan pattern-ներ (DC baseline-ը), at-speed transition pattern-ներ (աշխատեցվող մասի իրական target հաճախությամբ), MBIST algorithm-ներ ամեն embedded memory-ի դեմ, և boundary-scan/JTAG interconnect ստուգումներ։ Ամեն ինչ աշխատում է Automatic Test Equipment-ի (ATE) վրա — նախ թիթեղ sort-ում (դեռ չ-package արված բյուրեղիկը probe անելով), ապա կրկին final test-ում փաթեթավորումից հետո։
Characterization. design-ն ապացուցելը ամբողջ corner տարածության վրայով
Այնտեղ, որտեղ production ATPG-ն ընդամենը հարցնում է pass/fail, characterization-ը first silicon-ի վրա հարցնում է շատ ավելի մեծ հարց. արդյո՞ք design-ն իրականում աշխատում է ամենուր, որտեղ process corner-ները և OCV/sigma analysis-ը պնդում էին, որ պիտի աշխատի։ Սա արվում է shmoo plot-երով — sweep անելով երկու պարամետր միաժամանակ (սովորաբար լարում և հաճախություն) և գծագրելով pass/fail ամեն զուգակցման դեպքում, ինչը արագ ցույց է տալիս, թե արդյոք մասի իրական operating margin-ը համապատասխանում է signoff-ի կանխատեսածին։ «Corner lot» թիթեղները միտումնավոր processed են՝ skew անելու դեպի FF/SS/FS/SF ծայրահեղություններ, որպեսզի ինժեներները կարողանան test անել իրական fast և slow silicon ուղղակիորեն, ոչ միայն typical բյուրեղիկ, և հաստատել, որ design-ը tolerate է անում այն իրական variation-ը, որ այդ corner model-ները նախատեսված էին ներկայացնելու։
Debug, qualification և ramp
Երբ բյուրեղիկն fail է անում, production test-ի համար կառուցված նույն DFT structure-ները դառնում են debug գործիք. scan dump-ը գրանցում է ճշգրիտ ներքին state-ը failure-ի կետում, և JTAG-ը տալիս է ուղղակի register/memory access՝ մեկուսացնելու, թե failure-ը design bug է, կոնկրետ manufacturing defect, թե test-program խնդիր։ Բարձր-հուսալիության կամ automotive կիրառության համար նախատեսված մասերը սովորաբար նաև անցնում են burn-in — աշխատելով բարձրացված լարմամբ և temperature-ով երկարացված ժամանակահատվածով՝ ստիպելու early-life («infant mortality») defect-ներին fail անել նախքան առաքումը, ոչ թե դաշտում։ Երբ first silicon-ը debugged և characterized է, design-ն անցնում է volume production, որտեղ ամեն բյուրեղիկ երբևէ տեսնում է միայն արագ structural ATPG pass-ը, և պիտանի ելք/coverage data-ն շարունակում է feed անել վերևում նկարագրված պիտանի ելք-learning loop-ի մեջ։
Աղբյուրներ
Ընդհանուր արդյունաբերական հետազոտություն գումարած IEEE Xplore գրականություն — այս էջը աղբյուրավորված չէ vendor-ի հատուկ ներքին փաստաթղթերից։
- Photolithography (Lithography) — Semiconductor Microchips and Fabrication — Wiley-IEEE Press / IEEE Xplore
- CMOS Technology: Present and Future — IEEE Xplore
- A Fast Approach for Static Timing Analysis Covering All PVT Corners — IEEE Xplore
- A Parametric Approach for Handling Local Variation Effects in Timing Analysis (POCV) — IEEE Xplore
- A New Generation of Static Timing Analysis Technology Based on N7+ Process — POCV — IEEE Xplore
- Yield Analysis by Poisson Yield Model Based on the Defect Analysis with Derivative Method — IEEE Xplore
- Lithography-Aware Critical Area Estimation and Yield Analysis — IEEE Xplore
- Yield Modeling and Analysis — Prof. Robert C. Leachman, UC Berkeley
- Recent Trends on Post-Silicon Validation and Debug: An Overview — IEEE Xplore
- Shmoo Plotting: The Black Art of IC Testing — IEEE Xplore
- Automatic Test Pattern Generation in VLSI — A Survey — IEEE Xplore