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

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

Synkron logikk. Sekvensiell logikk; to typer:

INF3430. VHDL byggeblokker og testbenker

INF3430/4431. VHDL byggeblokker og testbenker

INF3340/4340. Synkrone design Tilstandsmaskiner

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

INF3340. Tilstandsmaskiner

INF3340/4431. Tilstandsmaskiner

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

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

INF3430. VHDL byggeblokker og testbenker forts.

INF 3430/4431. Simuleringsmetodikk

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

INF3430/4430. Grunnleggende VHDL

INF 3430/4430. Simuleringsmetodikk

Dataveier og optimalisering. Kapittel 9

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

Programmerbar logikk. CPLD og FPGA. Fys3270(4270)

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

INF2270. Sekvensiell Logikk

INF 3430/4430. Simuleringsmetodikk

Tilstandsmaskiner (FSM) Kapittel 5

INF3430/4431. VHDL byggeblokker og testbenker forts.

IN1020. Sekvensiell Logikk

Løsningsforslag INF1400 H04

Repetisjon digital-teknikk. teknikk,, INF2270

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

Simulering, syntese og verifikasjon (Max kap. 19)

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

INF3430/4431. VHDL byggeblokker og testbenker forts.

INF1400. Tilstandsmaskin

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

UNIVERSITETET I OSLO

INF1400. Tilstandsmaskin

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

Kombinatorisk og synkron logikk. Kapittel 4

INF1400. Sekvensiell logikk del 1

Forelesning 7. Tilstandsmaskin

INF1400. Sekvensiell logikk del 1

UNIVERSITETET I OSLO

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

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

Forelesning 6. Sekvensiell logikk

UNIVERSITETET I OSLO

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

Løsningsforslag til eksamen i INF2270

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:

Entities and architectures. Kapittel 3

TELE2010A Digital Systemkonstruksjon

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

Store design. Kapittel 6

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

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

F4 IN HDL. Yngve Hafting,

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

Kapittel 5 Tilstandsmaskin

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

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

Det matematisk-naturvitenskapelige fakultet. INF4431 Digital systemkonstruksjon

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 4. Binær adder m.m.

INF3430/4431. Kretsteknologier Max. kap. 3

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430/4431. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

Oppsummering av digitalteknikkdelen

Notater: INF2270. Veronika Heimsbakk 10. juni 2014

INF2270. Datamaskin Arkitektur

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

Intel Core i7. Omid Mirmotahari 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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Oppsummering digital-teknikk, teknikk, INF2270

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

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

INF3430/4430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF1400 Kap4rest Kombinatorisk Logikk

IN1020. Datamaskinarkitektur

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

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

Intel Core i7. Omid Mirmotahari 4

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

VLSI (Very-Large-Scale-Integrated- Circuits) it Mer enn porter på samme. LSI (Large-Scale-Integrated-Circuits)

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

INF3430/INF4431 Høsten Laboppgave 3 ASM Flytskjema Bruk av moduler i et system og design av tilstandsmaskin

INF Test og design for testbarhet

TFE4101 Krets- og Digitalteknikk Høst 2016

Løsningsforslag i digitalteknikkoppgaver INF2270 uke 5 (29/1-4/2 2006)

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

- - I Aile trykte og skrevne. samt kalkulator

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

Repetisjon. Sentrale temaer i kurset som er relevante for eksamen (Eksamen kan inneholde stoff som ikke er nevnt her)

LØSNINGSFORSLAG 2006

4/2 enkel pipelining in 147, våren 1997 pipelining 1. Pipelining. når tema læreboka. 11/3 problemer

MAX MIN RESET. 7 Data Inn Data Ut. Load

Transkript:

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

Agenda RTL syntese Constraints Pipelining Syntese for FPGA Behavorial syntese INF3430/4430 Side 2

RTL/ Behavorial syntese RTL (Register Transfer Level) syntese Lager netliste (eller Boolske ligninger) av en VHDL-beskrivelse bestående av registre, tilstandsmaskiner og kombinatorisk logikk Alle klokker og registre i designet er synlige. Behavorial (Oppførsels) syntese Tar utgangspunkt algoritmer/arkitektur Trenger ikke spesifisere klokker og registre. Ikke mye benyttet til nå, men er på vei inn. Benytter høy-nivå språk som f.eks. System C. INF3430/4430 Side 3

RTL syntese I RTL syntese må man vite ganske mange detaljer om kretsen før man kan lage beskrivelsen: Innganger og utganger må være kjent Alle registre må være kjent Alle klokker må være kjent Antall tilstander i en tilstandsmaskin er kjent RTL synteseverktøy kan ikke utføre minimalisering av antall tilstander Vi kan påvirke resultat av syntesen ved constraints F.eks. velge tilstandskodingen til en tilstandsmaskin Videre har vi minimumskrav F.eks. minimum klokkefrekvens INF3430/4430 Side 4

