INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Like dokumenter
INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Agenda Funksjoner og prosedyrer. Funksjoner

INF3430. VHDL byggeblokker og testbenker forts.

Kombinatorisk og synkron logikk. Kapittel 4

INF3430/4430. Kombinatoriske og sekvensielle byggeblokker implementert i VHDL :57

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF3430/4431. VHDL byggeblokker og testbenker forts.

Synkron logikk. Sekvensiell logikk; to typer:

SIE 4005, 9/10 (4. Forelesn.)

INF2270. Datamaskin Arkitektur

SIE 4005, 8/10 (3. Forelesn.)

Maskinvaredelen av INF 103: oversikt og innhold (1)

Tilstandsmaskiner (FSM) Kapittel 5

INF2270. Datamaskin Arkitektur

INF3430/4431. VHDL byggeblokker og testbenker

INF 3430/4430. Simuleringsmetodikk

INF 3430/4431. Simuleringsmetodikk

INF3430. VHDL byggeblokker og testbenker

INF3430/4431 Høsten Laboppgave 2 VHDL-programmering Funksjoner og prosedyrer/bibliotek Styring av sjusegmenter

INF 3430/4430. Simuleringsmetodikk

Hvorfor lære om maskinvare*?

INF3430/4430. Grunnleggende VHDL. 11-Sep-06

Store design. Kapittel 6

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Entities and architectures. Kapittel 3

INF3430/4430. Grunnleggende VHDL

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

INF1400 Kap4rest Kombinatorisk Logikk

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Forelesning Instruksjonstyper Kap 5.5

Kapittel 1 En oversikt over C-språket

Litt om Javas class-filer og byte-kode

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

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

VHDL En kjapp introduksjon VHDL. Oversikt. VHDL versus C(++)/Java

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

Forelesning 5. Diverse komponenter/større system

INF3340. Tilstandsmaskiner

INF3340/4340. Synkrone design Tilstandsmaskiner

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

Datamaskinens virkemåte

Dagens tema. Mer MIPS maskinkode. Maske-operasjoner Skift-operasjoner Lesing og skriving Pseudo-instruksjoner Mer om funksjonskall Registeroversikt

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

Dagens temaer. Intern hukommelse (1) Maskinvaredelen av INF 103: oversikt og innhold (2) Maskinvaredelen av INF 103: oversikt og innhold (1)

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Kapittel 4: Microarchitecture level

Oppsummering av digitalteknikkdelen

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

INF225 høsten 2003 Prosjekt del 4: kodegenerering

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

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

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

Pensumoversikt - kodegenerering. Kap. 8 del 1 kodegenerering INF5110 v2006. Hvordan er instruksjonene i en virkelig CPU? Arne Maus, Ifi UiO

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and

SIE 4005, 2/10 (2. Forelesn.)

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

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

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

INF3430 Høsten ChipScope PRO - En kort innføring

Kap. 8 del 1 kodegenerering INF april, 2008

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Innhold. Oppgave 1 Oversettelse (vekt 15%)

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2

TDT4160 AUGUST, 2008, 09:00 13:00

Eivind Gard Lund. 24. Mars 2009 Foilene bygger på 2009 utgaven av Andreas Svendsen

Del 1 En oversikt over C-programmering

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

TDT DESEMBER, 2009, 09:00 13:00

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Programmeringsspråket C Del 2

Datamaskinens oppbygning

Oppgave 2 Maskinkode (vekt 12%)

Kap. 8 del 1 kodegenerering INF5110 Vår2007

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

UNIVERSITETET I OSLO

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

Forelesning Adresseringsmodi Kap 5.4

INF Oblig 2 semantikksjekk og kodegenerering

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

UNIVERSITETET I OSLO

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

Intel Core i7. Omid Mirmotahari 4

INF3340/4431. Tilstandsmaskiner

Dagens tema. Rask-maskinen. Rasko-kode Raskas-kode. Litt datamaskinhistorie Registre og lagre Instruksjoner

