Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Jiří Douša, katedra číslicového návrhu (K18103), České vysoké učení technické v Praze, fakulta informačních technologií Přednáška 1: Úvod do simulací Stručný obsah: osnova předmětu, základní pojmy, úrovně abstrakce popisu císlicových obvodů, obory simulačních hodnot, synchronní a asynchronní simulace, simulace strukturních schémat, typy zpoždění.
Obsah předmětu 1. Úvod do simulací, 2. VHDL: entity a architektury, 3. VHDL: datové typy, 4. VHDL: procesy, sekvenční příkazy, atributy signálů, 5. VHDL: VHDL: funkce a procedury, 6. VHDL: paralelní příkazy, 7. VHDL: specifikace hierarchických struktur, parametrizace entit, konfigurace komponent, testování, syntetizovatelné konstrukce jazyka 8. VERILOG: srovnání s VHDL, moduly, datové typy, 9. VERILOG: sekvenční a paralelní prostředí, 10. VERILOG: specifikace struktur, 11. VERILOG: parametrizace modulů, testování časových relací, uživatelsky definované primitivní členy, modely přenosových hradel, 12. VERILOG: abstraktní události, funkce a procedury, 13. VERILOG: syntetizovatelné konstrukce jazyka Literatura: uvedena v úvodu jednotlivých systémů 21.10.2011 MI-SIM: Jiří Douša 2
Základní pojmy Zkoumání světa: nutné třídění, rozlišování, zjednodušování, isolace Objekt (entita) - část okolního světa Systém pojem intuitivně užívaný v různých souvislostech - charakteristika: účelově definovaný na objektu (naše vidění reality) stanovení rozlišení úrovně, vymezení části objektu a stanovení vnitřní organizace objektu. matematicky specifikovaný termín v teorii systémů a modelování příklady: doprav. systém Prahy: tram., autob, metro,.. zažív. systém člověka: žalud., střeva, játra,.. paměť počítače: registry, cache, oper. pam, Reálný objekt Systém - model filtr rozlišovací úrovně 21.10.2011 MI-SIM: Jiří Douša 3
Základní pojmy Modelování - stručná charakteristika: obecné metoda společná všem vědám tvorba systému - modelu na reálném objektu cílevědomá činnost sloužící k získávání poznatků o reálném objektu jde o platné zjednodušování z hlediska daného záměru ( nutné zachování podstatných rysů) Model nejširší pojetí: metodologický nástroj (velmi volně řečeno); př: dílenský výkres, schéma obvodu, mapa terénu, atd. užší pojetí: zaměříme se pouze na matematické modely : Simulace striktně matematicky specifikovaný systém na určité úrovni abstrakce analytické modely (př.: Ohmův zákon) numerické modely (simulační modely) neuvažujeme zde fyzikální modely (aeronautický tunel apod.) numerické řešení matematických modelů Simulátor (simulační systém) výpočetní systém (počítač, člověk,..) provádějící numerický výpočet reálný objekt modelování model simulace simulátor 21.10.2011 MI-SIM: Jiří Douša 4
Základní pojmy prvek systému - dále nedělitelná část systému (modelu) atributy systému - veličiny charakterizující prvky systému (modelu) chování systému - průběh hodnot atributů v čase či prostoru okolí systému - zdroj podnětů na systém (model) interakce - působení mezi prvky systému (modelu) navzájem a mezi prvky a okolím Třídění systémů (modelů) dle interakce s okolím: otevřené (interakce s okolím) uzavřené (bez interakce s okolím) dle vnitřní paměti: statické - (bez vnitřní paměti; př. kombinační obvod) dynamické - (s vnitřní pamětí; př. sekvenční obvod ) dle chování: spojité diskrétní kombinované stochastické podrobnější třídění: využívá zavedené matematické formalismy (př.: DESS, DTSS, DEVS, DEV&DESS,..) 21.10.2011 MI-SIM: Jiří Douša 5
Ověřování návrhů číslicových obvodů a) ověření pomocí fyzického prototypu signál. generátor PROTOTYP oscilo logický analyzátor b) ověření pomocí simulačního modelu: soubor vstupních signálů MODEL soubor výstupních signálů aktivní ( mluvící ) komponenty nevýhoda: u velmi složitých systémů není možné ověřit celý stavový prostor c) metody formální verifikace: ověření konzistence navrženého systému s požadovaným chováním pro všechny možné vstupy 21.10.2011 MI-SIM: Jiří Douša 6
spojitý nebo diskrétní systém diskrétní systém Abstrakce popisu číslicových obvodů nějaká vyšší úroveň pro společný návrh SW a HW System Architecture Level : obvykle čas není zahrnut, celkové ověření funkce, System Performace Level : čas zahrnut, systémy hromadné obsluhy Transaction Level Modeling : důraz: přenos dat (transactions), čas zahrnut úroveň registrů ( RTL level ) datové cesty, registry, časování, řídící obvod specifikace všech signálů v každém hodinovém cyklu př.: násobička: datová cesta (registry, sčítačka, posouvací obvod) + řadič úroveň hradel ( logical level ) schema pouze ze základních logických obvodů fyzikální úroveň (electric level) schema s transistory apod. 21.10.2011 MI-SIM: Jiří Douša 7
Simulace strojového kódu účel: ladění programů ve strojových kódech, funkční model procesoru: start inicializace obsahu hlavní paměti čtení instrukce z hlavní paměti operační znak =? + - * ADD SUB MUL inkr. PC inkr. PC inkr. PC stop výpis registrů, sběrnic, atd 21.10.2011 MI-SIM: Jiří Douša 8
Obor simulačních hodnot, rezoluční funkce Příklad: čtyřhodnotový obor hodnot: 0, 1, X, Z Rezoluční funkce: určí výsledek jako superposici hodnot jednotlivých budičů 2 budiče: a, b : budič b 0 1 X Z 0 0 X X 0 budič a 1 X 1 X 1 X X X X X Z 0 1 X Z více budičů: a, b, c, d : a (Z,1) (Z,Z) b (0,Z) c (1,Z) d S begin S:= Z; S:= RF (S,a); (Z, 1) S:= RF (S,b); (Z, 1) S:= RF (S,c); (0, 1) S:= RF (S,d); (X,1) end 21.10.2011 MI-SIM: Jiří Douša 9
Obor simulačních hodnot devítistavový systém: Z0, Z1, ZX, R0, R1, RX, F0, F1, FX hodnoty: 0 síly: Z..week 1 R.resistive X F.forcing př: MOS invertor, otevřený kolektor VCC GND R R1 F0 dvanáctistavový systém: + neznámá síla U př.: Z0 nebo F0 nebo R0 U0 hodnoty síly Z Z0 Z1 ZX R R0 R1 RX F F0 F1 FX U U0 U1 UX Poznámka: existuje i jednostodvacetihodnotový systém 21.10.2011 MI-SIM: Jiří Douša 10
Zpracování zpoždění signálu synchronní simulace zpoždění se neuvažuje metoda pevného časového kroku asynchronní simulace zpoždění se uvažuje: jednotkové - stejné pro všechny obvody násobné - násobek jednotkového zpoždění libovolné podrobnější přístup umožňuje: zjistit statické hazardy a dynamické hazardy ověřit dodržení předstihů a přesahů ověřit správnost frekvence hodinových pulsů metoda proměnného časového kroku 21.10.2011 MI-SIM: Jiří Douša 11
Synchronní model JK klopného obvodu hladinový JK obvod: funkční model JK - clk=1? + + J = 0? - + - + - K = 0? K = 0? Q:=0 QN:=1 Q:=1 QN=0 end Q:=QN QN:=neg QN 21.10.2011 MI-SIM: Jiří Douša 12
Principy simulace strukturních obvodů synchronní simulace kombinační cesty (KČ) X Y paměťové obvody (PO) clk clk PO KČ průběh simulace 21.10.2011 MI-SIM: Jiří Douša 13
Simulační cyklus pro synchronní simulaci Princip: lze oddělit výpočet kombinační a paměťové části Algoritmus výpočtu: begin počáteční nastavení PO time:= 0 čti vstup X i kompletní výpočet KČ time := time + 1 konec simulace? - tiskni výstup Y i + end výpočet PO 21.10.2011 MI-SIM: Jiří Douša 14
Organizace výpočtu při simulaci struktur Paměťové obvody PO: často se PO vzájemně neovlivňují (jsou odděleny kombinační částí) => libovolná posloupnost výpočtu, obecný algoritmus: - dvoufázový průchod 1) výpočet a zapamatování nových hodnot 2) přenos nových hodnot do skutečných výstupů pomocné proměnné: 1 1 1 2 2 2 KO KO KO skutečné výstupy 21.10.2011 MI-SIM: Jiří Douša 15
Organizace výpočtu při simulaci struktur Kombinační cesty KČ 1 2.. n 3. Možné strategie výpočtu : repetiční vyhodnocení neuspořádaných prvků: například: n,.,3,2,1, správná odezva: maximálně n průchodů (acyklický graf), po n průchodech - ustálení všech výstupů, zpomalení výpočtu, vyhodnocení uspořádaných prvků ve směru toku signálu: například: 1, 2, 3,..., n správná odezva: 1 průchod, problém uspořádání (obecně nelze jednorázově při překladu: ( viz obousměrná sběrnice), nutno provádět dynamicky a zjednodušeně v průběhu simulace => problém jednoznačného chování, obecný algoritmus: oddělení výpočtu odezvy a uložení hodnot => zpomalení 21.10.2011 MI-SIM: Jiří Douša 16
Model dílčího obvodu: Repetiční výpočet struktur poznámka: GU příznak globálního ustálení begin IP (inicializační průchod)? - + 1. průchod PO + - výpočet PO uložení výstupů + clock = 1? - výpočet KČ nastala změna některého výstupu? - + GU = False počáteční nastavení PO end 21.10.2011 MI-SIM: Jiří Douša 17
Repetiční výpočet struktur Simulační cyklus: poznámka: konstantní časový krok begin time: = 0, clk := 0, IP := True VVDM IP := False, výpočet všech dílčích modelů time:= time + 1 False GU:=True VVDM GU? True clk: = 1 VVDM clk: = 0 konec simulace? - + end (GU globální příznak ustálení) 2x 21.10.2011 MI-SIM: Jiří Douša 18
Asynchronní simulace předpoklad: uvažujeme jednotkové zpoždění del X i 1 1-> 0 1 b & & c a 1->0 0->1 1 d 1->0->1 synchronní simulace: vstup Xi, vyhodnocení a, b, c, d nevystihuje paralelní šíření signálu asynchronní simulace: vstup Xi, vyhodnocení a,b, time:= time+ del, uložení a,b, vyhodnocení c,d, time:=time+ del, uložení c,d, vyhodnocení d, time:=time+ del, uložení d šířící se změny signálu X i Y i PAZ ( právě aktivní zásobník) PŘAZ ( příště aktivní zásobník) 21.10.2011 MI-SIM: Jiří Douša 19
Asynchronní simulace Strategie výpočtu pro jednotkové zpoždění: PAZ právě aktivní zásobník, PŘAK..příště AZ begin počát. nast. PO, time:=0, nulování PAZ a PŘAZ čti X i naplánuj vstupní logické členy do PAZ time := time + del až do vyprázdnění PAZ provedˇ: simulace logických členů + vyjmutí z PAZ, uložení výstupních hodnot naplánování všech následovníků do PŘAZ PAZ konec periody clk? - + PŘAZ konec simulace? + - výpočet PO + end uložení hodnot 21.10.2011 MI-SIM: Jiří Douša 20
Asynchronní simulace charakteristika předešlého přístupu: dynamické uspořádání dílčích modulů dle zapojení simulace všech logických členů metoda pevného časového kroku jednotkové (stejné) zpoždění modifikace předešlého přístupu: připustíme násobné zpoždění: T= k * de, hodnota k specifikuje zásobník pro uložení příslušného následovníka PAZ. del PAZ PŘAZ 21.10.2011 MI-SIM: Jiří Douša 21
Asynchronní simulace Zobecnění předešlého přístupu: nerozlišujeme pamětˇové a kombinační členy připustíme libovolné zpoždění oddělíme výpočty dílčích členů a uložení vypočtených hodnot do výstupních signálů (delta zpoždění) použijeme metodu proměnného časového kroku, provedení veškerých změn v modelu podmíníme existencí příslušného záznamu v seznamu událostí SU PAZ + všechny PŘAZ nahradíme jediným seznamem událostí SU, každou událost doplníme časem události použijeme metodu aktivní cesty neplánujeme soustavně všechny logické členy do SU, ale pouze kandidáty na změnu (t. j. členy u nichž došlo ke změně hodnoty některého ze vstupních signálů) 21.10.2011 MI-SIM: Jiří Douša 22
Asynchronní simulace seznam událostí (event list): položky: záznamy událostí (event notices) čas události (KDY?) specifikace události - odkaz na objekt (CO?) struktura jednocestně zřětězený, setříděný dvoucestně zřetězený, setříděný hierarchický apod. PRED SUC hlava seznamu PRED SUC time.. PRED SUC time PRED SUC time událost událost událost 21.10.2011 MI-SIM: Jiří Douša 23
Typy zpoždění a T b dopravní zpoždění: pro vodiče a b T T T setrvačné zpoždění: pro logické členy a Naplánuj Zruš b T T T 21.10.2011 MI-SIM: Jiří Douša 24
Nesprávný model zpoždění předpoklad: existuje jádro pro časovou synchronizaci dílčích elementů simulované struktury použití jediného procesu ( koprogramu) omezení: modeluje správně pouze pulsy jejichž šířka i vzdálenost jsou větší než T vlivem omezení není rozdíl mezi dopravním a setrvačným zpožděním start čekej na změnu vstupu a pom := vstup a ( pom.dočasná pamětˇ) čekej po dobu T necitlivost vůči vstupu výstup b:= pom uložení do výstupu b 21.10.2011 MI-SIM: Jiří Douša 25
Model dopravního zpoždění chování objektu ZPOŽDĚNÍ: použití pomocných dynamických objektů DELAY a podprogramů Start DELAY:: uloz čekej na změnu vstupu a výstup b := pom generuj nový objekt DELAY DELAY. pom := a vymaž ze SU tento objekt zruš objekt DELAY naplánuj do SU metodu.ulož objektu DELAY za dobu T end Poznámky: přesun libovolného počtu pulsů pom proměnná objektu DELAY sloužící jako dočasná pamětˇvýstupní hodnoty 21.10.2011 MI-SIM: Jiří Douša 26
Model setrvačného zpoždění chování objektu zpoždění: použití pomocného objektu DELAY a podprogramů uvažujeme pouze dvouhodnotovou logiku Start DELAY:: uloz generuj objekt DELAY čekej na změnu vstupu a + DELAY. pom = a? - DELAY.pom:= a výstup b:= pom vymaž z plánu tento objekt (čekej na aktivaci) je DELAY naplánován? + vymaž DELAY ze SU - naplánuj do SU metodu ulož objektu DELAY za dobu T pom.proměnná objektu DELAY, která obsahuje poslední hodnotu výstupu nebo hodnotu ke které výstup právě klopí 21.10.2011 MI-SIM: Jiří Douša 27
Koncepce simulačních systémů Možné historické koncepce simulačních nástrojů: jednoúčelové : ( př. simulátory strojového kódu ) obecné: implementace: obvodová, programová, strukturní popis: jednoúrovňový, víceúrovňový (hierarchický), funkční popis: umožňuje vytvářet nové ( uživatelem definované prvky) s funkčním popisem, koncepce programových simulátorů: systém podpůrných podprogramů a tříd, ( SystemC ) simulační jazyk + překladač, ( VHDL, Verilog, SystemVerilog ) kompilační, interpretační: universální model pracující nad seznamem událostí interpretuje data, (výstup kompilátoru) nesoucí informace o struktuře simulovaného obvodu. 21.10.2011 MI-SIM: Jiří Douša 28