RTL syntese-syntetiserbar kode IEEE 1076.6-1999 definerer et subsett av VHDL som er syntiserbart Konstruksjoner gjennomgått tidligere er syntetiserbare (ikke testbenker) Ikke-syntetiserbar VHDL omfatter konstruksjoner som har med absolutt tid og FIL I/O: Konstruksjoner med after nøkkelord Bruk av delay er kun ment for simuleringsmodeller Kan ikke syntetisere en modell for å oppnå eksakt timing. Konstruksjoner med timing blir oftest ignorert av syntese verktøy wait for konstruksjoner er heller ikke syntetiserbare Fil I/O blir blankt avvist av synteseverktøy og gir feilmelding Initialverdier blir ignorert Bruk asynkron reset/preset Viktig at arraydimensjoner er kjent før man skal syntetisere. Dette kan være tilfelle dersom man benytter generic Generic parametre som benyttes til å definere størrelser på toppnivå må ha default verdier. Ikke tilordne samme signal i flere prosesser. Unntak: tristate-buffere INF3430/4430 Side 5

RTL syntese-uønsket minne Dersom man skal lage kombinatorisk logikk pass på: Ta med else i if then else setninger Få med when others i case-setninger Og/eller bruk default -verdier INF3430/4430 Side 6

RTL syntese-uønsket minne Prosessen p0 syntetiserer til en transparent latch fordi vi mangler else i if-setningen Prosessen p1 syntetiseres til en rent kombinatorisk krets (multiplekser mellom A og 0 ) INF3430/4430 Side 7

RTL syntese-uønsket minne P2 syntetiserer til en latch fordi vi mangler when others eller default verdier i prosessen p2 og p3 er helt ekvivalente og syntetiserer til kombinatorisk logikk INF3430/4430 Side 8

RTL syntese-uønsket hazard Tilbakekoblinger kan gi opphav til såkalt hazards (glitch) pga. forskjellige tidsforsinkelser, og er dårlige måter å lage latcher på INF3430/4430 Side 9

Flip-flop er Benytt funksjonene rising_edge eller falling_edge når man vil lage flanketriggede flip-flop er. Viktig å ikke ha med else på samme nivå som flankesjekking. Skal ikke å ha alle input med på sensitivitetslisten. Bare klokke og eventuell asynkron reset. INF3430/4430 Side 10

Flip-flop er. Bruk av variabler INF3430/4430 Side 11

RTL syntese-oppsummering INF3430/4430 Side 12

Constraint Man kan påvirke syntese/place & route resultatet ved å benytte såkalte constraints Typer constraints Optimaliseringsmål Hastighet kontra Areal Timing Klokkefrekvens Clock to output delay Input setup time I dag er geometrien i kretsene så fin at resistans og kapasitans (τ=rc) i ledninger er mer og mer den dominerende kilden til tidsforsinkelser Viktig at synteseverktøy tar fysiske forhold med i betraktningen Tradisjonelt er det Place & Route verktøyene som benytter timing constraints. INF3430/4430 Side 13

Register-register delay(1) clk Register-register delay INF3430/4430 Side 14

Register-register delay(2) clk Register-register delay rising edge to falling edge INF3430/4430 Side 15

Register-register delay(3) clk1 clk2 Register-register delay clk1 rising to clk2 rising INF3430/4430 Side 16

Clock to output delay d clk q out buffer (forskjellig slew-rate opsjoner) clk in q out Clock to output INF3430/4430 Side 17

Input to clock delay inp clk d q buffer (kontrollerbart Input delay??) clk inp d q Input to clock INF3430/4430 Side 18

Constraints i Xilinx ISE (1) INF3430/4430 Side 19

Constraints i Xilinx ISE (2) INF3430/4430 Side 20

Constraints i Xilinx ISE (3) INF3430/4430 Side 21

RTL syntese og teknologi Viktige spørsmål å stille seg i forbindelse med RTL syntese og valg av teknologi Hvordan håndterer kretsen reset? Hvordan er klokker distribuert og hva slags klokkeressurser finnes? Har kretsen tri-state buffere internt/eksternt? Tri-state buffere vs. Multipleksere. Tri-state buffere er som oftest langsommere Hva slags registerbehov har designet? Hva slags krav har vi til throughput/latency? Svarene på disse spørsmålene påvirker RTL-koden vår!!! INF3430/4430 Side 22

