innhold: • begrensninger/muligheter å ta hensyn til ved ...€¦ · – ikke bruk latcher i fpga...
TRANSCRIPT
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
ASIC: Application Specific Integrated Circuit (kap. 3)
ASICs
INF3430 - H10 2
Structured
ASICs
Gate
Arrays
Standard
Cell
Full
Custom
Increasing complexity
ASIC: Brukerutviklet IC
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
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).
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.
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
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
Pipelining i digitale systemer
t t t
INF3430 - H10 8
t1 t2 t3
t1 t2
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.
Asynkron logikk
INF3430 - H10 10
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.
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).
Klokke enabling vs. klokke gating
INF3430 - H10 13
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).
Designalternativer (kap 18)
INF3430 - H10 15
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.
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.
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.
Skriving av generell kode med ”ren” C/C++
INF3430 - H10 19