Design med ASIC og FPGA (Max kap.7 og 18) Innhold: Begrensninger/muligheter å ta hensyn til ved FPGA design som en normalt slipper å tenke på med ASIC design. Migrering mellom FPGA og ASIC INF3430 - H10 1
ASIC: Application Specific Integrated Circuit (kap. 3) ASICs Gate Arrays Structured ASICs Standard Cell Full Custom Increasing complexity ASIC: Brukerutviklet IC INF3430 - H10 2
Når bør en bruke FPGA (CPLD)? (kap. 3) 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) Har bedriften kompetanse til ASIC design? FPGA design er mye enklere! ASIC vs FPGA prosjekter (estimat 2003) 1500 4000 nye ASIC prosjekter hvert år 450 000 nye FPGA prosjekter hvert år INF3430 - H10 3
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 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). INF3430 - H10 4
Forskjell i kodestil ASIC designere skriver mer portabel kode enn FPGA designere. FPGA designere kan utnytte teknologi-spesifikke 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. INF3430 - H10 5
Forskjell i kodestil (oversikt) Samlebånd (pipelining) Antall nivåer logikk Asynkron logikk Bruk av klokker Latcher og registre Funksjons/minneblokker i FPGA INF3430 - H10 6
Samlebånd (pipelining) 17:00 19:00 21:00 23:00 01:00 Tid Vask 1 Vask 2 Vask 3 17:00 19:00 21:00 23:00 01:00 Tid Vask 1 Vask 2 Vask 3 INF3430 - H10 7
Pipelining i digitale systemer t 1 t 2 t 3 t 1 t 2 INF3430 - H10 8
Antall nivåer logikk 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. INF3430 - H10 9
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. Tilbakekobling: For FPGA skal det alltid benyttes register i tilbakekoblingssløyfer. Forsinkelseskjeder av kombinatoriske porter er vanskelige å lage forutsigbare i FPGA. INF3430 - H10 11
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! 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). INF3430 - H10 12
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. 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). INF3430 - H10 14
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 produsent). Vanlig å migrere funksjonalitet fra flere kretser (inkl. FPGAer) inn i en felles FPGA. INF3430 - H10 16
FPGA-til-ASIC En eller flere FPGAer brukes til prototyping av et ASIC design. Utfordring at ASIC ikke har de samme 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. INF3430 - H10 17
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 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. INF3430 - H10 18
Skriving av generell kode med ren C/C++ INF3430 - H10 19