Bruk av metakommentarer I Xilinx FPGA teknologi resettes alle flip-flop er asynkront ved power-on uten eksplisitt reset signal. Bruk av eksplisitt asynkron reset gjør kretsen langsommere Hvordan skal vi beskrive flip-flopene i VHDL uten å inkludere reset signalet. Man benytter metakommentarer for å styre syntesen. En metakommentar er en skrevet som en vanlig kommentar. VHDL simulatoren vil ignorere denne, mens et synteseverktøy kan tillegge en metakommentar en spesifikk mening. Kan sammenlignes med pre-prosessor direktiv i programmeringsspråket C for å gjøre betinget kompilering av kode. Syntesestandarden IEEE 1076.6-1999 definerer to metakommenater --rtl_synthesis off / --rtl_synthesis on for å styre hva som skal syntetiseres I Xilinx ISE benytter man metakommentarene --translate off /--translate on for å styre hva som skal syntetiseres INF3430/4430 Side 23

Metakommentarer (2) Ønske: Vi ønsker å lage en flip-flop som vi kan resette asynkront til 0 ved styre reset signalet aktivt under RTLsimulering Vi ønsker å syntetisere denne til en flip-flop uten asynkron reset på inngangen Løsning Setter inn det man ikke ønsker å ha med i syntesen mellom metakommentarene: --translate off <kode som ikke skal syntetiseres> --translate on INF3430/4430 Side 24

Metakommentarer (3) INF3430/4430 Side 25

Metakommentarer (4) Kan også benyttes til å legge inn ikke-syntetiserbare konstruksjoner som bare er interessante for simulering F.eks. kan det være nyttig å lage rapporter i RTL-koden som kun er interessant for simulering INF3430/4430 Side 26

Multipleksere/tristate I enkelte FPGA-familier finnes det interne tri-state buffere. Disse kan benyttes som alternativ til multipleksere (finnes f.eks i familiene Virtex/Virtex-E). Bruk av tri-state buffere på denne måten vil være svært teknologispesifikk. F.eks. vil ikke dette være mulig å implementere denne type beskrivelse i en Actel FPGA fordi disse har ikke interne tri-state buffere. Forskjellig Fan-out en av grunnene til teknologispesifikke forskjeller INF3430/4430 Side 27

Fanout og kapasitiv last(1) clk clk R L C Rin d clk R L C Rin INF3430/4430 Side 28

Fanout og kapasitiv last(2) Utgang koblet til mange innganger Begrensning i hvor mange innganger som kan drives pga. at hver inngang belaster med Rin. I CMOS er Rin høy og vi får dermed høy fanput Forsinkelse øker først og fremst pga. økende kapasitiv belastning Viktig å kontrollere plassering og fanout Kontroller av fanout Syntese constraint-max fanout Synteseverktøy dupliserer registre for å minske fanout Synteseverktøy setter inn buffere for å minske fanout INF3430/4430 Side 29

Fanout (3) En fanout på 16 betyr at en utgang kan drive 16 innganger uten degradering av signalet Eksemplet til høyre vil ikke gå pga. at Enable må drive for mange innganger Løsning: Splitte opp Enable i to grupper Synteseverktøyet bør sette inn slike ekstra buffere automatisk. INF3430/4430 Side 30

Throughput vs. Latency I FPGA er det vanlig med pipelining for å oppnå høy klokkefrekvens (høy throughput ). Dette er en konsekvens av smale logiske byggeklosser. F.eks. 4-5 input LUT (Look Up Table) Pipelining vil si at man deler opp en logisk operasjon i mindre deler, og skiller disse med registre Dette medfører større forsinkelse fra inngang til utgang (økende latency ). I syntese av RTL kode må vi holde rede på alle pipeline registrene. INF3430/4430 Side 31

Behavorial syntese I Behavorial VHDL beskrives hardware som skal syntetiseres i form av algoritmer. Trenger ikke benytte VHDL eller andre HDL, men kan f.eks. benytte subsett av et vanlig programmeringsspråk som f.eks. C. System C er et subsett av C og som har økende utbredelse. Generelt så er man alltid tvunget mellom å lage kompromiss mellom hastighet og areal Et behavorial syntese verktøy kan forenkle denne prosessen ved at det er enklere å eksperimentere med forskjellige løsninger uten at man trenger å endre kode. INF3430/4430 Side 32

Eksempel: Første ordens IIR-filter (Infinite Impulse Respons) Benytter de forenklede ligningene: Benytter single assignment form INF3430/4430 Side 33

Dataavhengighet INF3430/4430 Side 34

ASAP (As Soon As Possible) schedule INF3430/4430 Side 35

ALAP (As Late As Possible) schedule INF3430/4430 Side 36

Resource constrained schedule INF3430/4430 Side 37

Tilordning av operasjoner til ressurser INF3430/4430 Side 38

Schedule med registre synlig Samme registre Samme registre Samme registre INF3430/4430 Side 39

Hardware implementasjon INF3430/4430 Side 40

ASM flytskjema INF3430/4430 Side 41