Základní znaky. - Ve srovnání se Spice jsou velmi složité a vyžadují dlouhou dobu na plné osvojení. - Velmi nákladné simulační programy.



Podobné dokumenty
Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Příklady popisu základních obvodů ve VHDL

Souhrn Apendixu A doporučení VHDL

Úvod do jazyka VHDL. Jan Kořenek Návrh číslicových systémů

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2

Vývoj VHDL. Verilog HDL

Číslicové obvody a jazyk VHDL

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

12. VHDL pro verifikaci - Testbench I

2. Entity, Architecture, Process

14. Složitější konstrukce

Násobičky, Boothovo překódování. Demonstrační cvičení 7

1. Seznamte se s výukovou platformou FITkit (

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

1 Stručný popis jazyku VHDL

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Návrh ovládání zdroje ATX

Sčítačky Válcový posouvač. Demonstrační cvičení 6

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y. Rovnicí y = x 1. x 0. Přiřazení signálů: ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Návrh. číslicových obvodů

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů:

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Programovací jazyk Pascal

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

7. Popis konečného automatu

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Úvod do programovacích jazyků (Java)

Pokročilé využití jazyka VHDL. Pavel Lafata

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP

Chapter Základní principy simulace :).

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Vykreslete převodní, modulovou a fázovou charakteristiku C-R článku. Zjistěte rezonanční frekvenci tohoto článku. Proveďte šumovou analýzu obvodu.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Jazyk PL/SQL Úvod, blok

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Cíle. Teoretický úvod. BDIO - Digitální obvody Ústav mikroelektroniky Základní logická hradla, Booleova algebra, De Morganovy zákony Student

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Knihovny součástek. Přidání knihovny. Cesta ke knihovnám pro Pspice

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik;

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

ELT1 - Přednáška č. 6

Řídicí struktury. alg3 1

Úvod do problematiky obvodů FPGA pro integrovanou výuku VUT a VŠB-TUO

Návrh FPGA systémů. Jazyk VHDL, principy simulace. Ing. Jakub Št astný, Ph.D. 1

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Databáze I. Přednáška 4

NPRG030 Programování I, 2017/18 1 / :22:16

Úvod do programování - Java. Cvičení č.4

3. Aritmetika nad F p a F 2

PŘETĚŽOVÁNÍ OPERÁTORŮ

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Úvod do simulace - 1

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

6 Příkazy řízení toku

1 Smíšené digitálně-analogové simulace

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Cíle. Teoretický úvod

Pseudonáhodná čísla = algoritmicky generovaná náhrada za náhodná čísla

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Sada 1 - Základy programování

Základy programování Proměnné Procedury, funkce, události Operátory a podmínková logika Objekt Range a Cells, odkazy Vlastnosti, metody a události

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Dotazovací jazyk SQL a PL/SQL. 8. Přednáška

Kurz LSL skriptování. Shiny Iceberg 2009

LabView jako programovací jazyk II

Jazykové konstrukce pro paralelní výpočty

V následujících podkapitolách je popsáno nastavení modelů jednotlivých zařízení. Tento popis navazuje a

Sdílení dat mezi podprogramy

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Implementace čítačů v číslicových systémech 2 Jakub Šťastný ASICentrum, s.r.o. FPGA Laboratoř, Katedra teorie obvodů FEL ČVUT Praha

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

Digitální návrh. Postup návrhu digitálních IO. Co to jsou HDL jazyky? Příklad Verilog kódu pro D klopný obvod

O datových typech a jejich kontrole

MQL4 COURSE. By Coders guru -5 Smyčky & Rozhodnutí Část 2

Úvod do simulace - 1

Kmitočtová analýza (AC Analysis) = analýza kmitočtových závislostí obvodových veličin v harmonickém ustáleném stavu (HUS) při první iteraci ano

Transkript:

VHDL-AMS Počátek jazyků HDL sahá do šedesátých let. V průběhu doby vznikla celá řada jazyků FAS (Anacad 1988), SpetreHDL (Cadence 94), MAST (Analogy 1986) a jiné. V současné době hrají největší roli jazyky - VHDL (IEEE 1076), VHDL-AMS (IEEE 1076.1 1999) - Verilog (IEEE 1376), Verilog-AMS

Základní znaky - HDL plně oddělují modelování a simulaci (parametry i rovnice modelů jsou v knihovně). - Představují potenciální cestu pro analogovou syntézu (zatím lze automatickou syntézu provádět pouze u číslicových obvodů). - Snadněji než Spice popisují různé úrovně abstrakce elektrických i neelektrických systémů. - Ve srovnání se Spice jsou velmi složité a vyžadují dlouhou dobu na plné osvojení. - Velmi nákladné simulační programy. Introduction 1-2

