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 5: VHDL- atributy signálů, funkce a procedury Stručný obsah: budiče signálů, atributy signálů, příkaz assert, pasivní procesy, odpojování budičů v sekvenčním prostředí, sdílené proměnné, procedury a funkce, formální a aktuální parametry, přetěžování funkcí a operátorů, resoluční funkce.

2 Budiče signálů sdruženy se signálovými přiřazovacími příkazy ( nikoliv s deklaracemi signálů), vytvoření: v průběhu zpracování modelu a to pro každý element (v případě pole), každý process vytvoří budič pro každý uvnitř buzený signál, komponenta vytvoří budič pro každý aktuální výstupní port při své instalaci, příkaz paralelní procedury vytvoří budič pro každý aktuální výstupní parametr třídy signal, paralelní přiřazovací signálový příkaz vytvoří budič pro signál na levé straně, počáteční hodnota budiče = počáteční hodnotě přidruženého signálu ( implicitně nebo explicitně definované), syntetizátory ignorují počáteční nastavení portů a signálů, budič existuje po celou dobu simulace bez ohledu zda k přiřazení dojde či ne, MI-SIM Jiří Douša 2

3 Atributy signálů transakce (transaction) - přiřazení nové hodnoty signálu (bez ohledu zda dochází k její změně) přesněji dvojice: hodnota model. času + hodnota signálu budič signálu plánuje transakce; pro hodnoty modelového času rovné časům těchto transakcí nastává aktivita daného budiče událost (event) - transakce doprovázená změnou hodnoty signálu atributy: funkce: poskytují některé informace o transakcích nebo událostech na zvoleném signálu signály: druhotně odvozené od událostí či transakcí zvolených signálů; jsou použitelné opět jako signály funkce: s active...vrací hodnotu true (typ boolean), pokud je v daném simulačním cyklu signál s aktivní (nastala transakce) s last_active.vrací časový interval (hodnota typu time), který uplynul od poslední transakce na signálu s; pokud transakce nikdy nenastala, má funkce hodnotu MI-SIM Jiří Douša 3

4 Atributy signálů s event...vrací hodnotu true pokud v daném simulačním cyklu nastala změna hodnoty signálu s s last_event. vrací časový interval (hodnoty typu time), který uplynul od poslední události na signálu; pokud událost nikdy nenastala je hodnota funkce 0, s last_value..vrací hodnotu signálu s před poslední událostí; pokud událost nikdy nenastala, je hodnota funkce rovna současné hodnotě signálu, signály: s delayed..vytvoří nový signál stejného typu, ale zpožděný o delta zpoždění, s delayed (T).vytvoří nový signál stejného typu, ale zpožděný o hodnotu T, s stable.nový signál typu boolean, který má hodnotu true, pokud v daném simulačním cyklu nenastala na signálu s žádná událost, MI-SIM Jiří Douša 4

5 Atributy signálů s stable (T).nový signál typu boolean, který má hodnotu true pokud na signálu s nenastala během intervalu T žádná událost; v opačném případě má hodnotu false, s quiet..nový signál typu boolean, který má hodnotu true, pokud na signálu s v daném simulačním cyklu nenastala žádná transakce; v opačné případě má hodnotu false, s quiet (T)..nový signál typu boolean, který má hodnotu true pokud na signálu s nenastala během intervalu T žádná transakce, s transaction nový signál typu bit, který mění svou hodnotu při každém výskytu transakce na signálu s; nová hodnota je negací hodnoty předchozí, MI-SIM Jiří Douša 5

6 Atributy signálů Příklad použití: test předstihu a přesahu clk DATA předstih přesah a) individuální test předstihu idea: if náběžná hrana clk then if D je stabilní (v intervalu předstih) then OK else porušení př. způsob realizace : if clk = 1 and clk event then if not D stable (predstih) then porušení př. end if; end if; b) společný test: if clk delayed (presah) = 1 and clk delayed (presah) event then end if; if not D stable (predstih + presah) then porušení předstihu end if; MI-SIM Jiří Douša 6

