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) Relativt høyt effektforbruk Vi bruker FPGA fra Xilinx i kurset som har kretsfamiliene Spartan og Virtex. Tilsvarende SRAM kretsfamiliene Cyclon og Stratix finnes fra konkurrenten Altera. INF343 - H
FPGA teknologier Feature SRAM Antifuse E2PROM / FLASH Technology node State-of-the-art One or more generations behind One or more generations behind Reprogrammable Yes (in system) No Yes (in-system or offline) Reprogramming speed (inc. erasing) Fast ---- 3x slower than SRAM Volatile (must be programmed on power-up) Yes No No (but can be if required) Requires external configuration file Yes No No Good for prototyping Yes (very good) No Yes (reasonable) Instant-on No Yes Yes Acceptable IP Security Very Good Very Good Size of configuration cell Power consumption (especially when using bitstream encryption) Large (six transistors) Medium Very small Low Medium-small (two transistors) Medium Rad Hard No Yes Not really INF343 - H 2
Kompleksitet til logikk blokk i FPGA Programmable interconnect 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. Programmable logic blocks INF343 - H 3
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. INF343 - H 4
Realiseringer av funksjonen y= (a AND b) OR c i halvgrovkornet blokk LUT-basert Required function Truth table MUX-basert a b c AND & OR y = (a & b) c y a b c y INF343 - H 5
Typisk LUT realiering Transmission gate (active low) Transmission gate (active high) SRAM cells y c b a INF343 - H 6
En LUT kan være så mye INF343 - H 7
FPGA LUTs Normal FPGA LUT LUT in Shift Register Mode A B C Addr ress Data Clock F(A,B,C) Dat ta Clock Address A B C (Shift Register Length) F INF343 - H 8
Xilinx benevnelser Configurable logic block (CLB) CLB CLB a b c d Slice Logic 6-bit cellsr 6x RAM Logic cell 4-input LUT Slice CLB CLB Logic cell e clock clock enable set/reset Logic cell Slice Logic cell Logic Cell Logic cell Slice mux Logic cell Logic cell flip-flop y q INF343 - H 9
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) Prosessorkjerner (ARM og PowerPC) Høyhastighets serielle inn/ut moduler; kommer nå for fullt! Dette er i tillegg til LUT er og registere og alt sammen bør utnyttes best mulig! INF343 - H
RAM blokker (block RAM) Columns of embedded RAM blocks Arrays of programmable logic blocks INF343 - H
Funksjonsblokker RAM blocks Multipliers Logic blocks INF343 - H 2
Multipliser-og-akkumuler (MAC) Multiplier Adder Accumulator A[n:] x + B[n:] Y[(2n - ):] MAC INF343 - H 3
Xilinx Virtex5 DSP48E Slice The 55 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 4 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.38 mw/ MHz, at a toggle rate of 38%, a 4% reduction from previous-generation slices. INF343 - H 4
Prosessorkjerner Hva er det? 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. INF343 - H 5
Klokketre og klokkestyring Klokketre: Skal sikre at registere får klokkeflanke mest mulig samtidig (setup/hold time) Klokkestyring: En enhet genererer datter klokkesignal: INF343 - H 6