En overikt. Dagens tema. Datamaskinenes historie. Rask-maskinen Litt datamaskinhistorie Registre og lagre Instruksjoner. Rasko-kode.

Obligatorisk Innlevering 2

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

Transkript:

INF3430/4431 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker Komplekse sekvensielle systemer Eksempel på en enkel mikroprosessor INF3430/4431 2

Funksjoner (1) Benyttes mye i modeller for simulering Høynivåbeskrivelser for Beregninger Typekonvertering Funksjoner som har anvendelser for syntese inkluderer Typekonvertering Bruk av funksjoner som alternativ til komponent instansiering Overload operatorer og funksjoner Mange nyttige funksjoner definert i standard pakker (packages) IEEE 1076 IEEE 1164 (std_logic_1164) Synopsys biblioteker (støttet av de fleste synteseverktøy) IEEE 1076.3 (Syntesestandard) INF3430/4431 3

Funksjoner (2) Funksjons beskrivelse Kan bare ha input signaler som parametre Returner kun èn verdi (dette kan være et signal eller en vector) Sekvensiell beskrivelse Kan ikke ha wait statement Kan ikke definere signaler internt Funksjons deklarasjon en funksjon deklareres i den deklarative regionen av en arkitektur eller den deklarative regionen av en process INF3430/4431 4

Funksjoner (3) Funksjons deklarasjoner Kan også deklareres i et package/package body par. Et funksjonsbibliotek er bygd opp på denne måten I packagedelen kan man også legge inn: Komponentdeklarasjoner Datatypedefinisjoner Konstanter INF3430/4431 5

Operatorer Operatorer defineres på samme måte som funksjoner, men ved: <operatornavn> Operatorer benyttes forskjellig fra funksjoner: INF3430/4431 6

Bruk av funksjonsbibliotek Et package/package body par kan være kompilert til work eller til et annet bibliotek. Dette må ha et logisk navn. Vi antar mylib. Det logiske navnet gis i det aktuelle verktøyet og gjenspeiles gjerne i lagerstrukturen til verktøyet INF3430/4431 7

Overloading (1) Overloading betyr å definere samme operator, funksjon eller prosedyre for forskjellige datatyper eller blanding av datatyper. De kan være forskjellig antall parametre i de forskjellige overload operatorene, funksjonene eller prosedyrene. VHDL-analyse/syntese programmet skiller de forskjellige overload operatorene, funksjonene eller prosedyrene fra hverandre ved å se på datatypen til de aktuelle parametrene og sammenligner dem med de formelle parametrene. INF3430/4431 8

Overloading (2) Det finnes en rekke standard biblioteker med overload operatorer, funksjoner og prosedyrer i IEEE 1164 og 1076.3 IEEE 1164 Package std_logic_1164 Synopsys biblioteker (kompilert til IEEE, men ikke standard) Package std_logic_unsigned Package std_logic_signed Package std_logic_arith package std_logic_textio IEEE1076.3 Package numeric_std NB! Det er viktig å sjekke ut hva det aktuelle synteseverktøyet støtter. De forskjellige synteseverktøyene kan ha organisert disse bibliotekene forskjellig. Det betyr at man må endre library use clause i VHDL-filen som skal syntetiseres. INF3430/4431 9

Prosedyrer Kan returnere flere enn èn verdi Retur skjer via prosedyreparametrene Parametre som skal returneres må være deklarert som mode out eller inout. Kun sekvensiell konstruksjon Kan ha wait statement Størrelser på vektorer defineres av aktuelle parametre Deklareres på samme steder som funksjoner og operatorer INF3430/4431 10

Nyttige prosedyrer i testbenker Pakken std_textio fra IEEE og std_logic_textio fra Synopsys inneholder en rekke prosedyrer som er nyttige i forbindelse med å lese fra fil og skrive til fil: Bits og vectorer(som enkeltbit) read write Octalt format oread owrite Hexadesimalt format hread hwrite Disse finnes i en rekke overloadede utgaver INF3430/4431 11

