innhold: • begrensninger/muligheter å ta hensyn til ved ...€¦ · – ikke bruk latcher i fpga...

19
Design med ASIC og FPGA (Max kap.7 og 18) Begrensninger/muligheter å ta hensyn til ved FPGA design som en normalt Innhold: INF3430 - H10 1 til ved FPGA design som en normalt slipper å tenke på med ASIC design. Migrering mellom FPGA og ASIC

Upload: others

Post on 24-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

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

• Begrensninger/muligheter å ta hensyn til ved FPGA design som en normalt

Innhold:

INF3430 - H10 1

til ved FPGA design som en normalt slipper å tenke på med ASIC design.

• Migrering mellom FPGA og ASIC

Page 2: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

ASIC: Application Specific Integrated Circuit (kap. 3)

ASICs

INF3430 - H10 2

Structured

ASICs

Gate

Arrays

Standard

Cell

Full

Custom

Increasing complexity

ASIC: Brukerutviklet IC

Page 3: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Når bør en bruke FPGA (CPLD)? (kap. 3)

• Status:Status:Status:Status: Førstevalg for digital logikk design med unntak av hvis det er:

– Store krav til ytelse (dvs. høy klokkefrekvens) og vanligvis samtidig krav om lavest mulig effektforbruk

– Produkt skal produseres i meget stort antall– Veldig komplekse design (store FPGA’er er meget dyre)– Analog elektronikk skal integreres på samme krets– Design der minimalisering av effektforbruk er kritisk (mobile

applikasjoner)

INF3430 - H10 3

– Design der minimalisering av effektforbruk er kritisk (mobile applikasjoner)

– Har bedriften kompetanse til ASIC design? FPGA design er mye enklere!

• ASIC vs FPGAASIC vs FPGAASIC vs FPGAASIC vs FPGA prosjekterprosjekterprosjekterprosjekter (estimat 2003)

– 1500 – 4000 nye ASIC prosjekter hvert år– 450 000 nye FPGA prosjekter hvert år

Page 4: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Hovedfordeler med FPGA vs. ASIC (kap. 3)

• Kortere utviklingstid på grunn av enkel re-programmering. Kommer raskere på markedet med produktet.

• Kan re-programmeres både under utvikling

INF3430 - H10 4

• Kan re-programmeres både under utvikling på lab og ”i system” hos kunde.

• Nye mindre økonomisk risiko i prosjektet (produksjon av en ASIC-krets er dyrt og den kan ikke re-programmeres).

Page 5: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Forskjell i kodestil• ASIC designere skriver mer portabel kode

enn FPGA designere.– FPGA designere kan utnytte teknologi-spesifikke

lavnivå egenskaper for å oppnå mer optimalt

INF3430 - H10 5

lavnivå egenskaper for å oppnå mer optimalt design.

– For eksempel istedenfor å benytte en standard multiplekser så kan de tenkes å håndkode en egen og bruke en instans av den.

– Men syntese verktøyene er blitt meget gode etter hvert også for FPGA’er så forskjellen i kodestil er nå liten.

Page 6: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Forskjell i kodestil (oversikt)

• Samlebånd (pipelining)• Antall nivåer logikk• Asynkron logikk

INF3430 - H10 6

• Asynkron logikk • Bruk av klokker• Latcher og registre• Funksjons/minneblokker i FPGA

Page 7: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Samlebånd (pipelining)

Vask 1

Vask 2

Vask 3

Tid

17:00 19:00 21:00 01:0023:00

INF3430 - H10 7

Vask 3

Vask 3

Vask 2

Vask 1

17:00 19:00 21:00 01:0023:00Tid

Page 8: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Pipelining i digitale systemer

t t t

INF3430 - H10 8

t1 t2 t3

t1 t2

Page 9: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Antall nivåer logikk

INF3430 - H10 9

• Antall nivåer er langt mer kritisk i FPGA enn ASIC (mye lenger forplantningsforsinkelse mellom porter) når man trenger mer enn 1 LUT til logikken.

• FPGA bør bruke mer samlebåndsprosessering siden hver celle består av både en LUT og et register.

Page 10: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Asynkron logikk

INF3430 - H10 10

Page 11: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Asynkron designpraksis

• Kan (i motsetning til ASIC) ikke ha asynkrone design siden oppførsel kan endre seg for hver gang en ruter kretsen.