Základem modelování je entita (černá skříňka) a d ref entity comparator is generic (level : REAL := 2.5); port (terminal a, ref : ELECTRICAL; signal d : out BIT); end; Introduction 1-3

K entitě existuje jedna nebo více implementací: architecture simple of comparator is quantity v across i through a to ref; begin v == 1.0E6*i; -- Rin = 1Mohm d <= '1' when v'above(level) else '0'; end architecture simple ; a ref d Použití (instance) comp1 : entity comparator (simple) generic map (level => 5.0) port map (a => n1, ref => n2, d => n3); Introduction 1-4

Typy portů (svorek) signal klasický digitální (in, out, inout) terminal - analogový uzel (odvozují se rovnice 1. a 2. KZ) - energetické domény (elektrická, mechanická,...) quantity -analogováproměnná ( in, out, signal-flow modeling) generic -obecnákonstanta Introduction 1-5

Implementace modelu * struktura spojení bloků (= netlist) * chování (behavioral style) - Concurrent Statements (souběžné výrazy pro digitální část) - Simultaneous Statements (souběžné výrazy pro analogovou část) soustava rovnic Je možné mixovat vše dohromady. Introduction 1-6

Typy promenných VHDL má velmi přísnou typovou kontrolu. Existují skalární typy a kompozitní typy (pole, záznamy). Většinou jsou předdefinované v knihovně (příkazy library, use) integer podinterval: type byte_int is range 0 to 255; real podinterval: type level is range 10.00 to +10.00; Introduction 1-7

fyzikální typy (= real + označení jednotky) type resistance is range 0 to 1E8 units ohms; kohms = 1000 ohms; Mohms = 1E6 ohms; end units; výčtové typy type bit is ('0', '1'); type boolean is (false, true); std_logic (U, X, 0, 1, Z, W, L, H, -) Introduction 1-8

pole type word is array (31 downto 0) of bit; poziční a jmenná asociace type a is array (1 to 4) of character; poziční asociace jmenná asociace ('f', 'o', 'o', 'd') (1 => 'f', 3 => 'o', 4 => 'd', 2 => 'o') ('f', 4 => 'd', others => 'o') deklarace proměnných constant e : real := 2.71828; variable count : natural := 0; (pouze pro procesy) Introduction 1-9

Prvky číslicového modelu Procesy (příkazy uvnitř procesu se provádějí sekvenčně) p1a : process (a, b) begin s <= a xor b; end process p1a; p1b : process is variable mem : bit := 0 ; -- je to vidět jen v procesu begin s <= a xor b; wait on a, b;... end process p1b; Introduction 1-10

Přiřazení se provede až po skončení procesu y1 <= not a ; y2 <= a after 5 ns ; y3 <= 0.0, 1.0 after 250 ns ; Uspání procesu wait until clk = '1' for 1.2 ns; -- timeout 1.2 ns wait on clk; Introduction 1-11

Sekvenční příkazy (uvnitř procesu) count := count + 1 ; --proměnná max_ab : if a > b then vmax := a ; else vmax := b ; end if max_ab ; case int is when 0 => null; when 1 2 7 => v := 6; when 3 to 6 => v := 8; when others => v := 0; end case; Introduction 1-12

Sekvenční příkazy (uvnitř procesu) L : loop wait until clk = '1'; q <= d after 5 ns ; exit L when NOW > 100 ms ; end loop L; while mpier > 0.0 loop prod : = prod * mpcand ; mpier : = mpier - 1.0 ; end loop; for i in 15 downto 0 loop vector(i) := i * 2.0; end loop ; Introduction 1-13

Souběžné výrazy proces instance jiného modelu y1 <= not a ; y2 <= a after 5 ns ; y3 <= 0.0, 1.0 after 250 ns ; mux_out <= 'Z' after Tpd when en = '0' else in_0 after Tpd when sel = '0' else in_1 after Tpd; with sel select z>=d0 when ''00'' ''11'', d1 when others; Introduction 1-14

Analogový model Výsledkem formulace popisu analogové části je soustava algebraicko-diferenciálních rovnic v implicitním tvaru. Počet rovnic = počet neznámých. Soustava se formuluje z Simultaneous Statements (souběžné výrazy pro analogovou část). Introduction 1-15

Volné veličiny Proměnné, které vystupují v soustavě alg. dif. rovnic. quantity q1, q2 : REAL ; -- v deklarační části entity integ is -- jako svorky jedním směrem port (quantity qin : in real; quantity qout : out real); end; Introduction 1-16

