Bevezetés A SystemC célja A SystemC alapjai SystemC típusok Modulok Rendszerek Csatornák. Budapesti Műszaki és Gazdaságtudományi Egyetem

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Bevezetés A SystemC célja A SystemC alapjai SystemC típusok Modulok Rendszerek Csatornák. Budapesti Műszaki és Gazdaságtudományi Egyetem"

Átírás

1 Budapesti Műszaki és Gazdaságtudományi Egyetem SystemC áttekintés Dr. Czirkos Zoltán, Horváth Péter Elektronikus Eszközök Tanszéke augusztus 18. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 1 / 54

2 Miről lesz szó? 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 Ne kelljen kézzel előállítani HDL kódot, legyen elég egy ismert programozási nyelven elkészíteni a rendszer leírását Miért programozási nyelv segítségével? Nem kell még eldönteni, mi lesz hardverben, mi lesz szoftverben Együtt tervezhető a hardver és a szoftver Mi a hardvertervezés részre koncentrálunk SystemC C++ osztályok gyűjteménye, amelyekkel lehetőségünk van C++ fejlesztői környezetben a hardvert is reprezentálni Ún. compiled code szimuláció is és hardverszintézis is lehetséges Nyílt megoldás Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 2 / 54

3 Hardver-szoftver együttes tervezés Hardver-szoftver együttes tervezés ESL: Electronic System Level design HSCD: Hardware-Software Co-Design Lényeg: elsődleges szempontnak tekintjük, hogy az adott rendszert minél magasabb absztrakciós szinten írjuk le. Az ESL szemlélet a rendszerszintű terveknél egyre elterjedtebb. A világ vezető system-on-a-chip (SoC) tervező cégei irányelvüknek tekintik. A hardver-szoftver együttes tervezés céljai: magas absztrakciós szint, könnyebben átlátható terv legyen, hibákat gyorsabban meg lehessen találni, optimalizálni lehessen a hardver/szoftver particionálást, csökkenjen a piacra kerülés átfutási ideje, és hogy csökkenjenek a fejlesztési költségek. SystemC a HSCD jellegzetes eszköze Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 3 / 54

4 A SystemC A SystemC I. A SystemC nyelv egy C++ könyvtár és metódus gyűjtemény, ami igen hatékonyan használható szoftveres algoritmusok készítésére, hardver architektúrák modellezésére, valamint SoC és rendszer szintű modellek interfészének megvalósítására. A SystemC és a hagyományos C++ fejlesztői környezet használatával rendszer szintű modellek írhatók le, ezek azután gyorsan szimulálhatók és optimalizálhatók. A rendszert leíró modell egy C++ program, ami futtatva ugyanazt a viselkedést produkálja, amit maga a rendszer Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 4 / 54

5 A SystemC A SystemC II. A SystemC olyan osztályokat tartalmaz, amelyekkel a megszokott nyelv és feljesztő eszközök használatával képesek leszünk hardver leírására A SystemC olyan hardverhez közeli modellezési lehetőségeket biztosít, mint a párhuzamosság, időzítések, késleltetések, hardverközeli kommunikációs csatornák (pl. portok), hardver-megvalósításokban használt adattípusok, melyek a C++-ban nincsenek meg, hiszen az egy szekvenciális programozási nyelv, amely szoftverfejlesztéshez való. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 5 / 54

6 A SystemC célja A SystemC célja Rendszerszintű modellek fejlesztése magas absztrakciós szint a működés vizsgálata szimulációval Magasszintű hardverleírásból szintézis szintetizálható kódot kell írni bizonyos nyelvi elemeket pl. pointereket kerülni kell kimenet: Verilog vagy VHDL leírás, ami egy target technológiára valóban szintetizálható Szimulációhoz: SystemC library és egy C++ fordító kell Szintézis: szabad hozzáférésű programokkal megoldható. Pl. SystemC könyvtár CvSDL Waveform Viewer SystemCrafter SC v Xilinx ISE WebPack 8.2i Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 6 / 54

7 A SystemC célja SystemC alapú szintézis és szimuláció Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 7 / 54

8 A SystemC komponensei A SystemC komponensei Modul egy container, ami más modulokat és process-eket foglalhat magában (C++ osztály) Process folyamat egy adott funkcionalitás leírására szolgál Signal jel támogatott a 2 (0,1) és 4 (0,1,X,Z) értékű logika is Port jelek csatlakozó pontja Adattípusok sokféle típus, különféle szempontok szerint használhatók. Vigyázat szintetizálhatóság! Órajel az idő modellezésére szolgáló spec. jel Szimulációs kernel lehetővé teszi a gyors (compiled kódú) szimulációt Jelalak-figyelés VCD (Value Change Dump), WIF (Waveform Intermediate Format) és ISDB (Integrated Signal Data Base) formátumú jelalak fájlok támogatása Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 8 / 54

9 Az idő modellezése Az idő modellezése A SystemC könyvtár egyik legfontosabb komponense a már említett időmodellezés. Ezt a nyelv 64-bites előjel nélküli egész számokkal írja le. Ez a programozó számára az sc_time típus mögé van bújtatva. Ilyen módon történő implementálása miatt az idő nem írható le folytonos, analóg módon, csak diszkrét értékekkel. Ennek következtében van egy legkisebb ábrázolható időkvantum, amit időfelbontásnak nevezünk. Ez a nyelv használója által beállítható. Default egység: ps ps = 213 nap. :) Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 9 / 54

