ENARM
Logic Synthesis · Դեռ Սինթեզի մեկնարկից առաջ

Ստանդարտ բջիջների գրադարանի ընտրություն

Gate-level հանգույցների ցանկը, որ սինթեզը կարող է արտադրել, հիմնարար կերպով սահմանափակված է այն գրադարանով, որի վրա թույլատրված է map անել։ Թե որ գրադարանն է, դրա ներսում որ բջիջներն են, և threshold-voltage-ի որ տեսակներն են ընդհանրապես հասանելի optimizer-ին — սրանք որոշումներ են, որ կայացվում են նախքան RTL-ը երբևէ հասնելը սինթեզ գործիքին, և դրանք սահմանում են PPA արդյունքի առաստաղը նույնքան ամուր, որքան ցանկացած SDC constraint։

Ֆիզիկական գրադարանի տարբերակներ

Գրադարանի տեսակներ. գրադարանը design-ի նպատակին համապատասխանեցնելը

Ստանդարտ բջիջների գրադարանները տվյալ process node-ում սովորաբար մատակարարվում են մի քանի ֆիզիկական տարբերակներով, որոնք տարբերվում են հիմնականում բջիջի բարձրությամբ (չափվում է երթուղավորման track-երով) — ավելի բարձր բջիջները տեղավորում են ավելի լայն տրանզիստորներ, որոնք ավելի շատ հոսանք են drive անում, ինչը նշանակում է ավելի արագ switching՝ ավելի շատ area-ի և արտահոսքի հաշվին։

⤢ Սեղմեք խոշորացնելու համար Track height-ը սահմանում է speed / area / արտահոսք փոխզիջումը 7–8T (UHD / LP) ամենափոքր area, ամենացածր արտահոսք, ամենադանդաղ 9–10T (HD / mainstream) հավասարակշռված default՝ bulk logic-ի մեծ մասի համար 12T+ (HS / HP) ≈20% ավելի արագ, քան HD-ն, ավելի շատ area & արտահոսք 14T գրադարանի հայտնված արտահոսքը կարող է ≈62.5%-ով բարձր լինել համարժեք 10T գրադարանից՝ նույն logic-ի համար

Ավելի բարձր-track գրադարանները (HS/HP) area-ն ու արտահոսքը փոխանակում են մաքուր արագության հետ, ավելի ցածր-track գրադարանները (UHD/LP)՝ արագությունը՝ density-ի և ցածր արտահոսքի հետ։ Իրական chip-երը սովորաբար խառնում են գրադարանի մի քանի տեսակ տարբեր block-երի կամ լարման տիրույթների միջև, այլ ոչ թե ամբողջ բյուրեղիկը կապում մեկին։

Գրադարանի դասըՏիպիկ track heightՕպտիմիզացված էՕգտագործվում է որտեղ
High Speed / High Performance (HS/HP)12T և ավելի բարձրԱռավելագույն drive strength, արագությունԱրագագործության առումով կրիտիկական block-ներ. CPU core-եր, high-frequency datapath-եր
High Density (HD)9–10TՀավասարակշռված PPAMainstream default՝ design-ների մեծ մասի հիմնական զանգվածի համար
Ultra-High Density / Low Power (UHD/LP)7–8TՆվազագույն area, նվազագույն արտահոսքArea-ով կամ էներգասպառումով սահմանափակված block-ներ. always-on domain-ներ, cost-զգայուն IoT design-ներ
Մաքուր PPA-ից անդին

Ընտրության չափանիշներ

