INF 3430/4431. Simuleringsmetodikk

Like dokumenter
INF 3430/4430. Simuleringsmetodikk

INF 3430/4430. Simuleringsmetodikk

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

INF3430/4431. VHDL byggeblokker og testbenker

INF3430. VHDL byggeblokker og testbenker

INF3430/4430. Grunnleggende VHDL

Simulering, syntese og verifikasjon (Max kap. 19)

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

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

INF3430. VHDL byggeblokker og testbenker forts.

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF3340/4340. Synkrone design Tilstandsmaskiner

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

TELE2010A Digital Systemkonstruksjon

INF3340. Tilstandsmaskiner

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3340/4431. Tilstandsmaskiner

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

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

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

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

INF1400. Tilstandsmaskin

Entities and architectures. Kapittel 3

Agenda Funksjoner og prosedyrer. Funksjoner

Synkron logikk. Sekvensiell logikk; to typer:

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

Forelesning 7. Tilstandsmaskin

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

TDT4165 PROGRAMMING LANGUAGES. Exercise 4 RC-kretser

INF1400. Tilstandsmaskin

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

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

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

Kapittel 5 Tilstandsmaskin

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

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

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

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

1. Å lage programmer i C++

En mengde andre typer som DVD, CD, FPGA, Flash, (E)PROM etc. (Kommer. Hukommelse finnes i mange varianter avhengig av hva de skal brukes til:

Kombinatorisk og synkron logikk. Kapittel 4

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

Oppgavesett videregående kurs i NVivo 9

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

1. Å lage programmer i C++

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

Tilstandsmaskiner (FSM) Kapittel 5

Cadence Oppstart og Skjemategning

Prototyping med Arduino del 2

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Velkommen til en liten demo av Novapoint DCM 19 basis

Dataveier og optimalisering. Kapittel 9

1 Innhold QUICK START GUIDE FOR QUARTUS II. Prosjektgruppe 59 Side 3 av 30 1 INNHOLD 3 2 ALTERA QUARTUS II. 4

Dagens temaer. Dagens temaer hentes fra kapittel 3 i læreboken. Oppbygging av flip-flop er og latcher. Kort om 2-komplements form

INF2270. Datamaskin Arkitektur

INF2270. Datamaskin Arkitektur

UNIVERSITETET I OSLO

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

ISY G-prog Beskrivelse Endringsliste

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

1 Kodegenerering fra Tau Suiten

Repetisjon digital-teknikk. teknikk,, INF2270

INF2810: Funksjonell Programmering

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Løsningsforslag INF1400 H04

INF2810: Funksjonell Programmering

INF120: Oblig 3. Yngve Mardal Moe

Obligatorisk oppgave 1 INF1020 h2005

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

Nytt prosjekt og programlogikk

INF2810: Funksjonell Programmering. Utsatt evaluering og strømmer

INF2810: Funksjonell Programmering. Mer om verditilordning og muterbare data.

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

Læringsmål uke 7. Objektorientert programmering i Python: Introduksjon. Innhold uke 7. Lite tilbakeblikk: Programflyt og skop

Oppgavesett for NVivo 10

INF2810: Funksjonell Programmering. Mer om verditilordning og muterbare data.

Arduino med Atmel studio 6.x (6.1)

ISY G-prog Linker Endringsliste

INF3430/4430 Høsten Designflyt Utviklingsverktøyene Modelsim og Xilinx ISE

KYBERNETIKKLABORATORIET. FAG: Industriell IT DATO: OPPG.NR.: LV4. LabVIEW Temperaturmålinger BNC-2120

WORKSHOP BRUK AV SENSORTEKNOLOGI

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

file:///c:/users/michaelp/sites/dkdm/dw6/dreamweaver6.html

UNIVERSITETET I OSLO

Fig1. Den konvekse innhyllinga av 100 tilfeldige punkter i planet (de samme som nyttes i oppgaven.)

Tall. Posisjons-tallsystemer. Representasjon av heltall. Tall positive, negative heltall, flytende tall. Tekst ASCII, UNICODE XML, CSS

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

INF2810: Funksjonell Programmering. Utsatt evaluering og strømmer

UNIVERSITETET I OSLO

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

INF2270. Sekvensiell Logikk

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering

Ekvivalente stier (Equivalence of Path, EOP) i storm

UML 1. Use case drevet analyse og design Kirsten Ribu

Betinget eksekvering og logiske tester i shell

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

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

Transkript:

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 Side 2

Event driven simulering Konseptet event driven betyr at simuleringen drives framover i tid av endringer (event er) Endringer på innganger (stimuli) Endringer på utganger som igjen trigger nye endringer Alle signaldrivere modelleres med en forsinkelse vi kaller delta-delay. Et delta-delay tilsvarer en forsinkelse på 0 fs (10-15 s) og gir en mekanisme for et sette eventer korrekt inn i en eventkø. INF3430/4431 Side 3

Eventkøer og delta-delay I kretsen til høyre har alle elementer null forsinkelse. Null forsinkelse modelleres som delta-delay Det betyr at alle eventer generert ved current simulation time blir schedulert til å hende et deltadelay senere. Bruk av delta-delay sikrer at forskjellige simulatorer gir samme resultat. Delta-delay medfører stadige oppdatering og innsetting av nye eventer i eventkø. INF3430/4431 Side 4

Eventkøer og delta-delay INF3430/4431 Side 5

Simulering av VHDL-modeller Datatypen time er forhåndsdefinert i std.vhd Funksjonen now returnerer nåværende simuleringstid Implementasjonsavhengig INF3430/4431 Side 6

Attributter (1) INF3430/4431 Side 7

Attributter (2) INF3430/4431 Side 8

VHDL simuleringssyklus VHDL simulering består av to faser: Initialiseringsfase Repeterte eksekveringer av simuleringssyklusen Simulering starter ved 0 ns Nåværende simuleringstid, Tc Neste simuleringstid, Tn Tn beregnes ut fra den tidligste forekomst av: TIME high (max. Simuleringstid) Neste gang en driver blir aktivert Neste gang en process starter igjen (fortsetter) INF3430/4431 Side 9

VHDL simuleringssyklus Ved initialisering antar man at alle signaler har hatt sin verdi uendelig lenge Hver simuleringssyklus eksekveres ved at Tc settes lik Tn Alle eksplisitte tilordninger (input stimuli) og alle implisitte signaler oppdateres. Begge disse kan forårsake nye eventer, enten et delta delay framover eller til en annen tid. F.eks. A<= 1 after 1 ns; Hvis Tn = Tc er neste cycel en deltacycel INF3430/4431 Side 10

VHDL modellering Husk å inkludere alle relevante signaler på sensitivitetslisten For å gjøre simulering raskere: Bruk et lite antall prosesser Dette kan være i motsetning til godt lesbar kode Bruk av variabler simulerer raskere fordi disse er historieløse og enkle datastrukturer Bruk event istedenfor stable. stable lager et signal. Datatyper som integer simulerer raskere en f.eks. std_logic (mapper direkte til standard datatyper i språket simulatoren er kodet i). INF3430/4431 Side 11

Selvtestende testbenker I en selvtestende testbenk sjekkes alle utganger opp mot en fasit, og resultat av simulering rapporteres som Ok eller Not Ok. Fordelen med dette er at man sparer mye tid til gransking av timingdiagrammer. Andre kan lettere vedlikeholde kode fordi man har en entydig virkemåte i fasiten. Krevende oppgave å lage selvtestende testbenker. INF3430/4431 Side 12

Selvtestende testbenker Xilinx ISE (< ver.11) har verktøyet HDL bencher for å lage selvtestende testbenker. Grafisk input/redigering, VHDL output. Man tegner alle inngangsstimuli grafisk. Simulerer på behavorial nivå (kan være en ikke-syntetiserbar modell) i Modelsim til man er fornøyd med resultater Genererer deretter en selvtestende testbenk vhdl(verilog)-fil Man får generert en testbenk der alle utgangsverdier blir sjekket opp mot forventede verdier. Feil rapporteres Man starter HDL Bencher i processvinduet ved Create New source og så velge Test Bench Waveform INF3430/4431 Side 13

HDL Bencher (1) INF3430/4431 Side 14

HDL Bencher (2) Testfil: Decoder.vhd Redigering av input INF3430/4431 Side 15

Generert VHDL testbench Instantiering av UUT Generering av procedure som sjekker output Stimuli process med sjekking av outputs Den selvtestende testbenken husker virkemåten og det er lett å repetere simuleringen senere på RTL-koden både for en selv og andre. Meget viktig etter vedlikehold av design å sørge for at endringer i koden ikke får uønskede sideeffekter => regresjonstesting INF3430/4431 Side 16

Prosedyre for sjekking av utganger INF3430/4431 Side 17

Stimuli og sjekk av utganger INF3430/4431 Side 18

Sluttrapport INF3430/4431 Side 19

Filoperasjoner Tekstfiler benyttes ofte til å lagre input stimuli og lagre resultater. Resultat-fil kan benyttes for å verifisere f.eks. syntesemodeller opp mot RTL-kode. Resultat-fil kan også benyttes som input stimuli til etterfølgende krets. INF3430/4431 Side 20

Eksempel: Testing av N-bit adder INF3430/4431 Side 21

Testing av N-bit adder (forts) INF3430/4431 Side 22

Testing av N-bit adder (forts) INF3430/4431 Side 23

Utskrift av data til consol (transcript) vindu INF3430/4431 Side 24

Sjekking av outputs INF3430/4431 Side 25

Utskrift av data til consol (transcript) vindu INF3430/4431 Side 26

Les/skriv SRAM-Arkitektur INF3430/4431 Side 27

Lesing fra RAM, ASM og timing IDLE CHECK_BUTTON CHECK_BUTTON INC_ADDR_ST WAIT_ST RD_EN_ST CS_EN_ST IDLE IDLE INF3430/4431 Side 28

Sjekk av noen timingparametre i SRAMmodellen INF3430/4431 Side 29

Oppsummering Event driven simulation Delta delay Eventer og vedlikehold av eventkøer Simulering av VHDL-modeller Selvtestende testbenker Sjekker utganger opp mot en kjent fasit Finnes egne verktøy for å lage fasit, f.eks HDL bencher Fil-operasjoner Stimuli fra input-fil Fasit fra input-fil Output til resultat-fil. Kan benyttes i testbenk for å sammenligne resultat mellom forskjellige simuleringer, f.eks. før og etter syntese. Eksempel på SRAM modell og simulering av lesing fra denne Fylle ram med kjente data Timing sjekk i modell INF3430/4431 Side 30