INF 3430/4430. Simuleringsmetodikk

Like dokumenter
INF 3430/4431. Simuleringsmetodikk

INF3430/4431. VHDL byggeblokker og testbenker

Simulering, syntese og verifikasjon (Max kap. 19)

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

TELE2010A Digital Systemkonstruksjon

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

INF3340/4340. Synkrone design Tilstandsmaskiner

INF3340. Tilstandsmaskiner

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3340/4431. Tilstandsmaskiner

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Synkron logikk. Sekvensiell logikk; to typer:

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

INF1400. Tilstandsmaskin

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

Forelesning 7. Tilstandsmaskin

Entities and architectures. Kapittel 3

INF1400. Tilstandsmaskin

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

INF2270. Datamaskin Arkitektur

Agenda Funksjoner og prosedyrer. Funksjoner

Kapittel 5 Tilstandsmaskin

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

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

INF2270. Datamaskin Arkitektur

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

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

Tilstandsmaskiner (FSM) Kapittel 5

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

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:

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

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

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

TDT4165 PROGRAMMING LANGUAGES. Exercise 4 RC-kretser

MAX MIN RESET. 7 Data Inn Data Ut. Load

UNIVERSITETET I OSLO

Kombinatorisk og synkron logikk. Kapittel 4

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

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

Løsningsforslag INF1400 H04

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

1. Å lage programmer i C++

Zelio Soft grunnkurs. Zelio Logic reléerstatter programmering

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

Oppgavesett videregående kurs i NVivo 9

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

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

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

Obligatorisk oppgave 1 INF1020 h2005

INF2270. Sekvensiell Logikk

INF1400 Kap4rest Kombinatorisk Logikk

1. Å lage programmer i C++

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

Cadence Oppstart og Skjemategning

Velkommen til en liten demo av Novapoint DCM 19 basis

Prototyping med Arduino del 2

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

INF2810: Funksjonell Programmering

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

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

WORKSHOP BRUK AV SENSORTEKNOLOGI

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

ISY G-prog Beskrivelse Endringsliste

Arduino med Atmel studio 6.x (6.1)

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

UNIVERSITETET I OSLO

Repetisjon digital-teknikk. teknikk,, INF2270

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

UNIVERSITETET I OSLO

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

INF120: Oblig 3. Yngve Mardal Moe

Dagens tema. Dagens tema hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er. Tellere og registre

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, Public 2013 Aker Solutions Page 1 of 5

Nytt prosjekt og programlogikk

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

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

Forelesning 5. Diverse komponenter/større system

Transkript:

INF 3430/4430 Simuleringsmetodikk

Innhold Event driven simulation Simulering av VHDL-modeller Selvtestende testbenker Fil-operasjoner Eksempel på SRAM modell og simulering av lesing fra denne INF3430 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 (femto) og gir en mekanisme for et sette eventer korrekt inn i en eventkø. INF3430 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 Side 4

Eventkøer og delta-delay INF3430 Side 5

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

Attributter (1) INF3430 Side 7

Attributter (2) INF3430 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 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 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 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 Side 12

Selvtestende testbenker Xilinx ISE 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 Side 13

HDL Bencher (1) INF3430 Side 14

HDL Bencher (2) Testfil: Decoder.vhd Redigering av input INF3430 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 Side 16

Prosedyre for sjekking av utganger INF3430 Side 17

Stimuli og sjekk av utganger INF3430 Side 18

Sluttrapport INF3430 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 Side 20

Eksempel: Testing av N-bit adder INF3430 Side 21

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

Utskrift av data til consol (transcript) vindu INF3430 Side 23

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

Lesing fra SRAM-Arkitektur Input data register D 7-segment kontroller 4 7-segmenter Adresse teller ADR SRAM CE WE OE SRAM lesekontroller Klokke Trykknapp INF3430 Side 25

Lesing fra RAM, ASM og timing IDLE CS= 1 OE/RD= 1 INC_ADDR=0 PB1= 1 PB1 CS_EN_ST CE RD_EN_ST WAIT_ST INC_ADDR_ST CS= 0' CS=0 OE/RD=0 CS=0 WE OE(RD) ADR DATA DATA_REG INC_ADDR=1 INC_ADR CHECK_BUTTON PB1 = 1 INF3430 Side 26

Sjekk av noen timingparametre i SRAMmodellen nwe do_write thd_min D thd_min D'stable(tHD_min)?? D'delayed(tHD_min) D'delayed(tHD_min)'stable(tSD_min)?? tsd_min nwe'delayed(thd_min) nwe'delayed(thd_min)'stable(tpwe_min)? tpwe_min INF3430 Side 27

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