FPGA teknologier INF3430 - H13
Fusable link (sikringer) INF3430 - H13 INF 3430
Antifuse Prinsipp: Fordeler Ulemper Konfigurasjon lagres i FPGA ved at det lages kortslutninger ved bruk av høy spenning. Fordeler Lav impedans når sikring er ’on’ (liten forsinkelse) Lavt strømforbruk Kompakt teknologi (tar lite plass) Ekstra pålitelig teknologi (relativt strålingsimmune) Ulemper Må programmeres i en egen programmeringsenhet Høy programmeringsspenning og -strøm Permanent programmering (kan kun programmeres en gang) Kortslutninger er det motsatte av en sikring og derfor ordet anti-fuse (anti-sikring). Imp. blir lav fordi anti-fuse brukes istedenfor transistorer til lagring. INF3430 - H13 INF 3430
Antifuse INF3430 - H13 INF 3430
Antifuse INF3430 - H13 INF 3430
SRAM basert FPGA Prinsipp: SRAM-minne inne i FPGA lagrer kretsens konfigurasjon Fordeler Kan reprogrammeres uendelig mange ganger Plass til mye logikk Kan lett endre funksjonaliteten til systemet Trenger ikke spesiell prosess Ulemper Plassoverhead (SRAM-celle med 5 transistorer) Flyktig minne (må lagre konfigurasjonen i eksternt permanent minne; flash) Relativt høyt effektforbruk Vi bruker FPGA fra Xilinx i kurset som har kretsfamilien Spartan. I siste generasjon utgår Spartan og Xilinx har heretter familiene Artix, Kintex og Virtex. I tillegg finnes Extensible Processing Platform ZYNQ familien som er et ARM prosessor system med FPGA i tillegg på en chip (se: www.xilinx.com). Tilsvarende SRAM kretsfamiliene Cyclon og Stratix finnes fra hovedkonkurrenten Altera (www.altera.com). Uendelig antall reprogrammeringer er gunstig for prototyping Endre funksjonalitet: Dynamisk rekonfig. Prosess = CMOS Permanent minne er nå ofte flash-minne. Lagring av konfig i eksternt minne gjør det også lettere for andre å få tak i og stjele et design slik at designet kan klones. Det er nå måter å kryptere konfigurasjonen på som begrenser muligheten til å gjenbruke en stjålet konfigurasjon. INF3430 - H13 INF 3430
Kompleksitet til logikk blokk i FPGA Finkornet: Blokkene kan brukes fullt ut i design, men krever store ruting-ressurser. Grovkornet: En blokk kan implementere en nærmest hvilken som helst funksjon (oppslagstabell), men en får ofte ikke utnyttet ressursene fullt ut. INF3430 - H13
Grovkornet blokk Kompleksiteten til en grovkornet blokk er økende med teknologiutviklingen. Eksempel på tradisjonell grovkornet blokk: 4 stk 4 input LUT for kombinatorikk 4 MUX’er 4 D-vipper Hurtig mentelogikk for aritmetikk (+ og -) Dette kalles nå en halvgrovkornet blokk. INF3430 - H13
Realiseringer av funksjonen y= (a AND b) OR c i halvgrovkornet blokk LUT-basert MUX-basert Få FPGA produsenter anvender MUX-løsningen i dag til å realiser logikk (men brukes til ruting). INF3430 - H13 INF 3430
Typisk LUT realiering 1 INF3430 - H13 Enablede transmisjonsporter sender inngangssignal til utgangen, ellers er utgang elektrisk frakoblet fra utgangsledningen. Boble ndikerer invertering og at porter aktiveres med en 0 påtrykt. På denne måten ledes innholdet av en SRAM celle til utgangen y. Det er nå enighet om at optimalt antall innganger for en LUT er 4. 1 INF3430 - H13 INF 3430
En LUT kan være så mye INF3430 - H13 Xilinx Virtex5 FPGA har 6-input LUT’er. INF3430 - H13 INF 3430
FPGA LUTs LUT in Shift Register Mode Normal FPGA LUT F A B C Address Data Clock F A B C 0 1 1 0 1 0 1 0 (Shift Register Length) LUT in Shift Register Mode Normal FPGA LUT A 01101010 B Address C F(A,B,C) Data Clock Let’s now look at how a typical Look-Up Table or LUT is implemented in an FPGA. All combinational logic is normally implemented in look-up tables. Each of them has four inputs (three in this example) and one output and is implemented as a 16 x 1 RAM. Left… The addressed location is output on F. On the Virtex device the LUTs can be configured as a shift register as we see on the righthand side. Then, the address lines are used for defining the length of the shift register. The content of the rightmost bit cell is now output on F. Our idea is then to have this output bit controlling some other logic inside the FPGA. By shifting, we are able to do context switching. One LUT can only control one bit – so we need quite many LUT’s to design any useful system. INF3430 - H13 INF 3430
Xilinx benevnelser Logic Cell INF3430 - H13
Tilleggsegenskaper for moderne FPGAer Klokketre og klokkestyring Hurtige mentekjeder for aritmetikk (+ og -) RAM blokker (i tillegg til LUT brukt som RAM vanligvis omtalt som distribuert RAM) Funksjonsblokker (multiplikatorer, DSP grunnfunksjoner som Mult & Accumulate, Ethernet Tri-Mode MAC, PCI-Express) Prosessorkjerner (ARM og leverandørens prosessorer) Høyhastighets serielle inn/ut moduler Dette er i tillegg til LUT’er og registere og alt sammen bør utnyttes best mulig! Ut over det å bestå av logikk består dagens moderne FPGAer av en rekke andre enheter. Mentekjeder er viktig for å få høy ytelse i addere og tellere. INF3430 - H13 INF 3430
RAM blokker (block RAM) INF3430 - H13
Funksjonsblokker FPGA’er nærmer seg ASIC’er. INF3430 - H13 INF 3430
Multipliser-og-akkumuler (MAC) Gi et eksempel med matrismultiplikasjon INF3430 - H13 INF 3430
Xilinx Virtex5 DSP48E Slice The 550 MHz DSP48E slices available in all Virtex™-5 devices accelerate algorithms and enable higher levels of DSP integration and lower power consumption than previous-generation Virtex devices. Efficiently add powerful FPGA-based DSP functionality to your system with: Support for over 40 dynamically controlled operating modes including; multiplier, multiplier-accumulator, multiplier-adder/subtractor, three input adder, barrel shifter, wide bus multiplexers, wide counters, and comparators. Efficient adder-chain architectures for implementing high-performance filters and complex math efficiently. Low power requirements: each DSP48E slice draws only 1.38 mW/100 MHz, at a toggle rate of 38%, a 40% reduction from previous-generation slices. Gi et eksempel med matrismultiplikasjon INF3430 - H13 INF 3430
Prosessorkjerner Hva er det? Hvorfor? Hvilke typer finnes? Prosessorer som inngår i selve FPGAen Hvorfor? De fleste design trenger en prosessor og en kan slippe å ha en ekstern prosessor. Hvilke typer finnes? Myke kjerner Programmerbar logikk i FPGA brukes til å realisere en prosessor på FPGA sammen med annen funksjonalitet. Harde kjerner Prosessor er implementert fysisk i FPGA ved produksjon av kretsen. I Xilinx sin ZYNQ familie er det ARM prosessorer. Mye kan sier her: Soft core bedre enn hard core (overhead, obsolescence, …) Prosessorkjerne blir ofte for svak, må ha en ekstern likevel. INF3430 - H13 INF 3430
Klokketre og klokkestyring Skal sikre at registere får klokkeflanke mest mulig samtidig (setup/hold time) Klokkestyring: En enhet genererer “datter”–klokkesignal: INF3430 - H13