INF3430/4431. VHDL byggeblokker og testbenker



Like dokumenter
INF3430. VHDL byggeblokker og testbenker

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

INF3430/4430. Grunnleggende VHDL

INF3430/4431. VHDL byggeblokker og testbenker forts.

Entities and architectures. Kapittel 3

INF3430. VHDL byggeblokker og testbenker forts.

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

Kombinatorisk og synkron logikk. Kapittel 4

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF 3430/4431. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk

Synkron logikk. Sekvensiell logikk; to typer:

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

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

Store design. Kapittel 6

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

TELE2010A Digital Systemkonstruksjon

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

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

Tilstandsmaskiner (FSM) Kapittel 5

Dagens temaer. Architecture INF ! Dagens temaer hentes fra kapittel 3 i Computer Organisation and. ! Kort repetisjon fra forrige gang

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Agenda Funksjoner og prosedyrer. Funksjoner

INF3340/4431. Tilstandsmaskiner

F4 IN HDL. Yngve Hafting,

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

Simulering, syntese og verifikasjon (Max kap. 19)

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

INF3340/4340. Synkrone design Tilstandsmaskiner

INF3340. Tilstandsmaskiner

INF3430/4431. Viktige momenter i syntese og for valg av teknologi Chipscope

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Kort repetisjon fra forrige gang. Kombinatorisk logikk

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

FYS 3270(4270) Data-assistert konstruksjon av kretselektronikk (tidligere Fys 329) Fys3270(4270)

Del 1 En oversikt over C-programmering

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

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

UNIVERSITETET I OSLO

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Datamaskiner og operativsystemer =>Datamaskinorganisering og arkitektur

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

HØGSKOLEN I SØR-TRØNDELAG Avdeling for teknologi

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

Repetisjon digital-teknikk. teknikk,, INF2270

INF1400. Karnaughdiagram

156C. Algoritmer og maskinspråk. IT1101 Informatikk basisfag. Maskinspråk: det maskinen forstår. Assembler / assemblerspråk

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

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

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

Oppsummering av digitalteknikkdelen

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

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

Programmerbar logikk. CPLD og FPGA. Fys3270(4270)

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

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering

INF3430/4431 Høsten Laboppgave 4 System on Chip (SoC) konstruksjon

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

Bussar. Tilgong til buss (Three state buffer) Synkron / Asynkron Serielle bussar Parallelle bussar Arbitrering: Kven kontrollerar bussen

Løsningsforslag til eksamen i INF2270

INF3110 Programmeringsspråk. Dagens tema. Typer (Kapittel 3 frem til ) Innføring i ML (Kapittel & ML-kompendiet.) 1/19

Typer. 1 Type: boolean. 2 Verdimengde: {true, false} 3 Operatorer: NOT, AND, OR... 1/19. Forelesning Forelesning

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

Læringsmål og pensum. if (be): else (not_to_be):

INF1510: Bruksorientert design

UNIVERSITETET I OSLO

INF 3430/4430. UNISIM, SIMPRIM og Vital-bibliotekene Xilinx Corelib Test og design for testbarhet

MAX MIN RESET. 7 Data Inn Data Ut. Load

Digitalstyring sammendrag

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap. 3

TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk. - 3rd edition: Kapittel 3. Professor Alf Inge Wang

if (be): else (not_to_be): TDT4110 Informasjonsteknologi grunnkurs: Tema: Betingelser og logiske uttrykk Utgave 3: Kap.

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

Dagens tema. Dagens temaer hentes fra kapittel 3 i læreboken. Repetisjon, design av digitale kretser. Kort om 2-komplements form

Organisering og ledelse av hardware-utvikling

Nytt prosjekt og programlogikk

Avdeling for ingeniørutdanning Institutt for teknologi

Versjon2.0/ ChipScope PRO - En kort innføring

Høgskolen i Sør-Trøndelag Avdeling for teknologi

Hva gikk vi gjennom forrige uke? Omid Mirmotahari 3

Øvingsforelesning 1 Python (TDT4110)

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

INF1400 Kap 1. Digital representasjon og digitale porter

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Forelesningsnotat. Kapittel 9 Designing and Constructing Software Code related Issues. Design og utvikling av programvare

Kapittel 1 En oversikt over C-språket

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

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Løsningsforslag INF1400 H04

ITPE2400/DATS2400: Datamaskinarkitektur

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

AlgDat 10. Forelesning 2. Gunnar Misund

Digital logic level: Oppsummering