7 Příkaz assert účel: test splnění nějaké podmínky (v okamžiku provedení příkazu) syntax: assert <podmínka> report <zpráva> severity < error level>; 4 úrovně chyb rozlišují vážnost situace- lze nastavit na kteroukoliv : note warning error failure effekt: pokud není splněná podmínka pak dojde k výstupu zprávy, případně zastavení simulace Příklady použití: 1) assert now <= 100 ms report vyčerpání času -konec simulace severity failure; -- ukončení simulace 2) if clk = 1 and clk event then assert D stable (predstih) report porušení předstihu severity warning; -- varování end if; Poznámka: nutné zajistit správný okamžik provedení!!!!!!!! MI-SIM Jiří Douša 7

8 Pasivní procesy ve VHDL nemají žádný výstup (kontrolní účely) lze je použít i v operační části entity Příklad: entity E is port (signal clk : bit;..); -- následuje operační část entity process (clk delayed (presah)) -- synchronizace --následuje sekvenční příkaz assert vložený do příkazu if if (clk delayed (presah) = 1 then assert (D stable (predstih + presah)) report nedodrzen predstih nebo presah severity error; end if; end process; end E; MI-SIM Jiří Douša 8

9 Synchronizace procesů příklad: producent - konsument : verse 1: producent konsument příprava dat BUF plnění bufferu producent konsument čtení bufferu zpracování dat Poznámka: zde je synchronizace pouze v jednom směru, proto musí být splněna podmínka: konsument je rychlejší než producent MI-SIM Jiří Douša 9

10 Producent - konsument: verse 1 prod: process -- tento proces je nezávislý na vnějších -- signálech wait for.; -- doba pro přípravu dat a plnění -- bufferu BUF <=..; --fyzické plnění bufferu end process; kons: process variable I: integer; wait on BUF transaction; --čeká na buffer wait for ; --doba pro výběr bufferu a pro --zpracování dat I:= BUF; -- fyzický výběr z bufferu end process; MI-SIM Jiří Douša 10

11 Producent - konsument: synchronizace producent konsument OFFER příprava dat ACK vyprazdňování bufferu plnění bufferu zpracování dat MI-SIM Jiří Douša 11

12 Producent - konsument: návrh verse 2 OFFER signály: producent ACK BUF konsument problém dvojího buzení signálů OFFER a ACK oba signály lze koncipovat jako pulsy, ale musí být očekávány přijímacím procesem producent příprava plnění. příprava plnění OFFER ACK OFFER konsument vyprázdnění zpracování podmínka: doba přípravy dat < doba vyprazdňování doba zpracování dat < doba plnění bufferu MI-SIM Jiří Douša 12

13 Producent - konsument: verse 2 prod: process variable start: boolean:= true; wait for.ns; -- příprava dat if not start then wait until ACK; else start := false; end if; wait for...ns; --čeká během plnění bufferu BUF <=...; OFFER <= true, false after 1 ns; -- puls OFFER end process prod; kons: process variable i:integer; wait until OFFER; wait for.ns; -- vyprazdňování bufferu I <= BUF; ACK <= true, false after 1 ns; -- puls ACK wait for.ns; -- zpracování dat end process kons; MI-SIM Jiří Douša 13

14 Producent - konsument: návrh verse 3 použití klopného obvodu natavovaného, resp. nulovaného z procesu producent, resp. konsument BUFFER producent konsument OFFER RS FF ACK NDATA producent přípr. pl. přípr. pl. konsument OFFER ACK NDATA vypr. zpr MI-SIM Jiří Douša 14

15 Producent - konsument: verse 3 prod: process wait for.ns; -- příprava dat if NDATA then wait until not NDATA; end if wait for..ns; -- plnění bufferu BUF<= ; OFFER<= true, false after 1 ns; end process prod; kons: process variable I: integer; if not NDATA then wait until NDATA; end if; wait for.ns; --čtení dat z bufferu I:= BUF; ACK<= true, false after 1 ns; wait for..ns; --zpracování dat end process kons; RS_FF: process (OFFER, ACK) if OFFER event and OFFER=true then NDATA <= true; end if; if ACK event and ACK =true then NDATA <= false; end if; end process; MI-SIM Jiří Douša 15

16 Producent - konsument: návrh verse 4 BUF producent konsument ano ne NDATA pouze indikace připravených dat problémy: 2 budiče signálu NDATA (v procesu producent i konsument) => nezbytná resoluční funkce lze využít: a) odpojování signálů po zápisu hodnoty (je potřeba pamatovat poslední uloženou hodnotu ) b) koncipovat objekt NDATA jako sdílenou proměnnou (pouze ve VHDL-93) MI-SIM Jiří Douša 16

