Jak navrhnout systém se 700 mil. Tranzistorů? Digitální Časová analýza Návrh topologie Dělení u na subsystémy Návrh je rozdělen na jednotlivé bloky a ty na další sub-bloky Použití již existujících ů Rychlejší než začít stavět na zelené louce Použití tzv. IP bloků pro standardní části u IP Intelectual Property Bloky, které jsou standardizovány a dají se koupit od třetích tí firem Použití HDL IP Bloků Použít y na nejvyšší úrovni, pokud je to možné Automatizovaná syntéza z programovacích jazyků (System C, C ) Jak otestovat systém se 700 mil. Tranzistorů? Dělení u na subsystémy, které jsou testovány samostatně Návrh je rozdělen na jednotlivé bloky a ty na další sub-bloky Nejdříve se testují bloky samostatně, potom dohromady Použití simulací na nejvyšší úrovni, pokud je to možné Behaviorální modelování a simulace Je mnohem rychlejší, ale méně ě přesnéř V určitém stádiu u je nutné modelovat naopak na nejnižších úrovních abstrakce Velice náročné na strojový čas, obzvláště u rozsáhlých ů Postup u digitálních IO Návrh pomocí standardních buněk Logický Umístění a Vytvoření funkčních specifikací a verifikačního plánu Systémové modelování (System C, C) Rozdělení na funkční bloky (Register Transfer Logic) popis a verifikace (HDL) na systémové úrovni Pokročilé verifikační metody, Low power verigikace Co to jsou HDL jazyky? HDL Hardware Description Language Číslicový, analogový a číslicově-analogový jazyky pro popis chování elektronického obvodu K čemu je to dobré? Rychlý popis funkce obvodu (nebo jeho části) Krátká doba simulace v případě číslicových obvodů Hodí se i pro tvorbu testovacích simulačních obvodů a behaviorálnívh a systémových modelů Světové standardy: VHDL, VHDL-A, VHDL-AMS Verilog, Verilog-A, Verilog-AMS Příklad Verilog kódu pro D klopný obvod module D_flip_flop_sync_reset ( data, // Data Input clk, // Clock Input reset, // Reset input q // Q output ); //---Vstupní Porty input data, clk, reset ; //---Výstupní Porty output t q; //---Vnitřní proměnné reg q; //---Začátek popisu bloku always @ ( posedge clk) if (~reset) begin q <= 1'b0; end else begin q <= data; end endmodule
Postup u digitálních IO Návrh pomocí standardních buněk Postup u digitálních IO Návrh pomocí standardních buněk Logický Umístění a Logický Umístění a Načtení odladěného a verifikovaného HDL (VHDL nebo Verilog) kódu Převedení zdrojového HDL kódu na netlist (zapojení systému) Netlist je na úrovni logických hradel (NAND, NOR, XOR, registrů ) Optimalizace u časování, plocha, spotřeba Fyzická syntéza předběžné umístění bloků a hradel Optimalizace kritických datových cest Návrh rozdělení plochy čipu (Floorplanning) umístění makrobuněk, napájení a hodin Rozmístění buněk (hradel) optimalizace časování Rozvedení hodinového signálu (CTS Clock Tree Synthesys) Propojení všech buněk a hradel Optimalizace hodinového signálu, metalického a kontaktů Někdy je potřeba ruční úprava výsledné topologie (layoutu) Postup u digitálních IO na různých úrovních abstrakce Návrh pomocí standardních buněk Logický Umístění a Behavioral HDL Systémový Simulátor HDL Simulátor Kontrola kódů DRC Kontrola ových pravidel LVS Layout vs schema kontrola zapojení ERC Electric Rules Check Analýza metalického (proudová hustota, úbytek napětí) Dynamická časová analýza Analýza spotřeby Pro vybrané bloky simulace na úrovni tranzistorů pro nízkou spotřebu Gate-level Physical Domain Gate-level l Simulátor Statická časová analýza DRC, Layout vs Schematic (LVS), ERC Verifikační techniky Cíl: Zajistit, aby splňoval požadavky při všech úrovních u Simulace (funkční a časová) Behavioral Gate-level (pre-layout a post-layout) Switch-level Transistor-level Formální verifikace (funkční) Statická časová analýza STA (časová) Založeny na HDL Klasifikace logických simulátorů Logické simulátory Emulátory Schematic-based FPGA Řízeny Řízeny Hradla Systém událostí Hodinovým cyklem HDL: Návrh a testbenche jsou popsány pomocí HDL Řízeny událostí Řízeny časovým cyklem - hodinami Schematic: Návrh je vložen graficky pomocí editoru schematu Emulátory: Návrh je mapován do FPGA jako simulace prototypu.
Statická časová analýza STA Vhodná pro synchronní Popis Systému (Simulace) Základní kroky digitálního u??? STA Static time analysis STA Register transfer Logic Latche Kombinační Logic Kontroluje časování bez tzv. testvektorů Latches Konzervativní způsob v porovnání s dynamickou časovou analýzou. Formalní Návrh umístění A (Floorplan) STA Detailní Layout STA Finální layout GDSII VHDL Verilog funkční popis Funkční popis buněk technologicky nezávislých Časování (Timing) CLK I/O vyjímky Návrhová pravidla pož. Operační podmínky Napětí Teplota Technologie Funkční bloky Funkce Časování WLM (wire load model) Návrhová pravidla Technologie Tradiční Back-end Flow - Synthéza GTECH Constraints Tech library Logická Analyze Elaborate Compile Gate-level netlist Transformace dat do gate-level netlistu Kontrola syntaxe Kontrola struktury Konverze do binárního kódu Mapování u do GTECH bloků (modelů) Namapuje do technologických blolů Logická optimalizace Časování - výpočet DRC Verilog/VHDL Propojení Základních Technologických bloků WLM princip 100 K 20 K Logical view 80 K Výpočet zpoždění WLM (wire load model) Zpoždění Všechny uzly v rámci funkčního bloku mají stejné zpoždění Velikost bloku After P&R Rozvětvení %delay 0 50 100 gates 1m 0.5m 0.15m wires WLMs se stává statisticky nepřesné v submikronových technologiích Výpočet zpoždění Základní princip Fyzická syntéza Logické schema Spojuje syntézu a layout Nepoužívá WLM Vypočítá zpoždění z délky spoje Po fyzickém umístění bloku Výpočet zpoždění Po P&R Timing accuracy %error 50 100 0 WLM Logical Synthesis Physical Synthesis Interconnect model Detail Detail routing Fyzický Zpoždění každého uzlu je počítáno odděleně Časování po fyzickém umístění je velice přesné
Fyzický čipu Postup fyzického u Import u a technologií Verilog netlist Fyzický Plánování rozmístění (Floorplanning) Umístění (Placement) Layout Rozvod hodin (Clock Tree Synthesis) Technologické požadavky Návrh (Routing) Optimalizace (Post Route Optimization) layoutu Front End Back End Metoda fyzické syntézy Fyzická informace o funkčních blocích Tradiční DC kompilace Rozměry Rozložení pinů Propojovací přepážky Tech knihovna Omezující podnínky Knihovna standardních buňek Gate-level netlist Fyzická optimalizace rozmístění Návrh topologie Počáteční Návrh topologie velikost čipu I/O piny makrobuňky rozvedení napájení Umístění bloků Není zatím propojeno! Plánování rozložení čipu (Floorplanning) Extrahuje reálná zpoždění po u layoutu Pro novou optimalizaci Detailní DRC, LVS layout Detailní Začíná existujícím umístěním bloků Plánování rozložení čipu (Floorplanning) Kde začít? Hlavní oblasti pro implementaci Umístění IP bloků, I/O oblastí, kontaktních pedů Napájení Zem Prstence Pruhy Periferní (I/O) oblasti IP RAM ROM Verilog netlist Technologické požadavky Fyzický Jak se vypořádáme s: Velikostí čipu Umístěním IO / IP Rozvodem hodinového signálu Rozvodem napájení a země
Proč plánovat rozložení čipu? Cílem je umístit jednotlivé bloky a standardní buňky tak, aby propojovací nástroj rychle konvergoval. Krátké kritické cesty (časování) Přetečení limitu průchodnosti Rozvod adekvátního napájení a země Plánování rozložení čipu zahrnuje: Velikost plochy čipu IO / umístění velikých bloků -maker Globální rozvod hodinového signálu Globální rozvod napájení Návrh využití plochy čipu Využití plochy se uvádí v procentech zaplnění plochy čipu buňkami. Typicky se začíná s využitím plochy kolem 70% Pro vysoké hodnoty využití plochy je obtížné dokončit Problémy s m Malé využití plochy Dobré využití plochy nesnadné Umístění velkých makro-buněk Při umístění velkých makro-buněk musíme brát v úvahu vliv na možnosti. Nedostatek místa pro okolo rohů Příliš úzké propojovací kanály Pravděpodobné místa, kde vznikne problém s m Návrh globálního rozvodu napájení a země na čipu Aspekty u napájení s ohledem na spolehlivost Optimalizace napájení na čipu Dynamický výkon čipu Úbytek napětí na metalizaci snížení spotřeby hodinového sig. Zapínání a vypínání hodinového signálu Din Různá prahová napětí snížení statického odběru Svodový proud Nízké V TH 40 x vyšší svodový proud Statický odběr (Svodové proudy) Minimální Limit Enable Clock Latch Dout Nominální V TH VysokéV TH Umístění (Floorplan) + Návrh rastru napájení Dlouhodobý problém proudové hustoty Elektromigrace (EM) Pokročilé techniky 0.9V Redukce dynamických ztrát OFF 0.7V 0.9V 0.9V Zpoždění Snížení dynamických ztrát a svodového proudu 0.7V 0.9V Multi-napěťové (MV) Multi-napěťové bloky s vypínáním napájení k jednotlivým blokům
Návrh rastru pro napájení Konverze napájení & Multi-napěťový Tradiční postup: Rozdělení multi-napěťových oblastí Návrh obvodových prstenců okolo celého jádra čipu Návrh příčných pruhů a lokálních prstenců odhad počtu Prvotní odhad připojení p napájení a země k log. buňkám Kontrola a verifikace propojitelnosti napájení Analýza úbytku napětí (IR drop) a elektromigrace Definování napěťových domén (ND) Vytvoření seznamu buněk připojených na jednotlivá napětí 1, 2, GND1, Návrh oblastí ND Umístění makro buněk Nutno optimalizovat pro hustotu Umístění konvertovacích bloků napětí IP core ND3 RAM ND1 ND2 ROM Multi napěťový : Bloky pro konverzi napěťových úrovní - Level Shifters Převod napěťových úrovní : prstencová topologie konverzních členů - Level Shifter - Bloky pro konverzi napěťových úrovní 1 2 IN OUT Global 0.7 1.08 logický model VSS Duální H-L a L-H konverzní bloky VVD-ND1 doména VVD-ND2 doména 0.9 0.7 1 VSS IN 1 OUT Konverzní členy jsou umístěny okolo každé VVD-ND (virtual ) napěťové domény 2 VSS Převod napěťových úrovní : rastrová topologie konverzních členů Převod napěťových úrovní: konverzní člen Global V1 V1 V2 V2 Řídící vypínací signál (on/off) Topologie umístění: Prstencový okolo jednotlivé napěťové oblasti Rastrová mřížka pro bloky uvnitř jednotlivých ND V1 V2 síť je rastrová Konverzní členy jsou umístěny do rastru mezi a V Výhodu tohoto uspořádání je menší proud při zapnutí bloku (široké vodiče a úzké V) V VSS V Rozvedení řídicího vypínacího signálu: Rozvedení se provádí v první fázi detailního propojování
Zhodnocení rozvržení plochy čipu (Floorplanning) Cílem je umístit jednotlivé bloky a standardní buňky tak, aby propojovací nástroj rychle konvergoval. Potřebné ářské zkušennosti Plánování rozložení čipu je řízeno: Velikostí a tvarem plochy čipu Rozvodem hodinového signálu a časováním Globálním rozvod napájení Zaplněním plochy Neexistuje jen jedna cesta, jak navrhnout rozvržení čipu Některé požadavky jsou protichůdné Tato fáze často vyžaduje značnou časovou invenci další procedury u zásadně závisí na tomto kroku. Detailní rozmístění buněk (Placement) Detailní rozmístění bloků (Placement) Detailní rozmístění bloků (Placement) Je jednou z kritických fází ovlivňující především: časování možnost následného V které části u se nacházíme? Návrhová specifikace Logický a verifikace Front-End Technologické knihovny Netlist Návrhová pravidla Logická syntéza Floorplanning Návrh rozmístění Návrh Fyzický Back-End Kalkulace pro rozmístění Rozmístění bloků- kroky Kalkulační kriteria Plocha Délka spojů Překryv Časování Hustota Hodinový signál Spotřeba Návrhové metody Tradiční metody rozmístění Rozmístění řízené časováním Rozmístění řízené výpočtem hustoty Vypínání hodinového signálu Multi-napěťové domény Vstupní informace: Netlist Namapovaný Floorplan Logické a technologické knihovny Topologická ová pravidla Načtení netlistu ze syntézy Komplexní rozmístění bloků Detailní rozmístění Optimalizace rozmístění Výstupní informace: Fyzická topologie (layout) Přesné pozice jednotlivých buněk Layout, časování, technologické informace a referenční knihovny
Knihovny standardních buněk Rozmístěmí bloků Hierarchie Standardní buňky jsou předen navržené layouty specifických logických hradel. Každá buňka má stejnou výšku. Knihovna je většinou dodávána výrobcem IO Knihovna Standardních buněk Hierarchicky členěný Netlist Top A B Layout bez hierarchie! A2 Top C1 C3 RAM A4 A3 C2 A1 A B Y Metal Pins A B Y A1 A2 A3 A4 C RAM C1 C2 C3 Netlist - bez hierarchie Top GND NAND_1 GND Detailní Layout = základní buňka (std nebo makro) A1 A2 A3 A4 C1 C2 C3 RAM Komplexní a detailní rozmístění Rozmístění bloků Načtení netlistu Standardní buňky jsou rozmístěny do skupin tak, aby počet mezi jednotlivými skupinami byl minimální. Toto se řeší pomocí rozdělení u na jednotlivé bloky. Komplexní rozmístění í Detailní rozmístění Optimalizace rozmístění Špatné rozmístění Dobré rozmístění Detailní rozmístění: nejdříve Nahrubo Detailní rozmístění: Placement : Legalization Legalizace Hrubé umístění buněk Buňky jsou umístěny přibližně na svá místa, ale nezaujímají přesnou polohu a překrývají se. Legalizace: přesné umístění jednotlivých bloků po optimalizačních algoritmech Makrobuňky jsou již rozmístěny Optimalizace umístění z hlediska budoucího, výpočet hustoty
Rozmístění zakázané oblasti Rozmístění bloků zakázané oblasti Okolo některých buněk, jako jsou velká makra, jsou definované zakázané oblasti pro umístění dalších buněk Zakázané oblasti RAM5 Piny makra jsou napravo a nalevo RAM1 Zakázané oblasti mohou být okolo všech stran makra. Zajišťují propojitelnost propojitelnost. Oblasti s omezením. Mohou se zde rozmisťovat např. buňky s přímou vazbou na makro RAM3 RAM5 RAM4 Rozmístění bloků zakázané oblasti RAM2 Rozmístění bloků zásady u Okolo rohů maker vzniká veliká hustota. Do těchto oblastí je zakázáno umísťovat buňky. Zakázané rozmístění RAM 1 RAM 2 RAM 3 RAM 4 RAM 5 RAM 6 (75,95) Zakázané propojování Mnoho pinů ústí do velice úzkého kanálu RAM4 Zužující kanály potenciální iál í problém při routování RAM 7 RAM 8 Piny na správné straně (20,20) Rozmístění standardních buněk Rozmístění standardních buněk Možnost sledování jednotlivých propojovacích cest Příklad rozmístění