Simulering, syntese og verifikasjon (Max kap. 19) Innhold: Simuleringsmetoder Hendelsesbasert Cyclebasert Plassering av design i FPGA (syntese) Verifikasjon INF3430 - H13 INF 3430
Hendelsdrevet simulering 10ps 15ps 5ps 5ps INF3430 - H13 INF 3430
Ulik stige- og falltid (LH og HL) Min, avr, max er med forå ta høyde for variasjoner med temperatur og spenning. INF3430 - H13 INF 3430
Med min:typ:max delay INF3430 - H13 Min, avr, max er med forå ta høyde for variasjoner med temperatur og spenning. INF3430 - H13 INF 3430
Inertial vs. Transport delay Her er bare inertial vist. Ved transport delay vil 4 ps. Pulsen passert igjennom. Inertial delay er default i VHDL. Transport delay skrives som: out1<=transport in1 after 4 ps; Et yndet VHDL kompetanse spørsmål!! INF3430 - H13 INF 3430
Cycel based simulator C1 C2 Dropper tidsforsinkelser og regner kun ut boolske uttrykk. Kan brukes på utvalgte deler av en krets der andre deler simuleres med hendelsesdrevet simulering. Reduserer tiden for simulering betydelig. Lite brukt. INF3430 - H13 INF 3430
HDL-syntese til FPGA INF3430 - H13 Problemet med simulatorene foran er at de hovedsaklig ser på portforsinkelsen og bruker forenklede modeller (antall laster) for ruting-forsinkelser som er dominerende på FPGA. INF3430 - H13 INF 3430
Syntese med fysisk informasjon Benytter informasjon om faktiske tidsforsinkelser i FPGAen til å beregne tidsforsinkelser og finjustere logikk i kretsen. INF3430 - H13 INF 3430
Syntese med fysisk informasjon: Retiming Balanserer ut negativ og positiv tidsslakk i designet: Flytter på logikk. Veldig mye brukt i FPGA, siden de har mange flip-floper INF3430 - H13 INF 3430
Syntese med fysisk informasjon: Kopiering Flytter vippe nærmere etterfølgende innganger slik at en oppnår positiv “slakk”. INF3430 - H13 INF 3430
Syntese med fysisk informasjon: Resyntese Det er mange måter å implementere et design på i en FPGA. Bruker resyntese for lokal optimalisering av kritiske signalveier ved restrukturering av logikk, eliminasjon av porter og forbindelser med mer. …. til timing krav endelig oppfylles INF3430 - H13 INF 3430
Timing analyse Nødvendig for å endelig bestemme klokkefrekvens/tidsforsinkelsen til et design. Statisk timing analyse: Summerer forsinkelser til porter og forbindelseslinjer. Før “Place-and-Route”: Anslag gjøres på forsinkelse i forbindelseslinjer. Etter “Place-and-Route”: Ekstrahere verdier for fysiske forbindelser for mer presis beregning. Bruker vanligvis worst-case verdier. INF3430 - H13 INF 3430
Verifikasjon av et komplekst system Skrive testbenk med bitnivå beskrivelse av inngangsverdier og tilhørende utgangsverdier. Ikke mulig ved komplekse enheter som en prosessor. Benytte register-nivå (RTL) beskrivelse av alle eksterne enheter. Blir for tidkrevende å simulere. Løsning: Verifikasjons-IP (Intellectual Property) i form av en Bus Functional Model (BFM). INF3430 - H13 INF 3430
Bus Functional Model (BFM) DUT: Device under test BFM’er representerer prosessorer, I/O-enheter mm. Ikke ved å kopiere hele funksjonaliteten, men snarere ved å emulere bussene og bruke transaksjoner (høynivå busshendelser som skriving og lesing). Den høyere BFM’en transformerer tilbake fra bitnivå til høynivå transaksjonsbeskrivelse. INF3430 - H13 INF 3430
Formell verifikasjon Ekvivalenssjekk: Et verktøy som bruker formelle (matematiske) metoder for å sammenligne to forskjellige representasjoner av et design. Modellsjekk: Utforske tilstandsrommet til et system for å teste om visse egenskaper (assertions) er sanne. INF3430 - H13 INF 3430
Formell verifikasjon Assertions: Gjør det mulig å beskrive oppførselen til et system på en formell måte som gir en utvetydig representasjon av designerens intensjon. Eks: Signal A og B skal aldri være aktive (”0”) på samme tid. Lesbare av både menneske og maskin. Et verifikasjonsverktøy gransker designet for å forsikre at uønsket oppførsel (angitt med assertions) aldri oppstår. Assertions kan legges inn VHDL-koden eller på egen fil. INF3430 - H13 INF 3430
Formell verifikasjon - terminologi Assertions/properties: Et utsagn om et attributt for et design som antas å være sant. Constraints: Avgrense inngangsvektorer til lovlige/gyldige kombinasjoner av inngangene. Event: Spesifiserer normalt ønsket oppførsel. En assertion kan inneholde en serie med events. Procedural: Assertions/properties/constraints/events som kodes i en VHDL/Verilog process. Ofte kalt ”in-context” assertions. Declarative: En assertions/properties/constraints/event som beskriver egenskaper ved ”structural” deler av et design (dvs. sammenkoblingen av modulene). Dette er egenskaper som alltid er aktive, mens procedural som finnes nede i modulen blir avhengig av om de blir utført under simuleringen. Pragma: Forkortelse for pragmatic information. Dette er kommandoer som legges ved i koden for spesielle verktøy. F.eks. “-- synopsys translate_off … < VHDL oppførselskode>… -- synopsys translate_on. INF3430 - H13 INF 3430
Formell verifikasjon - programvare Temmelig forvirrende figur synes jeg …. … SystemVerilog har sitt eget assertion språk lignende PSL, VHDL-2008 har et subset av PSL. I tillegg har man PSL språket som enten kan legges inn i VHDL/SystemVerilog/Verilog koden som kommentarer eller legges inn i egne filer ved siden av koden. OVL er et selvstendig bibliotek med checkers som kan benyttes av SystemVerilog/Verilog og VHDL og PSL’s Verilog versjon. INF3430 - H13 INF 3430
Hurtigere simulering Simulering av store systemer (system med prosessor, minne, mm) beskrevet i VHDL går veldig++ sakte. Modeller beskrevet i høynivå språk som C/C++ og Matlab (for DSP) er langt raskere å simulere. => Trend mot å ta i bruk mer høynivåbeskrivende språk i design. Vi kommer tilbake til dette i forelesningen til kapittel 12 i boka. INF3430 - H13 INF 3430