17 Odpojování budičů v procesu budiče lze odpojovat pouze od strážených signálů zasláním hodnoty null strážený (quarded) signál: jde o rozhodovaný (resolved) signál doplněný klíčovým slovem register nebo bus - další viz později signal c : std_logic register := '0'; -- strážený signál P1: process c <= null; -- odpojení budiče wait for 1 ns; c <= '1'; -- zápis hodnoty do signálu wait for 0 ns; c <= null; -- odpojení budiče end process P1; P2: process c <= null; wait for 2 ns; c <= '0'; wait for 0 ns; c<= null; end proces P1; P1: P2: 1 X ns MI-SIM Jiří Douša 17

18 Producent konsument: verse 4 signal NDATA: std_logic register := '0 -- strážený signál prod: process NDATA <= null; -- odpojení budiče wait for...ns; -- příprava dat if NDATA = '1' then wait until NDATA = '0'; end if; wait for... ns; -- doba plnění bufferu BUF <=.; -- skutečné plnění bufferu NDATA <= '1'; wait for 0 ns; --indikace dat end process; kons: process variable i : bit; NDATA <= null; --odpojení budiče if NDATA = '0' then wait until NDATA = '1'; end if; wait for... ns; -- doba vyprazdňování bufferu i :=.; -- čtení bufferu NDATA <= '0'; wait for 0 ns; -- zrušení indikace dat NDATA <= null; -- odpojení budiče wait for... ns; -- zpracování dat end process; MI-SIM Jiří Douša 18

19 Sdílené proměnné VHDL - 93: zavádí sdílené proměnné: mohou zajistit přenos hodnot mezi procesy nejsou dostupné v paralelním prostředí a nemohou být začleněny do citlivostních seznamů procesů Producent - konsument: návrh verse 5 producent BUF konsument NDATA tik sdílená proměnná producent konsument NDATA tik BUF příprava dat plnění BUF MI-SIM Jiří Douša 19

20 Producent - konsument: verse 5 shared variable NDATA: bolean:= false; --do této proměnná mohou zapisovat oba procesy; zde je použita k pozastavení rychlejšího procesu signal BUF: integer; signal tik: bit; --signál BUF, resp. tik slouží k aktivaci procesu kons, resp. prod prod: process wait for..ns; if NDATA then wait on tik; end if; wait for.ns; BUF <= ; NDATA := true; end process; -- příprava dat --čeká na tik --plnění kons: process variable I: integer; if not NDATA then wait on BUF transaction; end if; wait for ; --doba výběru z bufferu I:=BUF; NDATA:= false; tik <= not tik; -- aktivace případně čekajícího producenta wait for.; -- doba zpracování end process; MI-SIM Jiří Douša 20

21 Podprogramy uvnitř představují sekvenční prostředí inicializace proměnných: implicitní nebo explicitní, (na rozdíl od procesu při každém volání) je možné přetěžování podprogramů (overloading) podprogramy lze volat rekursivně je možné přetěžování operátorů (jako deklarace funkcí se jménem operátoru) je-li formálním parametrem pole (např. bit_vector) není třeba specifikovat rozměr nedovolují vedlejší efekty možné deklarace: v knihovně (package) : po zpřístupnění možno použít v různých architekturách, v entitě: dostupná ve všech architekturách dané entity, v architektuře: lokální v dané architektuře, v procesu: lokální v procesu procedura : parametry: signály, proměnné, konstanty volání: sekvenční: v procesu nebo jiné proceduře (parametry: signály, proměnné i konstanty) paralelní: v paralelním prostředí (parametry: pouze signály a konstanty) MI-SIM Jiří Douša 21