ՉափանիշԻնչու է կարևոր
Process node & foundry PDK համապատասխանությունԳրադարանը պիտի qualified և silicon-proven լինի հենց այն node-ի և metal stack-ի համար, որ tape out է արվում — այլ metal stack revision-ի համար կառուցված գրադարանը ոչ միայն suboptimal է, այլ հաճախ պարզապես անօգտագործելի
Լարման տիրույթի ծածկույթՊիտի characterized լինի ամեն VDD-ի համար, որով design-ն իրականում նախատեսում է աշխատել, ներառյալ ցանկացած near-threshold կամ DVFS operating point — տես Low Power Design → DVFS & AVS
Ժամանակային model-ի ամբողջականությունՀին NLDM table-երն ընդդեմ ընթացիկ current-source model-ների (CCS/ECSM) և արդյոք LVF/POCV sigma տվյալներն ընդհանրապես ներառված են — ուղղակիորեն որոշում է, թե ինչ statistical signoff մեթոդաբանություն է ընդհանրապես հնարավոր, տես Static Timing Analysis → Sigma & Statistical Guardbanding
Բջիջի height-ի համատեղելիությունՊիտի համապատասխանի այն բարձրությանը, որին արդեն կապվել են հատակագծում առկա hard macro-ները/IP-ն — անհամատեղելի բարձրությունների խառնումը կոտրում է row legalization-ը
Characterization corner-ի ծածկույթՊահանջում է տվյալներ ամեն PVT corner-ի համար, որով design-ը sign off է անում, և ավելի ու ավելի նաև aging/EOL corner-ների — տես Fabrication → Process Corners և Static Timing Analysis → Aging & Reliability
Vendor-ի փորձառություն / IP աղբյուրFoundry reference գրադարան ընդդեմ third-party ֆիզիկական IP-ի (օր. Arm/Artisan) ընդդեմ in-house-ի — փոխզիջում cost-ի, support-ի և այն վստահության միջև, որ գրադարանն իրականում ապացուցված է silicon-ում
Բջիջի family-ի ամբողջականությունԱմբողջական drive-strength granularity, ամեն sequential բջիջի scan-capable տարբերակներ, և (եթե design-ը օգտագործում է UPF multi-voltage) level shifter-ների ու isolation բջիջների ընդհանրապես առկայությունը — տես UPF & IPF
Բջիջի ընտրության քաղաքականություն

Ինչն է իրականում մտնում Սինթեզ. Don't-Use ցուցակը

Qualified գրադարանի ամեն բջիջ չէ, որ արդար խաղ է ավտոմատ technology mapping-ի համար։ Սինթեզ գործիքները աջակցում են dont_use attribute-ին (Design Compiler-ի տերմինը, այլ գործիքներն ունեն համարժեքներ), որն ամբողջությամբ բացառում է կոնկրետ բջիջները optimizer-ի հասանելի palette-ից — բջիջը դեռ գոյություն ունի գրադարանում և դեռ կարող է ձեռքով instantiate արվել, պարզապես ավտոմատ չի ընտրվի սինթեզի ընթացքում։

Բջիջի կատեգորիա, որ սովորաբար նշվում է don't-useԻնչու է բացառվում ավտոմատ mapping-ից
Ծայրահեղ high-drive-strength բջիջներ (օր. X16, X32)Optimizer-ին թույլ տալը ազատ հասնել դրանց սովորական logic-ի վրա այրում է մեծ area և էներգասպառում և կարող է oversized footprint-եր գցել այլապես dense, congested region-ներ — պահվում են այն հազվագյուտ path-ի համար, որին իսկապես պետք է այդքան drive
Հատուկ տակտային ազդանշանի buffer-ներ/inverter-ներՊահվում են բացառապես CTS գործիքի համար՝ տակտային ազդանշանի network-ը կառուցելիս insert անելու (Physical Design → CTS) — դրանք ընդհանուր logic սինթեզից բացառելը տակտային ազդանշանի ծառը կառուցում է հայտնի, վերահսկվող բջիջ ենթաբազմությունից
Tristate / bus-keeper բջիջներՑանկալի են միայն այն կոնկրետ shared-bus structure-ների վրա, որ design-ը հստակ նախատեսում է — ոչ մի բան, որ optimizer-ը պետք է ներմուծի իր նախաձեռնությամբ
Latch-երSynchronous հոսքերն ընդհանրապես չպետք է RTL-ից transparent latch-եր infer անեն. latch բջիջները սինթեզ mapping target-ից բացառելը կոպիտ, բայց արդյունավետ backstop է
Legacy flip-flop տեսակներ (JK, SR և այլն)Գրադարանում պահվում են միայն ձեռքով instantiation-ի կամ համատեղելիության համար. D-type-ը ստանդարտ սինթեզ inference target-ն է, ուստի սրանք բացառվում են ավտոմատ mapping-ից
Level shifter-ներ / isolation / retention բջիջներՊահվում են UPF-driven insertion-ի համար միայն իրական սնման տիրույթի սահմաններում (UPF & IPF) — մեկը իրական domain crossing-ից դուրս insert անելը ֆունկցիոնալ առումով անիմաստ կամ սխալ կլիներ
Հայտնի corner/SI խնդիրներով նշված բջիջներFoundry-ն կամ ներքին characterization-ը երբեմն նշում է կոնկրետ բջիջները որպես անվստահելի որոշ corner-ներում կամ լարումներում. դրանք chip-wide բացառելն ավելի ապահով է, քան ամեն engineer-ի վրա հույս դնելը, որ ձեռքով կհիշի
Legacy/deprecated բջիջներՊահվում են միայն որպեսզի առկա, արդեն tape-out արված revision-ները դեռ կարողանան վերակառուցվել կամ ECO արվել — բացառվում են նոր սինթեզ run-երից, որպեսզի նոր logic-ը կախվածություն չաճեցնի փուլային դուրս գրվող բջիջից
dont_use ընդդեմ dont_touch. սրանք հաճախ շփոթում են, բայց լուծում են տարբեր խնդիրներ։ dont_use-ը բացառում է բջիջի տեսակը optimizer-ին ընդհանրապես հասանելի գրադարանի palette-ից։ dont_touch-ը պաշտպանում է կոնկրետ առկա instance-ը կամ logic-ի կտորը ընդհանրապես resynthesize կամ restructure արվելուց, անկախ նրանից, թե որ բջիջներն են այլապես թույլատրված — օգտագործվում է ձեռքով optimized logic-ը, black-box արված macro-ները կամ հանգույցների ցանկի հատվածները ECO-ի և ամբողջական re-run-ի միջև կողպելու համար։
Threshold-Voltage քաղաքականություն

