Bevezető Típusok és operátorok a VHDL-ben A VHDL nyelv vezérlési szerkezetei Hieararchikus tervezés. Budapesti Műszaki és Gazdaságtudományi Egyetem
|
|
- Zsolt Balla
- 6 évvel ezelőtt
- Látták:
Átírás
1 Budapesti Műszaki és Gazdaságtudományi Egyetem A VHDL áttekintése Nagy Gergely, Horváth Péter Elektronikus Eszközök Tanszéke augusztus 18. Nagy Gergely, Horváth Péter A VHDL áttekintése 1 / 57
2 A VHDL A VHDL A VHDL egy hardverleíró nyelv neve egy rövítés: VHSIC Hardware Description Language, amelyben szintén van egy rövidítés: VHSIC Very-High-Speed Integrated Circuit. A nyelvet az amerikai védelmi minisztérium (Department of Defense DoD) készíttette az 1980-as években digitális ASIC áramkörök dokumentálására. Hamar nagy igény lett a dokumentáció szimulálására, majd később a logikai szintézisre. A megbízás 1983-ban történt, az első szabvány az IEEE volt, majd ezt követte az IEEE-1164 és 1993-ban az IEEE-1076 új verziója. A nyelvnek létezik analóg és analóg-digitális rendszerek leírását lehetővé tevő verziója: a VHDL-AMS. Nagy Gergely, Horváth Péter A VHDL áttekintése 2 / 57
3 A VHDL A VHDL nyelv A VHDL alapjául az Ada nyelv szolgált, amit szintén a DoD rendelt meg. Az Ada egy erősen típusos nyelv, nagy megbízhatóságú rendszerek fejlesztésére hozták létre. A VHDL is ezt a hagyományt követi. Szintaktikájára jellemző, hogy kevesebb szimbólumot és több, egész szavas kulcsszót használ, mint más nyelvek. Előnye a könnyű olvashatóság és az áttekinthető, szabályos szerkezet, hátránya a sok foglalt szó. A VHDL nem különbözteti meg a kis- és nagybetűket! A nyelv folyamatos fejlesztés alatt áll a mai napig: verifikáció támogatása, OOP. Nagy Gergely, Horváth Péter A VHDL áttekintése 3 / 57
4 Egyed deklaráció entity Egyed deklaráció entity A VHDL-ben, más HDL-ekhez hasonlóan, a tervezés alapja a logikai egység egyed. Az egyedek megadása két részletben történik: 1 entity blokk: az egyed interfésze (deklaráció) a portjainak az iránya és típusa, 2 architecture blokk: az egyed leírása (definíció) viselkedési, strukturális leírás. entity reg4 is port (d0, d1, d2, d3, en, clk : in bit ; q0, q1, q2, q3 : out bit ); end entity reg4 ; A példa egy négybites flipflopot mutat be. Az egyes portok egybites logikai típusúak. Az end után az entity reg4 opcionális. Nagy Gergely, Horváth Péter A VHDL áttekintése 4 / 57
5 Egyed definíció architecture Egyed definíció architecture Az egyedek definíciója architecture blokk(ok)ban történik. Egy egyedhez tartozhat több definíció is: ez lehetsőséget ad több absztrakciós szint párhuzamos kipróbálására: entity nand_gate is port (a, b : in bit ; q : out bit ); end entity nand_gate ; architecture arch_1 of nand_gate is begin q <= not (a and b); end architecture arch_1 ; architecture arch_2 of nand_gate is signal internal : bit ; begin internal <= a and b; q <= not internal ; end architecture arch_2 ; Nagy Gergely, Horváth Péter A VHDL áttekintése 5 / 57
6 Jelek létrehozása, értékadás jeleknek Jelek létrehozása, értékadás jeleknek Egy egyed portjai jelek (signal). Az egyedeken belül definiálhatunk további jeleket is. A jeleket a deklarációs blokkban hozzuk létre, ami a begin kulcsszó előtt található. architecture arch_2 of nand_gate is signal internal : bit ; -- lok á lis jel begin internal <= a and b; q <= not internal ; end architecture arch_2 ; Az értékadás a <= operátorral történik jelek esetében. A jelek értékadása párhuzamosan kerül végrehajtásra ezért lesz a fenti leírásból egy NAND kapu. A utáni szöveg egy sorban: megjegyzés. Nagy Gergely, Horváth Péter A VHDL áttekintése 6 / 57
7 Típusok Típusok I. A jeleink típusa eddig bit volt, ami 0 és 1 értékeket tud felvenni. Hardver-modellezéshez ennél többféle érték szükséges. nagy impedancia, ismeretlen/érdektelen, stb. Ilyen típust létre lehet hozni a nyelv saját eszközeivel (ld. később), de a szabványosítók elkészítettek a saját verzióikat. Érdemes ezeket használni, hiszen ezek széles körben elterjedtek és támogatottak és ezeket ismerik a szintézerek is. Nagy Gergely, Horváth Péter A VHDL áttekintése 7 / 57
8 Típusok Típusok II. A nagy VHDL projektek hierarchikus felépítésűek, így a típusdefiníciók is ebben a hierchiában jelentkeznek: Könyvtár (library): legmagasabb szintű egység, Csomag (package): a könyvtár alegysége. Pl. az IEEE-1164 szabványban bevezetett típusok az ieee könyvtár std_logic_1164 csomagjában találhatóak. A kódban jelezni kell, ha egy könyvtár egyes csomagjait használjuk. Pl. ha a teljes std_logic_1164 csomagot használjuk: library ieee ; use ieee. std_logic_1164. all ; Nagy Gergely, Horváth Péter A VHDL áttekintése 8 / 57
9 Típusok Az std.standard típusai A legalapvetőbb típusok az std.standard csomagban vannak definiálva ezt a legtöbb környezetben automatikusan beszerkeszti a fordító. Az itt található típusok: Az std.standard típusai Típus bit bit_vector character integer natural real time Leírás 0 vagy 1 értékű bit több-bites érték karakter egész szám (méret: implementáció-függő) pozitív egész szám valós szám (a szintézerek általában nem támogatják) idő (megadható: sec, ms, us, ns, ps, fs egységekben) Nagy Gergely, Horváth Péter A VHDL áttekintése 9 / 57
10 Típusok Az ieee típusai: std_logic A nagy támogatottság és pontos modellezés érdekében érdemes az IEEE típusokat használni. Az std_logic logikai jeleket ír le. Az std_logic U inicializálatlan X kényszerített ismeretlen 0 kényszerített 0 1 kényszerített 1 Z nagy impedancia W gyenge ismeretlen L gyenge 0 H gyenge 1 - érdektelen (don t care) Az egybites értékeket aposztrófok közt adjuk meg VHDL-ben. Nagy Gergely, Horváth Péter A VHDL áttekintése 10 / 57
11 Típusok Az ieee típusai: std_logic_vector Az std_logic_vector több-bites értékek tárolására jó. Használata: signal vec_a : std_logic_vector (0 to 3); -- MSB : 0-s bit signal vec_b : std_logic_vector (3 downto 0); -- MSB : 3- as bit... vec_b (2) <= 1 ; A Veriloghoz hasonlóan kétféleképpen lehet megadni vektort (tömböt). Mindkét példában egy négybites vektort hozunk létre, de az elsőben az MSB a 0 indexű elem lesz, az LSB a 3 indexű, a másodikban az MSB a 3 indexű elem lesz, az LSB a 0 indexű. A második megoldást javasolt használni általában. Elemek elérése: a () operátorral. Nagy Gergely, Horváth Péter A VHDL áttekintése 11 / 57
12 Típusok Felhasználói típusok I. Intervallumok A felhasználó is létrehozhat saját típusokat a type kulcsszó segítségével: type { azonosito } is { tipusleiras }; Például egész számok intervallumai: type small_int is range 0 to 1024; type word_length is range 31 downto 0; subtype data_word is word_length range 7 downto 0; A subtype egy típus részhalmaza, amely kompatibilis vele (értékadásokban vegyesen szerepelhet egy típus és altípusai, de különböző típusok nem). Készíthető a beépített típusokhoz is altípus: subtype int_small is integer range to 1024; Nagy Gergely, Horváth Péter A VHDL áttekintése 12 / 57
13 Típusok Felhasználói típusok II. Fizikai típusok Létrehozhatóak fizikai típusok reprezentációi, amelyek mértékegységekkel együtt adhatóak meg ilyen a std.standard time típus is): type conductance is range 0 to 2e -9 units mho ; mmho = 1e -3 mho ; umho = 1e -6 mho ; nmho = 1e -9 mho ; pmho = 1e -12 mho ; end units conductance ; Deklaráció a fenti típussal: constant LINE_COND : conductance := 125 umho ; a constant kulcsszó konstansok létrehozására szolgál. A fizikai típusokat a szintézerek nem támogatják. Nagy Gergely, Horváth Péter A VHDL áttekintése 13 / 57
14 Típusok Felhasználói típusok III. Felsorolt típus Más programnyelvekhez hasonlóan VHDL-ben is létezik a felsorolt típus: type mnemonics is ( load, store, add, sub, div, mult ); type three_state is ( 0, 1, Z );... signal sig_1 : three_state := Z ; Inicializálatlan felsorolt típusú változók a felsorolás első értékét kapják kezdőértékként. A korábban megismert std_logic is egy felsorolt típus. Nagy Gergely, Horváth Péter A VHDL áttekintése 14 / 57
15 Típusok Felhasználói típusok IV. Tömbök I. Tömböket (array) a következőképpen lehet létrehozni: type word_type is array (15 downto 0) of std_logic ; type one_byte is array (7 downto 0) of integer ;... signal data_addr : word_type ; signal mem_addr : word_type := B" "; az inicializációnál látható, hogy több-bites értékeket idézőjelek közt ("") adhatunk meg jelölve a számrendszert, ami lehet: B, O, D, X. A számrendszerek közül a bináris az alapértelmezett, így a "1011" karaktersorozatot a fordító bináris számként értelmezi. Nagy Gergely, Horváth Péter A VHDL áttekintése 15 / 57
16 Típusok Felhasználói típusok V. Tömbök II. Tömbtípus definiálásakor nem muszáj megadni a méretet: type vector_int is array ( integer range <>) of integer ; Ilyenkor a jelek létrehozásakor kell megadni a méretet: signal my_vector : vector_int (2 downto -3) := (2, 4, 12, 6, 2); A fenti példa egyben egy tömb inicializálást is mutat. Tömbök értékadásakor létezik egy egyszerűsítő leírás: signal bvec : bit_vector (3 downto 0);... bvec <= (1= > 1, others = > 0 ); -- bvec : ( 0, 0, 1, 0 ) az others önmagában az összes bitnek a megadott értéket adja. Ilyen tömb-típus a std_logic_vector is. Nagy Gergely, Horváth Péter A VHDL áttekintése 16 / 57
17 Típusok Felhasználói típusok VI. Rekordok A VHDL nyelv támogatja rekordok, másnéven strukúrák létrehozását is: type module_parameters is record rise_time : time ; fall_time : time ; size : integer range 0 to 200; data : std_logic_vector (15 downto 0); end record ; signal a, b: module_parameters ;... a. rise_time <= 5 ns; b <= a; Nagy Gergely, Horváth Péter A VHDL áttekintése 17 / 57
18 Attribútumok Attribútumok I. A VHDL sokféle attribútumok ismer, amelyek információt szolgáltatnak egy adott jelről/értékről. Az attribútumok megadása: {jelnév} {attribútum}. Jelattribútumok I. signal_name event signal_name active signal_name transaction signal_name last_event signal_name last_active igaz, ha a jel esemény részese volt igaz, ha értékadás történt értéke egy bit, ami értéket vált, ha a jelen tranzakció történik legutóbbi esemény óta eltelt idő legutóbbi tranzakció óta eltelt idő Nagy Gergely, Horváth Péter A VHDL áttekintése 18 / 57
19 Attribútumok Attribútumok II. Jelattribútumok II. signal_name last_value signal_name delayed(t) signal_name stable(t) signal_name quiet(t) a jel előző értéke T-vel késleltett másolata a jelnek igaz, ha T ideje nem volt változás igaz, ha T ideje nem volt tranzakció Például egy jel felfutó élére a következőképp írhatunk ki vizsgálatot: if ( clock event and clock = 1 ) then... Ugyanez megoldható az ieee könyvtár std_logic_1164 csomagjában található rising_edge függvény segítségével is: if ( rising_edge ( clock )) then... Nagy Gergely, Horváth Péter A VHDL áttekintése 19 / 57
20 Attribútumok Attribútumok III. Skalár attribútumok scalar_type left az első vagy legbaloldalabbi eleme a típusnak scalar_type right az utolsó vagy legjobboldalabbi eleme a típusnak scalar_type low az intervallum legkisebb eleme scalar_type high az intervallum legnagyobb eleme scalar_type ascending igaz, ha ez egy növekvő intervallum scalar_type value(s) az s által repezentált elem type my_index is range 3 to 15; my_index value (5) -- returns : "5" conductance right -- returns : 1e3 three_state left -- returns : 0 Nagy Gergely, Horváth Péter A VHDL áttekintése 20 / 57
21 Attribútumok Attribútumok IV. Tömbi attribútumok array left(n) array right(n) array high(n) array low(n) array length(n) array range(n) array reverse_range(n) array ascending(n) legbaloldalabbi elem indexe legjobboldalabbi elem indexe felső határ alsó határ az elemek száma intervallum fordított intervallum igaz, ha növekvő intervallum A (N) a dimenziót adja meg, egydimenziós tömböknél elhagyható. Nagy Gergely, Horváth Péter A VHDL áttekintése 21 / 57
22 A VHDL operátorai A VHDL operátorai Logikai operátorok not and or nand nor xor xnor Relációs operátorok = /= (nem-egyenlő) < <= > >= Eltoló operátorok sll srl (0-t tol be), sla sra (szélső bitet másol), rol ror Összeadó/kivonó operátorok + - & (összefűző operátor) Előjel operátorok + - Szorzás/osztás * / mod rem (maradék) Egyéb operátorok abs ** (hatványozás) Nagy Gergely, Horváth Péter A VHDL áttekintése 22 / 57
23 A jelekről részletesebben A jelek késleltetése I. Láttuk, hogy a jelek értékadásai párhuzamosan, azonnal megtörténnek. Egy áramkör viselkedésének az elemzése szempontjából fontos, hogy tudjuk modellezni a késleltetéseket. Egy jel késleltetésének a megadása: output <= in1 and in2 after 5 ns; Ez az ún. tehetetlenségi (inertial) késleltetés, ami azt jelenti, hogy a megadott késleltetésnél nem rövidebb időtartamú jelváltások a késleltetési idővel eltolva továbbítódnak, az annál rövidebbek elnyelődnek. Nagy Gergely, Horváth Péter A VHDL áttekintése 23 / 57
24 A jelekről részletesebben A jelek késleltetése II. A logikai kapuk késleltetései tipikusan tehetetlenségi jellegű. Külön meg lehet határozni, hogy mi legyen az az időtartam, amit egy kapu még elnyel (reject), illetve mekkora késleltetést iktasson be a jelútba: output <= reject 4 ns inertial in1 and in2 after 10 ns; Ekkor a kapu a 4 ns-nál nem hosszabb jeleket elnyeli és minden változás 10 ns késéssel történik meg. Az inertial az alapértelmezett késleltetés, nem kell kiírni, csak reject esetén. Nagy Gergely, Horváth Péter A VHDL áttekintése 24 / 57
25 A jelekről részletesebben A jelek késleltetése III. A vezetékekre az a jellemző, hogy minden jelet továbbítanak egy adott késleltetéssel. Ezt a VHDL-ben szállítási (transport) késleltetésnek hívják: output <= transport in1 and in2 after 14 ns; Nagy Gergely, Horváth Péter A VHDL áttekintése 25 / 57
26 A jelekről részletesebben A jelek késleltetése IV. Összefoglalás b1 <= inertial a after 10 ns; b2 <= transport a after 10 ns; b3 <= reject 4 ns inertial a after 10 ns; Valójában, ha nincs késleltetés megadva, a szimulátor akkor is feltételez egy infinitezimálisan kicsi, ún. késleltetést. Nagy Gergely, Horváth Péter A VHDL áttekintése 26 / 57
27 Jelek feltételes értékadása Jelek feltételes értékadása I. Jelek esetén létezik feltételes értékadás, amely lényegében a más nyelvekből (C, Verilog) ismert?: operátor megvalósítása VHDL-ben: architecture tri_inv_arch of tri_inv is begin output <= 1 when input = 0 and enable = 1 else 0 when input = 1 and enable = 1 else Z ; end architecture tri_inv_arch ; Nagy Gergely, Horváth Péter A VHDL áttekintése 27 / 57
28 Jelek feltételes értékadása Jelek feltételes értékadása II. Amennyiben az összes feltétel egy adott jel értékeihez van kötve, akkor létezik egy egyszerűbb írásmód (amely hasonló a case szerkezethez ld. később): entity multiplexer is port (a, b, c, d: in std_logic ; sel : in std_logic_vector (1 downto 0); q: out std_logic ); end entity multiplexer ; architecture multi_select of multiplexer is begin with sel select q <= a when "00", b when "01", c when "10", d when "11"; end architecture multi_select ; Nagy Gergely, Horváth Péter A VHDL áttekintése 28 / 57
29 Jelek feltételes értékadása Jelek feltételes értékadása III. Arra is lehetőség van, hogy egynél több értéket felsoroljunk az ágakban, illetve, hogy megadjunk egy ágat az összes fel nem sorolt esetre:... target <= value1 when " 000 ", value2 when " 001 " " 011 " " 101 ", value3 when others ;... Nagy Gergely, Horváth Péter A VHDL áttekintése 29 / 57
30 A folyamat process A folyamat process I. Mivel egy hardverben a műveletek párhuzamosan történnek alapvetően, a leírás is az. Azonban az algoritmusaink szekvenciálisak illetve tartalmaznak szekvenciális utasítás-sorozatokat. Ezek modellezésére szolgál a folyamat (process). A process magjában lévő utasítások a megadott sorrendben kerülnek végrehajtásra. Egy process folyamatosan, ismétlődve fut. Lehet érzékenységi listája, amely esetben csak akkor fut le, ha az ott szereplő jelek valamelyikén változás történt. Nagy Gergely, Horváth Péter A VHDL áttekintése 30 / 57
31 A folyamat process A folyamat process II. A folyamaton belül deklarálhatunk változókat, amelyek a jelekkel ellentétben azonnal megkapják értékadáskor az új értéket, értéküket megőrzik a folyamat futásai között. A folyamaton belül más programnyelvekéihez hasonló vezérlési utasításokat használhatunk: értékadás jeleknek és változóknak, feltételes elágazás (if), case utasítás, ciklus (loop), várakoztató utasítás (wait), stb. Nagy Gergely, Horváth Péter A VHDL áttekintése 31 / 57
32 A folyamat process A folyamat process III. Például egy pozitív élre érzékeny, aszinkron törléssel rendelkező D flipflopot az alábbi módon modellezheztünk: entity d_flipflop is port (clk, clear, d : in std_logic ; q : out std_logic ); end entity d_flipflop ; architecture behavioral of d_flipflop is begin process (clk, clear ) is begin if ( clear = 1 ) then Q <= 0 ; else if (clk event and clk = 1 ) then Q <= D; end if ; end process ; end architecture behavioral ; Nagy Gergely, Horváth Péter A VHDL áttekintése 32 / 57
33 A folyamat process A folyamat process IV. A változók használatát egy egyszerű számlálón mutatjuk be: entity cnt is port (clk, rst : in std_logic ; q : out std_logic_vector (3 downto 0)); end entity cnt ; architecture behavioral of cnt is begin process ( clk ) is variable count : std_logic_vector (3 downto 0); begin if ( clk = 1 ) then if ( rst = 1 ) then count := B" 0000 "; else count := count + B" 001 "; end if ; end if ; q <= count ; end process ; end architecture behavioral ; Nagy Gergely, Horváth Péter A VHDL áttekintése 33 / 57
34 A folyamat process A folyamat process V. A jelek és változók viselkedése közti különbséget nézzük meg egy példán keresztül: signal a1, a2: integer ;... process begin wait for 10 ns; a1 <= a1 +1; a2 <= a1 +1; end process ; process variable a3, a4: integer ; begin wait for 10 ns; a3 :=a3 +1; a4 :=a3 +1; end process ; Az értékek alakulása időben Idő a1 a2 a3 a Nagy Gergely, Horváth Péter A VHDL áttekintése 34 / 57
35 Feltételes elágazások Az if szerkezet Egy négybites multiplexer: entity MUX_4_1a is port (S1, S0, A, B, C, D: in std_logic ; Z: out std_logic ); end entity MUX_4_1a ; architecture behav_mux41a of MUX_4_1a is begin process (S1, S0, A, B, C, D) begin if (( not S1 and not S0 )= 1 ) then Z <= A; elsif (( not S1 and S0) = 1 ) then Z <=B; elsif (( S1 and not S0) = 1 ) then Z <=C; else Z <=D; end if ; end process ; end architecture behav_mux41a ; Nagy Gergely, Horváth Péter A VHDL áttekintése 35 / 57
36 Feltételes elágazások Az case szerkezet Ugyanaz a négybites multiplexer: entity MUX_4_1 is port ( SEL : in std_logic_vector (2 downto 1); A, B, C, D: in std_logic ; Z: out std_logic ); end entity MUX_4_1 ; architecture behav_mux41 of MUX_4_1 is begin process (SEL, A, B, C, D) begin case SEL is when " 00" => Z <= A; when " 01" => Z <= B; when " 10" => Z <= C; when " 11" => Z <= D; when others => Z <= X ; end case ; end process ; end architecture behav_mux41 ; Nagy Gergely, Horváth Péter A VHDL áttekintése 36 / 57
37 Ciklusok A while ciklus Példa a while ciklusra: p1: process ( signal_a ) is -- cimke elhagyhat ó variable index : integer := 0; begin while_loop : -- a cimke elhagyhat ó while index < 8 loop ray_out ( index ) <= ray_in ( index ); index := index +1; end loop while_loop ; end process p1; A processek és a vezérlési szerkezetek megcímkézhetőek, és ezek a nevek feltűntethetőek az end utasítások után. Ez az olvashatóságot javíthatja. Nagy Gergely, Horváth Péter A VHDL áttekintése 37 / 57
38 Ciklusok A for ciklus Példa a for ciklusra: process ( signal_a ) begin label_1 : for index in 0 to 7 -- index impliciten deklar álva loop ray_out ( index ) <= ray_in ( index ); end loop label_1 ; end process ; Nagy Gergely, Horváth Péter A VHDL áttekintése 38 / 57
39 Várakoztató utasítások Várakoztató utasítások I. A wait utasításnak több alakja is létezik. A szintézerek általában nem támogatják. Az until addig vár, amíg egy feltétel igaz nem lesz (szintézerek ezt támogatják): wait until clk = 1 ; wait until signal event and signal = value ; wait until not signal stable and signal = value ; Egy adott ideig várni a for segítségével lehet (tesztelésnél hasznos): wait for 2 ns; Az on hatására addig vár, amíg a megadott jel(ek)en változás nem történik: wait on sig1, sig2 ; Nagy Gergely, Horváth Péter A VHDL áttekintése 39 / 57
40 Várakoztató utasítások Várakoztató utasítások II. A wait önmagában örökké vár. Ennek hatására a szimuláció leáll, ha más változás nincsen: process begin in1 <= 0 ; in2 <= 0 ; wait for 5 ns; in1 <= 1 ; -- " wait forever " -- leáll a szimul áció wait ; end process ; Nagy Gergely, Horváth Péter A VHDL áttekintése 40 / 57
41 Alprogramok Függvények I. A leírások áttekinthetőbbé tétele érdekében bizonyos algoritmus részletek alprogramokba (függvények, eljárások) emelhetőek ki. A függvények jellemzői: egy visszatérési értékük van, minden paraméterük bemeneti paraméter, az utasításaik sorrendben hajtódnak végre, minden utasítás és szerkezet használható bennük, ami a folyamatokban is. Nagy Gergely, Horváth Péter A VHDL áttekintése 41 / 57
42 Alprogramok Függvények II. type log8 is array (0 to 7) of std_logic ;... entity convert is port ( i1: in log8 ; o1: out integer ); end entity convert ; architecture convert_fun of convert is function vector_to_int (s: log8 ) return integer is variable result : integer := 0; begin for i in 0 to 7 loop result := result * 2; if s(i) = 1 then result := result + 1; end if ; end loop ; return result ; end function vector_to_int ; begin o1 <= vector_to_int ( i1 ); end architecture convert_fun ; Nagy Gergely, Horváth Péter A VHDL áttekintése 42 / 57
43 Alprogramok Eljárások I. Az eljárások hasonlóak a függvényekhez, azonban az eljárásoknak nincs dedikált visszatérési értékük, megadható a paramétereik iránya: in, out, inout. Nagy Gergely, Horváth Péter A VHDL áttekintése 43 / 57
44 Alprogramok Eljárások II. procedure vector_to_int ( z: in std_logic_vector ; x_flag : out boolean ; q: inout integer ) is begin q := 0; x_flag := false ; for i in z range loop q := q * 2; if z(i) = 1 then q := q + 1; else if z(i) /= 0 then x_flag := true ; -- ha z(i) = Z pl. end if ; end loop ; end procedure vector_to_int ; Nagy Gergely, Horváth Péter A VHDL áttekintése 44 / 57
45 Generikus komponensek Generikus komponensek I. Lehetőség van arra, hogy egy komponens bizonyos paramétereit ne tervezéskor, hanem példányosításkor határozzuk meg. Ezt hívjuk általános, vagy generikus tervezésnek (pl. Verilogban a parameter, C++ template-jei). A generikus paramétert definiálni kell az entity blokkban: entity piso is -- parallel in serial out generic ( width : integer := 7); -- default : 7 port ( clk : in std_logic ; load : in std_logic ; in1 : in std_logic_vector ( width downto 0); out1 : out std_logic ); end entity piso ; Nagy Gergely, Horváth Péter A VHDL áttekintése 45 / 57
46 Generikus komponensek Generikus komponensek II. A modulban úgy használhatjuk a generikus változót, mint egy konstanst: architecture Behavioral of piso is signal temp : std_logic_vector ( width downto 0) := ( others => 0 ); -- initialize to zero begin process ( clk ) begin if ( load = 0 ) then -- load the register temp <= in1 ; elsif (clk event and clk = 1 ) then out1 <= temp ( width ); temp ( width downto 1) <= temp ( width -1 downto 0); end if ; end process ; end architecture Behavioral ; Nagy Gergely, Horváth Péter A VHDL áttekintése 46 / 57
47 Generikus komponensek Generikus komponensek III. Példányosításkor a komponens megadásánál is szerepel a generic szerkezet (ugyanúgy, mint az entity blokkban. A tényleges példány létrehozásakor a port map rész előtt szerepel egy generic map szerkezet, ahol megadhatjuk a paraméter értékét (amennyiben nem az alapértelmezettet kívánjuk használni): piso1 : piso generic map ( width => 7) port map (clk, load1,in1, o1 ); piso2 : piso generic map ( width => 3) port map (clk, load2,in2, o2 ); Nagy Gergely, Horváth Péter A VHDL áttekintése 47 / 57
48 Példányosítás Komponensek I. A hierarchikus építkezés azt jelenti, hogy az egyedek tartalmazhatják más egyedek példányait. Az egyedek példányosítása előtt komponensként definiálnunk kell őket. Legegyszerűbb esetben a komponensdefiníció megegyezik az entity leírással. Amennyiben a neve is ugyanaz, akkor mást nem kell tenni a kapcsolat létrehozásához. entity nand_gate is port (a, b : in bit ; q : out bit ); end entity nand_gate ; architecture testbench of nand_test is component nand_gate is port (a, b : in bit ; q : out bit ); end component nand_gate ;... Nagy Gergely, Horváth Péter A VHDL áttekintése 48 / 57
49 Példányosítás Komponensek II. A példányosításkor a létrejövő egyedet hozzá kell kapcsolni a környezetéhez: -- Itt fontos a sorrend : nand_gate_dut : nand_gate port map (in1, in2, output ); -- Itt a portokhoz egyenk ént rendelj ük a jeleket : nand_gate_dut : nand_gate port map (a => in1, b => in2, q => output ); Sokportos egyedek esetén érdemes a második megoldást alkalmazni, mert olyankor nagyon nehéz a sorrendet követni nehezen érthető kódot eredményez az első alak. Nagy Gergely, Horváth Péter A VHDL áttekintése 49 / 57
50 Példányosítás Komponensek III. Amennyiben egy egyednek többféle architektúrája van, akkor példányosításkor meg kell adnunk azt is, hogy melyik legyen felhasználva. Alapértelmezés szerint a legutolsó kerül felhasználásra. architecture testbench of nand_gate_tb is component nand_gate_comp port (a, b : in bit ; q : out bit ); end component nand_gate_comp ; for nand_gate_dut : nand_gate_comp use entity work. nand_gate ( arch_1 ); signal in1, in2, output : bit ; begin nand_gate_dut : nand_gate_comp port map (a => in1, b => in2, q => output );... A work az alapértelmezett könyvtárnév, ahová az aktuális projekt egyedei kerülnek. Nagy Gergely, Horváth Péter A VHDL áttekintése 50 / 57
51 Példányosítás Komponensek IV. Egy egyszerűbb módja az példányosításnak az ún. közvetlen beültetés. Ilyenkor a példányosítás kizárólag a begin után történik: architecture testbench of nand_gate_tb is signal in1, in2, output : bit ; begin nand_gate_dut : entity work. nand_gate ( arch_1 ) port map (a => in1, b => in2, q => output );... Nagy Gergely, Horváth Péter A VHDL áttekintése 51 / 57
52 Csomagok Csomagok I. A csomagok célja típusok, konstansok, alprogramok megosztása tervezési egységek között. Egy csomagot két részben adunk meg: 1 csomag deklaráció: az egyes elemek deklarációja, vagyis típussal adott névfelsorolás: alprogram deklarációja, típus/altípus deklaráció, konstansok deklarációja, komponensek deklarációja, use kifejezések, stb. 2 csomag definíció: a csomag elemeinek definíciója, vagyis kifejtése: alprogramok definíciója, konstansok definíciója, stb. Nagy Gergely, Horváth Péter A VHDL áttekintése 52 / 57
53 Csomagok Csomagok II. deklarációs rész package cluster_package is type nineval is (Z0, Z1, ZX, R0, R1, RX, F0, F1, FX ); type t_cluster is array (0 to 15) of nineval ; type t_clus_vec is array ( natural range <>) of t_cluster ; function resolve_cluster (s: t_clus_vec ) return t_cluster ; subtype t_wclus is resolve_cluster t_cluster ; constant undriven : t_wclus ; end package cluster_package ; Nagy Gergely, Horváth Péter A VHDL áttekintése 53 / 57
54 Csomagok Csomagok II. definíciós rész package body cluster_package is constant undriven : t_wclus := (ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX, ZX ); function resolve_cluster (s: t_clus_vec ) return t_cluster is variable result : t_cluster ; variable drive_count : integer ; begin if s length = 0 then return undriven ; end if ; for i in s range loop if s(i) /= undriven then drive_count := drive_count + 1; if drive_count = 1 then result := s(i); else result := undriven ; end if ; end if ; end loop ; return result ; end function resolve_cluster ; end package body cluster_package ; Nagy Gergely, Horváth Péter A VHDL áttekintése 54 / 57
55 Hardver generálás Hardver generálás I. Ahogy Verilogban is, a VHDL is lehetőséget ad hardver generálásra. Ez azt jelenti, hogy egy ciklusban tudunk hardvert példányosítani úgy, hogy az összeköttetéseket a ciklus futó változói határozzák meg. Így egyszerűbb kapukból bonyolult szerkezetet lehet képezni anélkül, hogy mechanikusan le kéne írni az összes elem bekötését. Tipikusan arra használják, hogy egybites elemeket sokbites adatok lekezélésére képes architektúrává építsék össze. Nagy Gergely, Horváth Péter A VHDL áttekintése 55 / 57
56 Hardver generálás Hardver generálás II. architecture test_generate of test_entity is signal s1, s2, s3: bit_vector (7 downto 0); begin G1: for N in 7 downto 0 generate and_array : and_gate generic map (2 ns, 3 ns) port map ( s1(n), s2(n), s3(n )); end generate G1; end architecture test_generate ; Nagy Gergely, Horváth Péter A VHDL áttekintése 56 / 57
57 Hardver generálás Hardver generálás III. Lehetőség van feltételekhez kötni a generálást. Erre az if szerkezethasználható. Az else és elsif kulcsszavak generáláskor nem alkalmazhatóak. G1: for N in 8 downto 0 generate G2: if (N < 7) generate or1 : or_gate generic map (3 ns, 3 ns) port map (s1(n), s2(n), s3(n )); end generate G2;... end generate G1; Nagy Gergely, Horváth Péter A VHDL áttekintése 57 / 57
Budapesti Műszaki és Gazdaságtudományi Egyetem VHDL. Horváth Péter, Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) 2013. október 3.
Áramkörtervezés az absztrakciótól a realizációig BMEVIEEM284 Budapesti Műszaki és Gazdaságtudományi Egyetem VHDL Horváth Péter, Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. október 3. Horváth
RészletesebbenVHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót
VHDL szimuláció Labor II. Dr. Hidvégi Timót Tervezés 1 Lefoglalt szavak abs access after alias all and architecture array assert attribute block body buffer bus case component configuration constant disconnect
RészletesebbenDigitális elektronika gyakorlat
FELADATOK 1. Felhasználva az XSA 50 FPGA lapon található 100MHz-es programozható oszcillátort, tervezzetek egy olyan VHDL modult, amely 1 Hz-es órajelet állít elő. A feladat megoldható az FPGA lap órajelének
RészletesebbenTervezési módszerek programozható logikai eszközökkel
Pannon Egyetem, MIK-VIRT, Veszprém Dr. VörösháziZsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 7. VHDL FELADATOK: Speciális nyelvi szerkezetek. Sorrendi
RészletesebbenLaborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István
Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési
RészletesebbenDigitális rendszerek. I. rész. Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu
Digitális rendszerek I. rész Dr. Turóczi Antal turoczi.antal@nik.uni-obuda.hu A tárgy célja Bevezető Digitális rendszertervezés alapjai Programozható logikai áramkörök Hardverleíró nyelvek (VHDL) A digitális
RészletesebbenHDL nyelvek: VHDL. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK HDL nyelvek: VHDL Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás
RészletesebbenTartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38
Bevezetés... 11 1. A VHDL mint rendszertervező eszköz... 13 1.1. A gépi tervezés... 13 1.2. A VHDL általános jellemzése... 14 1.3. Tervezési eljárás VHDL-lel... 15 2. A VHDL nyelv alapszabályai... 19 2.1.
RészletesebbenProgramozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
RészletesebbenHardver leíró nyelvek (HDL)
Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.
RészletesebbenVerilog HDL ismertető 2. hét : 1. hét dia
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich
Részletesebben5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a
RészletesebbenEgyszerű mikroprocesszor RTL modellek (VHDL)
Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű mikroprocesszor RTL modellek (VHDL) Horváth Péter Elektronikus Eszközök Tanszéke 2014. augusztus 11. Horváth Péter Egyszerű mikroprocesszor RTL modellek
RészletesebbenDigitális elektronika gyakorlat
FELADATOK 1. Tervezzetek egy félösszeadó VHDL modult 2. Tervezzetek egy teljes összeadó VHDL modult 3. Schematic Editor segítségével tervezzetek egy 4 bit-es öszeadó áramkört. A két bemeneti számot a logikai
RészletesebbenTervezési módszerek programozható logikai eszközökkel
Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 6. VHDL: speciális nyelvi szerkezetek. Sorrendi hálózatok
RészletesebbenVHDL alapismeretek. (Xilinx FPGA-k programozása VHDL nyelven) Oktatási jegyzet. Összeállította: dr. Zigó Tamás
VHDL alapismeretek (Xilinx FPGA-k programozása VHDL nyelven) Oktatási jegyzet Összeállította: dr. Zigó Tamás E-mail: zigotamas@bytestudio.hu www.bytestudio.hu ByteStudio Bt. 2013. 10. 07. VHSIC (Very High
RészletesebbenAttribútumok, constraint-ek
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Attribútumok, constraint-ek Fehér Béla Szántó Péter, Lazányi János, Raikovich
RészletesebbenProgramozás és digitális technika II. Logikai áramkörök. Pógár István Debrecen, 2016
Programozás és digitális technika II. Logikai áramkörök Pógár István pogari@eng.unideb.hu Debrecen, 2016 Gyakorlatok célja 1. Digitális tervezés alapfogalmainak megismerése 2. A legelterjedtebb FPGA-k
RészletesebbenVHDL alapú tervezés. (nem a teljes változat) Írta : Dr. Hidvégi Timót egyetemi docens
VHDL alapú tervezés (nem a teljes változat) Írta : Dr. Hidvégi Timót egyetemi docens BEVEZETÉS... 4 A VHDL NYELV MEGADÁSA... 5 A VHDL NYELV ELEMEI... 5 Kommentek... 5 Fentartott szavak... 5 Adattípusok...
Részletesebben6. hét: A sorrendi hálózatok elemei és tervezése
6. hét: A sorrendi hálózatok elemei és tervezése Sorrendi hálózat A Sorrendi hálózat Y Sorrendi hálózat A Sorrendi hálózat Y Belső állapot Sorrendi hálózat Primer változó A Sorrendi hálózat Y Szekunder
RészletesebbenAlgoritmizálás és adatmodellezés tanítása 1. előadás
Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az
RészletesebbenOccam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti
RészletesebbenA Verilog HDL áttekintése
Budapesti Műszaki és Gazdaságtudományi Egyetem A Verilog HDL áttekintése Nagy Gergely, Horváth Péter Elektronikus Eszközök Tanszéke 2014. augusztus 18. Nagy Gergely, Horváth Péter A Verilog HDL áttekintése
RészletesebbenConstraint-ek. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Constraint-ek Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás
RészletesebbenPROGRAMOZÁSI NYELVEK - ADA. GYAKORLAT JEGYZET
PROGRAMOZÁSI NYELVEK - ADA. GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. október 31. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! -
RészletesebbenÚjrakonfigurálható eszközök
Újrakonfigurálható eszközök 5. A Verilog sűrűjében: véges állapotgépek Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia Felhasznált irodalom és segédanyagok Icarus Verilog Simulator:
RészletesebbenDigitális elektronika gyakorlat. A VHDL leírástípusok
A VHDL leírástípusok 1. A funkcionális leírásmód Company: SAPIENTIA EMTE Engineer: Domokos József Create Date: 08:48:48 03/21/06 Design Name: Module Name: Logikai es kapuk funkcionalis leirasa- Behavioral
RészletesebbenBudapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.
Áramkörtervezés az absztrakciótól a realizációig BMEVIEEM284 Budapesti Műszaki és Gazdaságtudományi Egyetem A Verilog HDL II. Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. szeptember 26. Nagy
RészletesebbenMechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenDr. Oniga István DIGITÁLIS TECHNIKA 8
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
RészletesebbenKomputeralgebra Rendszerek
Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3
RészletesebbenKifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
RészletesebbenTervezési módszerek programozható logikai eszközökkel
Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 5. A VHDL alapjai II. Nyelvi szerkezetek. Konkurens és szekvenciális
RészletesebbenKarakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!
A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-
RészletesebbenJava programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
RészletesebbenTervezési módszerek programozható logikai eszközökkel
Pannon Egyetem, MIK-VIRT, Veszprém Dr. Vörösházi Zsolt voroshazi.zsolt@virt.uni-pannon.hu Tervezési módszerek programozható logikai eszközökkel 4. A VHDL alapjai I. Nyelvi típusok. Kifejezések, operátorok.
RészletesebbenÚjrakonfigurálható eszközök
Újrakonfigurálható eszközök 3. Verilog blokkok és struktúrák Végh János: Bevezetés a Verilog hardverleíró nyelvbe c. jegyzete nyomán Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia
RészletesebbenDigitális technika (VIMIAA02) Laboratórium 5
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,
RészletesebbenLOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István
LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter,
RészletesebbenDigitális technika (VIMIAA02) Laboratórium 5
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 5 Fehér Béla Raikovich Tamás,
RészletesebbenProgramozás alapjai. 5. előadás
5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk
RészletesebbenLOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István
LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN Dr. Oniga István 1. Ismerkedés az ISE fejlesztőrendszerrel és a LOGSYS kártyával 2. Első projekt (Rajz) egyszerű logikai kapuk 3. Második projekt (Verilog) egyszerű
RészletesebbenHDL nyelvek: VHDL. Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás BME MIT FPGA laboratórium
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK HDL nyelvek: VHDL Fehér Béla Szántó Péter, Lazányi János, Raikovich Tamás
RészletesebbenSzkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
RészletesebbenKombinációs áramkörök modelezése Laborgyakorlat. Dr. Oniga István
Kombinációs áramkörök modelezése Laborgyakorlat Dr. Oniga István Funkcionális kombinációs egységek A következő funkcionális egységek logikai felépítésével, és működésével foglalkozunk: kódolók, dekódolók,
RészletesebbenBASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
RészletesebbenMemóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
RészletesebbenAlgoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
RészletesebbenProgramozási nyelvek I. (Az Ada) Kozsik Tamás
Programozási nyelvek I. (Az Ada) Kozsik Tamás kto@elte.hu http://kto.web.elte.hu/ A tárgy célja A programozási nyelvek alapfogalmainak bemutatása Az előadásokon Számonkérjük zh-kal és a Szoftverszigorlaton
Részletesebbenés az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenJava VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
RészletesebbenTömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása
Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző
RészletesebbenOOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
RészletesebbenInformatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
RészletesebbenDIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István
IGITÁLIS TECHNIKA 7 Előadó: r. Oniga István Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók S tárolók JK tárolók T és típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
RészletesebbenPHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv
PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló
RészletesebbenS z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
Részletesebben8.3. AZ ASIC TESZTELÉSE
8.3. AZ ASIC ELÉSE Az eddigiekben a terv helyességének vizsgálatára szimulációkat javasoltunk. A VLSI eszközök (közöttük az ASIC) tesztelése egy sokrétűbb feladat. Az ASIC modellezése és a terv vizsgálata
Részletesebben16F628A megszakítás kezelése
16F628A megszakítás kezelése A 'megszakítás' azt jelenti, hogy a program normális, szekvenciális futása valamilyen külső hatás miatt átmenetileg felfüggesztődik, és a vezérlést egy külön rutin, a megszakításkezelő
RészletesebbenÚjrakonfigurálható eszközök
Újrakonfigurálható eszközök 2. Verilog HDL alapok Végh János: Bevezetés a Verilog hardverleíró nyelvbe c. jegyzete nyomán Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia Tartalom
RészletesebbenOperációs Rendszerek II. labor. 2. alkalom
Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,
RészletesebbenIII. Alapfogalmak és tervezési módszertan SystemC-ben
III. Alapfogalmak és tervezési módszertan SystemC-ben A SystemC egy lehetséges válasz és egyben egyfajta tökéletesített, tovább fejlesztett tervezési módszertan az elektronikai tervezés területén felmerülő
RészletesebbenPénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító
Részletesebben7.hét: A sorrendi hálózatok elemei II.
7.hét: A sorrendi hálózatok elemei II. Tárolók Bevezetés Bevezetés Regiszterek Számlálók Memóriák Regiszter DEFINÍCIÓ Tárolóegységek összekapcsolásával, egyszerű bemeneti kombinációs hálózattal kiegészítve
RészletesebbenCsomag. Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll. specifikáció törzs (opcionális)
Csomagok Csomag Adatbázis-objektum Programozási eszközök gyűjteménye Két részből áll specifikáció törzs (opcionális) Csomagspecifikáció CREATE [OR REPLACE] PACKAGE csomagnév [AUTHID {DEFINER CURRENT_USER}]
RészletesebbenApple Swift kurzus 3. gyakorlat
Készítette: Jánki Zoltán Richárd Dátum: 2016.09.20. Apple Swift kurzus 3. gyakorlat Kollekciók: Tömb: - let array = [] - üres konstans tömb - var array = [] - üres változó tömb - var array = [String]()
RészletesebbenDigitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar
Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 3. Laboratóriumi gyakorlat A gyakorlat célja: Négy változós AND, OR, XOR és NOR függvények realizálása Szimulátor használata ciklussal
RészletesebbenWebprogramozás szakkör
Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás
RészletesebbenProgramozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
RészletesebbenÚjrakonfigurálható eszközök
Újrakonfigurálható eszközök 8. Egy minimalista 8-bites mikrovezérlő tervezése 1 Felhasznált irodalom és segédanyagok Icarus Verilog Simulator: htttp:iverilog.icarus.com/ University of Washington Comttputer
RészletesebbenProgramozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
RészletesebbenVerilog HDL ismertető 4. hét : hét dia
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 4. hét : 1.-3. hét + 41 61 dia Fehér Béla, Raikovich
RészletesebbenDIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Részletesebben1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
RészletesebbenHaladó DBMS ismeretek 1
Haladó DBMS ismeretek 1 Hasznos információk A tantárgy weboldala: it.inf.unideb.hu/honlap/halado_oracle1 Oracle Junior képzés Gyakorlatok és a neptun Gyakorlat követelmények Ajánlott irodalom Juhász István
RészletesebbenPROTOTÍPUSKÉSZÍTÉS. Előadó: Dr. Oniga István
PROTOTÍPUSKÉSZÍTÉS VERILOG NYELVEN Előadó: Dr. Oniga István Összeállította Dr. Oniga István A következő anyagok felhasználásával Digitális rendszerek tervezése FPGA áramkörökkel. Fehér Bela Szanto Peter,
RészletesebbenNyolcbites számláló mintaprojekt
Nyolcbites számláló mintaprojekt 1. Bevezető A leírás egy nyolcbites számláló elkészítésének és tesztelésének lépéseit ismerteti. A számláló értéke az órajel felfutó élének hatására növekszik. A törlőgombbal
Részletesebben1. A VHDL mint rendszertervező eszköz
1.1. A gépi tervezés A gépi leíró nyelvek (HDL) célja az egyes termékek egységesítése, logikai szimulációhoz leíró nyelv biztosítása, a terv hierarchikus felépítésének tükrözése és a nagy tervek áttekinthetővé
RészletesebbenVHDL oktatási segédlet
VHDL oktatási segédlet 1.13. verzió Ez a dokumentum szabad szoftver, szabadon terjeszthető és/vagy módosítható a GNU Free Documentation License-ben leírtak szerint. Minden tőlem származó forráskód szabad
RészletesebbenDigitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar
Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 2. Laboratóriumi gyakorlat gyakorlat célja: oolean algebra - sszociativitás tétel - Disztributivitás tétel - bszorpciós tétel - De
RészletesebbenSmalltalk 2. Készítette: Szabó Éva
Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=
RészletesebbenRendszerszintű tervezés: SystemC I.
Rendszerszintű tervezés: SystemC I. Czirkos Zoltán BME EET 2016. február 24. Miről lesz szó? Magas szintű tervezés programozási nyelvek segítségével HDL leírás (Verilog / VHDL) is emlékeztet egy programra
RészletesebbenEgyszerű RISC CPU tervezése
IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely
RészletesebbenProgramozás alapjai. 7. előadás
7. előadás Wagner György Általános Informatikai Tanszék Jótanács (1) Tipikus hiba a feladat elkészítésekor: Jótanács (2) Szintén tipikus hiba: a file-ból való törléskor, illetve a file-nak új elemmel való
Részletesebben... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
RészletesebbenDr. Oniga István DIGITÁLIS TECHNIKA 9
r. Oniga István IGITÁLIS TEHNIKA 9 Regiszterek A regiszterek több bites tárolók hálózata S-R, J-K,, vagy kapuzott tárolókból készülnek Fontosabb alkalmazások: adatok tárolása és adatmozgatás Funkcióik:
RészletesebbenSQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások
SQL haladó Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,
Részletesebben12.1.1. A Picoblaze Core implementálása FPGA-ba
12.1.1. A Picoblaze Core implementálása FPGA-ba A Picoblaze processzor Ebben a fejezetben kerül bemutatásra a Pikoblaze-zel való munka. A Picoblaze szoftveres processzort alkotója Ken Chapman a Xilinx
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
RészletesebbenDigitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk
Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben
RészletesebbenSzámítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról
RészletesebbenBABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli. A versenyzők figyelmébe:
BABEŞ BOLYAI TUDOMÁNYEGYETEM MATEMATIKA ÉS INFORMATIKA KAR BBTE Matek-Infó verseny 1. tételsor INFORMATIKA írásbeli A versenyzők figyelmébe: 1. A tömböket 1-től kezdődően indexeljük. 2. A rácstesztekre
RészletesebbenAWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
Részletesebben1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
RészletesebbenVezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
RészletesebbenA C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
RészletesebbenISE makró (saját alkatrész) készítése
ISE makró (saját alkatrész) készítése 1. Makró (saját alkatrész) hozzáadása meglévő projekthez... 2 1.1. Kapcsolási rajz alapú makró készítése... 2 1.2. Kapcsolási rajz alapú saját makró javítása... 4
Részletesebben