22 Procedury Přiklad: násobička nezáporných čísel pro typ std_logic architecture Arch of..; signal a,b: std_logic_vector ( 3 downto 0 ); signal soucin: std_logic_vector ( 7 downto 0 ) :=" "; procedure NAS (signal a, b : in std_logic_vector (3 downto 0); signal soucin : out std_logic_vector (7 downto 0) ) is variable res, pom: std_logic_vector ( 7 downto 0 ); lok. prom. res := " "; -- pro kumulaci částečných součtů for i in 0 to 3 loop pom := " "; --pro vytváření jednotlivých částeč. součtů if b(i) = '1' then pom (( i+3 ) downto i) := a; end if; res := res + pom; -- tento operátor vyžaduje dat. typ std_logic end loop; soucin <= res; [ return ]; end procedure ; -- následuje paralelní prostředí..; NAS (a,b, soucin); --paralelní volání procedury..; end Arch; MI-SIM Jiří Douša 22

23 Procedury Příklad: násobička pro datový typ bit_vector procedure NAS ( signal a, b : in bit_vector (3 downto 0); signal soucin : out bit_vector (7 downto 0) ) variable res, pom : bit_vector ( 7 downto 0 ); variable c, s: bit; -- přenos a jednobitový součet is res := " "; -- pro kumulaci částečných součtů L1: for i in 0 to 3 loop pom := " "; --pro vytváření časteč. součinů if b(i) = '1 then pom (( i+3 ) downto i) := a; end if; c : = 0 ; -- přenos mezi binárními řády L2: for j in 0 to 7 loop --realizace seriové sčítačky s := res(j) xor pom (j) xor c ; -- součet j-tého řádu c := ( res(j) and pom (j) ) -- přenos pro j+1 řád or ( pom (j) and c) or ( res(j) and c ); res (j) := s; -- jeden bit částečného součtu end loop L2; -- konec přičtení částečného součtu end loop L1; soucin <= res; end procedure NAS; MI-SIM Jiří Douša 23

24 Inicializace formálních parametrů procedury nelze inicializovat: formální parametry třídy signal, formální parametry třidy variable módu out nebo inout, Příklad: procedure P ( constant C1: in bit := 0 ; -- OK constant C2: out bit := 1 ; -- error : chybný mód constant C3: inout bit := 0 ; -- error : chybný mód variable V1: in bit := 0 ; -- OK variable V2: out bit := 0 ; -- error : nelze inicializovat variable V3: inout bit := 0 ; -- error signal S1: in bit := 0 ; -- error signal S2: out bit := 0 ; -- error signal S3: inout bit := 0 ; ) error v případě inicializovaného parametru třídy variable a módu in lze aktuální parametr při volání podprogramu vynechat, hodnota aktuálního parametru má větší prioritu než hodnota příslušného inicializovaného parametru třídy variable a módu in, MI-SIM Jiří Douša 24

25 Atributy aktuálních signálů pokud je aktuálním parametrem podprogramu signál pak v operačních částech těchto podprogramů nejsou dostupné ty atributy aktuálních parametrů, které jsou třídy signal, jako aktuální parametr procedury je možné použít některý z atributů signálu: Příklad: process ( clk ) -- flip-flop -- test předstihu koncipujeme voláním procedury test: if (clk event and clk = 1 ) then endif ; end process; test ( D = > D ); Q < = D after 4 ns; 1) nepřípustná varianta procedury test: procedure test ( signal D : in bit ) is assert D stable ( 8 ns ) error: atribut signál report severity..; end test; MI-SIM Jiří Douša 25

26 Atributy aktuálních signálů 2) přípustná varianta procedury test: procedure test ( signal D : in bit ) is assert not D last_event < 8 ns -- OK: jde o atribut funkci report severity..; end test; Příklad: process (clk) -- flip-flop if (clk event and clk = 1 ) then -- atribut signálu D je použit jako aktuální parametr test ( D = > D stable ( 8 ns) ); Q < = D after 4 ns; endif ; end process; procedure test ( signal D : boolean ) is assert D report severity..; end test; MI-SIM Jiří Douša 26

