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

Rozměr: px
Začít zobrazení ze stránky:

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

Transkript

1 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 7: VHDL-specifikace struktur, testování modelů, syntetizovatelné konstrukce jazyka. Stručný obsah: osazování a instalace komponent, mapování portů, parametrizace entit, konfigurace strukturních hierarchických schémat, syntetizovatelné konstrukce jazyka MI-SIM: Jiří Douša 1

2 Strukturní popis více konkrétní než model chování vyjadřuje konkrétní vazby na jiné (dílčí) jednotky zahrnuje modely dílčích jednotek v každé architektuře lze mixovat strukturní popis, data - flow popis a sekvenční popis umožňuje hierarchické uspořádání modelu - struktury mohou být zahnízděny do hloubky příklad hierarchie: TEST D1 buzení D1 deska D1 K1. KN KS1. KSN MI-SIM: Jiří Douša 2

3 Prostředky VHDL pro strukturní popis: Deklarace subkomponent: v knihovně nebo přímo v deklarační části architektury ( není nutno u VHDL-93) - účel: reservace místa pro vnoření entit; syntax: component < jméno typu komponenty > [ generic.; ] -- formální parametry port (..); end component; -- formální porty deklarace lokálních signálů: v deklarační části architektur - účel: získání propojovacích vodičů konfigurace (sub) komponent: v deklarační části architektury (component specifikation) nebo vně entity (configuration) účel - přiřazení entit a architektur dílčím komponentám syntax: for <label>:< jméno typu komponenty> use entity <jméno knihovny>.<jméno entity>. (<jméno architektury>); instalace a zapojení subkomponent: v operační části architektury syntax instalačního příkazu: <label> : <jméno typu komponenty > [generic map (<seznam parametrů>) ] --aktuální parametry port map ( < mapování portů> ) ; -- popis struktury MI-SIM: Jiří Douša 3

4 Analogie s reálnými obvody Příklad: deska tištěných spojů: deska D konector K K1:S16 K2:S16 KN:S40 IO konektor K. entity deska_d..architecture sokl (patice).component tištěný spoj...signal pájený pin..port map zasunutí IO do soklu configuration IO..entity + architecture MI-SIM: Jiří Douša 4

5 Celkový nástin strukturního popisu entity deska_d is..end deska_d; architecture Struk of deska_d is signal.; -- deklarace lokálních vodičů component S16 -- jméno komponenty * generic (.); + --formální parametry (může chybět) port (..); --rozhraní komponenty (formál. porty) end component; component S40 end component S40; -- následuje konfigurace (osazení) komponent (může chybět) [ for K1:S16 use entity work. E193(A193); --osazení K for KN: S40 use entity work. E8255(A8255); ] --osazení KN begin --následuje instalace a propojování komponent K1: S16 *generic map + --zadání aktuálních param. pro K1 port map...; -- propojení soklu K1 ; --propojení ostatních komponent KN: S40 *generic map.+ --zadání aktuál. parametrů pro K2 port map... ; --propojení soklu KN end Struk; MI-SIM: Jiří Douša 5

6 Osazování komponent: přiřazení entity a architektury dílčí komponentě: lze v architektuře vynechat v případě, že: komponenta a entita mají stejná rozhraní (tj. jména & porty) - default configuration osazení bude provedeno později (configuration) ve VHDL-93: přímá instalace komponent mapování portů entity na porty komponenty: při shodě jmen odpovídajících si portů entity a komponenty lze vynechat různá jména nutno mapovat explicitně: EIO (AIO)...dvojice: pe2 (entita & architektura.) pe3 mapování při osazení pe1 pe4 komponenty C x p1 komponenta C p2 p3 p4 w z y. mapování při instalaci komponenty C MI-SIM: Jiří Douša 6

7 Osazení komponenty v architektuře Příklad: osazení komponenty S16 v architektuře Struk entity EIO is -- tato entita je určena pro osazení -- komponenty S16 v architektuře Struk entity deska_d ( port pe1: in bit; pe2: out bit; pe3: inout bit; pe4: buffer bit ); end EIO; architecture AIO of EIO is.;.end AIO; entity deska_d is..;end deska_d; architecture Arch of deska_d is signal x, y, z, w : bit; --deklarace lokálních vodičů na desce component S16 port (p1 :in bit; p2: out bit; p3: inout bit; p4: buffer bit); end component; -- následuje osazení komponenty S16 a mapování pinů for K1: S16 use entity work.eio (AIO) port map ([ pe1 =>] p1, [pe2 =>] p2, [ pe3 =>]p3, [pe4 =>] p4 ); --zde je možné použít i posiční mapování portů entity EIO do --portů komponenty K1 (případně obojí) begin..--mapování portů komponenty S16 na vodiče (zde vynecháno) end AIO; MI-SIM: Jiří Douša 7

8 Zapojení komponent v architektuře Příklad: propojení komponenty S16 v architektuře Struk entity deska_d is port ( a: in bit; b: out bit; c: inout bit; d: buffer bit ); end deska_d; architecture Arch of deska_d is.; --deklarace signálů a osazení komponenty - viz. minulý příklad begin -- následují různé způsoby propojení komponent K1: S16 port map -- následuje mapování pinů komponenty K1do signálů či portů nadřazené entity deska_d (p1 => x, p2 => y, p3 => z, p4 => w); --jmenné mapování (x, y, z, w); -- poziční mapování na signály x,y,z,w (p1 =>a, p2 => b p3 => c, p4 => d); -- mapování na porty (a, b, c, d); p1 => x, p2 => open, p3 => c, p4 => d); --poziční mapování na porty --mapování na -- signály nebo porty, p2 je nezapojený výstup -- jde o různé varianty zapojení komponenty K1.; --propojení dalších komponent KN: S40 port map (..); end Arch; MI-SIM: Jiří Douša 8

9 Přímá instalace komponent ve VHDL- 93: odpadá deklarace komponent osazení dílčími entitami je spojeno s jejich instalací v příkazové části architektury Příklad: architektura předchozí desky_d architecture Struk of deska_d is signal.; -- deklarace lokálních vodičů begin K1: entity work.e193(a193) --instalace IO 193 [ generic map parametry IO 193 port map ; -- mapování rozhraní -- IO 193 na okolní vodiče (signály či porty architektury Struk)..; KN: entity work.e8255(a8255) * generic map + port map.; end Struk; MI-SIM: Jiří Douša 9

10 Dodatky k mapování portů povolená propojení při mapování portů vnořené entity do dílčí komponenty nebo při mapování portů komponenty do nadřazené entity Vnější buzení: ano ne / ano ne / ano ne in out inout buffer in out inout buffer přípustná mapování zápis čtení ne ano ano ano ano ne ano ano komponenta nebo nadřazená entita vnořená entita nebo komponenta konstantní vstupy komponent (s hodnotou 0 nebo 1 ): možnosti VHDL-87: a) deklarovat a inicializovat lokální signály, připojit je na porty komponenty a nebudit dalším budičem b) v deklaraci vnořené entity inicializovat port žádanou hodnotou : port ( x: in bit:= 1 ;..); při mapování portů příslušné komponenty do okolí použít označení open, např. K1: S16 port map (p1 => open, ); jde o nezapojený vstup možnosti VHDL-93: při mapování portů komponenty do okolí lze použít přímé konstanty 0 nebo 1, např.: K1: S16 port map ( p1 = > 0,..) MI-SIM: Jiří Douša 10