INF3430 - H10 11

• Tilbakekobling: For FPGA skal det alltid benyttes register i tilbakekoblingssløyfer.

• Forsinkelseskjeder av kombinatoriske porter er vanskelige å lage forutsigbare i FPGA.

Page 12: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Klokker• Begrenset antall klokkerlinjer i FPGA begrenser antall

klokkedomener. • Generelle FPGA innganger kan ofte ikke brukes til

klokkesignal. Her bør man nøye følge råd og dokumentasjon fra leverandøren!

INF3430 - H10 12

dokumentasjon fra leverandøren!• En slipper å tenke på ”justering” av klokkebaner i en

FPGA. Utleggsverktøyet (såkalt P&R) tar seg av dette så lenge alle tidskrav (timing constraints) er spesifisert.

• Klokke enabling og ikke klokke gating skal brukes på FPGA unntatt ved bruk av spesielle klokkegatings celler (for eksempel ”bufgce” klokkebuffer i Xilinx).

Page 13: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Klokke enabling vs. klokke gating

INF3430 - H10 13

Page 14: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Spesielt for FPGA implementering• Klokke genereringsmoduler (DCM/PLL) og klokke net klart til bruk.• Registre og latcher

– Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes både i FPGA og ASIC).

– Noen FPGA teknologier har mulighet både for synchron og asynchron reset og set av registere (f. eks. Xilinx), mens ASIC og enkelte FPGA leverandører kun har asynchron set og reset (f. eks. Actel). Det er begrensninger i bruk av både set og reset innganger.

• Ressursdeling– En bør velge en FPGA krets der en tar i bruk det meste av funksjonalitet (inkl.

”harde” funksjoner/kjerner) pga. såkalt ”using it or loosing it”.

INF3430 - H10 14

”harde” funksjoner/kjerner) pga. såkalt ”using it or loosing it”. – Det kan ofte være mer effektivt, gi lavere effektforbruk og enklere design å ha

adskilte funksjonsenheter (f. eks. multiplikatorer) enn å anvende ressursdeling basert på multipleksere så lenge det er nok funksjonsenheter.

• Tilstandmaskiner (FSM)– ”One-hot” realisering er ofte en arealeffektiv og timingeffektiv metode pga mange

registere finnes i FPGA, men den er allikevel ofte ikke brukt pga. mulig med flere samtidige tilstander (dvs. ikke såkalt ”safe” FSM).

• FPGA ferdig produksjonstestet ☺– ASIC’er må designes for produksjon (såkalt Design for Test; DFT).

Page 15: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Designalternativer (kap 18)

INF3430 - H10 15

Page 16: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

FPGA-til-FPGA

• Migrerer oftest et eksisterende design til en nyere FPGA teknologi (ofte ny familie hos samme eller annen

INF3430 - H10 16

familie hos samme eller annen produsent).

• Vanlig å migrere funksjonalitet fra flere kretser (inkl. FPGAer) inn i en felles FPGA.

Page 17: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

FPGA-til-ASIC• En eller flere FPGAer brukes til

prototyping av et ASIC design.• Utfordring at ASIC ikke har de samme

blokkene som FPGA:

INF3430 - H10 17

blokkene som FPGA:– Kan lage et RTL-bibliotek av funksjoner

(multiplikatorer, minneblokker,++) som finnes i FPGA (for å kunne realisere det samme i ASIC). Legger begrensninger på syntesen.

• En bør ikke lage forskjellig RTL-kode for FPGA og ASIC.

Page 18: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

ASIC-til-FPGA• Original ASIC er ute av produksjon• Utvide funksjonalitet til en ASIC uten ny stor

investering.• Moderne FPGAer har gjort det mulig å

plassere ASICer som er noen år gamle inn i

INF3430 - H10 18

plassere ASICer som er noen år gamle inn i en FPGA krets.

• Krever at en går gjennom koden og gjør nødvendige tilpasninger for FPGA (se tidligere slides).

• Altera har et tilbud om å ”ASICifisering” av sine FPGAer for lavere pris og effektforbruk.

Page 19: Innhold: • Begrensninger/muligheter å ta hensyn til ved ...€¦ · – Ikke bruk latcher i FPGA (samme gjelder egentlig for ASIC også, men i spesielle tilfeller kan det brukes

Skriving av generell kode med ”ren” C/C++

INF3430 - H10 19