V H D L. Very high speed integrated circuits Hardware Description Language

Koko: px
Aloita esitys sivulta:

Download "V H D L. Very high speed integrated circuits Hardware Description Language"

Transkriptio

1 V H D L H. Honkanen Very high speed integrated circuits Hardware Description Language Allaolevassa kuvassa on esitetty FGPA tai ASIC piirin suunnittelun vuokaavio. Kuva: FPGA piirin suunnittelu Tästä kokonaisuudesta suunnittelukielen ( VHDL ) osuus on piirisuunnittelu ( Design entry ). Simuloinnit ja synteesi ovat kääntäjäohjelmiston tehtäviä. VHDL kielellä kuvataan digitaalitaalipiirin toiminta. Kuvaus voidaan tehdä joko rakennekuvauksena ( structual description ) tai käyttäytymiskuvauksena ( behavioral description ). VHDL kielessä ei kuvata pinninumeroita ( kuten esim AbelHDL:ssa ), vaan pinnikytkennät määritellään kääntäjässä

2 VHDL kielen ominaisuuksia: Standardisoitu kieli, IEEE , IEEE , IEEE Laajasti tuettu, ( lähes ) kaikista kääntäjistä löytyy VHDL tuki Laaja, VHDL:llä voidaan kuvata kaikki digitaalipiirit, PLD piireistä prosessoreihin Koodi tekstipohjainen, eli koodia voi kirjoittaa millä hyvänsä tekstieditorilla ( esim. nodepad ) Kuvaus voidaan tehdä: o Rakennekuvauksena ( structual description ) Esitetään logiikan toiminta komponentein ja/tai alemman tason sunnitteluyksiköin Vastaa kuvausta piirikaavio- tai lohkokaaviotasolla o Käyttäytymiskuvauksena ( behavioral description ) Esitetään piirin toiminta Vastaa kuvausta totuustaulun tai tilakaavion avulla EI priorisointia, laskentajärjestys määriteltävä sulkulausekkein! Samassa ohjelmassa ( END ) olevat operaatiot toteutuvat RINNAKKAISESTI!!! Kellotus kuvattava ehtolauseella Ei erottele pieniä ja suuria kirjaimia ( paitsi CHARACTER ) VHDL kielessä on runsaasti varattuja sanoja, tässä ohjeessa VHDL kielen sanat ovat kirjoitettu ISOLLA ja väriltään sinisiä tai punaisia OPERAATTORIT ( keskeisimmät ) : Loogiset operaattorit, Logical operators o AND, OR, NOT, NAND, NOR, XOR, XNOR o Vain NOT operaatio on korkeammalla prioriteetillä, muut prioriteetit määriteltävä sulkulausekkein! Aritmeettiset operaattorit, Arithmetic operators o + = Summa o = Erotus o * = Kertolasku o / = Jakolasku o ** = Potenssiinkorotus o MOD = Jakojäännösvarmistus o REM = Jakojäännös o ABS = Itseisarvo Vertailuoperaattorit, Relations operators o =, /=, <, >, <=, >= Ketjutusoperaattori, Concatenaus operator o &

3 TYYPIT ( Keskeisimmät ) BIT, Bitti o 0, 1 BIT_VECTOR, Bittijono o Esim: 000, , o Bittivektorin käsittely: Esimerkkinä 8- bittinen bittivektori: BIT_VECTOR (1 TO 8) -- Bittijono, LSB ensin BIT_VECTOR (8 DOWNTO 1) -- Bittijono, MSB ensin Ylemmällä rivillä olevassa bittijonossa ensimmäinen bitti on bitti numero yksi ja alemmalla rivillä olevassa bittijonossa bitti numero 1 on viimeinen. Bittijonon yksittäiseen bittiin voidaan viitata antamalla bittijonon nimi lisättynä osoitettavan bitin numero suluissa, esimerkki: Valimuuttuja <= bittijono(5); -- Valimuuttuja:n -- arvoksi asetetaan bittijono:n bitti numero 5 STD_LOGIC, Standardilogiikka o 0 ; 1 ; L ; H = loogiset tilat o X ; W = Ei tunnettu ( 0/1 ; L/H ) o Z = HiZ, korkeaimpedanssinen tila o - = Don t care o U = Uninitialized, Ei alustettu STD_LOGIC_VECTOR, bittijono o Samat tilavaihtoehdot, kuin STD_LOGIC:lla o Käsittely kuten bittivektorilla ( BIT_VECTOR ) BOOLEAN, Totuusarvo o FALSE ; TRUE CHARACTER, Merkki o Esim: a ; A ; 5 STRING, Merkkijono o Esim: abc123 ; tama on merkkijono INTEGER, Kokonaisluku o Esim: 0 ; 1 ; 123 ; -123 ; REAL, Reaaliluku o Esim: 0 ; ; ; 1.23e10 ; -4.53e-8 TIME, Aika [ Testbench ] o Esim: 45ns ; 500ps o Tuetut aikayksiköt: fs.. hr! o Aikamäärittelyt ovat vain testipenkkiä varten, eivät syntetisoidu kääntäjässä!!! o Käytetään testipenkin koodissa yleensä yhdessä WAIT FOR käskyjen kanssa