10 Hardver adattípusok Hardver adattípusok A hardver modellezés céljára a SystemC-ben hasonló adattípusok léteznek, mint a Verilog-ban, pl. sc_logic, sc_lv. Pl. DSP jellegű hardverekhez, számítási algoritmusok implementálására szolgáló típusok a sc_fixed és az sc_int Mivel a SystemC a C++-on alapul, értelemszerűen minden C++ adattípus használható, ha nem szükséges valamit SystemC típussal reprezentálni. Fontos szempontok az adattípusokkal kapcsolatban: Bizonyos adattípusok használata nem teszi lehetővé a hardverszintézist. Minden olyan modulban, amit esetleg hardverként szeretnénk megvalósítani, az ilyen típusokat kerülni kell. A SystemC adattípusok sok memóriát igényelnek, és jelentősen lassíthatják a szimulációt. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 10 / 54

11 Modulok és metódusok Modulok és metódusok A modulok egy SystemC terv alapvető építőkövei, hasonlóan a C++ osztályokhoz. Egy modul egy másik modulban példányosítható (pl. több flipflop egy számlálóban) Minden alacsonyabb szintű modul példányosítható magasabb szintű modulokban Az SC_METHOD és az SC_THREAD típusú függvények jelentik a modellezés alapját a SystemC-ben. SC_METHOD nem kerül időbe a végrehajtásuk SC_THREAD egy eseményre várnak (pl. órajel pozitív éle), aztán egy adott ideig futnak Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 11 / 54

12 Hello world Hello world SystemC-ben modulok szintaxisa # include " systemc.h" SC_MODULE ( hello_world ) { SC_CTOR ( hello_world ) { void say_hello () { cout << " Hello World.\ n"; ; int sc_main ( int argc, char * argv []) { hello_world hello (" hello "); hello. say_hello (); return 0; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 12 / 54

13 Inverter és testbench Második példa: inverter I. a modul Az inverter nevű modulnak egy-egy 1 bites bemene és kimenete van. A működést leíró függvény a bement jelszintjének bármely irányú változására lefut. # include " systemc.h" SC_MODULE ( inverter ) { sc_in <bool > be; sc_out <bool > ki; void inverterproc (); SC_CTOR ( inverter ) { SC_METHOD ( inverterproc ); sensitive << be; ; # include " inverter.h" void inverter :: inverterproc () { ki. write (! be. read ()); A működés egyszerű: beolvassuk a bemenetet (read), invertáljuk (felkiáltójel operátor) és kiírjuk a kimenetre (write). Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 13 / 54

14 Inverter és testbench Második példa: inverter II. a testbench # include " inverter.h" int sc_main ( int argc, char * argv []) { sc_signal <bool > BE, KI; inverter i1 (" i1 "); i1.be(be ); i1.ki(ki ); sc_start (1, SC_NS ); sc_trace_file * tf = sc_create_vcd_trace_file (" out "); sc_trace (tf, BE, "BE "); sc_trace (tf, KI, "KI "); BE =0; sc_start (2, SC_NS ); BE =1; sc_start (2, SC_NS ); BE =0; sc_start (2, SC_NS ); BE =1; sc_start (2, SC_NS ); BE =0; sc_start (2, SC_NS ); sc_close_vcd_trace_file ( tf ); return 0; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 14 / 54

15 Inverter és testbench Második példa: inverter III. magyarázatok Az inverter i1("i1"); sorban történik a példányosítás, az i1.be(be); pedig azt jelenti, hogy az i1 néven példányosított inverter be nevű portjához kötjük a fent deklarált BE jelet. Az sc_start(1, SC_NS) lépteti 1 ns-mal a szimulációs kernelt (szimulációs órát). A jelalakfigyeléshez létrehozunk egy out.vcd nevű fájlt, amelyre a kód további részében tf néven fogunk hivatkozni. Az ezt követő két sor mondja meg, hogy mely fájlba melyik jel változásait jegyezze fel a SystemC, és milyen néven jelenítse meg azt. Amint az látható, az inverter bemeneti portjához kötött jelnek értéket adunk, majd léptjük a szimulációt 2 egységgel, stb. A végén lezárjuk a jelalakot tartalmazó fájlt. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 15 / 54