11 Nedeterminované meze portů porty deklarované jako neomezená pole možnosti nastavení dimense portu: a) pomocí rozměru pole reprezentujícího signál, který je namapován do daného portu při instalaci komponenty Příklad: entita compare bude použita v architektuře Arch entity E: entity compare is -- umožňuje srovnání n-bitových čísel port ( a,b: in bit_vector; x,y : out bit); --neurčené meze end compare; architecture Arch of E is component compare port ( a,b: in bit_vector; x,y: out bit); --neurčené meze end component; signal s1, s2: bit_vector (7 downto 0); signal s3, s4: bit_vector (15 downto 0); begin C1: compare port map ( a => s1, b => s2,..); --8 bitů C2 :compare port map ( a => s3, b => s4,..); --16 bitů end Arch; b) pomocí mechanismu generic (viz další slide) MI-SIM: Jiří Douša 11

12 Parametrizace entit generic: mechanismus pro jednorázové předávání hodnot entitám (konstanty, které mohou ovlivnit simulaci ale nemohou být modifikovány) použití: zpoždění, zátěž obvodu, počet vstupů způsoby předání hodnot parametrů: b1) inicializací formálních parametrů v entitě - platí pro všechny architektury této entity b2) explicitně při instalaci komponenty v architektuře (následující slide) nebo v konfiguraci (viz později); toto explicitní předání lze vynechat, byla-li definována implicitní hodnota dle b1) ad b1) entity EXor2 is generic ( [ constant ] zpe: [ in ] time:= 8 ns; [ constant ] zateze:[ in ] integer: = 2 )--inicializace port (i1e, i2e: in bit; oe: out bit); end EXor2; architecture AXor2 of Exor2 is begin oe <= i1e xor i2e after ( zpe + ( zateze * 2 ns )); end AXor2; MI-SIM: Jiří Douša 12

13 Parametrizace entit ad b2) zadávání hodnot parametrů při instalaci komponent v operační části architektury Příklad: vnoření předchozí entity Exor do strukturní architektury Arch nadřazené entity deska_d: entity deska_d is...end deska_d; architecture Arch of deska_d is signal a, b, c, d, x, y,.; -- lokální vodiče component SXor2 generic ( zpc: time; zatezc: integer ); -- formální parametry port (i1c, i2c: in bit; oc: out: bit); -- piny soklu end component; for X1: SXor2 use entity work.exor2 (AXor2) --následuje mapování parametrů: EXor2 => X1 generic map ( [zpe =>] zpc, [ zateze =>] zatezc ) --následuje mapování jmen portů: EXor2 => X1 port map ( [ i1e =>] i1c, [ i2e =>] i2c, [ oe =>] oc ); ; -- osazování dalších komponent -- příkazová část architektury Arch - viz další slide MI-SIM: Jiří Douša 13

14 Parametrizace entit - následuje operační část Arch: begin X1: SXor2 generic map (10 ns, 3) port map (a, b, x); -- parametry pro X1 -- propojení X1 s okolím X2: SXor2 generic map (zpc =>10 ns, zatezc => 4 ) --parametry pro X2 port map (c,d,y);..; -- propojení dalších vnořených komponent..; -- jakékoliv paralelní příkazy end Arch; signály a b 10 ns 3 parametry SXor2 i1c i2c zpc zatezc e i1e i2e zpe zateze AXor2 -- propojení X2 s okolím X1 oe EXor2 dědění parametrů a portů parametrizace při osazování parametrizace při zapojení komponenty oc x MI-SIM: Jiří Douša 14

15 Příkaz generate Příklad: strukturní model paralelního registru předpoklad: existuje entita (model jednobitového registru) entity latch is port (clk, i1:in bit; o1: out bit); end latch; architecture A of latch is. end A; entity ERg is generic ( n: integer := 32);--plati, chybi-li. explicitní specifikace port (a: in bit_vector (n -1 downto 0); clk: in bit; b: out bit_vector (n -1 downto 0) ); end ERg; architecture ARg of ERg is component latch; port (clk, i1 : in bit; o1:out bit); -- interface soklu end component; -- for L: latch use work.latch (A); zde není třeba begin -- následuje generování třiceti dvou komponent G: for i in n - 1 downto 0 generate L: latch port map (clk, a(i), b(i) ); end generate; end ARg; MI-SIM: Jiří Douša 15

16 Příkaz generate Příklad: paralelní sčítačka (pro sčítání různých délek; maximálně 24 bitů) a(n-1) b(n-1) a(0) b(0) cn c(n-1) c(1) co s(n-1) s(0) c(1) c(n-1).vnitřní signály entity EN_bit_sum is generic ( n: integer := 16); -- implicitní šíře port (a,b: in bit_vector ( n - 1 downto 0 ); co: in bit; cn: out bit; s: out bit_vector ( n - 1 downto 0 ) ); begin --následuje kontrola šířky operandů assert ( n > 1 and n < = 24 ) report operandy mimo rozsah severity error; end EN_bit_sum; MI-SIM: Jiří Douša 16

17 Příkaz generate Příklad: pokračování paralelní sčítačky architecture Arch of EN_bit_sum is component Upl_scit port (x,y,cin: in bit; cout, sum: out bit); end component; signal c: bit_vector (n - 1 downto 1); --vnitřní přenosy for all: Upl_scit use entity work. EUS (AUS); begin --počet úplných sčítaček je přizpůsoben hodnotě n G: for i in n - 1 downto 0 generate MSB: if i = n-1 generate S_n_1: Upl_scit port map (a(i), b(i), c(i), cn, s(i)); end generate; LSB: if i = 0 generate S_0: Upl_scit port map(a(i), b(i), co, c(i+1),s(i)); end generate; Normal: if i > 0 and i < n-1 generate S: Upl_scit port map (a(i),b(i),c(i),c(i+1),s(i)); end generate; end generate; end Arch; MI-SIM: Jiří Douša 17

