Delavnica Načrtovanje digitalnih vezij

Podobni dokumenti
Delavnica Načrtovanje digitalnih vezij

Slide 1

Microsoft Word - vaje2_ora.doc

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

ARS1

Navodila:

DES

Delavnica Načrtovanje digitalnih vezij

Microsoft Word - avd_vaje_ars1_1.doc

Delavnica Načrtovanje digitalnih vezij

DES

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

5 Programirljiva vezja 5.1 Kompleksna programirljiva vezja - CPLD Sodobna programirljiva vezja delimo v dve veliki skupini: CPLD in FPGA. Vezja CPLD (

Delavnica Načrtovanje digitalnih vezij

Strojna oprema

Diapozitiv 1

DES11_vmesniki

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Microsoft Word - CNC obdelava kazalo vsebine.doc

Diapozitiv 1

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Diapozitiv 1

Microsoft Word - EV-2-projekt.doc

DIGITALNE STRUKTURE Zapiski predavanj Branko Šter, Ljubo Pipan 2 Razdeljevalniki Razdeljevalnik (demultipleksor) opravlja funkcijo, ki je obratna funk

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - M docx

Microsoft PowerPoint - Java_spremenljivke

DES11_realno

CelotniPraktikum_2011_verZaTisk.pdf

DKMPT

Vgrajeni sistemi Uvod & ponovitev C

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

STAVKI _5_

ORA 1-3

Sistemi Daljinskega Vodenja Vaja 1 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubljani

Univerza v Ljubljani

Datum in kraj

Diapozitiv 1

Microsoft PowerPoint - Java-rekurzija.ppt

Uvod v programiranje mikrokrmilnikov, zbrano gradivo za predavanja

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Andraž Drčar Prevajanje javanskih programov z vstavljeno zložno kodo DIPLOMSKO DELO UNI

UPS naprave Socomec Netys PL (Plug in) UPS naprava Socomec Netys PL moč: 600VA/360W; tehnologija: off-line delovanje; vhod: 1-fazni šuko 230VAC; izhod

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl

Elektrotehniški vestnik 76(1-2): 13 18, 2009 Electrotechnical Review, Ljubljana, Slovenija Ugotavljanje podatkovne odvisnosti za procesorje z naborom

Analiza vpliva materiala, maziva in aktuatorja na dinamiko pnevmatičnega ventila

Procesorski sistemi v telekomunikacijah

Logični modul LOGO!

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat:

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Microsoft PowerPoint - NDES_8_USB_LIN.ppt

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Vostro 430 Informacijski tehnični list o namestitvi in funkcijah

Slide 1

Procesorski sistemi v telekomunikacijah

scratch

Diapozitiv 1

Microsoft PowerPoint - ORS-1.ppt

Microsoft Word - Seštevamo stotice.doc

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

REALIZACIJA ELEKTRONSKIH SKLOPOV

Microsoft PowerPoint - IPPU-V2.ppt

Svet elektronika 198.indd

Microsoft Word - M

Microsoft Word - M docx

_ _BDA_CapitalSports_CS-Timer.indd

seminarska_naloga_za_ev

Mestna občina Celje Komisija Mladi za Celje POLICA ZA HLADILNIK Z VGRAJENO TEHTNICO RAZISKOVALNA NALOGA (Fizika, Elektronika) Avtorja: Martin Malinger

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tomaž Furlan Programabilni logični krmilnik DIPLOMSKO DELO NA UNIVERZITETNEM ŠTUDIJU Me

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

APS1

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

PowerPoint Presentation

Slide 1

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

POKLICNA MATURA 2010

REŠEVANJE DIFERENCIALNIH ENAČB Z MEHANSKIMI RAČUNSKIMI STROJI Pino Koc Seminar za učitelje matematike FMF, Ljubljana, 25. september 2015 Vir: [1] 1

Navodila za uporabo Mini snemalnik

COBISS3/Medknjižnična izposoja

Šolski center celje

Microsoft Word - M docx

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis

INFORMATIKA OSNOVNI POJMI INFORMATIKE Računalnik je elektronska naprava za obdelavo podatkov Računalništvo je veda, ki se ukvarja z računalniki (razvo

Microsoft Word - DIPLOMA.doc

EVROPSKA KOMISIJA Bruselj, C(2019) 1955 final ANNEXES 1 to 5 PRILOGE k UREDBI KOMISIJE (EU) št. /.. z dne XXX o določitvi zahtev za okoljsko

Diapozitiv 1

DCS-2330L_A1_QIG_v1.00(EU).indd

Microsoft Word - NAVODILA ZA UPORABO.docx

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k

Microsoft Word - M _mod..docx

Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Tomaž Bratuša MERJENJE IN PRIKAZOVANJE DELOVNIH PARAMETROV MOTORNEGA KOL

Slajd 1

Revija 124 za PDF.p65

ELEKTRONIKA ŠTUDIJ ELEKTRONIKE

Transkripcija:

Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Procesorji Model računalnika, mikrokrmilnik

CPE = mikrosekvenčnik + podatkovna pot Podatkovna pot izvaja registrske (mikro)operacije registri, ALE, podatkovni pomnilnik operacija pogoj naslov +1 podatkovna pot reg (PC) naslov programski pomnilnik mikroukaz

ALE Von Neumannov model računalnika Centralno procesna enota (CPE) in glavni pomnilnik vhodno izhodna enota skrbi za komunikacijo z zunanjostjo podatkovno vodilo glavni pomnilnik vhodnoizhodna enota registri izvršilna enota ukazni reg. prog. števec krmilna enota : mikrosekvenčnik naslov delovanje CPE določa nabor ukazov ukazi so prilagojeni programskim jezikom (C/C++, Java)

Vrste mikroprocesorjev Mikroprocesorji v zmogljivih računalnikih CISC Mikroprocesorji v vgrajenih sistemih RISC Complex Instruction Set Computer - CISC veliko število ukazov enostavne mikrooperacije do sestavljenih operacij čas za izvajanje ukazov je zelo različen Reduced Instruction Set Computer - RISC manjši nabor ukazov vse operacije so enostavne in učinkovite za izvrševanje večina ukazov se izvede v enem urnem ciklu

Enostaven CPE z akumulatorjem N-bitna podatkovna pot, npr. N=12

Nabor ukazov subtype koda is unsigned(3 downto 0); constant lda: koda := "0001"; -- a = [M] constant sta: koda := "0010"; -- [M] = a constant add: koda := "0100"; -- a = a + [M] constant sub: koda := "0101"; -- a = a - [M] constant anda: koda := "0110"; -- a = a and [M] constant ora: koda := "0111"; -- a = a or [M] constant jmp: koda := "1000"; -- jump constant jze: koda := "1001"; -- jump if a=0 časovni potek izvajanja kode

VHDL opis in sinteza procesorja if st=zajemi then -- shrani kodo ukaza code <= instr; elsif st=izvedi then -- izvedi ukaz z akumulatorjem case code is when lda => akum <= dat_i; when add => akum <= akum + dat_i; when sub => akum <= akum - dat_i; when anda => akum <= akum and dat_i; when ora => akum <= akum or dat_i; when others => null; end case; end if;

Uporaba CPU v grafičnem krmilniku

Mikroprocesorji za vgrajene naprave Mikrokrmilniki so sistemi na integriranem vezju, ki vsebujejo mikroprocesorsko jedro (izvršilno in krmilno enoto), programski in podatkovni pomnilnik, ter različne V/I vmesnike: vzporedna vrata (Port) zaporedne komunikacijske vmesnike: I2C, SPI, UART analogno / digitalne (A / D) in D / A pretvornike modulatorje (PWM), časovnike, števce komunikacijske krmilnike: Ethernet MAC, USB Primer mikrokrmilnikov Atmel AVR, 8-bitni procesor na razvojnem sistemu Arduino ARM-7, 32-bitni procesor na razvojnem sistemu Š-ARM

Osnovni gradniki mikroprocesorja Mikroprocesor na integriranem vezju vsebuje izvršilno in krmilno enoto Mikroprocesor potrebuje za delovanje: zunanjo uro in reset zunanji pomnilnik s programskimi ukazi in podatki vhodno in izhodno (periferno) enoto za komunikacijo z okolico periferna enota je lahko del pomnilnika (na določenih naslovih) ali pa poteka komunikacija preko posebnih V/I ukazov V praksi potrebujemo vsaj dve vrsti pomnilnika za program takšnega, ki ohranja vsebino (ROM, Flash) za delovne podatke pa pomnilnik s hitrim branjem in pisanjem (RAM Random Access Memory)

Delovanje CPE mikrokrmilnika AVR programski števec vsebuje naslov naslednjega ukaza IR vsebuje naslednji ukaz ID vsebuje trenutni ukaz Registri: R0-R31 ALE glej označeno interno podatkovno pot Flash programski pomnilnik 16 oz. 32 bitni ukazi RAM vsebuje delovne podatke EEPROM trajni podatki počasen dostop, omejeno število vpisov v pomnilnik Flash (program) ukazni reg. IR ukazni dek. ID 8-bitno podatkovno vodilo prog. števec status registri ALE RAM (podatki) EEPROM

Programiranje v zbirniku Zbirnik je vez med programskimi jeziki (npr. C) in strojno kodo, ki je odvisna od arhitekture Opis majhne in učinkovite programske kode za nizkonivojske rutine (dostop do perifernih enot) računsko zahtevna opravila (matematika, grafika) Pri velikih projektih je delo v zbirniku težko, nefleksibilno, prevajalniki jezika C pa so dobro optimizirani direktiva ukaz in operand komentar oznaka

Primer ukazov in njihove strojne kode Naloži neposredno konstanto (Rd <= K) LDI Rd, K strojna koda: 1110 bbbb rrrr bbbb omejitve: registri R16-R31; konstanta K < 255 LDI R16, $2C koda: 1110 0010 0000 1100 ali $E20C Seštej in shrani v Rd (Rd <= Rd + Rr) ADD Rd, Rr strojna koda: 0000 11rd dddd rrrr Rd in Rr sta katerakoli registra R0-R31 ADD R16, R17 ddddd je 10000, rrrrr je 10001, koda ukaza: $0F01

Strojni program Naloži program v pomnilnik na naslov 0 shranimo $E20C na naslov 1 shranimo $E01F na naslov 2 shranimo $0F01 Izvedemo zaporedje treh ukazov nastavi prog. števec na 0 in izvedi 3 ukazne cikle (prenos/izvedi) Pregled rezultata: R16 = R16 + R17 = $2C + $0F = $3B 0000: $E20C LDI R16, $2C 0001: $E01F LDI R17, $0F 0002: $0F01 ADD R16, R17 Kaj se bo izvedlo po teh treh ukazih? ne vemo, odvisno kaj je zapisano v pomnilniku Flash

Ukazi procesorja AVR v zbirniku Ukazi v zbirniku predstavljajo procesorske mikrooperacije aritmet. / logične a+b ADD a-b SUB a&b AND a b OR a++ INC a-- DEC -a NEG a=0 CLR podatkovni prenos reg1=reg2 MOV reg=17 LDI reg=mem LDS reg=*mem LD mem=reg STS *mem=reg ST periferni IN periferni OUT sklad PUSH sklad POP operacije z biti a<<1 a>>1 Ø C (ni v C) statusni biti ni operacije LSL LSR, ROL, ROR SEI, CLI, CLZ... NOP

Skočni ukazi in primeri v jeziku C JMP, RJMP: brezpogojni skok npr. neskončna zanka: M_LOOP: ukazi jmp M_LOOP while (1) { }...ukazi... CALL, RET: klic podprograma in vrnitev (return) npr. podprogram: M_LOOP: CALL FV FV: ukazi RET void fv() { ukazi return; } void main () { fv(); }

Pogojni stavek Skoči na L1, če je a==b, sicer skoči na L2 naredimo s kombinacijo pogojnih in brezpogojnih skokov M_LOOP: ; primerjaj, CPSE a, b ; preskoči, če a=b JMP L2 L1: ; a == b JMP M_LOOP L2: ; a!= b JMP M_LOOP while (1) { if (a==b) { (L1) } else { (L2) } } CPSE (compare, skip if equal) preskoči naslednji ukaz (JMP L2) če sta operanda enaka, tako da se izvršijo ukazi za oznako L1. Hitro nastane zmešnjava NARIŠI DIAGRAM POTEKA!

Pogojni skočni ukazi Skok, ki se izvede glede na rezultat prejšnjega ukaza Aritmetični in logični ukazi shranijo rezultat in zastavice Primerjava (CP) naredi odštevanje, vendar ne shrani rezultat ampak samo postavi zastavice Z=1, če je rezultat 0, N=1,če je rezultat negativen, C=1, če je prišlo do prenosa Npr. BRNE: skok, kadar je rezultat različen od 0 (Z=0) BREQ, skok, kadar je rezultat enak 0 (Z=1)

Zanke s 16-bitnim števcem Primer zanka for(), ki se ponovi 20000-krat LDI temp0, 32 ; spodnji bajt LDI temp1, 78 ; zgornji bajt LOOP:... DEC temp0 ; odštej 1 BRNE LOOP ; skok če!=0 DEC temp1 BRNE LOOP for (i=20000; i!=0; i--) {... }; Najprej se DEC temp0 ponovi 32-krat, dokler ni 0 Potem se izvršita vgnezdeni zanki temp0 se ponovi 256-krat, temp1 pa 78-krat 20000 / 256 = 78, ostane 32

Seštevanje 16-bitnih nepredznačenih števil Vsak izmed operandov je shranjen v dveh bajtih Najprej seštejemo spodnja bajta, nato pa še zgornja bajta z upoštevanjem prenosa od spodnjih Npr. prvi operand je v (R1, R0) drugi operand je v (R3, R2) + R1 R3 R0 R2 R1 R0 ADD R0, R2 ADC R1, R3 unsigned short a, b; a = a + b; seštej s prenosom

Množenje in deljenje Nekateri procesorji AVR imajo 8-bitni strojni množilnik Rezultat se izračuna v dveh urnih ciklih in shrani v R1 R0 Npr. R16 vsebuje vrednost 100, R17 vsebuje vrednost 200 MUL R16, R17 produkt je 16-bitna vrednost, rezultat: R1 <= $4E, R2 <= $20 Množenje ali deljenje z 2 s pomikanjem bitov Pomakni bite v bajtu na levo (LSL) ali desno (LSR) Npr. LDI R16, 0b11011100; (220 10 ) LSL R16; rezultat 0b10111000 (184 10 ) in zastavica C=1 LSR R16; rezultat 0b01101110 (110 10 ), C=0 prazna mesta se zapolnijo z ničlami bit, ki pri prenosu izpade, se shrani v zastavico C

Vhodno-izhodne (periferne) enote vzporedna vrata (I/O port) vsebujejo 3 registre nastavi 4 vh. in 4 izh. bite izhodi beri vhode LDI R19, $F0 OUT DDRB, R19 LDI R21, $50 OUT PORTB, R21 IN R20, PORTB smer izhodna vred. / pullup vhodna vred. DDRx PORTx PINx