INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Like dokumenter
INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4431. 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:

Tilstandsmaskiner (FSM) Kapittel 5

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

INF3430/4431. VHDL byggeblokker og testbenker

Maskinvaredelen av INF 103: oversikt og innhold (1)

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

Store design. Kapittel 6

INF3430. VHDL byggeblokker og testbenker

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

INF 3430/4430. Simuleringsmetodikk

INF2270. Datamaskin Arkitektur

INF 3430/4431. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk

Entities and architectures. Kapittel 3

INF3430/4430. Grunnleggende VHDL

INF1400 Kap4rest Kombinatorisk Logikk

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

INF2270. Datamaskin Arkitektur

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

Hvorfor lære om maskinvare*?

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

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

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

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

Kap. 8 del 1 kodegenerering INF5110 Vår2007

Forelesning 5. Diverse komponenter/større system

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

Kap. 8 del 1 kodegenerering INF april, 2008

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

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

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

Litt om Javas class-filer og byte-kode

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

Kapittel 4: Microarchitecture level

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

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

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Datamaskinens virkemåte

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Kapittel 1 En oversikt over C-språket

INF3340/4340. Synkrone design Tilstandsmaskiner

Innhold. Oppgave 1 Oversettelse (vekt 15%)

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

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

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

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

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

Programmeringsspråket C Del 2

Programmeringsspråket C Del 2

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

TDT DESEMBER, 2009, 09:00 13:00

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

Programmeringsspråket C Del 2

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

UNIVERSITETET I OSLO

INF3340. Tilstandsmaskiner

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

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

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

INF225 høsten 2003 Prosjekt del 4: kodegenerering

Hjemmeeksamen 2 i INF3110/4110

Forelesning Datatyper Kap 5.2 Instruksjonsformat Kap 5.3 Flyttall App B

Oppsummering av digitalteknikkdelen

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

INF3340/4431. Tilstandsmaskiner

Oppgave 1 Oversettelse (total vekt 20%)

Forelesning Instruksjonstyper Kap 5.5

Forelesning Adresseringsmodi Kap 5.4

Oppgave 1 En 4-input Xilinx LUT med innhold 9009 (hex) realiserer en: A xor-xor-or B xor-xor-nand C xor-xor-nor D xor-xor-and E xor-xor-xor

Del 1 En oversikt over C-programmering

TELE2010A Digital Systemkonstruksjon

Oppgave 2 Maskinkode (vekt 12%)

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

Dagens tema: Enda mer MIPS maskinkode

Hvordan en prosessor arbeider, del 1

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

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

befinner seg. Deretter leses instruksjonen fra i registerfilen ved ny stigende klokkepuls.

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

INF3430. Fasit eksamen Høst Oppgave 1 6. Oppgave A B C D E 1 X X 2 X 3 X X 4 X X 5 X X 6 X

Intel Core i7. Omid Mirmotahari 4

Transkript:

INF3430/4430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer 2005-10-26

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

Funksjoner(1) Benyttes mye i modeller for simulering Høynivå beskrivelser for beregninger type konvertering Funksjoner som har anvendelser for syntese inkluderer Type konvertering 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 (Syntese standard) INF3430/4430 Side 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/4430 Side 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/4430 Side 5

Operatorer Operatorer defineres på samme måte som funksjoner, men ved: <operatornavn> Operatorer benyttes forskjellig fra funksjoner: INF3430/4430 Side 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/4430 Side 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 parametre og sammenligner dem med de formelle parametrene. INF3430/4430 Side 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) Package std_logic_unsigned Package std_logic_signed Package std_logic_arith 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/4430 Side 9

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

Nyttige prosedyrer i testbenker Pakkenen std_textio fra IEEE og std_logic_textio fra Synopsys inneholder en rekke nyttige prosedyrer for å 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/4430 Side 11

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

En program i en mikroprossor består av en rekke assemblyinstruksjoner. For eksempel kan følgende c-kode: a=b+c kompileres til assembly instruksjonene LOAD b ADD c STORE a En assemblyinstruksjon består av en operasjonskode og en operand. Operanden tilsvarer en addresse I vårt eksempel tenker vi oss en 8-bits instruksjon der operasjonskoden tar 3 bit og operanden 5. INF3430/4430 Side 13

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 Assembly programmet over oversettes til følgende maskinkode: LOAD b 00000001 ADD c 01000010 STORE a 00100011 INF3430/4430 Side 14

Vår mikroprosessor støtter direct mode addressing 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/4430 Side 15

INF3430/4430 Side 16

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 det enkelte delene av mikroprosessoren RAM Inneholder instruksjoner og data MDR og MAR er synkroniseringsregistre til RAM ALU -Arithmetic Logic Unit Utfører aritmetiske/logiske operasjoner Mikroprosessoren hjerne ACC Accumulator Lagrer resultat av en ALU operasjon INF3430/4430 Side 17

INF3430/4430 Side 18

Instruksjoner LOAD STORE ADD SUB BNE INF3430/4430 Side 19

INF3430/4430 Side 20

INF3430/4430 Side 21

Pakken cpu_defs INF3430/4430 Side 22

Dersom mikroprosessoren skal syntetiseres må operasjonskoden konvertereres til std_logic_vector eller lignende Typekonverteringsfunksjonene op2slv og slv2op INF3430/4430 Side 23

INF3430/4430 Side 24

Eksempel på et program lagret i RAM INF3430/4430 Side 25

INF3430/4430 Side 26

Bruk av list -vindu til å se på kun endringer til et signal View=>Debug Windows=>List INF3430/4430 Side 27

Bruk av memory vindu View=>Debug Windows=>Memory INF3430/4430 Side 28