TDT4110 IT Grunnkurs Høst 2015

2 Om statiske variable/konstanter og statiske metoder.

Betinget eksekvering og logiske tester i shell

INF2810: Funksjonell programmering: Mer om Scheme. Rekursjon og iterasjon.

MAT1030 Diskret matematikk

Transkript:

INF3430/4431 VHDL byggeblokker og testbenker

Entity/architecture Innhold Strukturelle design (nettliste) Generics Configurations Operatorer-Operator prioritet (precedence) Datatyper Bit / IEEE1164 std_ulogic /std_logic Sekvensiell VHDL (Process) If/case Signaler Variabler Testbenk for kombinatorisk logikk Side 2

Entity/architecture Entity og architecture er de to mest grunnleggende byggeklossene i VHDL. Entity Tilkobling mot omverdenen i Portbeskrivelsen Input/output/bi-directional signaler Architecture Beskriver virkemåte En entity kan ha mange architectures Kan benyttes til å beskrive kretsen for flere abstraksjonsnivåer Behavorial (algoritmer) RTL (Register Transfer Level) Post synthesis (nettliste) Post Place & Route (nettliste + timing) Side 3

Strukturelle design (netlist) Inputs Component A Instans U1 Component B Instans U2 sammenkoblinger Component C Instans U3 Component A Instans U4 Outputs Hver Component instans har et underliggende Entity/architecture par Vi kan lett gjenbruke entities Vi kan lage et hierarkisk design med så mange undernivåer vi måtte ønske Ikke overdriv Å benytte flere prosesser innenfor en arkitektur er et godt alternativ til et strukturelt design Side 4

Strukturelle design (netlist) Gjenbruk av moduler (entities og architectures) Generiske moduler(generics) F.eks. skalèrbare bussbredder Konfigurerbar funksjonalitet Bryter opp store design til mindre og håndterlige byggeklosser Tenk funksjonelle blokker Sammenkobling av funksjonelle blokker (entities/components/modules) Lettere samarbeid mellom flere i et designteam Viktig med veldefinerte grensesnitt mellom moduler Ethvert entity/architecture-par kan benyttes som en byggekloss i en strukturell beskrivelse Sammenkobling av komponenter Side 5

Testbenk Lager stimuli/testomgivelser i VHDL Meget kraftige simuleringsmuligheter Fil I/O Leser testmønstre fra fil Skriver resultater til fil og sammenligner med fasitfil. Fasitfil kan også leses inn og sammenligning mellom resultat og fasit kan utføres innenfor testbenken. Kan bygge inn modeller for omkringliggende kretser Særlig viktig dersom man har toveis kommunikasjon mellom UUT (Unit under test) og omkringliggende kretser. Jfr. Handshake signaler. Gir simulatoruavhengig test Side 6

Testbenk Stimuli Unit under Test UUT Outputs Stimuli Unit under Test UUT Stimuli Modell av omkring liggende krets A Stimuli sammenkoblinger Modell av omkring liggende krets B Modell av omkring liggende krets C Outputs Side 7

Strukturelle design (netlist) Her hentes entitetene fra working library Sist kompilerte arkitektur benyttes (default binding) Side 8

Strukturelle design (netlist) Her spesifiseres eksplisitt hvilke bibliotek entitetene hentes fra. Det spesifiseres også hvilke arkitektur som benyttes Det benyttes en kombinasjon av eksterne (via entiteten) og interne signaler for å lage sammenkoblinger Side 9

Strukturelle design med generate generate uttrykket er effektiv til å bygge opp regulære strukturer av samme komponent. Eksempel: Bidirectional bus din(0) data(0) en dint(0) din(1) data(1) dint(1) din(15) data(15) dint(15) Side 10

Generics I tillegg til portbeskrivelsen kan en entity ha en generic beskrivelse Generics benyttes for å kunne lage parametriserbare komponenter (generiske) Generics benyttes oftest til å overføre timing informasjon eller strukturell informasjon Eksempel 1: Tidsforsinkelser kan variere fra krets til krets, mens virkemåten ellers er lik Eksempel 2: Antall bit kan variere fra krets til krets mens virkemåten ellers er lik. Side 11

Generics Delay_length er en subtype av typen time Ikke VHDL 1987 revisjon Side 12

Configurations Configurations er en mekanisme for å velge ut en gitt arkitektur til en entitet (component) Nyttig når vi skal simulere RTL, postsyntese og post place and route Benyttes til å binde sammen hierarki Uten bruk av configurations må man passe på hvilke arkitektur som er sist kompilert og dette kan bli komplisert etter hvert som designet vokser. Side 13