Multi-Vt տեսակները որպես գրադարանի ընտրության քաղաքականություն

Low Power Design → Multi-Threshold Voltage Design-ը ծածկում է Vt տեսակների հիմքում ընկած հապաղման/արտահոսքի ֆիզիկան սխեմայի տերմիններով։ Սինթեզի կարգավորման կողմից դա գրադարանի ընտրության և default-քաղաքականության հարց է. թե Vt-ի որ տեսակներն են ընդհանրապես ներառված գործիքին հանձնվող target գրադարանի բազմության մեջ, և ինչ default խառնուրդ է optimizer-ը ուղղորդված դեպի, նախքան որևէ ձեռքով միջամտություն։

⤢ Սեղմեք խոշորացնելու համար Տիպիկ default Vt-mix քաղաքականություն design-ի area-ի ընդգրկմամբ HVT — default՝ ոչ-կրիտիկական logic-ի մեծ մասի համար SVT — baseline LVT/ULVT փոքր հատված, ECO-ի համար պահված Սինթեզի տիպիկ dual-Vt default գրադարանի բազմություն. միայն SVT + HVT: LVT/ULVT բջիջները հաճախ ընդհանրապես ԴՈՒՐՍ են թողնվում սկզբնական default բազմությունից, և վիրահատական կերպով swap են արվում միայն կոնկրետ failing path-երի վրա ժամանակային ECO-ի ընթացքում։

Ամենաարագ, ամենա-leaky տեսակները սինթեզի default գրադարանի բազմությունից դուրս թողնելը միտումնավոր քաղաքական ընտրություն է — այն կանգնեցնում է optimizer-ին fast-but-leaky բջիջի հասնելուց «պարզապես որովհետև կարող է» այն path-երի վրա, որոնց երբեք պետք չէր, և այդ արտահոսքի բյուջեն պահում է այն մի քանի path-երի համար, որոնց իսկապես պետք է։

Անվանումը տարբերվում է ըստ foundry-ի. չորս-տեսակ stack-ը (ULVT/LVT/SVT/HVT, այդ հերթականությամբ աճող Vt-ով) տարածված արդյունաբերական համառոտագրություն է, բայց անվանման ճշգրիտ պայմանավորվածությունները տարբերվում են ըստ foundry-ի և node-ի — որոշ process-եր baseline տեսակը պիտակավորում են «RVT» (regular-Vt)՝ SVT-ի փոխարեն։ Միշտ ստուգեք կոնկրետ PDK-ի անվանումը, նախքան foundry-ների միջև համապատասխանություն ենթադրելը։
Դաշտային դիտարկում

Vt-ի ցրվածությունը միշտ չէ, որ դասավորվում է այնպես, ինչպես կսպասեիք

Threshold voltage-ը ֆիքսված թիվ չէ նույնիսկ մեկ տեսակի համար — այն բաշխման միջինն է, և այդ բաշխման ցրվածությունը (σVt) գալիս է random dopant fluctuation-ից (RDF), FinFET/GAA սարքերի վրա work-function-metal granularity-ից, line-edge roughness-ից, և — multi-Vt գրադարանների համար կրիտիկական — այն masked implant քայլի dose-ից ու տեղաբաշխման tolerance-ից, որ օգտագործվել է տվյալ տեսակը process-ի բնական, un-implanted channel լեգիրումից shift անելու համար։ Գայթակղիչ է ենթադրել, որ երեք տեսակները դասավորվում են կանխատեսելիորեն (օր. «HVT-ն միշտ ամենաաղմկոտն է, LVT-ն՝ ամենասեղմը», կամ հակառակը), բայց մի քանի թիմ, որ աշխատում են վերջին advanced-node նախագծերի վրա, հայտնել են naive ենթադրության հակառակը. SVT բջիջները ցույց են տալիս process/technology variation-ի նկատմամբ ավելի բարձր զգայունություն, քան սպասվում էր՝ մյուս տեսակների համեմատ, որոշ դեպքերում ավելի զգայուն, քան երկու հարևանից որևէ մեկը։