18 Konfigurace strukturních schémat konfigurace - mechanismus pro: a) vzájemné přiřazení architektury a entity (při vynechání: automatický výběr posledně překládané architektury) b) přiřazení dvojice entity + architektura komponentě: jde o analogii s osazováním soklů obě výše zmíněná přiřazení lze provést na různých úrovních vývoje modelu: 1) konfigurace v deklarační části architektury (component specification) for K1: S16 use entity work. E193(A193);--individuální --osazení komponenty typu S16 dvojicí E193 + A193 for K1: S16 use entity work.e193;--přiřadí se nejmladší -- architektura, tj. přeložená jako poslední (automatic -- configuration); v případě, že komponenta a entita mají --stejné rozhraní lze toto přiřazení úplně vynechat for all: S16 use entity.worke193(a193) ; --osazení všech -- komponent typu S16 dvojicí E193 + A193 for others: S16 use entity...; --osazení zbývajících dosud -- neosazených komponent S MI-SIM: Jiří Douša 18

19 Konfigurace strukturních schémat 2) konfigurace vně architektury: cofiguration declaration - samostatná část zdrojového programu: umožňuje odložit osazení soklů a toto soustředit do jednoho místa => možnost rychlé záměny integrovaných obvodů bez nutnosti nového překladu osazované strukturní architektury Příklad : dodatečné osazení dvouúrovňové architektury Struk a její vazba na entitu deska_d1 configuration Konf1 of deska_d1 is for Struk --volba architektury Struk for K1: S16 use entity work.e193 (A193) --osazení komponenty K1 typu S16 dvojicí E193 a A193 [generic map( ) ] port map(...); --mapování param. a portů end for ; for KN: S40 use entity work. E8255 ( A8255); end for ; --osazení komponenty KN dvojicí E8255 a A8255 [generic map( ) ] port map(...); --mapování param. a portů end for ; --konec volby a osazení architektury Struk end Konf1; MI-SIM: Jiří Douša 19

20 Konfigurace strukturních schémat Příklad: dodatečné osazení dvouúrovňové architektury s dílčími vnitřními bloky BL1, BL2 configuration Konf2 of deska_2 is for Struk -- volba architektury Struk for K1: S16 use end for ; --osazení K1 (mimo blok) for K2: S40 use end for; --osazení K2.--osazení zbývajících komponent na úrovni 1 for BL1 --otevření bloku BL1 for A1:S40 use end for; --osazení uvnitř BL1 for A2:S80 use end for; --další osazení v BL1 for.end for; end for; --uzavření bloku BL1 for BL2 --otevření bloku BL2 for A1: S40 use...end for; --osazení A1 uvnitř bloku BL2 for E1: S20 use..end for; -- další osazení v bloku BL2 end for; --uzavření bloku BL2 end for; end Konf2; MI-SIM: Jiří Douša 20

21 Konfigurace strukturních schémat Příklad 3: nástin osazení víceúrovňové architektury Struk s dalšími neosazenými dílčími strukturními entitami Struk deska_d3 E193(A193) EK(AEK) EK(AEK) K1:S16 K1 K2 Kn SK1 SKm E8255(A8255) E1(SAE1) Em(SAEm) MI-SIM: Jiří Douša 21

22 Konfigurace strukturních schémat Příklad 3: osazení architektury Struk (viz minulý slide): configuration Konf3 of deska_d3 is for Struk -- volba architektury Struk for K1: S16 use entity work.e193 (A193); end for; for Kn: S40...E8255 (A8255); end for; for SK1:S80 use E1 (SAE1); for SAE1 -- otevření strukturní architektury SAE1 for K1: S20 use entity work. EK (AEK) end for; for...end for; -- další komponenta end for; -- uzavření SAE1 end for; for SKm: S80 use..em(saem); for SAEm -- otevření SAEm for K2: S20 use entity work EK (AEK) end for; for...end for; end for ; end for; end for; end Konf3; MI-SIM: Jiří Douša 22

23 Generování testovacích vstupů a) programové generování v architektuře testbench: explicitní seznam hodnot v příkazech typu data - flow: vstupy <= X 01, X 02 after 10 ns, X 03 after 20 ns,. programově vygenerovaná vstupní sekvence pomocí algoritmu v procesu buzeni: process begin -- buzení s náběžnou hranou wait until clk = 1 ; vstupy <=.; clk <= not clk after..; end process buzeni ; b) průběžné čtení hodnot vstupů v architektuře ze souboru: c) instalace generátoru vstupních průběhů vnitřní funkce generátoru: vložení dat do pomocné paměti generátoru inicializací konstanty příslušného datového typu v knihovně jednorázovým načtením pomocné paměti ze souboru adresace pomocné paměti generátoru, postupný výběr dat z pomocné paměti a buzení vstupních signálů testované entity MI-SIM: Jiří Douša 23