4 Koodin rakenne: o Tekstipohjainen ( ASCII ) Ensin esitetään käytettävät kirjastot: o Yleisesti tuetut kirjastot: LIBRARY IEEE; o Tämä kirjasto mahdollistaa matemaattiset operaatiot myös bittijonojen kesken ( ei tuettu kaikissa kääntäjissä ): USE IEEE.STD_LOGIC_UNSIGNED.ALL Sitten esitellään suunnitteluyksikkö, ENTITY Esitetään suunnitteluyksikön signaalit ja muuttujat tyyppeineen o PORT = Piiriin kytkettävät signaalit o SIGNAL = Sisäiset signaalit ( Näitä ei kytketä piirin nastoihin ) o VARIABLE = Muuttuja ( sisäinen ) o CONSTANT = Vakio ( sisäinen ) Sitten arkkitehtuuri, ARCHITECTURE o Sijoitusoperaattori: <= o Huom! OUT tyypin muuttujia EI VOI käyttää tulomuuttujina!! Huomioi sulkeet ja puolipisteet.. Useampia ehdon toteuttavia vaihtoehtoja voidaan antaa pystyviivalla: Kommentit erotetaan: -- Esimerkki VHDL kielisestä kuvauksesta, 2 tuloinen AND portti: - Esimerkissä VHDL kielen sanat suurella, kaikkiin koodeihin tuleva sinisellä ja käskyt punaisella LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt ENTITY kaksituloinen_ja IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä a, b: IN BIT; -- Esitellään tulobitit f: OUT BIT); -- Esitellään lähtöbitit END kaksituloinen_ja; ARCHITECTURE toiminto OF kaksituloinen_ja IS f <= a AND b; -- AND funktio, a&b=f END toiminto;

5 HERKKYYSLISTA Herkkyyslistalla voidaan määrittää ne muuttujat, joiden muuttuessa toiminto toteutetaan ARCHITECTURE OF IS PROCESS (... ) IS -- Sulkeiden sisään määräävät muuttujat koodi -- Tässä normaali ohjelmakoodi END PROCESS END EHTOLAUSEET VHDL kielessä on kaksi ehtolauserakennetta, IF ja CASE lauseet IF LAUSE IF lauseessa on kolme peruskäskyä: IF ( Jos ) o IF käsky voi esiintyä vain kerran ehtolausetta kohden ELSIF ( Ellei ja Jos ) ELSE ( Ellei ) Lopuksi END IF; CASE LAUSE CASE lauseessa annetaan jokainen vaihtoehto erikseen Käskyinä: CASE ; WHEN ja END CASE Ehdollinen sijoitus, WHEN Esimerkkinä nelituloisen MUX:n toiminta esitettynä IF ja CASE lausein LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt ENTITY nelituloinen_vali IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä val: IN BIT_VECTOR (1 DOWNTO 0); -- Kaksi ohjausbittiä D1, D1, D2, D3: IN BIT; -- Esitellään tulobitit Q: OUT BIT); -- Esitellään lähtöbitit END nelituloinen_vali; ARCHITECTURE Iffilause OF nelituloinen_vali IS PROCESS ( D0, D1, D2, D3, val ) IS IF val = "00" THEN -- Jos val 00 Q <= D0; -- niin Q saa D0 arvon

6 ELSIF val = "01" THEN -- Jos val 01 Q <= D1; -- niin Q saa D1 arvon ELSIF val = "10" THEN -- Jos val 10 Q <= D2; -- niin Q saa D2 arvon ELSE -- Ellei mikään em. toteudu, niin Q <= D3; -- niin Q saa D3 arvon END IF; -- Lopetetaan IF -lause END Iffilause; ARCHITECTURE Caselause OF 4tuloinen_valitsin IS PROCESS ( D0, D1, D2, D3, val ) IS CASE val IS -- Ohjaava muuttuja on val WHEN 00 => -- Kun val on 00, niin Q <= D0; -- niin Q saa D0 arvon WHEN 01 => -- Kun val on 01, niin Q <= D1; -- niin Q saa D1 arvon WHEN 10 => -- Kun val on 10, niin Q <= D2; -- niin Q saa D2 arvon WHEN 11 => -- Kun val on 11, niin Q <= D3; -- niin Q saa D3 arvon END CASE; -- Lopetetaan IF lause END Caselause; Saman valitsimen voi toteuttaa myös ehdollisen sijoituksen avulla Esittelyosio [ ENTITY END ] sama kuin aiemmissakin ARCHITECTURE Iffilause OF 4tuloinen_valitsin IS PROCESS ( D0, D1, D2, D3, val ) IS Q <= D0 WHEN val = 00 ELSE -- Jos val= 00,niin Q=D0, ellei D1 WHEN val = 01 ELSE -- Jos val= 01,niin Q=D1, ellei D2 WHEN val = 10 ELSE -- Jos val= 10,niin Q=D2, ellei D3 ; -- Muutoin D3 END Iffilause;