27 Formální a aktuální parametry podprogramů třída FP mód FP třída AP omezení AP signal in signal statický signal inout viz. 1), 2) out variable in variable, out file (pouze VHDL 87) inot constant in signal, variable, literal, konstantní výraz file (VHDL 93) in file out 1) statický signal je-li formálním parametrem signal typu pole, pak dimenze AP musí být určena v průběhu zpracování modelu 2) při vzájemném mapování aktuálních a formálních parametrů třídy signal nelze použít žádnou funkci aplikovanou na formální část nebo na aktuální část, 3) je-li FP omezené pole, pak rozměr AP musí souhlasit s rozměrem FP 4) AP musí být typu jako FP nebo musí být ve vztahu typu a podtypu, 5) je-li FP typu pole, pak při mapování na AP lze toto provést tak, že pro dílčí řezy FP lze použít více aktuálních parametrů př.: Proc ( s(7) =>, s(6 downto 0 ) => ); MI-SIM Jiří Douša 27

28 Formální a aktuální parametry podprogramů Příklad: entity E is ( generic g1: integer := 3 ) end E; architecture A of E is procedure P1 ( signal S: inout bit_vector ) is.end P1; function F1 ( signal R: in bit_vector ) return bit_vector is..end P1; signal S1: integer := 4; -- přiřazení provedeno na začátku simulace! signal S2: bit_vector ( 0 to 7); P1 ( S => S2 ( 0 to 7 ) ); ; -- OK P1 ( S => S2 ( 0 to S1) ); -- error: řez signálu S2 není static -- S1 není vyhodnocen při analýze nebo při zpracování entity ; P1 ( S => S2 ( 0 to g1) ); ; P1 ( S => F1 ( R =>S2 ) ); ; end A; -- OK, g1 je static -- error: funkce aplikovaná na AP -- třídy signal MI-SIM Jiří Douša 28

29 Přiřazování budičů pro každý formální parametr třídy signál, který je módu out nebo inout se v podprogramu vytvoří budič, při každém volání podprogramu se budič takového formálního signálu sloučí s budičem aktuálního parametru třídy signal => přiřazení hodnoty formálnímu signálu = přiřazení hodnoty příslušnému aktuálnímu signálu, Důsledek pro buzení nelokálních signálů uvnitř procedur: 2 případy: procedura je deklarována v deklarační části architektury: procedura nevlastní budiče signálů, které nefigurují jako formální parametry módu out nebo inout => vedlejší efekty na signálech nejsou přípustné procedura je deklarována uvnitř procesu všechny porty entity a signály architektury jsou viditelné uvnitř procesu, proces vlastní budiče všech signálů vyskytujících se na levé straně přiřazovacích signálů => buzení signálů či portů, které nejsou v seznamu formálních parametrů procedury je možné MI-SIM Jiří Douša 29

30 Viditelnosti a volání podprogramů Viditelné objekty: případ deklarace podprogramu v deklarační části architektury: porty entity, signály, případně sdílené proměnné příslušné entity, signály, případně sdílené proměnné architektury, signály, případně sdílené proměnné viditelných knihoven, případ deklarace podprogramu v procesu: vše předešlé plus navíc: lokální proměnné procesu. Volání procedury: paralelní: jako paralelní příkaz na konci operační části se implicitně inzeruje příkaz wait on s citlivostním seznamem obsahujícím všechny formální signály módu in nebo inout, procedura může obsahovat další příkazy wait, provedení: při události na některém aktuálním signálu, který je sdružen s formálním signálem módu in nebo inout, sekvenční: uvnitř procesu či jiné procedury na konci operační části není implicitně inzerován příkaz wait, Poznámka: funkce nesmí obsahovat příkaz wait, MI-SIM Jiří Douša 30

31 Podprogramy ve VHDL 93 VHDL 93 zavádí odložený příkaz paralelní procedury v paralelním prostředí je provedena až v posledním simulačním cyklu pro danou hodnotu simulačního času (podobně jako odložený proces) syntax odloženého příkazu: [ label ]: [ postponed ] < ident. procedury> [ (<akt. parametry>) ] ; VHDL 93 odlišuje 2 typy funkcí: pure functions: nedovolují žádné vedlejší efekty = > hodnoty formálních parametrů jednoznačně určují funkční hodnotu, impure functions: dovolují vedlejší efekty = > mohou vracet různé funkční hodnoty pro různá volání se stejnými hodnotami formálních parametrů, syntax: [ pure impure ] function < identifikátor funkce > ( < seznam formálních parametrů > ) return < typ výsledku> is end ; Poznámka: function je implicitně chápána jako pure function MI-SIM Jiří Douša 31