Nyttige prosedyrer i testbenker(2) Biblioteket Std_developers_kit som følger med Modelsim inneholder en rekke nyttige pakker. Spesielt nyttig i testbenker er pakken STD_IOPAK. STD_IOPAK inneholder en rekke funksjoner for å manipulere strenger og fil I/O. INF3430/4431 12

Komplekse sekvensielle systemer Vanlig å dele opp et sekvensielt system i to deler: Datapath (datavei) Controller Datapath en gir strukturen og virkemåten til systemet, mens Kontrolleren kontrollerer virkemåten og timingen til datapath operasjonene Start alltid med å tegne datapath fordi da er det gitt hva som skal kontrolleres INF3430/4431 13

Eksempel:En enkel mikroprosessor En program i en mikroprossor består av en rekke assemblyinstruksjoner. For eksempel kan man ha følgende c-kode: a=b+c; som kompileres til assemblyinstruksjonene: LOAD b ADD c STORE a En assemblyinstruksjon består av en operasjonskode og en operand. Operanden tilsvarer en adresse INF3430/4431 14

Instruksjoner I vårt eksempel tenker vi oss en 8-bits instruksjon med en operasjonskode på 3 bit og en operand på 5. Det betyr at vi kan ha 8 forskjellige operasjonskoder og 32 adresser Assemblyprogrammet over kan oversettes til følgende maskinkode: LOAD b 00000001 ADD c 01000010 STORE a 00100011 INF3430/4431 15

Adresseringsmodi Vår mikroprosessor støtter direct mode adressering Det betyr at data som skal opereres på må tas fra adressen gitt av operanden For eksempel vil ikke mikroprosessoren vår støtte instruksjoner av typen LOAD b ADD 5 STORE Her er ADD 5 eksempel på immediate mode adressering. Det betyr at instruksjonen opererer direkte på operanden. Direct og immediate mode instruksjoner krever forskjellig datapath og er å betrakte som vidt forskjellige instruksjoner. INF3430/4431 16

Kontroll og dataveier Program Counter Instruction Register State Machine Accumulator Arithmetic Logic Unit Memory Data Register Memory Address Register Random Access Memory INF3430/4431 17

Kontroll og dataveier PC-Program Counter Inneholder adressen til neste instruksjon IR-Instruction Register Inneholder operasjonskoden av instruksjonen og er input til SEQUENCER Tilstandsmaskin som dekoder operasjonskoden og lager kontrollsignaler til de enkelte delene av mikroprosessoren RAM Inneholder instruksjoner og data MDR og MAR er synkroniseringsregistre til RAM (som er asynkron i dette tilfellet) ALU-Arithmetic Logic Unit Utfører aritmetiske/logiske operasjoner Mikroprosessorens hjerne ACC -Accumulator Lagrer resultat av en ALU operasjon INF3430/4431 18

Kontrollsignaler INF3430/4431 19

Kontroll og dataveier PC_bus INC_PC Addr_bus load_ir ACC_bus load_acc ALU_sub ALU_add MDR_bus load_mdr load_mar ALU_ACC CS R_NW INF3430/4431 20

PC-Program Counter INF3430/4431 21

IR-Instruksjonsregister INF3430/4431 22

MAR, MDR og RAM INF3430/4431 23

ALU-Aritmetisk Logisk Enhet INF3430/4431 24

Instruksjonssett LOAD STORE ADD SUB BNE INF3430/4431 25

ASM flytdiagram (1) INF3430/4431 26

ASM flytdiagram (2) INF3430/4431 27

Biblioteker (1) Pakken cpu_defs INF3430/4431 28

Biblioteker (2) Dersom mikroprosessoren skal syntetiseres må operasjonskoden konvertereres til std_logic_vector eller lignende Typekonverteringsfunksjonene op2slv og slv2op INF3430/4431 29

Biblioteker (3) INF3430/4431 30

Programmet INF3430/4431 31

Modelsim. Utdrag av timingdiagram INF3430/4431 32

Modelsim. Memory vinduet Bruk av memory vindu INF3430/4431 33