7 DYNAAMINEN TULO ( KELLON OHJAAMA TULO ) Kello-ohjatulle tulolle ei ole VHDL:ssa mitään erikoiskäskyä, vaan se toteutetaan ehtolauseen avulla, esimerkki nousevalla reunalla aktiivisesta kellosignaalista: IF kello EVENT AND kello = 1 THEN -- Jos kello:n reuna muuttunut ja kello 1,niin Huom! Kellon IF lauseeseen EI SAA liittää mitään kellotukseen liittymättömiä ehtoja! [ Käytännössä vain kellon enablointi voidaan liittää kellotuksen IF -lauseeseen ] Esimerkkejä herkkyyslistan ja kellotuksen käytöstä: Nousevalla reunalla aktiivinen D kiikku: LIBRARY IEEE; ENTITY D_kiikku IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Kello, D: IN BIT; -- Esitellään tulobitit Q: OUT BIT); -- Esitellään lähtöbitit END D_kiikku; ARCHITECTURE behavior OF D_kiikku IS PROCESS ( Kello ) IS -- Tehdään, kun kello muuttuu IF kello EVENT AND kello = 1 THEN -- Jos kello:n reuna -- muuttunut ja kello 1,niin Q <= D ; -- Sijoitetaan Q:n arvoksi D:n arvo END IF; END behavior; -- Päätetään arkkitehtuuri Asykronisella nollauksella ( 0-aktiivinen ) varustettu T-kiikku: Koska OUT tyyppistä muuttujaa EI VOI käyttää tulomuuttujana, täytyy Q:lle luoda apumuuttuja funktiokäsittelyn mahdollistamiseksi LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt ENTITY T_kiikku IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Kello, T, Nollaus: IN BIT; -- Tulobitit Q: OUT BIT); -- Lähtöbitit END T_kiikku;

8 ARCHITECTURE behavior OF T_kiikku IS SIGNAL apumuuttuja:bit; -- määritellään apumuuttuja -- Koodi alkaa PROCESS ( Kello, Nollaus ) IS -- Tehdään, kun kello -- tai nollaus muuttuu -- Alikoodi alkaa IF Nollaus = 0 THEN -- Jos nollaus on aktiivinen apumuuttuja <= 0 ; -- apumuuuttuja saa arvon 0 ELSIF kello EVENT AND kello = 0 THEN -- Ellei ja jos kellolla on laskeva reuna, niin IF T = 1 THEN -- Jos T on 1, niin apumuuttuja <= NOT apumuuttuja; -- Invertoidaan apumuut END IF; END IF; Q <= apumuuttuja; -- Nyt Q:n arvoksi sijoitetaan -- apumuuttujan arvo END behavior; -- Päätetään arkkitehtuuri JK kiikku: LIBRARY IEEE; ENTITY JK_kiikku IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä JK: IN BIT_VECTOR ( 1 DOWNTO 0 ); -- JK tulo bittiryhmänä Kello, Nollaus: IN BIT; -- Tulobitit Q: OUT BIT); -- Lähtöbitit END JK_kiikku; ARCHITECTURE behavior OF JK_kiikku IS SIGNAL apumuuttuja:bit; -- määritellään apumuuttuja -- Koodi alkaa PROCESS ( Kello, Nollaus ) IS -- Tehdään, kun kello -- tai nollaus muuttuu -- Alikoodi alkaa IF Nollaus = 0 THEN -- Jos nollaus on aktiivinen apumuuttuja <= 0 ; -- apumuuuttuja saa arvon 0 ELSIF kello EVENT AND kello = 1 THEN -- Jos kellolla on nouseva reuna, niin CASE JK IS -- Case käsky bittiryhmän JK mukaan WHEN 00 => NULL ; -- Jos JK 00, niin mitään ei tehdä WHEN 01 => apumuuttuja <= 0 ; -- Jos JK 01, niin -- apumuuttuja saa arvon 0 WHEN 10 => apumuuttuja <= 1 ; -- Jos JK 10, niin

9 -- apumuuttuja saa arvon 1 WHEN 11 => apumuuttuja <= NOT apumuuttuja; -- Jos JK 11, niin invertoidaan apumuuttuja END CASE; -- Lopetetaan Case -lause END IF; Q <= apumuuttuja; -- Nyt Q:n arvoksi sijoitetaan -- apumuuttujan arvo END behavior; -- Päätetään arkkitehtuuri LASKURI esimerkki laskurista ENTITY laskuri IS PORT( kello, nollaus: IN BIT; -- tulot lahto: OUT INTEGER RANGE 0 TO 15); -- lähtö END laskuri; ARCHITECTURE behavior OF laskuri IS SIGNAL apu: INTEGER RANGE 0 TO 15; -- apumuuttuja PROCESS ( kello, nollaus ) IS -- jos kello tai nollaus -- muuttuu, niin IF nollaus = '0' THEN -- jos nollaus aktiivinen apu <= 0; -- niin nollataan ELSIF kello'event AND kello='1' THEN -- jos kello apu <= apu+1; -- lisätään laskurin arvoa END IF; lahto <= apu; -- sijoitetaan apumuuttujan arvo lähtöön END behavior; MUUNNOKSET ERI TYYPPIEN KESKEN BITIN OSOITTAMINEN BITTIRYHMÄSTÄ Bitti tai bittejä bittiryhmästä ( BIT_VECTOR tai STD_LOGIC_VECTOR ) voidaan osoittaa asettamalla ko. bitin tai bittiryhmän bitin tai bittien järjestysnumero sulkeisiin. Esimerkkejä: -- Annetaan Q:n arvoksi bittijono nimisen bittijonon toiseksi vähiten merkitsevä bitti: Q <= bittijono( 1 ); -- Huom! Bitti 0 on LSB -- Annetaan JK kiikun tuloksi bittijono nimisen bittijonotavun kaksi keskimmäistä bittiä: JK <= bittijono( 4 DOWNTO 3 ); VHDL kielessä tyyppimuunnos voidaan toteuttaa CONV käskyllä, onnistuu tiedostotyypistä STD_LOGIC_VECTOR. Muuttunut tyyppi on esiteltävä