32 Přetěžování podprogramů možná rozlišení přetížených podprogramů: počet parametrů, typy a pořadí parametrů, jména formálních parametrů ( v případě jmenného mapování), typ výsledku (u funkcí). Příklad: signal Data: bit_vector (7 down to 0); signal clk : bit; procedure test -- test předstihu ( constant predstih : in time; signal D : in bit_vector, signal clk : in bit ) is.end test; procedure test -- test přesahu ( constant presah : in time; signal D : in bit_vector, signal clk : in bit ).end test; is -- následují ukázky volání obou procedur test: test ( predstih => 8ns, D => Data, clk => clk ); -- OK test ( presah => 3ns, D => Data, clk => clk ); -- OK test ( 8 ns, Data, clk ); -- error test ( 3 ns, D => Data, clk => clk ); -- error MI-SIM Jiří Douša 32

33 Přetěžování operátorů specifikace ve formě funkcí operujících na formálních parametrech Příklad: architecture A of E is function + ( constant L: integer ; constant R: real ) return real is return real ( L ) + R; end + ` ; function + ( constant L: real ; constant R: integer ) return real is return L + real ( R ); end + ` ; signal X, W1, W2: real; signal Y integer; process variable result: real; result := ; -- volání 1. funkce v procesu result := ; -- volání 2. funkce end process; W1 < = X + Y; -- volání 2. funkce v operační části architektury W2 < = Y + X; -- volání 1. funkce end; MI-SIM Jiří Douša 33

34 Funkce parametry: konstanty nebo signály módu in volání: v sekvenčním i paralelním prostředí operační část nesmí obsahovat příkaz wait Příklad: architecture Arch of E is function max (signal a, b: in bit_vector) return bit_vector if a >= b then return a; else return b; end if; end max; is --následuje příkazová část architektury process (.)..; y <= max (..,..) ; -- sekvenční volání funkce...; end process; z <= max (..;..) ; end Arch; -- paralelní volání funkce MI-SIM Jiří Douša 34

35 Resoluční funkce řeší konflikty vznikající při buzení signálu více budiči, volání: automaticky při aktivitě některého z budičů architecture Arch is..deklarace D; -- následují paralelní příkazy architektury process (a, e1) -- budič signálu c if e1= 0 then c <= a; else c <= Z ; end if; end process; process (b, e2) --budič signálu c if e2= 0 then c <= b; else c <= Z ; end if; end process;..; --další paralelní příkazy end A; a b situace: e1 e2 c MI-SIM Jiří Douša 35

36 Resoluční funkce deklarace D pro minulý příklad: signal a,b : std_logic; signal c: std_logic; --c je buzen více budiči; proto --musí být deklarován jako typ std_logic, který je definován v knihovně std_logic_1164 a který je svázán s resoluční funkcí subtype std_logic is resolved std_ulogic; nový podtyp signálu typ definovaný dříve vázaný na funkci resolved identifikátor resoluční funkce budiče efektivní hodnota (typ std_logic) budící hodnoty MI-SIM Jiří Douša 36

37 Resoluční funkce resolved type std_logic_table is array (std_ulogic, std_ulogic) of std_ulogic; constant res_tab: stdlogic_table: = ( -- U X 0 1 Z W L H ( U, U, U, U, U ; U, U, U, U ), -- U ( U, X, X, X, X, X, X, X, X ), -- X ( U, X, 0, X, 0, 0, 0, 0, X ), -- 0 ( U, X, X, 1, 1, 1, 1, 1, X ), -- 1 ( U, X, 0, 1, Z, W, L, H, X ), -- Z ( U, X, 0, 1, W, W, W, W, X ), -- W ( U, X, 0, 1, L, W, L, W, X ), -- L ( U, X, 0, 1, H, W, W, H, X ), -- H ( U, X, X, X, X, X, X, X, X )) ; MI-SIM Jiří Douša 37