⤢ Սեղմեք խոշորացնելու համար Ինչու «միջին» տեսակը կարող է ի վերջո լինել ամենա-variation-զգայունը implant dose / channel լեգիրում → ստացվող Vₜ հարթ տիրույթ dose tolerance → փոքր ΔVₜ կտրուկ անցումային տիրույթ նույն dose tolerance → ՄԵԾ ΔVₜ saturating տիրույթ → փոքր ΔVₜ որ տեսակի target Vt-ն պատահի ընկնել dose→Vₜ կորի կտրուկ մասին՝ ժառանգում է ամենաշատ variance-ը տվյալ implant tolerance-ից — այդ տեսակը միշտ չէ, որ «ծայրահեղն» է

Vt-ն implant dose-ի ոչ-գծային ֆունկցիա է։ Կորի հարթ, saturating մասին նստած տեսակը մնում է սեղմ նույնիսկ իրական dose variation-ի դեպքում. այն տեսակը, որի target-ը պատահի ընկնել կտրուկ անցումային տիրույթին, նույն dose tolerance-ը ուժեղացնում է շատ ավելի մեծ Vₜ ցրվածության։ Թե որ տեսակն է դա՝ կախված է կոնկրետ process-ի implant recipe-ից — երաշխավորված չէ, որ դա կլինի ամենաբարձր- կամ ամենացածր-Vt տեսակը։

Սա համընկնում է այն բանի հետ, ինչ process patent-ներն ու characterization տվյալներն ավելի ընդհանուր առմամբ ցույց են տալիս. implant քայլը, որ ներմուծվել է հատուկ Vt-ն բնական background լեգիրումից shift անելու համար, ավելացնում է իր սեփական dose-ի և տեղաբաշխման variation-ը intrinsic RDF-ի վրայից, և մի համեմատական ուսումնասիրություն գտավ, որ HVT սարքերը ցույց են տալիս turn-on-voltage-ի ավելի մեծ variation, քան SVT-ն, մինչդեռ LVT-ն ցույց տվեց SVT-ից պակաս variation — իրական դասավորություն, բայց ոչ ունիվերսալ, քանի որ հիմքում ընկած implant recipe-ն (և հետևաբար թե որ տեսակն է նստած կորի կտրուկ տիրույթին) տարբերվում է ըստ foundry-ի և node-ի։ Advanced FinFET/GAA node-երում պատկերը կրկին փոխվում է. Vt-ն սահմանվում է հիմնականում work-function-metal (WFM) նստեցումով, այլ ոչ թե channel implant-ով, և foundry-ները հայտնել են Vt-variation-ի (Pelgrom) գործակիցը ակտիվորեն սեղմելու մասին՝ բարելավված WFM processing-ի միջոցով, երբ ընդլայնվել են հինգ- և վեց-տեսակ Vt առաջարկների, որ ընդգրկում են 200–250mV տիրույթ — ինչը նշանակում է, որ տեսակների միջև զգայունության կոնկրետ դասավորությունը շատ իսկ live, node-specific engineering փոփոխական է, ոչ թե ֆիքսված thumb-ի կանոն։

Գործնական եզրակացություն. մի՛ փոխանցեք ենթադրյալ variance դասավորությունը (օր. «SVT-ն միշտ ապահով, սեղմ-վերահսկվող default-ն է») մի node-ից կամ foundry-ից մյուսը։ POCV/LVF sigma տվյալները characterized են ըստ բջիջի, ըստ ժամանակային arc-ի, ըստ տեսակի՝ իրական target գրադարանում — քաշեք իրական թվերը կոնկրետ օգտագործվող PDK-ի համար, այլ ոչ թե ենթադրեք։ Եթե characterization-ը ցույց է տալիս, որ SVT-ն իրապես կրում է չափազանց մեծ sigma տվյալ գրադարանում, դա օրինական, տվյալներով-առաջնորդվող պատճառ է default Vt-mix քաղաքականությունը շեղելու SVT-ն որպես default baseline վերաբերվելուց — օրինակ ավելի շատ ոչ-կրիտիկական logic տեղափոխելով HVT և SVT-ն ավելի նեղ օգտագործելով — սովորական ենթադրության հակառակը։ Տես Static Timing Analysis → Sigma & Statistical Guardbanding՝ թե ինչպես է այդ per-բջիջ sigma-ն իրականում համակցվում signoff margin-ի մեջ։

Աղբյուրներ