10 Esimerkkinä kahden kahdeksanbittisen luvun summain: Bittivektorina: LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt USE IEEE.STD_LOGIC_UNSIGNED.ALL; -- mahdollistaa matemaattiset -- operaatiot bittijonojen välillä ENTITY summain IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Tulo1, Tulo2 : IN STD_LOGIC_VECTOR ( 7 DOWNTO 0 );-- Tulot, MSB ensin Kello : STD_LOGIC ; Summa : OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0 )); -- Lähtötavu, MSB ensin END summain; ARCHITECTURE summmain OF summain IS -- Esittelyt PROCESS ( Kello ) -- Jos kello muuttuu IF kello'event AND kello = '1' THEN -- jos kellolla nouseva reuna summa <= Tulo1 + Tulo2 ; -- Summaus END IF; -- Päätetään IF -lause -- Päätetään herkkyyyslistan lause END summmain; Kokonaislukuna: LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt ENTITY summain IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Tulo1, Tulo2 : IN INTEGER RANGE 0 to 255 ; -- Tulot Kello : STD_LOGIC ; Summa : OUT INTEGER RANGE 0 to 511 ); -- Lähtö END summain; ARCHITECTURE summmain OF summain IS -- Esittelyt PROCESS ( Kello ) -- Jos kello muuttuu IF kello'event AND kello = '1' THEN -- jos kellolla nouseva reuna summa <= Tulo1 + Tulo2 ; -- Summaus kokonaisluvuilla END IF; -- Päätetään IF -lause -- Päätetään herkkyyyslistan lause END summmain;

11 Kertolasku: LIBRARY IEEE; -- Alkuun aina kirjastomäärittelyt USE IEEE.STD_LOGIC_UNSIGNED.ALL; -- mahdollistaa matemaattiset -- operaatiot bittijonojen välillä ENTITY kertoja IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Luku1, Luku2 : IN STD_LOGIC_VECTOR ( 3 DOWNTO 0 );-- Tulot, MSB ensin Kello : STD_LOGIC ; Tulo : OUT STD_LOGIC_VECTOR ( 7 DOWNTO 0 )); -- Lähtötavu, MSB ensin END kertoja; ARCHITECTURE kertoja OF kertoja IS -- Esittelyt PROCESS ( Kello ) -- Jos kello muuttuu IF kello'event AND kello = '1' THEN -- jos kellolla nouseva reuna Tulo <= Luku1 * Luku2 ; -- Tulo END IF; -- Päätetään IF -lause -- Päätetään herkkyyyslistan lause END kertoja;

12 KOMPONENTTI ja KOMPONENTIN KÄYTTÖ Mutkikkaampien komponenttien, kuten kiikkujen ja siirtorekistereiden kuvaaminen useamman kerran samassa prosessissa ei ole tarpeen, vaan kuvaus voidaan määrittää komponentiksi, jolloin sitä voidaan käyttää kuten komponenttia, määritellään tuloihin tulevat ja lähdöistä lähtevät komponentit. Komponentiksi voidaan määrittää myös toiminnallisia lohkoja, jolloin kuvaus siirtyykin lohkokaaviotasolle Rakenne: -- Esitellään kytkennän tulot ja lähdöt ENTITY vimpain IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä?,?: IN BIT; -- Esitellään tulobitit?,?: OUT BIT); -- Esitellään lähtöbitit END vimpain; ARCHITECTURE struktuuri OF vimpain IS -- Esitellään käytettävät komponentit COMPONENT komponentin_nimi PORT (?,? : IN BIT;? : OUT BIT); END COMPONENT; -- Muutkin komponentit samaan tyyliin -- Seuraavaksi esitellään sisäiset signaalit SIGNAL?,? : BIT; -- Sitten itse asiaan, eli määritellään kytkennät u1: komponentin_nimi PORT MAP(? =>?,? =>? ); jne -- Esitetään kytkennät signaalinimien avulla -- Kaikkien komponenttien kytkennät samalla tavalla END struktuuri;

13 Esimerkkinä seuraavanlainen tilakone:

14 -- Ensiksi esitetään käytettävät kirjastot LIBRARY IEEE; -- Sitten esitellään komponentit ENTITY kaksituloinen_tai IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä a, b: IN BIT; -- Esitellään tulobitit f: OUT BIT); -- Esitellään lähtöbitit END kaksituloinen_tai; ARCHITECTURE toiminto OF kaksituloinen_tai IS f <= a OR b; -- AND funktio, a+b=f END toiminto; ENTITY Invertteri IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä a: IN BIT; -- Esitellään tulobitit f: OUT BIT); -- Esitellään lähtöbitit END Invertteri; ARCHITECTURE toiminto OF Invertteri IS f <= NOT a; END toiminto; ENTITY JK_kiikku IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä JK: IN BIT_VECTOR ( 1 DOWNTO 0 ); -- JK tulo bittiryhmänä Kello: IN BIT; -- Tulobitit Q: OUT BIT); -- Lähtöbitit END JK_kiikku; ARCHITECTURE behavior OF JK_kiikku IS SIGNAL apumuuttuja:bit; -- määritellään apumuuttuja -- Koodi alkaa PROCESS ( Kello ) IS -- Tehdään, kun kello muuttuu -- Alikoodi alkaa IF kello EVENT AND kello = 1 THEN -- Jos kellolla on nouseva reuna, niin CASE JK IS -- Case käsky bittiryhmän JK mukaan WHEN 00 => NULL ; -- Jos JK 00, niin mitään ei tehdä WHEN 01 => apumuuttuja <= 0 ; -- Jos JK 01, niin -- apumuuttuja saa arvon 0 WHEN 10 => apumuuttuja <= 1 ; -- Jos JK 10, niin -- apumuuttuja saa arvon 1 WHEN 11 => apumuuttuja <= NOT apumuuttuja; -- Jos JK 11, niin invertoidaan apumuuttuja END CASE; -- Lopetetaan Case -lause END IF; Q <= apumuuttuja; -- Nyt Q:n arvoksi sijoitetaan -- apumuuttujan arvo END behavior; -- Päätetään arkkitehtuuri

15 -- Tilakoneen kytkentä esitetään ENTITY Tilakone IS -- Suunnitteluyksikön nimi PORT ( -- Piirin pinneihin kytkettäviä Y, clk : IN BIT; -- Esitellään tulobitit M, N: OUT BIT); -- Esitellään lähtöbitit END Tilakone; -- sitten kytkennät ARCHITECTURE struktuuri OF tilakone IS -- Esitellään käytettävät komponentit COMPONENT Kaksituloinen_tai PORT (a, b : IN BIT; f : OUT BIT); END COMPONENT; COMPONENT Invertteri PORT (a : IN BIT; f : OUT BIT); END COMPONENT; COMPONENT JK_kiikku PORT (JK : IN BIT_VECTOR; kello: IN BIT; Q : OUT BIT); END COMPONENT; -- Seuraavaksi esitellään sisäiset signaalit SIGNAL apu1, apu2, apu3 : BIT; -- Sitten itse asiaan, eli määritellään kytkennät u1: Invertteri PORT MAP( a => Y, f => apu1 ); u2: kaksituloinen_tai PORT MAP ( a => apu1, b => apu3, f => apu2 ); u3: JK_kiikku PORT MAP ( JK(1) => apu2, JK(0) => apu2, Q => M, kello => clk ); u4: JK_kiikku PORT MAP ( JK(1) => Y, JK(0) => Y, Q => apu3, kello => clk ); N <= apu3; END struktuuri;

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Verilogvs. VHDL. Janne Koljonen University of Vaasa Verilogvs. VHDL Janne Koljonen University of Vaasa Sälää Huom! Verilogistauseita versioita: 1995, 2001 ja 2005. Kommentit Javasta tutut // ja /* */ ovat kommenttimerkkejä. Case sensitivity Isot ja pienet

Lisätiedot

VHDL Tehtävä 1 : JK-Kiikku toteutettu IF:llä