38 Resoluční funkce takto je definována resoluční funkce v knihovně std_logic_1164: function resolved (s: std_ulogic_vector) return std_ulogic is variable res: std_ulogic := Z ; --počáteční nastavení if s length = 1 then return s (s low); --případ jednoho budiče else for i in s range loop -cykl přes všechny budiče signálu s res:= res_tab (res, s(i)); -- výpočet -- resoluční funkce argumentů res a s(i) end loop; end if; return res; --hodnota funkce (efektivní hodnota) = --superposice výstupů všech budičů end resolved; MI-SIM Jiří Douša 38

39 Resoluční funkce Příklad: signal a: std_logic := '0'; -- počáteční hodnota -- každého budiče signálu a. P1: process wait for 1 ns; a <= not a; end process; P1 a P2: process wait for 2 ns; a <= not a; end process; P2 1 a X 0 1 ns time MI-SIM Jiří Douša 39

40 Resoluční funkce Příklad: signal a, b, c: std_logic := '0';..; P1: process wait for 1 ns; a <= not a; wait for 0 ns; c <= a; end process; P1 P2 a b c P2: process wait for 2 ns; b <= not b; wait for 0 ns; c <= b; end process; a b c ns 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

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

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

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

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

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

Ú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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Čí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

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

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

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

Ú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

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

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

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny

Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny Knihovna EpsnetLib TXV 003 73.01 první vydání září 2012 změny vyhrazeny 1 TXV 003 73.01 Historie změn Datum Vydání Popis změn Září 2012 1 První vydání, popis odpovídá EpsnetLib_v11 OBSAH 1 Úvod...3 2 Datové

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

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

Č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

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

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

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end; Cvičení 9 - Monitory na rozdíl od semaforů je monitor jazyková konstrukce monitor = Pascalský blok podobný proceduře nebo fci uvnitř monitoru jsou definovány proměnné, procedury a fce proměnné monitoru

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

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

Jazyk PL/SQL Úvod, blok

Jazyk PL/SQL Úvod, blok Jazyk PL/SQL Úvod, blok 1 Bc. Tomáš Romanovský Procedural Language for Structured Query Language Součást systému Oracle, rozšíření SQL o procedurální rysy Prostředky pro vytváření a spouštění programových

Více

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

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

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

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

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 Logické operace Datový typ bool může nabýt hodnot: o true o false Relační operátory pravda, 1, nepravda, 0, hodnoty všech primitivních datových typů (int, double ) jsou uspořádané lze je porovnávat binární

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Výrazy Operátory Výrazy Verze pro akademický rok 2012/2013 1 Operace, operátory Unární jeden operand, operátor se zapisuje ve většině případů před operand, v některých případech

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

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

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

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

Knihovna WebGraphLib

Knihovna WebGraphLib Knihovna WebGraphLib TXV 003 58.01 první vydání květen 2010 změny vyhrazeny 1 TXV 003 58.01 Historie změn Datum Vydání Popis změn Březen 2010 1 První vydání, popis odpovídá WebGraphLib_v10 OBSAH 1 Úvod...3

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

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI EVROPSKÝ SOCIÁLNÍ FOND Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI Úvod do PHP PHP Personal Home Page Hypertext Preprocessor jazyk na tvorbu dokumentů přípona: *.php skript je součást HTML stránky!

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

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

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

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

dovolují dělení velkých úloh na menší = dekompozice

dovolují dělení velkých úloh na menší = dekompozice Podprogramy dovolují dělení velkých úloh na menší = dekompozice Příklad: Vytiskněte tabulku malé násobilky ve tvaru XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X X 1 2 3 4 5 6 7 8 9 10 X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Více

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20 Obsah 5 Obsah Předmluva k aktuálnímu vydání 15 1 Úvod k prvnímu vydání z roku 2000 16 Typografické a syntaktické konvence................ 20 2 Základní pojmy 21 2.1 Trocha historie nikoho nezabije................

Více

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

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 Tematický celek 03 3.1 Proměnné Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace. 3.1.1 Deklarace proměnných Dim jméno_proměnné [As typ] - deklarace uvnitř procedury platí pouze pro

Více

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