24 Průběžné čtení vstupů: předpoklad: hodnoty vstupů i1,i2 (typu signal i1,i2 : bit_vector ( 7 downto 0); jsou uloženy v textovém souboru test1.dat proces čte hodnoty ze souboru test1.dat a nastavuje nové hodnoty signálů i1, i2 vždy při každé náběžné hraně hodinového pulsu cti: process variable L: line; variable v1, v2: bit_vector (7 downto 0); file vstup_dat : text is "test1.dat"; -- otevření pro vstup begin while not endfile (vstup_dat) loop readline (vstup_dat, L); -- fyzické naplnění vyrov. paměti read (L, v1); read (L, v2); -- přesun do proměnných v1 a v2 wait until clk = '1'; -- pozastavení čtení i1 <= v1; i2 <= v2; --buzení signálů end loop; wait for.. ns; -- čekej na výpočet poslední odezvy modelu assert false report " konec souboru " severity failure; end process cti; -- ukončení simulace MI-SIM: Jiří Douša 24

25 Generátor vstupních průběhů Příklad: generátor vstupních průběhů; na začátku simulace naplní pamětˇ ROM ze souboru a posléze těmito údaji budí vstupy testované entity. entity Gen is generic ( max: integer ); port (clk: in bit; vyst : out bit_vector ( 7 downto 0)); end Gen; architecture AGEN of GEN is subtype byte is bit_vector ( 7 downto 0); type mem_1kb is array ( 0 to max - 1) of byte; signal ROM : mem_1kb; begin -- operační část generátoru citac: process (clk) -- periodicky čte ROM a v okamžiku -- náběžné hrany clk budí výstupy generátoru variable adr: integer :=0; begin if clk = '1' then vyst <= ROM (adr mod max); adr := adr + 1; end if; end process citac; MI-SIM: Jiří Douša 25

26 Generátor vstupních průběhů --následující proces naplní na začátku simulace pamětˇ ROM --daty z binárního souboru test2.dat. nastav_rom: process type soubor is file of byte; file vstup_dat: soubor is in "test2.dat";--otevření pro vstup variable V: byte; variable adr: integer := 0; begin while not endfile ( vstup_dat) loop read (vstup_dat, V); ROM (adr) <= V; adr := adr + 1; end loop; end AGEN; wait; -- pro jednorázové čtení soboru do paměti ROM end process nastav_rom; MI-SIM: Jiří Douša 26

27 Testování entit Příklad : testování entity E (AE) pomocí generátoru GEN entity testbench is end testbench; -- testovací entita architecture Atest of testbench is signal vstupy: bit_vector (7 downto 0); -- pro propojení GEN a E signal vystupy:..; -- odezva testované entity signal reset, clk: bit := '0'; constant per_2: time:= 10 ns; component KOMP -- pro testovanou entitu port (..); end component; component GEN -- pro generátor generic ( max: integer ); port (clk: in bit; vyst : out bit_vector ( 7 downto 0)); end component; for K: KOMP use entity work: E (AE); -- osazení testovanou entitou E for G: GEN use entity work.gen (AGEN); --osazení generátorem begin G: GEN generic map (1024) port map (clk=>clk, vyst=> vstupy); K: KOM port map (clk, vstupy, vystupy); clk <= not clk after per_2 ns; reset <= 1 after 2 ns; end Atest; MI-SIM: Jiří Douša 27

28 Syntetizovatelné konstrukce jazyka VHDL IEEE P : Draft Standard for VHDL Register Transfer Level Synthesis (syntax + sémantika pro syntézu) Nepodporované nebo ignorované konstrukce: file, alias, assert, sdílené proměnné Podporované konstrukce: library: podporována work package: podporovány: předdefinované: Standard ( mimo funkcí s nepodporovanými parametry a package TEXTIO), Std_Logic_1164, unsigned, signed, arith, uživatelem definované package: nelze deklarovat sdílené proměnné, nepodporované typy a operátory, konstrukce nepodporované v podprogramech, configuration: umožňují přiřadit architekturu entitě na nejvyšší úrovni, nelze osazovat komponenty žádné architektury, entity: generics: lze inicializovat (podporován pouze typ integer), porty nelze inicializovat, buffer je transformován na out, deklarační část není podporována, operační část ignorována, MI-SIM: Jiří Douša 28

29 Syntetizovatelné konstrukce jazyka VHDL architecture: podporováno více architektur (užita první nebo ta specifikovaná v configuration ), deklarace komponent je podporována, osazování komponent v deklarační části je ignorováno (implicitní osazení podporováno), signal, variable, constant: nejsou podporovány strážené signály (bus a register), signály a proměnné nelze inicializovat, type, subtypes: podporované typy: integer : automaticky převeden na minimální počet bitů typu unsigned nebo signed dle rozsahu v deklaraci, natural, positive, char, bit, bit_vector, boolean, Std_Logic, Std_Logic_Vector, uživatelsky definované podtypy výše uvedených typů, jednorozměrná pole (omezená i neomezená ) s elementy výše uvedených typů ( rozsahy: static integer), jednorozměrné pole jednorozměrných polí, záznamy s elementy výše uvedených typů, ignorovány: funkce pro dynamické přidělování paměti, deklarace ukazatelů a nekompletní deklarace, typy real, time, víceroměrná pole, fyzikální typy MI-SIM: Jiří Douša 29

30 Syntetizovatelné konstrukce jazyka VHDL operatory: podporovány: logické operátory, relační operátory, aritmetické operátory +, *, div, **, rem, mod, operátor &, operátory /, mod, rem mohou být aplikovány pouze pro případ kdy oba operandy jsou stat. konstanty nebo pravý operand je statická konstanta, jejíž hodnota je mocnina 2, operátor ** lze aplikovat pouze v případě, že oba operandy jsou stat. konstanty nebo levý operand je 2, operátory přiřazení ( :=, <= ) nepodporované: operátory posuvů ( sll, srl, sla, sra, rol, ror ) subroutine: parametry: objekty tříd constant, variable, signal deklarace v knihovnách nebo v deklaračních částech architektur, počet rekursí musí být static, formální parametry nelze inicializovat, násobný výskyt příkazu wait v operační části není povolen, přetěžování podprogramů je podporováno, není podporovaná funkce now a uživatelsky definované resoluční funkce, MI-SIM: Jiří Douša 30

31 Syntetizovatelné konstrukce jazyka VHDL atributes: podporované atributy: left, right, high, low, range, reverse_range, length, atributy event, stable mohou být použity pouze v příkazech if nebo wait, sequential statements: podporované příkazy: wait: povolen pouze jediný příkaz s doložkou until na začátku procesu, signálový přiřazovací příkaz ( doložka after je ignorována ) nepodporováno: klíčová slova reject,, více budoucích hodnot na pravé straně ( multiple waveform elements ), přiřazení do proměnné, volání procedury, if, case: jestliže do proměnné nebo do signálu je přiřazena hodnota pouze v některých větvích příkazů nebo čtení předchází zápisu, pak ( pokud přiřazení není podmíněno existencí hrany hodinového signálu) je generován hladinový klopný obvod, loop povolen pouze cyklus typu for..loop ( index musí být integer), next, exit, return, null, MI-SIM: Jiří Douša 31

32 Syntetizovatelné konstrukce jazyka VHDL concurrent statements: podporované příkazy: příkaz procesu (s citlivostním seznamem i bez), příkaz paralelní procedury (s jedním příkazem wait), nepodmíněné signálové přiřazovací příkazy ( vyjma klíčových slov typu transport a doložek after) podmíněné signálové přiřazovací příkazy when a with (vyjma klíčových slov typu transport a after) příkaz instalace komponenty, není podporována přímá instalace entit a architektur v operační části architektury ( viz VHDL 93) příkaz generate, příkaz bloku: nepodporovány:» porty a generics bloku,» strážené výrazy, nepodporovaný příkazy: postponed process, postponed procedure, strážené příkazy guarded, jakékoliv příkazy obsahující specifikaci hran signálů MI-SIM: Jiří Douša 32

33 Syntéza kombinačních obvodů použití paralelních příkazů typu data - flow použití procesů: citlivostní seznam musí obsahovat všechny vstupy obvodu, úplně specifikované příkazy if a case se zápisem do signálu nebo do proměnné: definují kombinační obvod => neinstalují se žádné hranově citlivé obvody, Příklady: implementace multiplexoru process ( sel, a, b ) begin case sel is when 1 = > z <= a; when 0 = > z <= b; end case; end process; process ( sel, a, b ) begin if sel = 1 then z <= a; else z <= b; end if; end process; doporučení: pro implementaci složitějšího multiplexoru preferovat příkaz case před příkazem if (souměrná kaskáda), MI-SIM: Jiří Douša 33

34 Syntéza kombinačních obvodů v procesu lze použít proměnných, vkládání hladinových klopných obvodů je možné, ale nežádoucí, situace vedoucí ke vložení latch: jde o přiřazení do signálu či proměnné v procesu, který neobsahuje žádnou specifikaci hrany, existují taková provedení procesu, při nichž nedojde k žádnému přiřazení hodnoty ( do uvedeného signálu či proměnné ) Příklady neúplného přiřazení: process ( sel, x ) begin case sel is when 1 = > z <= x; when others => null ; end case; end process; -- prázdný příkaz process ( sel, x ) begin if sel = 1 then z <= x; end if; end process; process ( a, b, c ) begin if a = 1 then Q <= 00 ; elsif b = 1 then Q <= 01 ; elsif c = 0 then Q <= 10 ; end if; end process; MI-SIM: Jiří Douša 34

35 Syntéza kombinačních obvodů způsoby eliminace neúplně specifikovaných příkazů: přiřazení implicitní hodnoty do Q na začátku procesu: process (a,b,c) begin Q <= 11 ; -- prvotní zápis if a = 1 then Q <= 00 ; elsif b = 1 then Q <= 01 ; elsif c = 0 then Q <= 10 ; end if; specifikovat odezvu pro všechny vstupní kombinace ( např. používat else místo elsif ): process (a,b,c) begin If a = 1 then Q <= 00 ; elsif b = 1 then Q <= 01 ; else Q <= 10 ; -- všechny zbývající kombinace end if; MI-SIM: Jiří Douša 35

36 Syntéza sekvenčních obvodů používání výhradně hranově citlivých klopných obvodů, specifikace pomocí procesů s citlivostním seznamem: citlivostní seznam obsahuje pouze hodinový signál, případně signál pro asynchronní nastavení klopných obvodů, syntetizér rozeznává tzv. synchronizované procesy ( clocked procesy ) aktivované hranou nějakého signálu; možné formy identifikace synchronizovaných procesů: if (nebo elsif) clk event and clk = 1 then.; if (nebo elsif) Rising_Edge (clk) then.; if (nebo elsif) Falling_Edge (clk) then.; if (nebo elsif) not clk stable and clk = 1 then.; specifikace pomocí procesu s jediným příkazem wait ( bez citlivostního seznamu ): poznámky: možné formy identifikace synchronizovaných procesů: wait until clk = 1 ; místo 1 lze použít 0, wait until clk event and clk = 1 ; wait until Rising_Edge (clk); wait until Falling_Edge(clk); wait until not clk stable and clk = 1 ; na pořad operandů v operaci and nezáleží MI-SIM: Jiří Douša 36

37 Syntéza sekvenčních obvodů podmínky vkládání hranově citlivých registrů do schématu: výskyt zápisu hodnoty do signálu za příkazem wait, či v příkazu if nebo elsif, za příkazem wait, či v příkazu if nebo elsif se vyskytuje zápis do proměnné, kterému předchází čtení dané proměnné ( hodnoty proměnných se při každé aktivaci procesu neinicializují => považují se za hodnoty registru z minulého taktu ); pokud při každé aktivaci procesu nastane zápis do proměnné dříve než její čtení, pak registr není vložen; specifikace automatů - doporučení: použít 3 samostatné procesy, 2 procesy pro popis kombinačních částí (přechodové funkce a výstupní funkce), 1 proces pro popis paměťové části, pro reprezentaci vnitřních stavů použít výčtového typu, MI-SIM: Jiří Douša 37

38 Syntéza sekvenčních obvodů Příklad: model sekvenčního obvodu 1. varianta: případ, kdy proměnná není výstupem klopného obvodu entity FF is port ( clk, reset, A, B: in bit; Q: out bit); end FF; architecture AFF of FF is signal Q_s: bit; begin process variable prom: bit ; begin wait until clk event and clk = 1 ; -- čekej na hranu if reset = 1 then Q_s <= 0 ; else pom := A and B; -- pom nebude FF Q_s <= pom; -- Q_s bude FF -- zapis do promenne pom predchazi jejimu cteni end if; end process; Q <= Q_s ; end AFF; MI-SIM: Jiří Douša 38

39 Syntéza sekvenčních obvodů 2. varianta: chybné použití proměnné => nežádoucí vložení FF entity FF is port ( clk, reset, A, B: in bit; Q: out bit); end FF; architecture AFF of FF is signal Q_s: bit; begin process variable prom: bit ; begin wait until clk event and clk = 1 ; -- čekej na hranu if reset = 1 then Q_s <= 0 ; else Q_s <= pom; -- Q_s bude FF pom := A and B; -- pom bude FF -- cteni do pom predchazelo zapisu do pom end if; end process; Q <= Q_s ; end AFF; MI-SIM: Jiří Douša 39

40 Syntéza sekvenčních obvodů Příklad: synchronní čitač mod 15; entity Counter is port ( clk, reset: in bit; count_s: out bit_vector (3 downto 0 ) ); end FF; architecture ACounter of Counter is begin process variable count_v: bit_vector (3 downto 0); begin wait until clk = 1 ; if reset = 1 then count_v := ( others => 0 ) ; -- reset čítače -- následuje větev, ve které čtení předchází zápisu => proměnn -- count_v je výstupem hranového klopného obvodu else count_v := count_v + 1 ; end if; count_s <= count_v; end process; end ACounter; -- inkrement MI-SIM: Jiří Douša 40

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

Souhrn Apendixu A doporučení VHDL

Souhrn Apendixu A doporučení VHDL Fakulta elektrotechniky a informatiky Univerzita Pardubice Souhrn Apendixu A doporučení VHDL Práce ke zkoušce z předmětu Programovatelné logické obvody Jméno: Jiří Paar Datum: 17. 2. 2010 Poznámka k jazyku

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Jazyk VHDL konstanty, signály a proměnné Jazyk VHDL paralelní a sekvenční doména Kurz A0B38FPGA

Více

Úvod do jazyka VHDL. Jan Kořenek korenek@fit.vutbr.cz. Návrh číslicových systémů 2007-2008

Úvod do jazyka VHDL. Jan Kořenek korenek@fit.vutbr.cz. Návrh číslicových systémů 2007-2008 Úvod do jazyka VHDL Návrh číslicových systémů 2007-2008 Jan Kořenek korenek@fit.vutbr.cz Jak popsat číslicový obvod Slovně Navrhněte (číslicový) obvod, který spočte sumu všech členů dané posloupnosti slovní

Více

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

Koncept pokročilého návrhu ve VHDL. INP - cvičení 2 Koncept pokročilého návrhu ve VHDL INP - cvičení 2 architecture behv of Cnt is process (CLK,RST,CE) variable value: std_logic_vector(3 downto 0 if (RST = '1') then value := (others => '0' elsif (CLK'event

Více

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

Příklady popisu základních obvodů ve VHDL Příklady popisu základních obvodů ve VHDL INP - cvičení 2 Michal Bidlo, 2008 bidlom@fit.vutbr.cz entity Circuit is port ( -- rozhraní obvodu ); end Circuit; Proces architecture Behavioral of Circuit is

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Simulace číslicových obvodů (MI-SIM) imní semestr 2/2 Jiří Douša, katedra číslicového návrhu (K83), České vysoké učení technické v Prae,

Více

Číslicové obvody a jazyk VHDL

Číslicové obvody a jazyk VHDL Číslicové obvody a jazyk VHDL Návrh počítačových systémů 2007-2008 Jan Kořenek korenek@fit.vutbr.cz Proč HW realizace algoritmu Vyšší rychlost paralelní nebo zřetězené zpracování, přizpůsobení výpočetních

Více

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

Jazyk VHDL zápis čísel, znaků a řetězců. Jazyk VHDL základní datové typy a operátory. Kurz A0B38FPGA Aplikace hradlových polí ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Jazyk VHDL zápis čísel, znaků a řetězců Jazyk VHDL základní datové typy a operátory Kurz

Více

14. Složitější konstrukce

14. Složitější konstrukce Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš

Více

Programovací jazyk Pascal

Programovací jazyk Pascal Programovací jazyk Pascal Syntaktická pravidla (syntaxe jazyka) přesná pravidla pro zápis příkazů Sémantická pravidla (sémantika jazyka) pravidla, která každému příkazu přiřadí přesný význam Všechny konstrukce

Více

1 Stručný popis jazyku VHDL

1 Stručný popis jazyku VHDL 1 Stručný popis jazyku VHDL Jazyk VHDL (Very High Speed Integrated Circuits Hardware Description Language) je spolu s jazykem Verilog HDL jedním z nejpoužívanějším jazykům pro popis hardwarových struktur

Více

Chapter Základní principy simulace :).

Chapter Základní principy simulace :). Chapter 1 Simulace číslicových obvodů 1.1 Základní principy simulace V doporučeních firmy Xilinx, kde píší jakým způsobem navrhovat: pozor, vyhněte se asynchronnímu návrhu, pokud se tomu nevyhnete, zlikviduje

Více

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Realizace kombinačních logických funkcí Realizace kombinační logické funkce = sestavení zapojení obvodu, který ze vstupních proměnných vytvoří výstupní proměnné

Více

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Klopné obvody jsou nejjednodušší sekvenční součástky Záleží na předcházejícím stavu Asynchronní klopné obvody reagují na změny vstupu okamžitě Synchronní

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

Vývoj VHDL. Verilog HDL

Vývoj VHDL. Verilog HDL Popis systémů pomocí VHDL Vývoj VHDL HDL - Hardware Description Language VHDL - Very High Speed Integrated Circuits HDL Vývoj od roku 1983 v rámci projektu VHSIC 1987 - standard IEEE 1076-1987 1993 - revize

Více

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.

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. 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

Více

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Stavové automaty enkódování Proces, který rozhoduje kolik paměťových prvků bude využito v paměťové části. Binární enkódování je nejpoužívanější. j počet stavů

Více

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

Vzorový příklad. Postup v prostředí ISE. Zadání: x 1 x 0 y Rovnicí y = x 1. Přiřazení signálů: Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí

Více

12. VHDL pro verifikaci - Testbench I

12. VHDL pro verifikaci - Testbench I Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 12. VHDL pro verifikaci - Testbench I Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních

Více

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

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 Vzorový příklad. Zadání: Na přípravku realizujte kombinační obvod představující funkci logického součinu dvou vstupů. Mající následující pravdivostní tabulku. x 1 x 0 y 0 0 0 0 1 0 1 0 0 1 1 1 Rovnicí

Více

Návrh ovládání zdroje ATX

Návrh ovládání zdroje ATX Návrh ovládání zdroje ATX Zapínání a vypínání PC zdroj ATX se zapíná spojením řídicího signálu \PS_ON se zemí zapnutí PC stiskem tlačítka POWER vypnutí PC (hardwarové) stiskem tlačítka POWER a jeho podržením

Více

Návrh. číslicových obvodů

Návrh. číslicových obvodů Návrh číslicových obvodů SW Aritmetika HW Periférie CPU function AddSub(a,b,s); var c; a b k k a+b mpx c if (s==1) c=a+b; else c=a-b; a-b return c; End; PAMĚŤ s Princip: univerzální stroj Výhoda: univerzalita

Více

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Základní invertor v technologii CMOS dva tranzistory: T1 vodivostní kanál typ N T2 vodivostní kanál typ P při u VST = H nebo L je klidový proud velmi malý

Více

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

Sčítačky Válcový posouvač. Demonstrační cvičení 6 Sčítačky Válcový posouvač INP Demonstrační cvičení 6 Poloviční sčítačka (Half Adder) A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 A B HA S C S: A C: A 0 1 0 0 1 0 B 0 1 B S

Více

2. Entity, Architecture, Process

2. Entity, Architecture, Process Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15 KAPITOLA 1 Úvod do programo vání v jazyce C++ 17 Základní pojmy 17 Proměnné a konstanty 18 Typy příkazů 18 IDE integrované vývojové

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

1. Seznamte se s výukovou platformou FITkit (http://merlin.fit.vutbr.cz/fitkit/).

1. Seznamte se s výukovou platformou FITkit (http://merlin.fit.vutbr.cz/fitkit/). Zadání: Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Technika personálních počítačů, cvičení ITP FITkit Řízení 7mi-segmentového displeje Úloha č. 3. 1. Seznamte se s výukovou

Více

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

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7 Pascal Katedra aplikované kybernetiky Ing. Miroslav Vavroušek Verze 7 Proměnné Proměnná uchovává nějakou informaci potřebnou pro práci programu. Má ve svém oboru platnosti unikátní jméno. (Připadne, musí

Více

7. Popis konečného automatu

7. Popis konečného automatu Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš

Více

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

Násobičky, Boothovo překódování. Demonstrační cvičení 7 Násobičky, Boothovo překódování INP Demonstrační cvičení 7 Obsah Princip násobení Sekvenční a kombinační násobička Kombinační násobičky ve VHDL Násobení se znaménkem (FX) Boothovo překódování, VHDL Násobení

Více

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

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky Vyučovací hodina 1vyučovací hodina: Opakování z minulé hodiny Nová látka Procvičení nové látky Shrnutí 5 min 20 min 15 min 5 min 2vyučovací hodiny: Opakování z minulé hodiny Nová látka Procvičení nové

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Digitální

Více

Sdílení dat mezi podprogramy

Sdílení dat mezi podprogramy Sdílení dat mezi podprogramy Datové objekty mohou být mezi podprogramy sdíleny pomocí ne-lokálních referenčních prostředí, která jsou vytvářena na základě æ explicitních modifikací (formální parametry

Více

Architektura počítačů Logické obvody

Architektura počítačů Logické obvody Architektura počítačů Logické obvody http://d3s.mff.cuni.cz/teaching/computer_architecture/ Lubomír Bulej bulej@d3s.mff.cuni.cz CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics 2/36 Digitální

Více

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.

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. Informatika 10. 9. 2013 Jméno a příjmení Rodné číslo 1) Napište algoritmus pro rychlé třídění (quicksort). 2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL

PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL PROGRAMOVATELNÁ LOGICKÁ POLE A JAZYKY HDL Doc. Ing. Jaromír Kolouch, CSc. Ústav radioelektroniky FEKT VUT v Brně, Purkyňova 118, kolouch@feec.vutbr.cz Přednáška má přinést informaci o současném stavu v

Více

Princip funkce počítače

Princip funkce počítače Princip funkce počítače Princip funkce počítače prvotní úlohou počítačů bylo zrychlit provádění matematických výpočtů první počítače kopírovaly obvyklý postup manuálního provádění výpočtů pokyny pro zpracování

Více

Struktura a architektura počítačů (BI-SAP) 4

Struktura a architektura počítačů (BI-SAP) 4 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 4 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

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

Pokročilé využití jazyka VHDL. Pavel Lafata Pokročilé využití jazyka VHDL Pavel Lafata Autor: Pavel Lafata Název díla: Pokročilé využití jazyka VHDL Zpracoval(a): České vysoké učení technické v Praze Fakulta elektrotechnická Kontaktní adresa: Technická

Více

Logické obvody 10. Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita Logické obvody - 10 hazardy 1

Logické obvody 10. Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita Logické obvody - 10 hazardy 1 Logické obvody 10 Neúplné čítače Asynchronní čítače Hazardy v kombinačních obvodech Metastabilita 6.12.2007 Logické obvody - 10 hazardy 1 Neúplné čítače Návrh čítače M5 na tabuli v kódu binárním a Grayově

Více

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

Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3) VHAD - Návod k VHDL hadovi Obsah Příklad č. 1 Přepis informace ze vstupů (SW0 až SW3) na ledky (LEDG0 až LEDG3)... 1 Příklad č. 2 Blikající LED... 3 Příklad č. 3 Časovač 1s... 4 Příklad č. 4 Had 8 x LED

Více

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu: Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury

Více

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

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem Test prvočíselnosti Úkol: otestovat dané číslo N, zda je prvočíslem 1. zkusit všechny dělitele od 2 do N-1 časová složitost O(N) cca N testů 2. stačí zkoušet všechny dělitele od 2 do N/2 (větší dělitel

Více

LabView jako programovací jazyk II

LabView jako programovací jazyk II LabView jako programovací jazyk II - Popis jednotlivých funkcí palety Function II.část - Funkce Numeric, Array, Cluster Ing. Martin Bušek, Ph.D. Práce s daty typu NUMERIC Numerické funkce obsahuje funkce

Více

Struktura a architektura počítačů (BI-SAP) 3

Struktura a architektura počítačů (BI-SAP) 3 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 3 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

Struktura a architektura počítačů (BI-SAP) 10

Struktura a architektura počítačů (BI-SAP) 10 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 10 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii

Více

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

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D. Digitální obvody Doc. Ing. Lukáš Fujcik, Ph.D. Obvody s třístavovým výstupem dva tranzistory: vodivostní kanál typ N vodivostní kanál typ P X CS 3 stavový sa výstup Y P logika X 3 stavový výstup W N CS

Více

Struktura programu v době běhu

Struktura programu v době běhu Struktura programu v době běhu Miroslav Beneš Dušan Kolář Struktura programu v době běhu Vztah mezi zdrojovým programem a činností přeloženého programu reprezentace dat správa paměti aktivace podprogramů

Více

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig

3.7.5 Znaménkové operátory Násobící operátory Rùzné operátory Základní objekty Konstanty Sig OBSAH Úvod 11 Signály v èíslicových systémech 13 2.1 Dvojstavové signály... 14 2.2 Tøístavové signály... 16 2.3 Dynamické parametry èíslicových signálù... 16 Jazyk VHDL 19 3.1 Historie, souèasnost, budoucnost

Více

Cíle. Teoretický úvod

Cíle. Teoretický úvod Předmět Ú Úloha č. 7 BIO - igitální obvody Ú mikroelektroniky Sekvenční logika návrh asynchronních a synchronních binárních čítačů, výhody a nevýhody, využití Student Cíle Funkce čítačů a použití v digitálních

Více

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické

Více

SEKVENČNÍ LOGICKÉ OBVODY

SEKVENČNÍ LOGICKÉ OBVODY Sekvenční logický obvod je elektronický obvod složený z logických členů. Sekvenční obvod se skládá ze dvou částí kombinační a paměťové. Abychom mohli určit hodnotu výstupní proměnné, je potřeba u sekvenčních

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

Více

Systém řízení sběrnice

Systém řízení sběrnice Systém řízení sběrnice Sběrnice je komunikační cesta, která spojuje dvě či více zařízení. V určitý okamžik je možné aby pouze jedno z připojených zařízení vložilo na sběrnici data. Vložená data pak mohou

Více

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz

Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Ukazka knihy z internetoveho knihkupectvi www.kosmas.cz Upozornění pro čtenáře a uživatele této knihy Všechna práva vyhrazena. Žádná část této tištěné či elektronické knihy nesmí být reprodukována a šířena

Více

3. Aritmetika nad F p a F 2

3. Aritmetika nad F p a F 2 3. Aritmetika nad F p a F 2 m Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií České vysoké učení technické v Praze c Martin Novotný, 2011 MI-BHW Bezpečnost a technické

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Metody přidělování paměti Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě Důležitá hlediska jazykových konstrukcí: Dynamické typy Dynamické

Více

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

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 Denotační sémantika programovacího jazyka doc. Dr. Ing. Miroslav Beneš katedra informatiky, A-1007 59 732 4213 Obsah přednášky Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup

Více

O datových typech a jejich kontrole

O datových typech a jejich kontrole .. O datových typech a jejich kontrole Programovací techniky doc. Ing. Jiří Rybička, Dr. ústav informatiky PEF MENDELU v Brně rybicka@mendelu.cz Typová kontrola Programovací techniky O datových typech

Více

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic. Základní principy konstrukce systémové sběrnice - shrnutí Shrnout základní principy konstrukce a fungování systémových sběrnic. 1 Co je to systémová sběrnice? Systémová sběrnice je prostředek sloužící

Více

Zápis programu v jazyce C#

Zápis programu v jazyce C# Zápis programu v jazyce C# Základní syntaktická pravidla C# = case sensitive jazyk rozlišuje velikost písmen Tzv. bílé znaky (Enter, mezera, tab ) ve ZK překladač ignoruje každý příkaz končí ; oddělovač

Více

Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač

Y36SAP 2007 Y36SAP-4. Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač Y36SAP 27 Y36SAP-4 Logické obvody kombinační a sekvenční používané v číslicovém počítači Sčítačka, půlsčítačka, registr, čítač 27-Kubátová Y36SAP-Logické obvody typické Často používané funkce Majorita:

Více

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018 Informační technologie 1 - Doporučená doba zpracování: 40 minut 1) Termín DCL v relačně databázové technologii

Více

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu

Organizace předmětu, podmínky pro získání klasifikovaného zápočtu ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Organizace předmětu, podmínky pro získání klasifikovaného zápočtu Kurz A0B38FPGA Aplikace

Více

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

Digitální technika. Jazyk VHDL, základy návrhu. Ing. Jakub Št astný, Ph.D. 1 Digitální technika Jazyk VHDL, základy návrhu Ing. Jakub Št astný, Ph.D. 1 1 stastnj1@seznam.cz FPGA laboratory Department of Circuit Theory, FEE CTU Prague Technická 2, Praha 6, 166 27 http://amber.feld.cvut.cz/fpga

Více

Operace ALU. INP 2008 FIT VUT v Brně

Operace ALU. INP 2008 FIT VUT v Brně Operace ALU INP 2008 FIT VUT v Brně 1 Princip ALU (FX) Požadavky: Logické operace Sčítání (v doplňkovém kódu) Posuvy/rotace Násobení ělení B A not AN OR XOR + Y 1) Implementace logických operací je zřejmá

Více

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

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

PROGRAMOVATELNÉ LOGICKÉ OBVODY

PROGRAMOVATELNÉ LOGICKÉ OBVODY PROGRAMOVATELNÉ LOGICKÉ OBVODY (PROGRAMMABLE LOGIC DEVICE PLD) Programovatelné logické obvody jsou číslicové obvody, jejichž logická funkce může být programována uživatelem. Výhody: snížení počtu integrovaných

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

1 z 16 11.5.2009 11:33 Test: "CIT_04_SLO_30z50" Otázka č. 1 U Mooreova automatu závisí okamžitý výstup Odpověď A: na okamžitém stavu pamětí Odpověď B: na minulém stavu pamětí Odpověď C: na okamžitém stavu

Více

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

Úvod do problematiky obvodů FPGA pro integrovanou výuku VUT a VŠB-TUO FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Úvod do problematiky obvodů FPGA pro integrovanou výuku VUT a VŠB-TUO Garant předmětu: Ing. Michal Kubíček, Ph.D. Autoři

Více

4. Elektronické logické členy. Elektronické obvody pro logické členy

4. Elektronické logické členy. Elektronické obvody pro logické členy 4. Elektronické logické členy Kombinační a sekvenční logické funkce a logické členy Elektronické obvody pro logické členy Polovodičové paměti 1 Kombinační logické obvody Způsoby zápisu logických funkcí:

Více

Praktické úlohy- 2.oblast zaměření

Praktické úlohy- 2.oblast zaměření Praktické úlohy- 2.oblast zaměření Realizace praktických úloh zaměřených na dovednosti v oblastech: Měření specializovanými přístroji, jejich obsluha a parametrizace; Diagnostika a specifikace závad, měření

Více

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Číselné vyjádření hodnoty. Kolik váží hrouda zlata? Čísla a logika Číselné vyjádření hodnoty Au Kolik váží hrouda zlata? Dekadické vážení Když přidám osmé závaží g, váha se převáží => závaží zase odeberu a začnu přidávat závaží x menší 7 závaží g 2 závaží

Více

NPRG030 Programování I, 2015/16 1 / :25:32

NPRG030 Programování I, 2015/16 1 / :25:32 NPRG030 Programování I, 2015/16 1 / 21 22. 10. 2015 13:25:32 Podprogramy Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X

Více

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

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011 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íce

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

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu } 5. Operátor čárka, - slouží k jistému určení pořadí vykonání dvou příkazů - oddělím-li čárkou dva příkazy, je jisté, že ten první bude vykonán dříve než příkaz druhý. Např.: i = 5; j = 8; - po překladu

Více

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Kritéria hodnocení praktické maturitní zkoušky z databázových systémů Otázka č. 1 Datový model 1. Správně navržený ERD model dle zadání max. 40 bodů teoretické znalosti konceptuálního modelování správné

Více

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Činnost CPU Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus Hodinový cyklus CPU je synchronní obvod nutné hodiny (f CLK ) Instrukční cyklus IF = doba potřebná

Více

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů. Základní symboly - písmena A B C Y Z a b c y z - číslice 0 1 2 9 - speciální symboly + - * / =., < > = a další - klíčová slova and array begin case const a další Klíčová slova jsou chráněnými útvary,

Více

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

Kódy pro odstranění redundance, pro zabezpečení proti chybám. Demonstrační cvičení 5 INP Kódy pro odstranění redundance, pro zabezpečení proti chybám Demonstrační cvičení 5 INP Princip kódování, pojmy Tady potřebujeme informaci zabezpečit, utajit apod. zpráva 000 111 000 0 1 0... kodér dekodér

Více

Pohled do nitra mikroprocesoru Josef Horálek

Pohled do nitra mikroprocesoru Josef Horálek Pohled do nitra mikroprocesoru Josef Horálek Z čeho vycházíme = Vycházíme z Von Neumannovy architektury = Celý počítač se tak skládá z pěti koncepčních bloků: = Operační paměť = Programový řadič = Aritmeticko-logická

Více

Strojový kód. Instrukce počítače

Strojový kód. Instrukce počítače Strojový kód Strojový kód (Machine code) je program vyjádřený v počítači jako posloupnost instrukcí procesoru (posloupnost bajtů, resp. bitů). Z hlediska uživatele je strojový kód nesrozumitelný, z hlediska

Více

1. D Y N A M I C K É DAT O V É STRUKTUR Y

1. D Y N A M I C K É DAT O V É STRUKTUR Y 1. D Y N A M I C K É DAT O V É STRUKTUR Y Autor: Petr Mik Abychom se mohli pustit do dynamických datových struktur, musíme se nejdřív podívat na datový typ ukazatel. 1. D AT O V Ý TYP U K A Z AT E L Datové

Více

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

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. PL/SQL Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd. Rozšířením jazyka SQL o proceduralitu od společnosti ORACLE je jazyk

Více

Programování v C++ 1, 1. cvičení

Programování v C++ 1, 1. cvičení Programování v C++ 1, 1. cvičení opakování látky ze základů programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 2 Shrnutí procvičených

Více

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

Více

Programování v C++, 2. cvičení

Programování v C++, 2. cvičení Programování v C++, 2. cvičení 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled 1 Operátory new a delete 2 3 Operátory new a delete minule

Více