VHDL Tehtävä 1 : JK-Kiikku toteutettu IF:llä Pasi Vähämartti TEHTÄVÄT 1(13) VHDL Tehtävä 1 : JK-Kiikku toteutettu IF:llä entity JK_kiikku2 is Port ( J : in std_logic; K : in std_logic; CLK : in std_logic; Reset : in std_logic; Q : out std_logic;

Lisätiedot

VHDL-kuvauskieli. Digitaalitekniikka (piirit) Luku 17 Sivu 1 (33)

VHDL-kuvauskieli. Digitaalitekniikka (piirit) Luku 17 Sivu 1 (33) Digitaalitekniikka (piirit) Luku 7 Sivu (33) Digitaalitekniikka (piirit) Luku 7 Sivu 2 (33) Johdanto Tässä luvussa esitellään laitteiston kuvauskielet ja niistä erityisesti VHDL esitetään VHDL-kuvauskielen

Lisätiedot

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja s2009 1. D-kiikku Toteuta DE2:lla synkroninen laskukone, jossa lasketaan kaksi nelibittistä lukua yhteen. Tulos esitetään ledeillä vasta,

Lisätiedot

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg Digitaalitekniikka (piirit) Metropolia / AKo Pikku nnitteluharjoitus: Suunnitellaan sekvenssipiiri, jolla saadaan numerot juoksemaan seitsensegmenttinäytöllä: VHDL-koodin generointi ASM-kaavioista Tässä

Lisätiedot

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 5, ratkaisuja

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 5, ratkaisuja AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 5, ratkaisuja s2009 Tehtävien ratkaisussa käytän yhteistä top-level -suunnitteluyksikköä, jonka komponentilla toteutetaan erilaiset piirin topologiat.

Lisätiedot

21~--~--~r--1~~--~--~~r--1~

21~--~--~r--1~~--~--~~r--1~ - K.Loberg FYSE420 DIGITAL ELECTRONICS 13.05.2011 1. Toteuta alla esitetyn sekvenssin tuottava asynkroninen pun. Anna heratefunktiot, siirtotaulukko ja kokonaistilataulukko ( exitation functions, transition

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

2_1----~--~r--1.~--~--~--,.~~

2_1----~--~r--1.~--~--~--,.~~ K.Loberg FYSE420 DIGITAL ELECTRONICS 3.06.2011 1. Toteuta alia esitetyn sekvenssin tuottava asynkroninen pun. Anna heditefunktiot, siirtotaulukko ja kokonaistilataulukko ( exitation functions, transition

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Digitaalitekniikka (piirit), kertaustehtäviä: Vastaukset

Digitaalitekniikka (piirit), kertaustehtäviä: Vastaukset Digitaalitekniikka (piirit), kertaustehtäviä: Vastaukset Metropolia/AK. Mealyn koneessa on kolme tulosignaalia, joista yksi vaikuttaa pelkästään lähtösignaaleihin, yksi pelkästään koneen tilaan ja yksi

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot

VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla

VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla Vaasan yliopisto Sivu: 1/9 VHDL-piirikuvaus ja simulointi Quartus II ja ModelSim Altera Edition -ohjelmilla Tässä dokumentissa opastetaan, miten -kurssin VHDLtehtävissä tarvittavia ohjelmia käytetään.

Lisätiedot

13. Loogiset operaatiot 13.1

13. Loogiset operaatiot 13.1 13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.

Lisätiedot

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut Sekvenssilogiikka Kombinatooristen logiikkapiirien lähtömuuttujien nykyiset tilat y i (n) ovat pelkästään riippuvaisia

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Python-ohjelmointi Harjoitus 2

Python-ohjelmointi Harjoitus 2 Python-ohjelmointi Harjoitus 2 TAVOITTEET Kerrataan tulostuskomento ja lukumuotoisen muuttujan muuttaminen merkkijonoksi. Opitaan jakojäännös eli modulus, vertailuoperaattorit, ehtorakenne jos, input-komento

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Fortran 90/95. + sopii erityisesti numeriikkaan:

Fortran 90/95. + sopii erityisesti numeriikkaan: Fortran 90/95 + sopii erityisesti numeriikkaan: + optimoivat kääntäjät tehokas koodi + mukana valmiiksi paljon varusfunktioita + kompleksiluvut + taulukko-operaatiot + operaattorit laajennettavissa myös

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia

Javascript 2: Ohjelmointikielen ominaisuudet. Jaana Holvikivi Metropolia Javascript 2: Ohjelmointikielen ominaisuudet Jaana Holvikivi Metropolia HTML - sivun rakenne ja osiot HTML HEAD STYLE SCRIPT STYLEsheet Javascript file BODY Javascript

Lisätiedot

Digitaalilaitteen signaalit

Digitaalilaitteen signaalit Digitaalitekniikan matematiikka Luku 3 Sivu 3 (9) Digitaalilaitteen signaalit Digitaalilaitteeseen tai -piiriin tulee ja siitä lähtee digitaalisia signaaleita yksittäisen signaalin arvo on kunakin hetkenä

Lisätiedot

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100 Tiedonsiirtokäskyt LOAD LOAD-käsky toimii jälkimmäisestä operandista ensimmäiseen. Ensimmäisen operandin pitää olla rekisteri, toinen voi olla rekisteri, vakio tai muistiosoite (myös muuttujat ovat muistiosoitteita).

Lisätiedot

Joni Heikkilä PYROLYYSIGENERAATTORIN AUTOMAATIO-OHJAUS OHJELMOITAVALLA LOGIIKKAPIIRILLÄ

Joni Heikkilä PYROLYYSIGENERAATTORIN AUTOMAATIO-OHJAUS OHJELMOITAVALLA LOGIIKKAPIIRILLÄ Joni Heikkilä PYROLYYSIGENERAATTORIN AUTOMAATIO-OHJAUS OHJELMOITAVALLA LOGIIKKAPIIRILLÄ Opinnäytetyö KESKI-POHJANMAAN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Kesäkuu 2008 TIIVISTELMÄ OPINNÄYTETYÖSTÄ

Lisätiedot

Digitaalitekniikan matematiikka Luku 3 Sivu 1 (19) Kytkentäfunktiot ja perusporttipiirit

Digitaalitekniikan matematiikka Luku 3 Sivu 1 (19) Kytkentäfunktiot ja perusporttipiirit Digitaalitekniikan matematiikka Luku 3 Sivu (9) && Digitaalitekniikan matematiikka Luku 3 Sivu 2 (9) Johdanto Tässä luvussa esitetään digitaalilaitteen signaalit ja digitaalipiirien perustyypit esitellään

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen

Lisätiedot

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.

Lisätiedot

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014

Racket ohjelmointia osa 2. Tiina Partanen Lielahden koulu 2014 Racket ohjelmointia osa 2 Tiina Partanen Lielahden koulu 2014 Sisältö 1) Funktiot ja muuttujat (kertaus) 2) Animaatiot & pelit (big-bang) 3) Vertailuoperaattorit sekä boolean arvot 4) Tietorakenteet (struct)