Volné veličiny Proměnné, které vystupují v soustavě alg. dif. rovnic. quantity q1, q2 : REAL ; -- v deklarační části entity integ is -- jako svorky jedním směrem port (quantity qin : in real; quantity qout : out real); end; Pro svorky kvantit se nesestavují KZ. použití: qout == qin integ; qin integ == qout; Introduction 1-17

Uzly Konzervativní sémantika z propojení uzlů se automaticky odvodí topologické rovnice (1. a 2. KZ pro elektrické systémy) terminal t1, t2 : ELECTRICAL ; V hlavičce nebo v těle jako obecný uzel. ELECTRICAL nature (povaha) udává typ veličin spojených s uzlem. Dva uzly definují větev (bránu) branové napětí a proud quantity v across i through n1 to n2; Je možné definovat více paralelních proudů. electrical_ref - referenční uzel Introduction 1-18

Souběžné analogové výrazy jednoduchý výraz qout == qin integ; (může to být implicitní rovnice) - tolerance (obdoba ABSTOL, RELTOL, VNTOL ve Spice) f == m*x'dot'dot + k*x tolerance "mechanical_mst"; if vmax = REAL RIGHT use verr== vin ; elsif vin > vmax useverr== vmax ; elsif vin < -vmax useverr== -vmax ; else verr == vin ; end use ; case din use when '0' => v == ron * i + vlo; when '1' => v == ron * i + vhi; when 'X' => v == ron * i + vx; when 'Z' => v == roff * i + vx; end case ; Introduction 1-19

procedural is variable sum := 0.0 ; begin for i in inp RANGE loop sum := sum + inp(i); end loop; outp := sum; end procedural ; Při použití větvení musí být stále stejný počet rovnic. N volné + N proudy + N výst N vst = počet rovnic Introduction 1-20

Nespojitosti příkaz break korektní ošetření nespojitosti * sekvenční break (v procesu) break; Break se nesmí volat v procesu, který změnil hodnotu analogové veličiny (přiřazení se stane až po skončení break by se volal předčasně). * simultánní break (v architektuře) break on s when Q > 2.0 ; (citlivý na dig. signál s + podmínka) Introduction 1-21

Pomocí příkazu break je možné nastavit nové hodnoty stavových proměnných (atributy dot a integ) je možné generovat nespojitosti (stavové proměnné se změní skokem). break v_x=> 1.0 on trigger Introduction 1-22

A/D převod * pro A/D použít atribut above process(v above(level)) begin if v>= level then d<= 1 ; else d<= 0 ; end if; end process Introduction 1-23

D/A převod * pro D/A atribut ramp signal sr : real; -- číslicový signál process(dig) begin if dig= 1 then sr<=5.0; else sr<=0.0; end if end process; v_out == sr ramp(1e-8); --délka hrany 10ns Introduction 1-24

Modely ve frekvenční oblasti Typ analýzy (časová / frekvenční) se nastaví v solveru. Model je o tom informován pomocí proměnné domain (quiescent_domain, time_domain, frequency_domain) Ve frekvenční oblasti se rovnice linearizují + derivace -> jω,... Jako stimul v AC oblasti se musí použít speciální deklarace: quantity v : real spectrum 2.5, ACMAG math_pi/2.0; ACPHASE (v zdroji VAC, PSpice) Jen v AC existuje funkce frequency, která se dá použít pro definici stimulu. Introduction 1-25

Zdroj VAC entity v_source is generic ( DC : voltage := 1.0; ac_mag : voltage := 1.0; -- AC magnitude ac_phase : real := 0.0 ); -- AC phase [Degree] port ( terminal pos, neg : electrical ); end entity v_source; architecture behavior of v_source is quantity vout across iout through pos to neg; quantity ac_spec : real spectrum ac_mag, math_2_pi*ac_phase/360.0; begin if domain = quiescent_domain or domain = time_domain use vout == DC; else vout == ac_spec; -- used for frequency (AC) analysis end use; end architecture behavior; Introduction 1-26

Atribut LTF constant num : real_vector := (0=>1.0); --jednoprvkový vektor constant den : real_vector := (1.0, 0.01); -- a 0, a 1 *s, a 2 *s 2,... v_out ==v_in LTF(num, den); Atribut LTF je veličina transformovaná pomocí bloku s přenosem num/den. Ve frekvenční oblasti jde o násobení, v časové oblasti se použije ekvivalentní systém diferenciálních rovnic. Introduction 1-27