16 Számláló Harmadik példa: számláló SC_MODULE( f i r s t _ c o u n t e r ) { s c _ i n _ c l k c l o c k ; sc_in <bool > r e s e t ; sc_in <bool > e n a b l e ; sc_out<sc_ uint <4> > counter_ out ; sc_ uint <4> count ; SC_CTOR( f i r s t _ c o u n t e r ) { SC_METHOD( incr_ count ) ; s e n s i t i v e << c l o c k. pos ( ) ; v o i d i n c r _ c o u n t ( ) { i f ( r e s e t. r e a d ( ) == 1) { count = 0 ; c o u n t e r _ o u t. w r i t e ( count ) ; e l s e i f ( e n a b l e. r e a d ( ) == 1) { count = count + 1 ; c o u n t e r _ o u t. w r i t e ( count ) ; cout <<"@"<< sc_time_stamp()<< " : : I n c r e m e n t e d Counter " <<c o u n t e r _ o u t. r e a d ()<< e n d l ; ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 16 / 54

17 Órajelgenerátor Negyedik példa: órajelgenerátor SC_MODULE ( ClockGen ) { sc_out_clk clock_out ; void clockgen () { while ( true ) { clock_out = true ; wait (500, SC_US ); clock_out = false ; wait (500, SC_US ); ; SC_CTOR ( ClockGen ) { SC_THREAD ( clockgen ); Ez nem szintetizálható, tesztelésre (testbench-be) viszont kitűnő. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 17 / 54

18 Típusok Típusok áttekintés A SystemC sok, a hardvermodellezést lehetővé tevő típust támogat. Törtek ábrázolása: fix pontos formátumban A C++ minden típusa hozzáférhető Típusok használatánál szempontok: szintetizálhatóság absztrakciós szint szimulációs sebesség Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 18 / 54

19 Bit típus Bit típus régi SystemC-ben sc_bit a bit típus, két értéket vehet fel 0 -át and 1 -et. Akkor célszerű használni, amikor se nagy impedanciás (Z), se ismeretlen állapotot (X) nem kell modellezni. Bitenkénti műveletek: operátor leírás használat & és expr1 & expr2 vagy expr1 expr2 ^ kizáró vagy expr1 ^ expr2 ~ tagadás ~expr &= és értékadás &= expr = vagy értékadás = expr ^= kizáró vagy értékadás ^= expr == egyenlő-e expr1 == expr2!= nem egyenlő-e expr1!= expr2 Új SystemC-ben egyszerűen bool-t használunk helyette. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 19 / 54

20 Bit típus Bit típus példa # include <systemc.h> int sc_main ( int argc, char * argv []) { sc_bit enable ; sc_bit read_en ; enable = 1 ; cout <<" enable : " << enable << endl ; read_en = enable ; cout <<" read_en : " << read_en << endl ; return 0; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 20 / 54

21 Logikai típus Logikai típus Az sc_bit csak két értékű (0,1), buszok nem modellezhetőek vele. sc_logic típus: tényleges hardverben előforduló jel állapotok (értékek): 0, 1, X és Z. 0 : hamis 1 : igaz X or x : ismeretlen, definiálatlan Z or z : nagy impedanciás (high-z), lebegő csomópont értéke Ugyanazok a bitműveletek értelmezettek. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 21 / 54

22 Logikai típus Logikai típus igazságtáblák ÉS 0 1 X Z X X X 0 X X X Z 0 X X X VAGY 0 1 X Z X X X X 1 X X Z X 1 X X NEM 0 1 X Z 1 0 X X Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 22 / 54

23 Logikai típus Logikai típus példa # include <systemc.h> int sc_main ( int argc, char * argv []) { sc_logic pad ; sc_logic enable ; sc_logic read_en ; pad = z ; cout <<" pad : " << pad << endl ; enable = 0 ; cout <<" enable : " << enable << endl ; read_en = ~ enable ; cout <<" read_en : " << read_en << endl ;... Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 23 / 54

24 Bit vektor Bit vektor sc_bv<m>: több bitből álló vektor. A méretet kacsacsőrök között, egész számmal kell megadni (sablon paraméter). 0 a jobb szélső, legalsó helyiértékű index, M-1 a legnagyobb helyiértékű. Bitenkénti műveletek mellett a továbbiak: operátor leírás használat [] bit kiválasztás vektor[index] (,) összefűzés (expr1,expr2,expr3).range() rész kiválasztása vektor.range(i1,i2).and_reduce() bitek és-elése vektor.and_reduce().or_reduce() bitek vagy-olása vektor.or_reduce().xor_reduce() bitek kizáró vagy-olása vektor.xor_reduce() Kisebb vektor értékadásakor a felső helyiértékű bitek 0-k lesznek, nagyobbnál eldobja a felsőket. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 24 / 54

25 Bit vektor Bit vektor példa # include <systemc.h> int sc_main ( int argc, char * argv []) { sc_bv <8> data_bus ; sc_bv <16> addr_bus ; sc_bit parity ; data_bus = " "; cout <<" data_bus : " << data_bus << endl ; addr_bus. range (7,0) = data_bus ; cout <<" addr_bus : " << addr_bus << endl ; addr_bus. range (0,7) = data_bus ;... Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 25 / 54

26 Logikai vektor Logikai vektor sc_lv<m>: mint a bit vektor, csak 4 értékű logikával. Ezzel lehet jól pl. buszokat modellezni. Aritmetikai műveleteket nem lehet végezni! Azokat az sc_int és sc_uint típusokon kell. #i n c l u d e <systemc. h> i n t sc_main ( i n t argc, c h a r a r g v [ ] ) { sc_lv <8> data_bus ( s c _ l o g i c ( z ) ) ; sc_ lv <16> addr_bus ; s c _ l o g i c p a r i t y ; cout <<"data_bus : " << data_bus << e n d l ; data_bus = " " ; cout <<"data_bus : " << data_bus << e n d l ; addr_bus. r a n g e ( 7, 0 ) = data_bus ; cout <<"addr_bus : " << addr_bus << e n d l ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 26 / 54

27 Aritmetikai típusok Aritmetikai típusok sc_int<m> és sc_uint<m>: max. 64 bites előjeles és előjel nélküli egész szám. sc_bigint<m> és sc_biguint<m>: nagyobb (általában max. 512 bites) számok. Használhatóak rajtuk az aritmetikai műveletek: +, *, /,... Használható a bitkiválasztás [] és az összefűzés (,) is. #i n c l u d e <systemc. h> i n t sc_main ( i n t argc, c h a r a r g v [ ] ) { s c _ i n t <4> n i b b l e _ s i z e = 1 ; s c _ i n t <8> b y t e _ s i z e = 2 ; s c _ i n t <32> dword_size = 3 ; dword_ size++; cout <<"dword_ size : " << dword_ size << e n d l ; b y t e _ s i z e += n i b b l e _ s i z e ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 27 / 54

28 Moduldefiníció Moduldefiníció SC_MODULE makróval: SC_MODULE ( modul_n év) {... ; SC_CTOR ( modul_n év) {... A modul tulajdonképpen egy C++ osztály, amelyet a konstruktor beregisztrál a SystemC szimulációs kernel számára. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 28 / 54

29 Portok Portok modulok és külvilág SC_MODULE( f i r s t _ c o u n t e r ) { s c _ i n _ c l k c l o c k ; sc_in <bool > r e s e t ; sc_in <bool > e n a b l e ; sc_out<s c _ u i n t <4> > out ;... ; sc_in<típ> bemeneti port sc_out<típ> kimeneti port sc_inout<típ> ki/be port Portokhoz hozzáférés: read() és write() függvényekkel (mert be van csomagolva egy sc_in<>-be vagy sc_out<>-ba). i f ( r e s e t. r e a d ( ) == 1) { count = 0 ; out. w r i t e ( count ) ; e l s e i f ( e n a b l e. r e a d ( ) == 1) { count = count + 1 ; out. w r i t e ( count ) ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 29 / 54

30 Portok Portok tömbje SC_MODULE ( ports_arrays ) { sc_in <sc_uint <2> > a [4]; sc_in <sc_uint <2> > b [4]; sc_out <sc_uint <3> > o [4]; void body () { for ( int i=0; i <4; i++) o[i]. write (a[i]. read () + b[i]. read ()); SC_CTOR ( ports_arrays ) { SC_METHOD ( body ); for ( int j=0; j <4; j++) sensitive << a[j] << b[j]; ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 30 / 54

31 Belső változók Modul belső változói Tetszőleges SystemC, C++ vagy felhasználó által definiált belső változó létrehozható. SC_MODULE ( first_counter ) { sc_in_clk clock ; sc_in <bool > reset ; sc_in <bool > enable ; sc_out <sc_uint <4> > out ; sc_uint <4> count ;... first_counter clock out enable reset 4 Ezek szintaktikailag tagváltozóként jelennek meg. Ha szintetizálni szeretnénk, akkor vigyázni kell a típusokkal! Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 31 / 54

32 Folyamatok Folyamatok (process) A folyamatok valósítják meg a tényleges tevékenységeket. Mint Verilogban egy always blokk Lehet szintre érzékeny (kombinációs logika) és élre érzékeny (szekvenciális hálózatok) SC_MODULE ( dff ) { sc_in <bool > din ; sc_in <bool > clk ; sc_out <bool > out ; void implement (); SC_CTOR ( dff ) { SC_METHOD ( implement ); sensitive << clk. pos (); ; A folyamatokat a konstruktorban regisztráljuk. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 32 / 54

33 Folyamatok Folyamatok típusai A SystemC-ben 3-féle process van: metódusok (methods) Triggerelő eseményre indulnak. Az eseményeket az ún. érzékenységi listán adjuk meg (sensitive, sensitive_pos) Futás után visszatérés a hívóhoz szálak (threads) Indítás után futnak, pl. amíg egy esemény be nem következik Felfüggeszthetők és újraindíthatóak (az utolsó felfüggesztés helyétől) órajelre indított szálak (clocked threads) Egy ilyen process számára az indító órajelet is definiálni kell (csak 1 bites trigger portja lehet egy ilyen process-nek) Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 33 / 54

34 Folyamatok Method SC_MODULE ( first_counter ) { sc_in_clk clock ; sc_in <bool > reset ; sc_in <bool > enable ; sc_out <sc_uint <4> > counter_out ; sc_uint <4> count ; SC_CTOR ( first_counter ) { SC_METHOD ( incr_count ); sensitive << reset ; sensitive << clock. pos (); SC_METHOD ( print_count ); sensitive << counter_out ; void incr_count () { if ( reset. read () == 1) { count = 0; counter_out. write ( count ); else if ( enable. read () == 1) { count = count + 1; counter_out. write ( count ); void print_count () { cout << sc_time_stamp () << " :: Counter Value " << counter_out. read () << endl ; ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 34 / 54

35 Folyamatok Folyamatok dont_initialize() A folyamatok a konstruktorból indítva egyből lefutnak. Ennek elkerülése: SC_CTOR ( tff_sync_reset ) { SC_METHOD ( tff ); dont_initialize (); sensitive << clk. pos (); Ez SC_METHOD folyamatoknál lehet fontos, hiszen az SC_THREAD-ek elejére/végére könnyű rakni egy wait()-et. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 35 / 54

36 Folyamatok Thread SC_MODULE ( first_counter ) { sc_in_clk clock ; sc_in <bool > reset ; sc_in <bool > enable ; sc_out <sc_uint <4> > counter_out ; sc_uint <4> count ; SC_CTOR ( first_counter ) { SC_THREAD ( incr_count ); sensitive << clock. pos (); SC_THREAD ( print_count ); sensitive << counter_out ; void incr_count () { while ( true ) { wait (); if ( reset. read () == 1) { count = 0; counter_out. write ( count ); else if ( enable. read () == 1) { count = count + 1; counter_out. write ( count );... ; Örökké futnak alszanak triggerek között. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 36 / 54

37 Folyamatok Clocked thread SC_MODULE ( first_counter ) { sc_in_clk clock ; sc_in <bool > reset ; sc_in <bool > enable ; sc_out <sc_uint <4> > counter_out ; sc_uint <4> count ; SC_CTOR ( first_counter ) { SC_CTHREAD ( incr_count, clock. pos ()); SC_THREAD ( print_count ); sensitive << counter_out ; void incr_count () { while ( true ) { wait (); if ( reset. read () == 1) { count = 0; counter_out. write ( count ); else if ( enable. read () == 1) { count = count + 1; counter_out. write ( count );... ; A triggerelő csak egy bites jel lehet. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 37 / 54

38 Folyamatok Folyamatok wait_until() Egy SC_CTHREAD() típusú folyamatban adott feltétel teljesüléséig lehet várni a wait_until() hívással. void incr_count () { while ( true ) { wait_until ( reset. delayed () == true enable. delayed () == true ); if ( reset. read () == 1) { count = 0; counter_out. write ( count ); else if ( enable. read () == 1) { count = count + 1; counter_out. write ( count ); Fontos a.delayed() hiszen különben kiértékelődne az aktuális állapot (C++!), és a wait_until() nem látná a változást! Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 38 / 54

39 Példányosítás Modul példányosítása Modul és szignálok: first_counter counter1 (" counter1 "); sc_signal <bool > clocksig, resetsig, enablesig ; sc_signal <sc_uint <4> > outsig ; first_counter clocksig enablesig resetsig clock enable reset out 4 outsig counter1 Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 39 / 54

40 Csatlakoztatás Portok csatlakoztatása Minden portot csatlakoztatni (bind) kell. Lehet név szerint: c o u n t e r 1. e n a b l e ( e n a b l e s i g ) ; c o u n t e r 1. r e s e t ( r e s e t s i g ) ; c o u n t e r 1. c l o c k ( c l o c k s i g ) ; c o u n t e r 1. out ( o u t s i g ) ; Vagy pozíció (modulbeli deklaráció sorrendje) szerint: c o u n t e r 1 ( c l o c k s i g, r e s e t s i g, e n a b l e s i g, o u t s i g ) ; first_counter clocksig enablesig resetsig clock enable reset out 4 outsig counter1 Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 40 / 54

41 Órajel Órajel objektumok sc_clock osztályból hozható létre: sc_clock cg (" clockgen ", 10, SC_NS, 0.5, 1, SC_NS, true ); clockgen nevű, 10 ns periódusidejű, 50% kitöltési tényezőjű, 1 ns időegységnél, magas (true) szinttel induló. 50% H L 1 10 Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 41 / 54

42 Komplex példa Komplex példa: háromszöggenerátor TESTBENCH sc_clock ora_be SDDAHaromszog jel_ki sddaki cg Haromszog SDDA ora_be ora_be jel_ki haromszog_ki szazalek_be hsz1 sdda11 sddahsz sc_main() Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 42 / 54

43 Komplex példa SDDAHaromszog modul SC_MODULE ( SDDAHaromszog ) { sc_in_clk ora_be ; sc_out <bool > jel_ki ; SDDA sdda1 ; Haromszog hsz1 ; sc_signal <sc_uint <7> > jel ; SC_CTOR ( SDDAHaromszog ) : sdda1 (" sdda1 "), hsz1 (" hsz1 ") { hsz1. ora_be ( ora_be ); sdda1. ora_be ( ora_be ); hsz1. haromszog_ki ( jel ); sdda1. szazalek_be ( jel ); ; sdda1. jel_ki ( jel_ki ); Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 43 / 54

44 Komplex példa Háromszög generátor modul SC_MODULE ( Haromszog ) { // portok sc_in_clk ora_be ; sc_out <sc_uint <7> > haromszog_ki ; bool fel ; int var ; sc_uint <7> mertek ; SC_CTOR ( Haromszog ) { SC_THREAD ( haromszoggen ); sensitive << ora_be. pos (); void haromszoggen () { while ( true ) { var =( var +1)%100; if ( var ==0) { // adott iranyba lép mertek = mertek +( fel?+1: -1); haromszog_ki. write ( mertek ); // irány megfordul? if ( mertek <1) fel = true ; if ( mertek >99) fel = false ; wait (); ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 44 / 54

45 Komplex példa TestBench: sc_main() törzse sc_set_time_resolution (1, SC_NS ); SDDAHaromszog sddahsz (" sddahsz "); sc_clock cg (" cg", 500, SC_NS, 0.5, 10, SC_NS, true ); sc_signal <bool > sddaki ; sddahsz. ora_be (cg ); sddahsz. jel_ki ( sddaki ); sc_trace_file * tf = sc_create_vcd_trace_file (" sdda "); sc_trace (tf, cg, " orajel "); sc_trace (tf, sddahsz. hsz1. haromszog_ki, " haromszog_ki "); sc_trace (tf, sddaki, " sddaki "); sc_start (100, SC_MS ); sc_close_vcd_trace_file ( tf ); Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 45 / 54

46 Buszok Buszok modellezése I. TriState kimenetek esetén fel kell oldani a portok kimeneteit: 0 1 Z X 0 0 X 0 X 1 X 1 1 X Z 0 1 Z X X X X X X Erre valók az sc_in_rv, sc_out_rv és sc_inout_rv (resolved) típusú portok: SC_MODULE ( module_a ) { sc_in_rv <1> in; sc_out_rv <1 > out ; sc_inout_rv <4 > inout ;... ; Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 46 / 54

47 Buszok Buszok modellezése II. A _rv típusú portok ilyen szignálokra köthetők: SC_MODULE ( resolve ) { sc_in_rv <1> in; sc_out_rv <1 > out ; sc_inout_rv <4 > inout ;... ; int sc_main ( int argc, char * argv []) { sc_signal_rv <1 > in1 ; sc_signal_rv <1 > out ; sc_signal_rv <4 > inout ; resolve rs1 (" RESOLVE1 "); rs1 (in1, out, inout );... Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 47 / 54

48 Fogalmak, létrehozás Csatornák: fogalmak Termelő (Producer) Csatorna (channel) Fogyasztó (Consumer) FIFO írás / olvasás interfész (r/w interface) Kommunikáció absztrakciója A csatlakozás interfészeken (interface) keresztül valósul meg Események (events) zajlanak le Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 48 / 54

49 Fogalmak, létrehozás Csatornák: deklaráció struct write_if : public sc_interface { virtual void write ( char ) = 0; virtual void reset () = 0; ; struct read_if : public sc_interface { virtual void read ( char &) = 0; virtual int num_available () = 0; ; Létrehozzuk az írás és az olvasás interfészét. Tisztán virtuális függvényként megadjuk a műveleteket. Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 49 / 54

50 FIFO példa Csatornák: FIFO implementáció class fifo : public sc_channel, public write_if, public read_if { private : enum { max_elements =10; char data [ max_elements ]; int num_elements, first ; sc_event write_event, read_event ; bool fifo_empty () {...; bool fifo_full () {...; public : fifo () : num_elements (0), first (0) { ; void write ( char c) { if ( fifo_full ()) wait ( read_event ); data [...] = c; ++ num_elements ; write_event. notify (); void read ( char &c) { if ( fifo_empty ()) wait ( write_event ); c = data [ first ]; -- num_elements ; first =...; read_event. notify ();... Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 50 / 54

51 FIFO példa Csatornák: tudnivalók A csatornák: Az sc_channel osztályból kell öröklődjenek És további osztályokból, amelyek az sc_interface-t megvalósítják Meg kell valósítaniuk az összes tisztán virtuális függvényt A wait() hívások: wait(sc_event) eseményig wait(time) wait(time_out, sc_event) Események a szinkronizációhoz: Bekövetkezés jelzése:.notify() Felébred hatásukra a folyamat a wait()-ből a másik oldalon Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 51 / 54

52 Termelő, fogyasztó Csatornák: termelő-fogyasztó példa SC_MODULE ( termelo ) { public : sc_port <write_if > out ; ; SC_CTOR ( termelo ) { SC_THREAD ( main ); void main () { char c; while ( true ) { out. write (c); if (...) out. reset (); SC_MODULE ( fogyaszto ) { public : sc_port <read_if > in; ; SC_CTOR ( fogyaszto ) { SC_THREAD ( main ); void main () { char c; while ( true ) { in. read (c); cout << in. num_available (); Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 52 / 54

53 Termelő, fogyasztó Csatornák: összekapcsolás Termelő FIFO Fogyasztó SC_MODULE ( top ) { public : fifo fi; termelo term ; fogyaszto fogy ; ; SC_CTOR ( top ) { term. out ( fi ); fogy. in( fi ); Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 53 / 54

54 Előnyök Csatornák: előnyök Interfészek: Előnyök: Termelőben: sc_port<write_if> out; írható Fogyasztóban: sc_port<read_if> in; olvasható Egyik sem tudja, hogyan működik a csatorna A kommunikáció módja rejtve van a modulok elől A kommunikáció módját és a funkcionalitást elválasztjuk Kipróbálhatók különféle csatornák! Szoftveres FIFO, okos sorba állítással Hardveres FIFO A csatorna további modulokat tartalmaz... Dr. Czirkos Zoltán, Horváth Péter SystemC áttekintés 54 / 54

Rendszerszintű tervezés: SystemC I.

Rendszerszintű 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észletesebben

VII. Tesztkörnyezet felépítése

VII. Tesztkörnyezet felépítése VII. Tesztkörnyezet felépítése 1 VII.1. Szimuláció folyamatát vezérlő eszközök SystemC-ben sc_start sc_stop sc_time_stamp sc_simulation_time sc_clock sc_trace sc_cycle és az sc_initialize sc_time 2 sc_start

Részletesebben

IV. A SystemC alapelemei

IV. A SystemC alapelemei IV. A SystemC alapelemei Ennek a bevezető előadásnak a célja, hogy röviden és mindenekelőtt érthetően bemutassa a SystemC alkalmazását elektronikai eszközök tervezésére. Részletesen ismertetésre kerül

Részletesebben

MIKROELEKTRONIKA, VIEEA306

MIKROELEKTRONIKA, VIEEA306 Budapesti Műszaki és Gazdaságtudományi Egyetem MIKROELEKTRONIKA, VIEEA306 Tervezés FPGA-ra, Verilog, SystemC http://www.eet.bme.hu/~poppe/miel/hu/18-ictervezes3.ppt http://www.eet.bme.hu Tervezés FPGA-ra

Részletesebben

III. Alapfogalmak és tervezési módszertan SystemC-ben

III. 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észletesebben

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt

Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt BME Hardver modellezés SystemC-vel és SDL grafikus könyvtárral Visual Stúdió alatt Visual Studio, SystemC, SDL Tóth Gergely Endre 2013.03.18. 1 Bevezetés Ebben a dokumentumban leírom, hogy hogyan lehet

Részletesebben

A SystemC programok adattípusai

A SystemC programok adattípusai A SystemC programok adattípusai A negyedik fejezetben bemutatott félösszeadó áramköri példában semmilyen SystemC típus sem szerepelt. Viszont összetettebb áramköri feladatok esetén elengedhetetlen a különböző

Részletesebben

Laborgyakorlat 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 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észletesebben

5. 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 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észletesebben

Budapesti Műszaki és Gazdaságtudományi Egyetem. A Verilog HDL II. Nagy Gergely. Elektronikus Eszközök Tanszéke (BME) szeptember 26.

Budapesti 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észletesebben

Hardver leíró nyelvek (HDL)

Hardver 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észletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Occam 1. Készítette: Szabó Éva

Occam 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észletesebben

8.3. AZ ASIC TESZTELÉSE

8.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észletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

és az instanceof operátor

é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észletesebben

ISA szimulátor objektum-orientált modell (C++)

ISA szimulátor objektum-orientált modell (C++) Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált

Részletesebben

Java 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. 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észletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

OOP #14 (referencia-elv)

OOP #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észletesebben

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

Bánsághi Anna 2014 Bánsághi Anna 1 of 33 IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív

Részletesebben

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel Czirkos Zoltán 2015. augusztus 26. Kivonat Az ismertetett SystemC modul egy mikroprocesszoros rendszerhez illeszthető megjelenítő

Részletesebben

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein. Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető

Részletesebben

OOP. Alapelvek Elek Tibor

OOP. Alapelvek Elek Tibor OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós

Részletesebben

Digitális elektronika gyakorlat

Digitá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észletesebben

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitá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észletesebben

Digitális technika (VIMIAA02) Laboratórium 5

Digitá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észletesebben

Java II. I A Java programozási nyelv alapelemei

Java 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észletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok

Részletesebben

Programozás II. 4. Dr. Iványi Péter

Programozás II. 4. Dr. Iványi Péter Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Elektronika, 5. gyakorlat: algoritmikus C szintézis

Elektronika, 5. gyakorlat: algoritmikus C szintézis Elektronika, 5. gyakorlat: algoritmikus C szintézis Bevezetés A digitális elektronikai rendszerek bonyolultsága és a gyors technológiai fejlődés folyamatos kihívás elé állítja a tervezőket, mert a tervezési

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4 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 4 Fehér Béla Raikovich Tamás,

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Újrakonfigurálható eszközök

Ú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észletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Folyamok kezelése Fájlok írása/olvasása Folyamok kezelése Szabvány folyamok Eddig Kiírás a szöveges konzolra:

Részletesebben

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte.

Programozási alapismeretek :: beadandó feladat. Felhasználói dokumentáció. Molnár Tamás MOTIABT.ELTE motiabt@inf.elte. Programozási alapismeretek :: beadandó feladat Készítő adatai Név: Molnár Tamás EHA: MOTIABT.ELTE E-mail cím: motiabt@inf.elte.hu Gyakorlatvezető: Horváth László Feladat sorszáma: 23. Felhasználói dokumentáció

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Multiplexer (MPX) A multiplexer egy olyan áramkör, amely több bemeneti adat közül a megcímzett bemeneti adatot továbbítja a kimenetére.

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök

Részletesebben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)

Részletesebben

A C# PROGRAMOZÁSI NYELV

A C# PROGRAMOZÁSI NYELV A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework

Részletesebben

Programozás C++ -ban

Programozás C++ -ban Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több

Részletesebben

Apple Swift kurzus 3. gyakorlat

Apple 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észletesebben

Digitális eszközök típusai

Digitális eszközök típusai Digitális eszközök típusai A digitális eszközök típusai Digitális rendszer fogalma Több minden lehet digitális rendszer Jelen esetben digitális integrált áramköröket értünk a digitális rendszerek alatt

Részletesebben

Programozás C++ -ban 2007/4

Programozás C++ -ban 2007/4 Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos

Részletesebben

Kombiná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 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észletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus

Részletesebben

500. AA Megoldó Alfréd AA 500.

500. AA Megoldó Alfréd AA 500. Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai

Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Xilinx System Generator Szántó Péter BME MIT, FPGA Laboratórium Xilinx System Generator MATLAB Simulink Toolbox Simulink Modell alapú grafikus

Részletesebben

Pénzügyi algoritmusok

Pé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észletesebben

A C# programozási nyelv alapjai

A 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észletesebben

.Net adatstruktúrák. Készítette: Major Péter

.Net adatstruktúrák. Készítette: Major Péter .Net adatstruktúrák Készítette: Major Péter Adatstruktúrák általában A.Net-ben számos nyelvvel ellentétben nem kell bajlódnunk a változó hosszúságú tömbök, listák, sorok stb. implementálásával, mert ezek

Részletesebben

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok

Bevezetés a programozásba II. 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Bevezetés a programozásba II 5. Előadás: Másoló konstruktor, túlterhelés, operátorok Emlékeztető struct Vektor { int meret, *mut; Vektor(int meret); int szamlal(int mit); }; int Vektor::szamlal(int mit)

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 4

Digitális technika (VIMIAA02) Laboratórium 4 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 4 Fehér Béla Raikovich Tamás,

Részletesebben

Modellező eszközök, kódgenerálás

Modellező eszközök, kódgenerálás Modellező eszközök, kódgenerálás Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek

Részletesebben

Mechatronika é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 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észletesebben

Verilog HDL ismertető 2. hét : 1. hét dia

Verilog 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észletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

Programozá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 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

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

A modell-ellenőrzés gyakorlata UPPAAL

A modell-ellenőrzés gyakorlata UPPAAL A modell-ellenőrzés gyakorlata UPPAAL Uppsalai Egyetem + Aalborgi Egyetem közös fejlesztése; 1995. első verzió megjelenése; részei: - grafikus modellt leíró eszköz (System editor) - szimulátor (Simulator)

Részletesebben

Perifériák hozzáadása a rendszerhez

Perifériák hozzáadása a rendszerhez Perifériák hozzáadása a rendszerhez Intellectual Property (IP) katalógus: Az elérhető IP modulok listája Bal oldalon az IP Catalog fül Ingyenes IP modulok Fizetős IP modulok: korlátozások Időkorlátosan

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 5. gyakorlat Surányi Márton PPKE-ITK 2010.10.05. C++ A C++ egy magas szint programozási nyelv. A legels változatot Bjarne Stroutstrup dolgozta ki 1973 és 1985 között, a C nyelvb

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1 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 1 Fehér Béla Raikovich Tamás,

Részletesebben

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Előadó: Dr. Oniga István

LOGIKAI 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észletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

Részletesebben

Fejlett programozási nyelvek C++ Iterátorok

Fejlett programozási nyelvek C++ Iterátorok Fejlett programozási nyelvek C++ Iterátorok 10. előadás Antal Margit 2009 slide 1 Témakörök I. Bevezetés II. Iterátor definíció III. Iterátorok jellemzői IV. Iterátorkategóriák V. Iterátor adapterek slide

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Tartalom Tervezési egység felépítése Utasítások csoportosítása Értékadás... 38

Tartalom 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észletesebben

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1 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 1 Fehér Béla Raikovich Tamás,

Részletesebben

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron

Részletesebben

Bevezetés a programozásba 2

Bevezetés a programozásba 2 Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i

Részletesebben

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok A szemantikus elemzés helye Forrásprogram Forrás-kezelő (source handler) Lexikális elemző (scanner) A szemantikus elemzés feladatai Fordítóprogramok előadás (A, C, T szakirány) Szintaktikus elemző (parser)

Részletesebben

Mérési jegyzőkönyv. az ötödik méréshez

Mérési jegyzőkönyv. az ötödik méréshez Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc

Részletesebben

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma

Részletesebben

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális

Részletesebben

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon 1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom

Részletesebben

Webprogramozás szakkör

Webprogramozá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észletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények Dr. Bécsi Tamás 6. Előadás Bevezetés Egy idő után az egyetlen main(){ függvénnyel megírt programunk túl nagy méretű lesz. Vannak

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

6. hét: A sorrendi hálózatok elemei és tervezése

6. 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észletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1

STL gyakorlat C++ Izsó Tamás május 9. Izsó Tamás STL gyakorlat/ 1 STL gyakorlat C++ Izsó Tamás 2016. május 9. Izsó Tamás STL gyakorlat/ 1 Komponensek kapcsolata Deklarálja az alábbi osztálydiagramon szereplő osztályok közül az A, AA és AB osztályokat! A konstruktorokat

Részletesebben

128. AA Megoldó Alfréd AA 128.

128. AA Megoldó Alfréd AA 128. Programozás alapjai 2. PótZH 2010.05.20. gyakorlat: Hiány:0 ZH: MEGOLD SEHOL/5. Hftest: 0 ZHp: Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden

Részletesebben

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa!

Tartalomjegyzék. Általános Információ! 2. Felhasználói dokumentáció! 3. Feladat! 3. Környezet! 3. Használat! 3. Bemenet! 3. Példa! Tartalomjegyzék Általános Információ! 2 Felhasználói dokumentáció! 3 Feladat! 3 Környezet! 3 Használat! 3 Bemenet! 3 Példa! 3 A program eredménye! 3 Példa! 3 Hibalehetőségek! 3 Példa! 3 Fejlesztői dokumentáció!

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához Ellenőrizzük a projektből importált adatokat. Ha rendben vannak, akkor kattintsunk a Next gombra. Válasszuk a Create Design

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT 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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét 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 VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Informatika terméktervezőknek

Informatika 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észletesebben

S 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 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észletesebben

Bevezetés, a C++ osztályok. Pere László

Bevezetés, a C++ osztályok. Pere László Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK

Részletesebben

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Összeadó áramkör A legegyszerűbb összeadó két bitet ad össze, és az egy bites eredményt és az átvitelt adja ki a kimenetén, ez a

Részletesebben