type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; Vícerozměrné pole type Obdelnik = array [1..3, 1..4] of integer; var M: Obdelnik; M[2,3] := 3145; - počet indexů není omezen (v praxi obvykle nejvýše tři) - více indexů pomalejší přístup k prvku (počítá

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

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

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

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

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5 Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5

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

Čí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

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

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

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

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Operátory a příkazy BI-JSC Evropský sociální fond

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

Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny

Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny Knihovna DataBoxLib TXV 003 56.01 první vydání prosinec 2010 změny vyhrazeny 1 TXV 003 56.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá DataBoxLib_v14 OBSAH 1 Úvod...3

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

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

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry Počítačová simulace logistických procesů I. ŠAVŠ, Fábry 29.4.2019 Cíl přednášky Seznámit s možnostmi práce v cyklech a tabulkami. 2 Struktura přednášky Podmíněné příkazy s INSPECT. Příkazy s opakujícím

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

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

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

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

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

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

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

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

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V. Přiřazovací příkaz V := E, V jednoduchá nebo indexovaná proměnná, E výraz, jehož typ je kompatibilní podle přiřazení s typem proměnné V. 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Více

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1

Příklady: (y + (sin(2*x) + 1)*2)/ /2 * 5 = 8.5 (1+3)/2 * 5 = /(2 * 5) = 1.3. Pavel Töpfer, 2017 Programování 1-3 1 Výraz - syntaxe i sémantika podobné jako v matematice - obsahuje proměnné, konstanty, operátory, závorky, volání funkcí - všechny operátory nutno zapisovat (nelze např. vynechat znak násobení) - argumenty

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

PODPROGRAMY PROCEDURY A FUNKCE

PODPROGRAMY PROCEDURY A FUNKCE PODPROGRAMY PROCEDURY A FUNKCE Programy bez podprogramů Příklady: a) Napište program, který na obrazovku nakreslí čáru složenou ze znaků pomlčka. program Cara; b) Napište program, který na obrazovku nakreslí

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

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

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 Petr Blaha 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 Cykly Základní funkce (matematické, textové,

Více

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora

PCKEYB JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT. Příručka uživatele a programátora JEDNOTKA PRO OBSLUHU KLÁVESNICE TYPU PC AT Příručka uživatele a programátora SofCon spol. s r.o. Střešovická 49 162 00 Praha 6 tel/fax: +420 220 180 454 E-mail: sofcon@sofcon.cz www: http://www.sofcon.cz

Více

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

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 Škola Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Název sady Téma Anotace Autor Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram CZ.1.07/1.5.00/34.0556

Více

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Semestrální práce z předmětu KIV/UPA Jan Bařtipán / A03043 bartipan@studentes.zcu.cz Zadání Program přečte ze vstupu dvě čísla v hexadecimálním tvaru a vypíše jejich součet (opět v hexadecimální tvaru).

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

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje f1(&pole[4]); funkci f1 předáváme hodnotu 4. prvku adresu 4. prvku adresu 5. prvku hodnotu 5. prvku symbolická konstanta pro konec souboru je eof EOF FEOF feof Správné vytvoření a otevření textového souboru

Více

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. Přednáška 7 Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu. 1 Příkaz expr výraz Celočíselná aritmetika I Zašle na standardní výstup vyhodnocení výrazu

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

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

Empty, Null, Nothing, Missing, prázdný řetězec a buňka Řečeno slovní hříčkou, pojmy uvedené v titulku mají společného všechno a nic. Každý z nich je vyjádřením stavu prázdné proměnné, a to podle datového typu či kontextu. Empty vyjadřuje neinicializovanou

Více

8 Třídy, objekty, metody, předávání argumentů metod

8 Třídy, objekty, metody, předávání argumentů metod 8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním

Více

Jazyk C++, některá rozšíření oproti C

Jazyk C++, některá rozšíření oproti C Karel Müller, Josef Vogel (ČVUT FIT) Jazyk C++, některá rozšíření oproti C BI-PA2, 2011, Přednáška 1 1/22 Jazyk C++, některá rozšíření oproti C Ing. Josef Vogel, CSc Katedra softwarového inženýrství Katedra

Více

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 WSH Windows Script Hosting OSY 2 Přednáška číslo 2 opravená verze z 15.10.2007 Co je skript? Skriptování nástroj pro správu systému a automatizaci úloh Umožňuje psát skripty jednoduché interpretované programové

Více