Lisätiedot

Digitaalitekniikka (piirit) Luku 18 Sivu 1 (32) Rekisterit ja laskurit R C1 SRG4 R C1/ CTRDIV16 1R G2 2CT=15 G3 C1/2,3 + CT 3

Digitaalitekniikka (piirit) Luku 18 Sivu 1 (32) Rekisterit ja laskurit R C1 SRG4 R C1/ CTRDIV16 1R G2 2CT=15 G3 C1/2,3 + CT 3 Digitaalitekniikka (piirit) Luku 8 Sivu (32) R C D SRG4 R C/ D CTRDIV6 R G2 2CT=5 G3 C/2,3 + CT 3 Digitaalitekniikka (piirit) Luku 8 Sivu 2 (32) Johdanto Tässä luvussa esitellään keskeiset salpoja ja kiikkuja

Lisätiedot

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005 Tyyppejä ja vähän muutakin TIEA341 Funktio ohjelmointi 1 Syksy 2005 Viime luennolla... Haskellin alkeita pääasiassa Hello World!... ja muita tutunoloisia ohjelmia Haskellilla Haskellin voima on kuitenkin

Lisätiedot

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin Sisällys 17. Ohjelmoinnin tekniikkaa for-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. if-else-lause vaihtoehtoisesti

Lisätiedot

kwc Nirni: Nimen selvennys : ELEKTRONIIKAN PERUSTEET 1 Tentti La / Matti Ilmonen / Vastaukset kysymyspapereille. 0pisk.

kwc Nirni: Nimen selvennys : ELEKTRONIIKAN PERUSTEET 1 Tentti La / Matti Ilmonen / Vastaukset kysymyspapereille. 0pisk. Tentti La 20.01.2001 / Matti Ilmonen / Vastaukset kysymyspapereille. Nirni: Nimen selvennys : 1 2 3 4 5 z -.. 0pisk.no: ARVOSANA 1. Selvita lyhyesti seuraavat kiitteet ( kohdat a... j ) a) Kokosummain?

Lisätiedot

c) loogiset funktiot tulojen summana B 1 = d) AND- ja EXOR-porteille sopivat yhtälöt

c) loogiset funktiot tulojen summana B 1 = d) AND- ja EXOR-porteille sopivat yhtälöt IGITLITEKNIIKK I 5 Tentti:.. ELEKTRONIIKN LORTORIO Henkilötunnus - KT Σ. Kaksituloisen multiplekserin toimintaa kuvaa looginen funktio = +. Esitä a) :n toiminta K-kartalla (,5 p) b) minimoituna summien

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,

Lisätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot. EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op FT Ari Viinikainen Tietokoneen rakenne Keskusyksikkö, CPU Keskusmuisti Aritmeettislooginen yksikkö I/O-laitteet Kontrolliyksikkö Tyypillinen Von Neumann

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys For-lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. If-else-lause vaihtoehtoisesti

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python 31. tammikuuta 2009 Ohjelmointi Perusteet Pythonin alkeet Esittely Esimerkkejä Muuttujat Peruskäsitteitä Käsittely

Lisätiedot

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,

Lisätiedot

BL40A17x0 Digitaalielektroniikka A/B: Ohjelmoitavat logiikkapiirit

BL40A17x0 Digitaalielektroniikka A/B: Ohjelmoitavat logiikkapiirit BL4A17x Digitaalielektroniikka A/B: Ohjelmoitavat logiikkapiirit Ohjelmoitavat logiikkapiirit (PLD, Programmable Logic Device) PLD (Programmable Logic Device) on yleinen nimitys integroidulle piirille,

Lisätiedot

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009

VHDL/Verilog/SystemC. Jukka Jokelainen 20.10.2009 VHDL/Verilog/SystemC Jukka Jokelainen 20.10.2009 Sisältö Mitä ihmettä on hardwaren ohjelmointi? VHDL Verilog SystemC Analogiaelektroniikan yhdistäminen digitaaliseen maailmaan Yhteenveto ja pohdintaa Hardwaren

Lisätiedot

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Simo K. Kivelä, 15.4.2003 Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Aksioomat Luonnolliset luvut voidaan määritellä Peanon aksioomien avulla. Tarkastelun kohteena on

Lisätiedot

F = AB AC AB C C Tarkistus:

F = AB AC AB C C Tarkistus: Digitaalitekniikka I, tenttitehtäviä ratkaisuineen I 3..995 2. c) esitä seuraava funktio kanonisten summien tulona f(,,) = + Sovelletaan DeMorganin teoreemaa (työläs). Teoriaminimointia ei ole käytetty!

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Elektroniikan laboratorio Lisätehtävät 17.9.2003. Mallivastauksia

Elektroniikan laboratorio Lisätehtävät 17.9.2003. Mallivastauksia OULUN YLIOPISTO IGITLITEKNIIKK I Elektroniikan laboratorio Lisätehtävät 7.9. Mallivastauksia. Mitkä loogiset operaatiot oheiset kytkennät toteuttavat? Vihje: kytkin johtaa, kun ohjaava signaali =. Käytä

Lisätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet String-merkkijonoluokka 1 Ohjelmointikielten merkkijonot Merkkijonot ja niiden käsittely on välttämätöntä ohjelmoinnissa Valitettavasti ohjelmointikielten tekijät eivät tätä ole ottaneet

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle ELEC-A4010 Sähköpaja Arduinon ohjelmointi Jukka Helle Arduino UNO R3 6-20VDC 5VDC muunnin 16 MHz kideoskillaattori USB-sarjamuunnin (ATmega16U2) ATmega328 -mikro-ohjain 14 digitaalista I/O väylää 6 kpl

Lisätiedot

Opas toimilohko-ohjelmointiin

Opas toimilohko-ohjelmointiin Opas toimilohko-ohjelmointiin Automaation tietotekniikka 2011 15. elokuuta 2011 Dokumentin versio Versio Pvm Muutokset Muuttaja 0.1 8.11.2010 Ensimmäinen versio Miika-Petteri Matikainen 0.1.1 12.11.2010

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten Sisällys 16. Ohjelmoinnin tekniikkaa Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 25.1.2010 1 / 41 Valintakäsky if Tähänastiset ohjelmat ovat toimineen aina samalla tavalla. Usein ohjelman pitäisi

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

16. Ohjelmoinnin tekniikkaa 16.1

16. Ohjelmoinnin tekniikkaa 16.1 16. Ohjelmoinnin tekniikkaa 16.1 Sisällys Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely ja alustaminen yhdellä lauseella. For-lause lyhemmin. If-else-lause vaihtoehtoisesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python 8. marraskuuta 2010 Ohjelmointi Perusteet Peruskäsitteitä Olio-ohjelmointi Pythonin alkeet Esittely Esimerkkejä Muuttujat

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen.

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen. Sisällys 12. Monimuotoisuus Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen. Parametrinvälitys eräs monimuotoisuuden sovellus.. Rajapinnat

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1 12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

Esimerkki 1: Kahviautomaatti.

Esimerkki 1: Kahviautomaatti. Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.

Lisätiedot

Kombinatorisen logiikan laitteet

Kombinatorisen logiikan laitteet Kombinatorisen logiikan laitteet Kombinatorinen logiikka tarkoittaa logiikkaa, jossa signaali kulkee suoraan sisääntuloista ulostuloon Sekventiaalisessa logiikassa myös aiemmat syötteet vaikuttavat ulostuloon

Lisätiedot

L models. Vaatimusmäärittely. Ryhmä Rajoitteiset

L models. Vaatimusmäärittely. Ryhmä Rajoitteiset Teknillinen Korkeakoulu T-76.5 Tietojenkäsittelyopin ohjelmatyö Lineaaristen rajoitteiden tyydyttämistehtävän ratkaisija L models Vaatimusmäärittely Ryhmä Rajoitteiset Versio Päivämäärä Tekijä Muutokset

Lisätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1 String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen

Lisätiedot

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Web-teknologiat. XML-datan kysely Topi Sarkkinen Web-teknologiat XML-datan kysely Topi Sarkkinen Sisältö XML (lyhyesti) XPath XQuery XSLT XML Extensible Markup Language Ihmisten ja koneiden luettava metakieli, jolla voidaan määritellä muitakin kieliä

Lisätiedot

ELEC-C3240 Elektroniikka 2 Digitaalielektroniikka Karnaugh n kartat ja esimerkkejä digitaalipiireistä

ELEC-C3240 Elektroniikka 2 Digitaalielektroniikka Karnaugh n kartat ja esimerkkejä digitaalipiireistä ELE-324 Elektroniikka 2 Digitaalielektroniikka Karnaugh n kartat ja esimerkkejä digitaalipiireistä Materiaalia otettu myös: https://www.allaboutcircuits.com/textbook/digital/chpt-8/introduction-to-karnaughmapping/

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2016 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2016 1 / 22 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

Sekvenssipiirin tilat

Sekvenssipiirin tilat igitaalitekniikka (piirit) Luku Täsmätehtävä Tehtävä Sekvenssipiirin tilat Montako tilaa vähintään tarvitaan seuraavissa sekvenssipiireissä: Painikkeella ohjattava lampun sytytys ja sammutus. Näyttöä ohjaava

Lisätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

Digitaalitekniikan perusteet

Digitaalitekniikan perusteet HAMK Riihimäki Versio 1.0 Väinö Suhonen Digitaalitekniikan perusteet Loogiset funktiot ja portit Kombinaatiologiikan elimiä Rekisterilogiikan perusteet Rekisteri- ja sekvenssilogiikan elimiä ena up/ down

Lisätiedot

Harjoitustehtävien ratkaisut

Harjoitustehtävien ratkaisut Sivu (22) 29.8.2 Fe/Ko Luku Sekvenssipiirit. Tutki luentokalvo- ja opetusmonisteessa esitettyä esimerkkiä synkronisesta sekvenssipiiristä. a) Montako tilaa piirissä on? Koska piirissä on kaksi tilasignaalia,

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot