Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink)

Størrelse: px
Begynne med side:

Download "Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink)"

Transkript

1 Bruk av PicoBlaze mikrokontroller i Xilinx System Generator (Matlab - Simulink) Kristian Thorsen April 2010 T-01

2 Sammendrag Sammendrag På laboratoriene til Institutt for Data- og Elektroteknikk ved UiS, er det en utstrakt bruk av FPGA-kretser og såkalte myke prosessorer. Myke prosessorer er mikroprosessorer implementert i programmerbar elektronikk (FPGA). På laboratoriet har man til nå i stor utstrekning brukt den myke prosessoren MicroBlaze fra Xilinx Inc. MicroBlaze er en avansert 32-bits prosessor, men tar relativt stor plass i FPGA-kretsene. For mange applikasjoner og systemer er en 32-bits prosessor det man på engelsk kaller «overkill». Dette gjelder både med tanke på at den er mye kraftigere enn hva man trenger og at den legger beslag på mye mer systemressurser (logiske porter) i FPGA-kretsene. Et MicroBlaze basert system tar for eksempel opp rundt 75 % av systemressursene som er tilgjengelige i de FPGA-kretser som brukes i faget Digital og Analog Elektronikk 1. Det er altså ønskelig å kunne bruke en enklere prosessor for de systemer eller delsystemer som ikke trenger all den regnekraften som MicroBlaze tilbyr. Et alternativ er den myke mikrokontrolleren PicoBlaze fra Xilinx Inc. Dette er er en enkel 8-bits mikrokontroller som i tillegg til prosessorkjerne inneholder internt programminne, arbeidsminne, mulighet for avbrudd samt et sett med inn- og utporter. Målet med denne rapporten er å vise hvordan denne enkle kontrolleren kan implementeres i FPGA-kretsen ved hjelp av verktøyet Xilinx System Generator som kjøres i Matlab (Simulink). 1 Xilninx Spartan-3 XC3S T-01

3 Om PicoBlaze 1 Om PicoBlaze PicoBlaze er en enkel 8-bits mikrokontroller som kan implementeres i de fleste av Xilinxs FPGA-familier. PicoBlaze finnes i flere versjoner og hvilken versjon som brukes avhenger av FPGA-familien det implementeres mot. For Spartan-3, Virtex II og Virtex II-Pro FPGA-er er det versjon 3 som er aktuell. PicoBlaze3 har blant annet følgende egenskaper: 16, 8-bits registre. RISC design med totalt 53 forskjellige instruksjoner. Internt programminne (ROM) med plass til 1024 instruksjoner (18-bit pr. instruksjon). Internt arbeidsminne (RAM) på 64 Byte. 256 inngangsporter og 256 utgangsporter hver med 8-bits bredde 2. Fast instruksjonstid, 2 klokkesykler pr. instruksjon. Lavt ressursbehov i FPGA-kretsene. Avbruddslinje for bruk av avbruddsbasert programmering. Figur 1.1, hentet fra [2], viser en blokkskjematisk fremstilling av PicoBlaze. Figur 1.1: Blokkskjematisk oversikt over PicoBlaze PicoBlaze programmeres i assembly og assemblykoden kompileres ved bruk av Xilinxs kcpsm3 kompilator. Instruksjonssettet har de vanligste instruksjoner bortsett fra multiplikasjon og divisjon, disse kan dog enkelt implementeres ved å bruke aritmetikk og bitskift. For enkelhets skyld har Xilinx laget ferdige rutiner for disse og flere andre ofte bruke instruksjoner som PicoBlaze mangler. Disse rutinene finnes som assemblykode i [2] og kan kopieres direkte inn i egen kode. 2 Egentlig har PicoBlaze bare en inngangsport og en utgangsport med bredde på 8-bit hver. Sammen med en ekstra utgangsport (kalt Port Id) på 8-bit kan man da ved å multiplekse få hele 256 inngangsog utgangsporter. 3 T-01

4 PicoBlaze i Xilinx System Generator PicoBlaze kan settes opp ved hjelp av de vanlige EDK verktøyene til Xilinx, men det finnes også en blokk for bruk i Xilinx System Generator. Resten av denne rapporten vil ta for seg hvordan man bruker denne blokka og programmerer PicoBlaze fra System Generator (Matlab). 2 PicoBlaze i Xilinx System Generator For resten av rapporten forutsettes det at leseren er kjent med Matlab verktøyet Xilinx System Generator. Dette er et verktøy som på laboratoriet brukes i faget Anvendt Signalbehandling og som muliggjør at modeller for digitale filter kan lages i Simulink/Matlab og deretter kompileres og kjøres på FPGA-kretser fra Xilinx. For en introduksjon til System Generator anbefales brukermanualen [4]. For å bruke PicoBlaze i Xilinx System Generator hentes blokka ut fra «Xilinx Blockset» biblioteket. PicoBlaze ligger under Control Logic. PicoBlaze blokka kobles sammen med en ROM-blokk som inneholder selve programminnet, dette er vist i figur 2.1. Programminnet skal fylles med det programmet som skal kjøre på kontrolleren. Dette gjøres ved hjelp av kcpsm3 kompilatoren, som blant annet lage et Matlab-script 3 som kan brukes for å fylle ROM. Figur 2.1: System Generator Blokker for PicoBlaze med ROM For å vise hvordan PicoBlaze kan implementeres og programmeres fra Matlab og Xilinx System Generator brukes et eksempel. I dette eksempelet skal PicoBlaze kontrollere noen enkle lysdioder. Eksempelet er skrevet for FPGA-en «Spartan-3E XC3S500E» og kortet «Spartan-3E Starter Kit Board»,figur 2.2 på neste side, men kan enkelt tilpasses andre FPGA-er og utviklingskort fra Xilinx. Eksempelet tar for seg oppbygningen av systemet steg for steg og er skrevet slik at leseren skal kunne utføre eksempelet. Systemet som skal lages er vist i figur 2.3 på side 6. 3.m fil. 4 T-01

5 2.1 Oppsett av modell i Simulink Figur 2.2: Spartan-3E Starter Kit Board, utviklingskort 2.1 Oppsett av modell i Simulink 1. Start med en ny modell i Simulink. 2. Fra Xilinx Blockset - Basic Elements biblioteket hentes System Generator blokka, denne stilles inn som vist i figur 2.4 på side 7. «Part» feltet inneholder FPGA-en som det skal programmeres mot, og «FPGA clock period» er klokkeperioden som brukes. 20 ns tilsvarer altså 50 MHz. Merk at andre FPGAer og utviklingskort vil ha andre innstillinger i denne blokka, spesielt er «FPGA clock period» av interesse da denne har betydning for venteløkkene som skal lages senere. 3. Neste punkt er å finne PicoBlaze blokka, denne ligger under Control Logic. Etter at blokka er lagt inn i skjemaet er det viktig at man dobbeltklikker på denne og kontrollerer at det er PicoBlaze3 som er valgt. 4. Addr og instr linjene på PicoBlaze tilkobles en ROM blokk. I innstillingene til denne blokka settes dybden til 1024 og «initial value vector» settes til ROM (denne variabelen skal vi senere fylle med maskinkoden til programmet. Latency skal være 1 og under output settes bredden til 18-bit, altså Unsigned 18_0. 5. Resten av blokkene settes opp som vist i figur 2.3 på neste side. Konstanten som settes på inngangsporten skal være av typen Unsigned 8_0 og samplet. Break og resett, brk og rst, kobles til 0 da disse ikke brukes. Videre er det en sammenlikningsblokk (relational) som går høy hver gang PicoBlaze skriver ut et nytt LED mønster på port 255 (0xFF). Det nye mønsteret sendes da gjennom MUX-blokka, som ellers bare beholder forrige mønster. Det er 8 Sliceblokker som sender en enkelt bitverdi videre til tilhørende LEDs utgangsport. LED plasseringen vil være avhengig av hvilket utviklingskort som brukes, for «Spartan-3E Starter Kit Board» skal plasseringen fra topp til bunn være: 5 T-01

6 2.1 Oppsett av modell i Simulink Figur 2.3: Eksempelsystem, LED kontroll med PicoBlaze F9 = F9 E9 = E9 D11 = D11 C11 = C11 F11 = F11 E11 = E11 E12 = E12 F12 = F12 Lista ovenfor kan legges inn i et Matlab skript og kjøres, en kan da enkelt i utgangsblokkene sette henholdsvis F9, E9 o.s.v i «IOB pad location» feltet som vist i figur 2.5 på neste side. 6 T-01

7 2.1 Oppsett av modell i Simulink Figur 2.4: Innstilling av System Generator blokka Figur 2.5: IOB pad location i Gatway Out blokka settes til tilhørende LED-plassering 7 T-01

8 2.2 Program 2.2 Program Neste skritt er å skrive selve programmet som skal kjøre i mikrokontrolleren. Programmet skal i dette eksempelet først lese verdien på inngangsporten. Denne verdien inkrementeres og skrives ut på lysdiodene. Deretter kjører programmet i en evig løkke der verdien på lysdiodene inkrementeres for hvert sekund. Flytskjema vises i figur 2.6. Det anbefales at man setter seg inn i instruksjonssettet til PicoBlaze3 før man starter med selve programmeringen, en kort oversikt er gitt i kapittel 3 i [2]. Merk spesielt at alle tall i assemblykoden er heksadesimale. Figur 2.6: Flytskjema for testprogram For å programmere PicoBlaze trenger man kompilatoren fra Xilinx, kcpsm3, og en teksteditor for å skrive selve assemblykoden. Editoren som er inkludert i Matlab kan med fordel brukes. Lag en ny tekstfil og lagre denne som prog.psm 4, for at kompilatoren skal kunne lese filen er det viktig at filnavnet ikke er lengre enn 8 tegn og ikke inneholder fantasifulle spesialtegn. Selve hovedprogrammet for dette eksempelet trenger ikke mer enn 6 instruksjoner og er som følger, tegnet definerer en kommentar. INPUT s6, 80 Laster inn verdien på inngangsport til register s6 loop: ADD s6, 01 inkrementerer s6 OUTPUT s6, FF Skriver ut s6 til utgangsport 255 CALL delay_1s Kaller opp subrutine (venteløkke) JUMP loop Hopper tilbake til loop Det første som gjøres er at inngangsporten leses og verdien på denne lagres i register s6. Som blokkskjemaet av Simulinkmodellen, figur 2.3 på side 6, viser er det ingen kontroll på hvilken innport som aktiveres, det kunne derfor stått et annet tall enn 80 i INPUT-instruksjonen. Programmet går så inn i en evig løkke (loop), s6 inkrementeres, ADD, og skrives så ut på utgangsport FF, OUTPUT. Før løkka startes på nytt kalles subrutinen delay_1s opp. 4 Pass på at du har nødvendige rettigheter til å endre filetternavn. 8 T-01

9 2.3 Kompilering av assemblykode Venteløkker Da alle instruksjonene har like lang instruksjonstid er det å lage venteløkker nesten trivielt. Med en klokkefrekvens på 50 MHz vil hver instruksjon ta 40 ns. En venteløkke som realiserer en ventetid på 1 µ s blir da: delay_1us: LOAD s0, delay_1us_constant wait_1us: SUB s0, 01 JUMP NZ, wait_1us RETURN Konstanten delay_1us_constant lastes inn i register s0, deretter kjøres en løkke som trekker fra 1 på denne verdien helt til tallet er nede i 0. (JUMP NZ, hopp så lenge ikke null). Selve løkken tar da 80 ns for hver iterasjon og det vil være totalt 3 ekstra instruksjoner som må utføres i tillegg til løkkeiterasjonene, CALL, LOAD, og RETURN. Konstanten delay_1us_constant må for et mikrosekund, altså 1000 ns være: = 11 (2.1) Altså 0B heksadesimalt. Alternativt kan formel 2.2 nedenfor brukes: delay_1us_constant = clock_rate 6 4 (2.2) Der clock_rate er klokkeraten til PicoBlaze i MHz. Å realisere en venteløkke på 1 sekund vil nå kunne gjøres ved å lage flere venteløkker som bruker hverandre. Dette er gjort i selve programkoden som er lagt med som vedlegg. 2.3 Kompilering av assemblykode Før programmet kan kompileres må kompilatoren og noen viktige tilhørende filer finnes frem. Kompilatoren leveres med System Generator og vil på lab-pc-ene på UiS kunne hentes fra C:\APPL\Xilinx\SG10_0\DSP_Tools\sysgen. Fra denne stien skal følgende filer hentes og kopieres til et foretrukket arbeidsområde på C:\ disken 5. KCPSM3.EXE,ligger i ~\bin ROM_form.vhd, ligger i ~\hdl ROM_form.v ligger i ~\hdl ROM_form.coe ligger i ~\data Kopier også programfilen prog.psm inn i dette arbeidsområdet. Figur 2.7 på neste side viser hvordan arbeidsområdet skal se ut. 5 Da kompilatoren kjøres fra kommandolinje er det best å legge filene på C:\ disk og så nært opp til root som mulig. 9 T-01

10 2.4 Kompilering og overføring av Simulinkmodell Figur 2.7: Arbeidsområde før kompilering For å kompilere selve programmet brukes kcpsm.exe, dette gjøres ved å starte opp kommandolinja. Fra Windows-Xp kan dette gjøres ved å velge start kjør, skrive inn cmd og trykke enter. Bruk så cd-kommandoen til å navigere til arbeidsområdet. Programmet kompileres ved å skrive: kcpsm3.exe prog.psm Se også figur 2.8. Figur 2.8: Bruk av kommandolinje Dersom det er feil i koden vil kompilatoren fortelle om dette, forhåpentligvis er det ikke det og programmet kompileres. Kompilatoren lager blant annet et Matlab-skript PROG.M, det er denne filen som skal brukes videre. Husk å gjøre denne fila tilgjengelig for Matlab, enten ved å kopiere den til Matlabs arbeidsområde, eller ved å legge den til i Path-variabelen i Matlab. 2.4 Kompilering og overføring av Simulinkmodell Med PROG.M fila tilgjengelig for Matlab brukes kommandoen: ROM = PROG Variabelen, ROM, som er innholdet i ROM-blokka blir da fylt med maskinkoden til programmet. 10 T-01

11 2.4 Kompilering og overføring av Simulinkmodell Nå er selve modellen klar til å kompileres. Dobbeltklikk på System Generator blokka i modellen, se figur 2.3 og 2.4, og velg Generate. Når kompileringen av modellen er ferdig startes programmet Xilinx Impact for å overføre programmet til FPGA-en. Impact forutsettes kjent, så bare hovedlinjene er tatt med. I figur 2.9 vises skjermbildet fra Impact, der man har fått kontakt med utviklingskortet. FPGA-en (grønn i figur) programmeres med det nylig kompilerte programmet, mens de to andre kretsene bypasses. Forhåpentligvis stemmer alt nå og en vil se at FPGA-kretsen begynner å telle oppover på lysdiodene. Figur 2.9: Skjermbilde fra Impact koblet opp mot Spartan-3E Starter Kit Board 11 T-01

12 Oppsummering REFERANSER 3 Oppsummering Som rapporten viser kan PicoBlaze enkelt implementeres i FPGA ved hjelp av Xilinx System Generator for Matlab (Simulink). Det enkle eksempelet i rapporten kan enkelt utvides. På IDE har vi utvidet dette og laget en egen subblokk for Simulink som tar inn 4 signaler, leser disse og skriver ut verdien av dem på 16x2 linjers LCDskjerm. Denne blokken bruker en PicoBlaze mikrokontroller til å styre grensesnittet mot LCD-skjermen. Ved hjelp av denne blokken kan man for eksempel i faget Anvendt Signalbehandling enkelt visualisere hvordan maksimalverdien til et signal endres ved bruk av forskjellige digitale filtre. Grunnet det lave ressursbehoved til PicoBlaze kan denne blokken brukes uten at den opptar så mye ressurser at det går på bekostning av signalbehandlingssystemene som også implementeres i samme FPGAbrikke. For enda et introduksjonsprosjekt til PicoBlaze anbefales introduksjonsprosjektet for utviklingskortet «Spartan-3E Starter Kit Board» laget av Ken Chapman hos Xilinx [1]. Dette prosjektet har vært grunnlag for det eksempelet som brukes i denne rapporten. I tillegg til venteløkker og grensesnitt inneholder introduksjonsprosjektet også en demonstrasjon av avbruddsbasert programmering på PicoBlaze. Referanser [1] Ken Chapman. PicoBlaze Initial Design for Spartan-3E Starter Kit (LCD Display Control). Xilinx, San Jose, CA, Februar [2] Xilinx. PicoBlaze 8-bit Embedded Microcontroller User Guide (UG129). San Jose, CA, Juni [3] Xilinx. Spartan-3E Starter Kit Board User Guide (UG230). San Jose, CA, Mars [4] Xilinx. System Generator for DPS User Guide (UG640). San Jose, CA, Desember T-01

13 Kildekode A Kildekode PicoBlaze 3 Testprogram Kristian Thorsen UIS Vår 2010 Basert på eksempelprogram av Ken Chapman - Xilinx Ltd Versjon 0.1 **************************************** Konstanter **************************************** CONSTANT delay_1us_constant, 0B **************************************** Hovedprogram **************************************** INPUT s6, 80 Laster inn verdien på inngangsport til register s6 loop: ADD s6, 01 inkrementerer s6 OUTPUT s6, FF Skriver ut s6 til utgangsport 255 CALL delay_1s Kaller opp subrutine (venteløkke) JUMP loop Hopper tilbake til loop **************************************** Venteløkker **************************************** Delay of 1us. Registers used s0 delay_1us: LOAD s0, delay_1us_constant wait_1us: SUB s0, 01 JUMP NZ, wait_1us RETURN Delay of 40us. Registers used s0, s1 delay_40us: LOAD s1, x 1us = 40us 13 T-01

14 Kildekode wait_40us: CALL delay_1us SUB s1, 01 JUMP NZ, wait_40us RETURN Delay of 1ms. Registers used s0, s1, s2 delay_1ms: LOAD s2, x 40us = 1ms wait_1ms: CALL delay_40us SUB s2, 01 JUMP NZ, wait_1ms RETURN Delay of 20ms. Delay of 20ms used during initialisation. Registers used s0, s1, s2, s3 delay_20ms: LOAD s3, x 1ms = 20ms wait_20ms: CALL delay_1ms SUB s3, 01 JUMP NZ, wait_20ms RETURN Delay of approximately 1 second. Registers used s0, s1, s2, s3, s4 delay_1s: LOAD s4, x 20ms = 1000ms wait_1s: CALL delay_20ms SUB s4, 01 JUMP NZ, wait_1s RETURN 14 T-01

Xilinx System Generator blokk med kontroller for LCD-skjerm på Virtex II-Pro Development Board

Xilinx System Generator blokk med kontroller for LCD-skjerm på Virtex II-Pro Development Board Xilinx System Generator blokk med kontroller for LCD-skjerm på Virtex II-Pro Development Board Kristian Thorsen April 2010 T-02 Sammendrag Sammendrag I faget Anvendt Signalbehandling ved Institutt for

Detaljer

Avanserte byggeblokker (Maxfield kap.13 og 17)

Avanserte byggeblokker (Maxfield kap.13 og 17) Avanserte byggeblokker (Maxfield kap.13 og 17) Innhold: Kap 13: Embedded prosessorer (prosessorkjerner) Kap 17: Virtuelle komponenter (Intellectual Properties - IPs) INF3430 - H11 1 Organisering av kretskort

Detaljer

MIK 200 Anvendt signalbehandling, 2012. Lab. 5, brytere, lysdioder og logikk.

MIK 200 Anvendt signalbehandling, 2012. Lab. 5, brytere, lysdioder og logikk. Stavanger, 25. januar 2012 Det teknisknaturvitenskapelige fakultet MIK 200 Anvendt signalbehandling, 2012. Lab. 5, brytere, lysdioder og logikk. Vi skal i denne øvinga se litt på brytere, lysdioder og

Detaljer

Introduksjon til DARK assembly

Introduksjon til DARK assembly Introduksjon til DARK assembly Magnus Jahre Institutt for datateknikk og informasjonsvitenskap 2 Plan Assembly vs. Java Dark stakkmaskin Oversikt over stakkmaskinen Dark stakkmaskin eksempel Dark Load-Store

Detaljer

Forelesning Instruksjonstyper Kap 5.5

Forelesning Instruksjonstyper Kap 5.5 TDT4160 Datamaskiner Grunnkurs Forelesning 22.11 Instruksjonstyper Kap 5.5 Dagens tema Instruksjonstyper (5.5) Datatransport Datamanipulering Betingede hoppinstruksjoner Prosedyrekall Løkker I/O Eksempler

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU) 2 Innhold 1 Datamaskiner Prosessoren Primærminnet (RAM) Sekundærminne, cache og lagerhierarki Datamaskiner Matlab Parallell Jørn Amundsen Institutt for Datateknikk og Informasjonsvitenskap 2010-08-31 2

Detaljer

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

TDT4105 Informasjonsteknologi, grunnkurs (ITGK) 1 TDT4105 Informasjonsteknologi, grunnkurs (ITGK) Introduksjon til programmering i Matlab Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Mål Lære om programmering og hva et program er Lære å designe

Detaljer

Kom i gang med programmering i Java

Kom i gang med programmering i Java Kom i gang med programmering i Java Dette dokumentet forteller hvordan du skal komme i gang med programmering inkludert nedlasting av den programvare du trenger samt oppsett av disse samt en del innstillinger

Detaljer

1. Å lage programmer i C++

1. Å lage programmer i C++ Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Å lage programmer i C++ Tore Berg Hansen og Else Lervik Rividert siste gang 29. august 2005 1. Å lage programmer i C++ Resymé: Dette notatet

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang 2 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python Professor Alf Inge Wang 3 https://www.youtube.com/watch? v=nkiu9yen5nc 4 Læringsmål og pensum Mål Lære om

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Hva er maskinvaren Arduino

Hva er maskinvaren Arduino 1. Hva er Arduino De som har hørt om Arduino tidligere tenker på selve maskinvaren når man prater om Arduino. Men maskinvaren kretskortet med en ATMega mikrokontroller, USB port og digitale og analoge

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

Oppgave 5. Mikrokontroller. Gruppe GF506: Per Christian Henden

Oppgave 5. Mikrokontroller. Gruppe GF506: Per Christian Henden Oppgave 5 Mikrokontroller Gruppe GF502: Marianne Andersson Kyrre Giertsen Gruppe GF506: Per Christian Henden SIE4005 DIGITALTEKNIKK OG DATAMASKINER NTNU 2001 Mikrokontroller Sammendrag 1. Tema Laboratorieoppgave

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab 1 Kunnskap for en bedre verden TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning 9: Instruksjonsettarkitektur 3 Knut H. Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and

Detaljer

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

INF1510: Bruksorientert design

INF1510: Bruksorientert design INF1510: Bruksorientert design Ukeoppgaver i Arduino - uke 1 Vår 2017 Innhold 1. Elektrisitet 2 1.1. Kretsbygging 2 1.2. Komponenter 2 1.3. Dårlige kretser 3 1.4. Analoge og Digitale signaler 4 1.5. Likestrøm

Detaljer

CodevisionAVR. Start CodevisionAVR. Velg Settings Terminal og sett opp kommunikasjonsparametrene som figur 1 viser. avrlab07a.doc HVE RI Arnfinn Lunde

CodevisionAVR. Start CodevisionAVR. Velg Settings Terminal og sett opp kommunikasjonsparametrene som figur 1 viser. avrlab07a.doc HVE RI Arnfinn Lunde AVR-LAB 07 Echo: Seriell I/O side 1 av 5 Hensikt I denne øvelsen benytter vi RS-232 overføring av data mellom STK-200 og vår PC. Programmet Terminalprogrammet på CodevisionAVR benyttes på PC. Karakterer

Detaljer

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest

Detaljer

TDT DESEMBER, 2008, 09:00 13:00

TDT DESEMBER, 2008, 09:00 13:00 Norwegian University of Science and Technology Faculty of Information Technology, Mathematics and Electrical Engineering The Department of Computer and Information Science TDT4160 DATAMASKINER GRUNNKURS

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen

Detaljer

Hvorfor lære om maskinvare*?

Hvorfor lære om maskinvare*? Litt om maskinvare Hvorfor lære om maskinvare*? Hovedoppgaven til et OS er å styre maskinvare Må ha grunnleggende kjennskap til maskinvare for å forstå hvordan OS fungerer Skal bare se på grunnleggende

Detaljer

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Emne: Gruppe(r): 2E Eksamensoppgaven består av: ELEKTRONIKK II Antall sider (inkl. forsiden): 4 Emnekode: SO 313E Dato: 5. juni 2003 Antall oppgaver: 8 Faglig

Detaljer

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler Plan for dagen Vprg 4 LC191D Videregående programmering Høgskolen i Sør-Trøndelag Avdeling for informatikk og e-læring Anette Wrålsen Del: Intro til tekstfiler Del II: Mer om tekstfiler, Scanner-klassen

Detaljer

Gruppe(r): 2EY 30.05.02. Eksamenstid, fra-til: 09 00-14 00 Eksamensoppgaven består av. Antall sider: 4 (Inkludert denne)

Gruppe(r): 2EY 30.05.02. Eksamenstid, fra-til: 09 00-14 00 Eksamensoppgaven består av. Antall sider: 4 (Inkludert denne) HØGSKOLEN I OSLO Avdeling for ingeniørutdanning EKSAMENSOPPGAVE Fag: ELEKTRONIKK II Fagnr: SO313E Faglig veileder: K. H. Nygård, V. Tyssø Gruppe(r): 2EY Dato: 30.05.02 Eksamenstid, fra-til: 09 00-14 00

Detaljer

Datamaskinens oppbygning

Datamaskinens oppbygning Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus

Detaljer

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python Professor Guttorm Sindre Institutt for datateknikk og informasjonsvitenskap Læringsmål og pensum Mål Vite hva et

Detaljer

Erik Grindheim - fagprøve Kildekode til mikrokontroller << led_ctrl.asm >> side 1/6.

Erik Grindheim - fagprøve Kildekode til mikrokontroller << led_ctrl.asm >> side 1/6. Skrevet av: Erik Grindheim, IFJF - UiB * Dato: 15. februar 2000 * Revisjon 1.12 * Språk: MPASM (Microchip) * Processor: PIC16F84 * Watchdog timer: off * Code protect: off * Programmet starter opp med å

Detaljer

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9 IT1101 Informatikk basisfag, dobbeltime 11/9 Hittil: sett på representasjon av informasjon og manipulering av bits i kretser Idag: hever oss til nivået over og ser på hvordan program kjører i maskinen

Detaljer

SRAM basert FPGA INF H10 1

SRAM basert FPGA INF H10 1 SRAM basert FPGA Prinsipp: SRAM-minne inne i FPGA lagrer kretsens konfigurasjon Fordeler Kan reprogrammeres uendelig mange ganger Plass til mye logikk Kan lett endre funksjonaliteten til systemet Trenger

Detaljer

Beskrivelse av styresystem for aktiv likeretter. Versjon 1.0.

Beskrivelse av styresystem for aktiv likeretter. Versjon 1.0. TR F5940 Beskrivelse av styresystem for aktiv likeretter. Versjon 1.0. Kjell Ljøkelsøy Februar 2004 SAK/OPPGAVE (tittel) TEKNISK RAPPORT SINTEF Energiforskning AS Postadresse: 7465 Trondheim Resepsjon:

Detaljer

FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW

FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW FYS3240/4240 Forslag til prosjektoppgave for Lab 4: DAQ-øvelse med LabVIEW Jan Kenneth Bekkeng, 11.3.2013 Hensikten med denne øvelsen er å lære DAQ-programmering med utviklingsverktøyet LabVIEW. NB: se

Detaljer

Kapittel 3. The fun starts

Kapittel 3. The fun starts Kapittel 3 The fun starts Introduksjon I dette kapittelet vil jeg prøve å gjøre ting på en annen måte. Siden vi nå skal begynne å faktisk lage noe, tenkte jeg at jeg vil gjøre det slik at kapittelet blir

Detaljer

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

TDT4160 17. AUGUST, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 17. AUGUST, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 17. AUGUST, 213, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

Dagens tema: Enda mer MIPS maskinkode

Dagens tema: Enda mer MIPS maskinkode Dagens tema: Enda mer MIPS maskinkode (P&H: 3.6 3.8 + 6.1 + A.6 + A.10) Pseudoinstruksjoner Flere instruksjoner Mer om funksjonskall Stakken Avhengigheter Direktiver Alt er bit! Kommunikasjon med C Ark

Detaljer

1 Innledning. Oppgaven består i å konstruere et digitalt simultanoversettelsessystem.

1 Innledning. Oppgaven består i å konstruere et digitalt simultanoversettelsessystem. Datamaskiner Prosjekt Innledning 1 Innledning Oppgaven består i å konstruere et digitalt simultanoversettelsessystem. Systemet som beskrives her er et enklere system enn det en kanskje kunne ønsket slik

Detaljer

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

Øving 0 - Xcode TDT4102

Øving 0 - Xcode TDT4102 Øving 0 - Xcode TDT4102 Frivillig Øving Mål for denne øvingen: Bli kjent med programmeringsverktøy Lage et første program kun med teksteditor og kompilator Lage et første program med Xcode Denne øvingen

Detaljer

En oppsummering (og litt som står igjen)

En oppsummering (og litt som står igjen) En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de

Detaljer

Design med ASIC og FPGA (Max kap.7 og 18)

Design med ASIC og FPGA (Max kap.7 og 18) Design med ASIC og FPGA (Max kap.7 og 18) Innhold: Begrensninger/muligheter å ta hensyn til ved FPGA design som en normalt slipper å tenke på med ASIC design. Migrering mellom FPGA og ASIC INF3430 - H10

Detaljer

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2 Programmeringsspråket C Del 2 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 30.08.2005 inf1060 H05 1 Et eksempel Dette er lite eksempel som ber om et tall, leser det og så teller fra det ned til 0. 30.08.2005

Detaljer

Oppgave 8.1 fra COD2e

Oppgave 8.1 fra COD2e Oppgave 8.1 fra COD2e To systemer brukes for transaksjonsprosessering: A kan utføre 1000 I/O operasjoner pr. sekund B kan utføre 750 I/O operasjoner pr. sekund Begge har samme prosessor som kan utføre

Detaljer

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 2 av 9 Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Denne oppgaven skal besvares på eget svarark sist i oppgavesettet. Dersom du finner flere alternativer som synes å passe, setter du kryss

Detaljer

Arduino med Atmel studio 6.x (6.1)

Arduino med Atmel studio 6.x (6.1) Arduino med Atmel studio 6.x (6.1) Etter å ha sett meg grenseløs lei av Arduinos IDE har jeg i lenge tid brukt Atmels eget AS6.1 Tenkte derfor lage en liten hvordan sette den opp til å virke med arduino.

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

INF3430/4431. Introduksjon til VHDL Spartan starterkit Spartan-3 FPGA

INF3430/4431. Introduksjon til VHDL Spartan starterkit Spartan-3 FPGA INF3430/4431 Introduksjon til VHDL Spartan starterkit Spartan-3 FPGA Agenda Hva skal vi gjøre i INF3430/4431? VDHL simulering/syntese Place & Route til FPGA Prøve ut design i ekte hardware Hvorfor VHDL

Detaljer

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Kap. 8 del 1 kodegenerering INF5110 Vår2007 Kap. 8 del 1 kodegenerering INF5110 Vår2007 Stein Krogdahl, Ifi UiO Forelesninger framover: Tirsdag 8. mai: Vanlig forelesning Torsdag 10. mai: Ikke forelesning Tirsdag 15. mai: Vanlig forelesning (siste?)

Detaljer

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»):

Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Oppbygningen av en datamaskin Det viktigste i en moderne datamaskin er hovedkortet («motherboard»): Grovt sett inneholder det En prosessor Minne (for både program og data) Klokke Kontrollere for periferutstyr.

Detaljer

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 12 Faglig kontakt under eksamen: Magnus Jahre (952 22 309) EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs 1 TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling Anders Christensen (anders@idi.ntnu.no) Rune Sætre (satre@idi.ntnu.no) TDT4105 IT Grunnkurs 2 Læringsmål/pensum Filbehandling Mål: Forstå

Detaljer

Design med ASIC og FPGA (Max kap.7 og 18)

Design med ASIC og FPGA (Max kap.7 og 18) Design med ASIC og FPGA (Max kap.7 og 18) Innhold: Begrensninger/muligheter å ta hensyn til ved FPGA design som en normalt slipper å tenke på med ASIC design. Migrering mellom FPGA og ASIC INF3430 - H12

Detaljer

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs 2008. Gunnar Tufte 1 TDT4160 Datamaskiner Grunnkurs 2008 Gunnar Tufte 2 Dagens forelesing Kapittel 1 Datamaskinsystem Kapittel 2 start 3 Gunnar Fakta Datamaskingruppa Biologisk inspirerte system: Unconvential Computing Machines

Detaljer

Programmerbar logikk. CPLD og FPGA. Fys3270(4270)

Programmerbar logikk. CPLD og FPGA. Fys3270(4270) Programmerbar logikk CPLD og FPGA Agenda CPLD (Complex PLD) Arkitektur CPLD familier Timingmodeller Programmering FPGA (Field Programable Gate Array) Arkitekturer Eksempel på FPGA teknologier Antifuse

Detaljer

Introduksjon til versjonskontroll av Ola Lie

Introduksjon til versjonskontroll av Ola Lie Introduksjon til versjonskontroll av Ola Lie Installere Subversion Subversion (også kalt SVN) er et versjonskontrollsystem som hjelper oss å holde orden på de forskjellige versjonene når vi utvikler programmer.

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep

Detaljer

22 45 32 00. faks: 22 45 32. Avdeling for Ingeniørutdanning. Cart Aælersgate 30-0254 Oslo - tlf 05. iu@hio.no

22 45 32 00. faks: 22 45 32. Avdeling for Ingeniørutdanning. Cart Aælersgate 30-0254 Oslo - tlf 05. iu@hio.no IKandidaten må selv kontrollere at oppgavesettet er fullstendig. Ved eventuelle ~klarheter i oppgaveteksten skal du redegjøre for de forutsetninger du legger Itil grunn for løsningen. Avdeling for Ingeniørutdanning.

Detaljer

INF2270. Sekvensiell Logikk

INF2270. Sekvensiell Logikk INF227 Sekvensiell Logikk Hovedpunkter Definisjoner Portforsinkelse Shift register Praktiske Eksempler Latch SR D Flip-Flop D JK T Tilstandsmaskiner Tilstandsdiagrammer Reduksjon av tilstand Ubrukte tilstander

Detaljer

LabVIEW seriekommunikasjon med mikrokontroller

LabVIEW seriekommunikasjon med mikrokontroller KYBERNETIKKLABORATORIET FAG: Industriell IT DATO: 08.15 OPPG.NR.: LV3 LabVIEW seriekommunikasjon med mikrokontroller Oppgave Denne oppgaven går ut på å lage et LabVIEW-program som kan kommunisere med en

Detaljer

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er Dagens temaer Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture Sekvensiell logikk Flip-flop er Design av sekvensielle kretser Tilstandsdiagram Tellere og registre INF2270 1/19

Detaljer

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram.

Dagens temaer. temaer hentes fra kapittel 3 i Computer Organisation. av sekvensielle kretser. and Architecture. Tilstandsdiagram. Dagens temaer 1 Dagens Sekvensiell temaer hentes fra kapittel 3 i Computer Organisation and Architecture logikk Flip-flop er Design av sekvensielle kretser Tilstandsdiagram Tellere og registre Sekvensiell

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre,

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 16. Sept. Noen oppstartsproblemer

Detaljer

Filer i Linux og Bourne-again shell

Filer i Linux og Bourne-again shell Filer i Linux og Bourne-again shell Filbegrepet En fil * er en grunnleggende lagringsenhet i et OS Brukes for alle data som: Lagres utenfor RAM (primærminnet) På permanente media (sekundærminne) Definisjoner

Detaljer

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Dagens tema. Datamaskinenes historie. De første moderne datamaskiner. Løsning. Menneskene har alltid prøvd å lage maskiner for å løse sine problemer. Dagens tema Dagens tema Charles Babbage Datamaskinenes historie maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner kode kode Menneskene har alltid prøvd å lage maskiner for å løse sine problemer.

Detaljer

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere

Detaljer

INF 3430/4430. Viktige momenter i syntese og for valg av teknologi

INF 3430/4430. Viktige momenter i syntese og for valg av teknologi INF 3430/4430 Viktige momenter i syntese og for valg av teknologi 17.10.2007 Agenda RTL syntese Constraints Pipelining Syntese for FPGA Behavorial syntese INF3430/4430 Side 2 RTL/ Behavorial syntese RTL

Detaljer

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til

Detaljer

Prototyping med Arduino del 2

Prototyping med Arduino del 2 Prototyping med Arduino del 2 Magnus Li magl@ifi.uio.no INF1510 30.01.2017 Arduinoundervisningen Forelesninger Mandag 30.01 & 06.02 Gjennomgang av grunnleggende temaer Teknisk verksted Mandag 30.01, 06.02,

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter 1 TDT4110 Informasjonsteknologi grunnkurs: Eksempler Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf: 735 91845 TDT4105

Detaljer

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006

Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006 Løsningsforslag til øving 5 TFE4105 Digitalteknikk og Datamaskiner Høsten 2006 Oppgave 1 Papirsimulering av utførende enhet Styreordsekvens Registeroperasjon 011 011 001 0 0010 0 1 R3 R3 + R1 ; R3 = 01100111

Detaljer

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch Dagens temaer Sekvensiell logikk: Kretser med minne RS-latch: Enkleste minnekrets D-flipflop: Forbedring av RS-latch Presentasjon av obligatorisk oppgave (se også oppgaveteksten på hjemmesiden). 9.9.3

Detaljer

Synkron logikk. Sekvensiell logikk; to typer:

Synkron logikk. Sekvensiell logikk; to typer: Sekvensiell logikk De fleste digitale systemer har også minneelementer (f.eks flipflopper) i tillegg til kombinatorisk logikk, og kalles da sekvensiell logikk Output i en sekvensiell krets er avhengig

Detaljer

EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE)

EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE) EGENDEFINERTE FUNKSJONER I SAS OG LITT OM OPEN SOURCE INTEGRASJON SAS FANS I STAVANGER 21.10.2015, MARIT FISKAAEN (SAS INSTITUTE) EGENDEFINERTE FUNKSJONER INNLEDNING 2 På FANS 4. mars 2015 ble det vist

Detaljer

TDT4160 16. DESEMBER, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science

TDT4160 16. DESEMBER, 2013, 09:00 13:00. Norwegian University of Science and Technology Engineering The Department of Computer and Information Science Norwegian University of Science and Technology Engineering The Department of Computer and Information Science TDT416 DATAMASKINER GRUNNKURS EKSAMEN 16. DESEMBER, 213, 9: 13: Kontakt under eksamen: Gunnar

Detaljer

Fjernstyringsenhet VRT012

Fjernstyringsenhet VRT012 Fjernstyringsenhet VRT012 Brukerveiledning V 0.1 Takk for at du kjøpte produktet vårt! Vi håper denne brukervennlige styreenheten kan hjelpe deg til å realisere dine ideer og gjøre livet enklere for brukeren.

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

; org 0x80 ;test for nedtrykt bryter 1 loop1: sbic pind,1 rjmp loop1 rcall sub1 loop2: rjmp loop2 Listing 1.

; org 0x80 ;test for nedtrykt bryter 1 loop1: sbic pind,1 rjmp loop1 rcall sub1 loop2: rjmp loop2 Listing 1. Hensikt I denne øvelsen viser vi hvordan vi kaller subrutiner og kommer tilbake fra subrutiner i assemblerprogrammering. Demonstrasjonsprogrammet nedenfor skal vi benytte. Oppgaven går ut på å forklare

Detaljer

Forelesning ISA-nivået Kap 5.1

Forelesning ISA-nivået Kap 5.1 TDT4160 Datamaskiner Grunnkurs Forelesning 10.11 ISA-nivået Kap 5.1 Dagens tema Instruksjonssettarkitektur (5.1) Hva er ISA? Bakoverkompatibilitet Hva omfatter ISA? Minnemodeller Registre Instruksjoner

Detaljer

Tell sekunder. Steg 0: Hva er forskjellig fra før? Introduksjon. I denne oppgaven skal vi lage vårt eget spill!

Tell sekunder. Steg 0: Hva er forskjellig fra før? Introduksjon. I denne oppgaven skal vi lage vårt eget spill! Tell sekunder Erfaren Elm Introduksjon I denne oppgaven skal vi lage vårt eget spill! Vi lært mye allerede! Her er en oppsummering: Verktøy til Elm-utvikling: Bruke Try Elm til å lage programmer Bruke

Detaljer

Øving 1: Busser, adressemodi, multiplekser og styreord

Øving 1: Busser, adressemodi, multiplekser og styreord Øving 1: Busser, adressemodi, multiplekser og styreord Del 1: Busser Besvar hver enkelt oppgave ved å sette ring rundt det svaralternativet du mener er riktig. For hvert enkelt spørsmål er det kun ett

Detaljer

Dark load-store-maskin

Dark load-store-maskin Dark load-store-maskin Figur 1: Load-store arkitektur i Dark Dette dokumentet beskriver arkitekturen til load-store-maskina som benyttes i Dark. Figur 1 viser hvordan den ser ut. Det finnes 32 registre

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

Programmering i C++ Administrativ info. Litteratur. Forelesning 1 Innføring i det grunnleggende. Forelesninger: Eksamen. Pensum:

Programmering i C++ Administrativ info. Litteratur. Forelesning 1 Innføring i det grunnleggende. Forelesninger: Eksamen. Pensum: Programmering i C++ Forelesning 1 Innføring i det grunnleggende Høgskolen i Oslo Administrativ info Forelesninger: Sted: rom 1.303 Tid: Tirsdager kl. 08:50 11:10 Eksamen Eksamensdato er ikke fastsatt ennå.

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

Kapittel 4: Microarchitecture level

Kapittel 4: Microarchitecture level 1 Kapittel 4: Microarchitecture level 2 Kapittel 4: Microarchitecture level 3 Kva er og Kva gjer Realisera Instruction Level Architecture (ISA) 4 Nivå 2: Instruksjonssetarkitektur (ISA) Instruksjonssettark.

Detaljer

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting

Kapittel 6. Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting Kapittel 6 Høynivå møter lavnivå Fra C til assembly Fra assembly til maskinkode Linking og lasting CISC eller RISC Komplekst eller enkelt. Hva er raskest? Pipelining Smart bruk av registre Kode for lavt

Detaljer

INF 3430/4431. Simuleringsmetodikk

INF 3430/4431. Simuleringsmetodikk INF 3430/4431 Simuleringsmetodikk Innhold Event driven simulation Simulering av VHDL-modeller Selvtestende testbenker Fil-operasjoner Eksempel på SRAM modell og simulering av lesing fra denne INF3430/4431

Detaljer

Løsningsforslag eksamen TDT4160 høsten 2005

Løsningsforslag eksamen TDT4160 høsten 2005 Løsningsforslag eksamen TDT4160 høsten 005 NB! Ved en feil er summen av prosentvektene for alle oppgavene 90 % og ikke 100 %. For å korrigere dette, ble alle resultater delt på 0,9. Oppgave 1 Alternativ

Detaljer

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5

Forelesning Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5 TDT4160 Datamaskiner Grunnkurs Forelesning 8.11 Forgreningspredikering Kap 4.5 Superskalaritet Kap 4.5 Spekulativ utføring Kap 4.5 Dagens tema Forgreningspredikering (4.5) Hoppinstruksjoner og samlebånd

Detaljer

Sengealarm PIR Brukerveiledning. Sengealarm (bevegelsesdetektor) PIR-2003 INNHOLD

Sengealarm PIR Brukerveiledning. Sengealarm (bevegelsesdetektor) PIR-2003 INNHOLD Sengealarm (bevegelsesdetektor) PIR-2003 Brukerveiledning Sengealarm PIR 2003 Sengealarm (bevegelsesdetektor) PIR-2003 HMS art. nr. 020753 Bestillingsnr.: 2223227 INNHOLD Sengealarm (bevegelsesdetektor)

Detaljer

Fys 3270/4270 høsten Laboppgave 2: Grunnleggende VHDL programmering. Styring av testkortets IO enheter.

Fys 3270/4270 høsten Laboppgave 2: Grunnleggende VHDL programmering. Styring av testkortets IO enheter. Fys 3270/4270 høsten 2004 Laboppgave 2: Grunnleggende VHDL programmering. Styring av testkortets IO enheter. Innledning. Målet med denne laboppgaven er at dere skal lære å lage enkle hardware beskrivelser

Detaljer

Konstruksjon av små innebygde system basert på mjukprosessor. Morten Tengesdal, Institutt for data- og elektroteknikk, Universitetet i Stavanger

Konstruksjon av små innebygde system basert på mjukprosessor. Morten Tengesdal, Institutt for data- og elektroteknikk, Universitetet i Stavanger Konstruksjon av små innebygde system basert på mjukprosessor Morten Tengesdal, Institutt for data- og elektroteknikk, Universitetet i Stavanger 9. mars 2012 Universitetet i Stavanger N-4036 Stavanger NORGE

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.

TDT4105 Informasjonsteknologi, grunnkurs. Introduksjon til programmering i Matlab. Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu. 1 TDT4105 Informasjonsteknologi, grunnkurs Introduksjon til programmering i Matlab Rune Sætre / Anders Christensen {satre, anders}@idi.ntnu.no 2 Frist for øving 1: Fredag 11. Sept. Noen oppstartsproblemer

Detaljer