Configurations Lager en configuration for hver type simulering man vil gjøre Side 14

Sekvensiell VHDL (Processer) En process har en sensitivitetsliste Processen evalueres når et av signalene på sensitivitetslisten endrer verdi I en process dannes èn signaldriver pr.signal. Detter betyr at det er ikke noen konflikt med flere tilordninger pr. signal innenfor èn process. Oppdatering av et signal skjer når processen terminerer. Oppgave: Anta b=0, a skifter fra 0->1. Hva skjer med f og hvorfor? Side 15

Sekvensiell VHDL (Processer) For å beskrive logikk ved bruk av processer er det vanlig å benytte if tester case tester if og case benyttes som i andre programmeringsspråk f.eks. C I if tester kan man teste på forskjellige signaler/variabler og if tester har innebygd prioriet I case setninger tester man kun på et signal (med en eller flere bit) Ingen innebygd prioritet fordi samme signal benyttes overalt i testen Side 16

Signaler og Variabler Signaler og variabler kan benyttes til å holde data Signaler Et signal kan benyttes innenfor hele arkitekturen. Kobles til andre arkitekturer gjennom entiteten Endrer verdi når en process terminerer Variabler Variabler deklareres og benyttes lokalt innenfor en process (funksjon eller prosedyre) Tilordnes med := Eks: var := 1 ; I motsetning til et signal forandrer en variabel verdi umiddelbart Variabler er nyttige å benytte for å holde mellomresultater i algoritmer. Side 17

Signaler vs. variabler Oppgave: Anta b=0, a skifter fra 0->1. Når skifter f og g? Side 18

Operatorer Aritmetikk +, -, *, / Sammenligning >, >=, <, <=, =, /= Logiske operatorer and, nand, or, nor, not, xor, xnor Side 19

Operator prioritet (precedence) I VHDL er det kun not-operatoren som blir evaluert før andre Alle andre operatorer blir evaluert på lik linje Uttrykkene blir evaluert ettersom de er skrevet (venstre mot høyre) For å tvinge fram at et uttrykk evalueres før et annet benyttes paranteser Eksempler: a <= a or b and c = (a or b) and c z <= a and not b and c = a and (not b) and c = c and (a and (not b)) Side 20

Datatyper Meget streng datatypesjekking i VHDL Scalare typer Kan holde bare en verdi om gangen Eksempel: Integer, Real, Enumerated (bit), Physical (time) Composite typer Kan holde mer enn en verdi om gangen. Dette er tilfelle for array og record typer Eksempel: bit_vector Typen bit kan ha verdiene 0,1 Dette er veldig begrensende i forhold til å modellere digital hardware Dette medførte en ny standard, IEEE 1164 std_logic Side 21

Datatypen std_logic IEEE 1164 TYPE std_ulogic IS ( ); 'U', -- Uninitialized 'X', -- Forcing Unknown '0', -- Forcing 0 '1', -- Forcing 1 'Z', -- High Impedance 'W', -- Weak Unknown 'L', -- Weak 0 'H', -- Weak 1 '-' -- Don't care SUBTYPE std_logic IS resolved std_ulogic; Side 22

std_ulogic/std_logic std_ulogic u Unresolved Drivere kan ikke kobles sammen std_logic Resolved Verdier definert gjennom en såkalt resolution table Drivere kan kobles sammen og kan modellere: Wired logic Tri-state drivere og busser Pull up/pull down motstander CONSTANT resolution_table : stdlogic_table := ( --------------------------------------------------------- U X 0 1 Z W L H - --------------------------------------------------------- ( 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U', 'U' ), -- U ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ), -- X ( 'U', 'X', '0', 'X', '0', '0', '0', '0', 'X' ), -- 0 ( 'U', 'X', 'X', '1', '1', '1', '1', '1', 'X' ), -- 1 ( 'U', 'X', '0', '1', 'Z', 'W', 'L', 'H', 'X' ), -- Z ( 'U', 'X', '0', '1', 'W', 'W', 'W', 'W', 'X' ), -- W ( 'U', 'X', '0', '1', 'L', 'W', 'L', 'W', 'X' ), -- L ( 'U', 'X', '0', '1', 'H', 'W', 'W', 'H', 'X' ), -- H ( 'U', 'X', 'X', 'X', 'X', 'X', 'X', 'X', 'X' ) -- - ); Side 23

Tri-state buffer Side 24