FPGA-utveckling

FPGA står för Field-Programmable Gate Array, vilket betyder att det är programmerbara integrerade kretsar där funktionen hos kretsen kan uppdateras genom att programmera om FPGA:n.

I utbildningen går vi igenom de moment som uppträder i ett typiskt FPGA-projekt, från systemdesign och val av FPGA-leverantör och kretsfamilj, via hårdvaruaspekter för integration av FPGA-kretsen i det aktuella systemet fram till implementation och verifiering av den faktiska FPGA-designen.

Exemplen i kursen är från ett faktiskt projekt där vi går igenom typiska programstrukturer och "best practice". Exemplen är skrivna i VHDL, men kursen avser inte att lära ut ett specifikt programspråk, så en viss förståelse för VHDL, eller liknande HDL-språk är önskvärd.

Målgrupp
Hårdvaruutvecklare som har erfarenhet av digital kretsdesign och som vill fördjupa sina kunskaper om FPGA eller systemintegratörer som vill ha en ökad förståelse för FPGA:er och FPGA-utveckling.

Mål
Efter genomgången utbildning har du en förståelse för de frågeställningar som kan uppstå i ett FPGA-projekt och du har förutsättningar att lösa de problem och uppgifter som ingår. Du har lärt dig:

  • Grundläggande strukturer i de på marknaden förekommande FPGA-kretsarna.
  • En översikt över de större leverantörernas kretsutbud med olika aspekter som pris, prestanda, specialfunktioner etc. för att möjliggöra ett realistiskt val av FPGA för den aktuella uppgiften.
  • Hårdvaruaspekter som pinout, matningsspänningar, signalintegritet, effektbehov etc.
  • Migrationsmöjligheter mellan olika kretsstorlekar inom samma familj.
  • Klockstrukturer.
  • Prestanda och tekniker för ”timing closure”.
  • Implementering.
  • Verifiering, simulering, regressionstest, target test.
  • Debugteknik och felsökning.
  • ”Best practice” vid konstruktion av specifika komponenter
  • Olika sätt att maximera effektiviteten, kodkvalitet och återanvändbarhet.
Bakgrundskunskaper

Deltagarna bör ha erfarenhet av att utveckla digital hårdvara och ha en översiktlig förståelse för något hårdvarubeskrivande språk som Verilog eller VHDL.

Språk
Utbildningsmaterialet är skrivet på engelska. Utbildningen kan genomföras antingen på svenska eller engelska.

Kurslängd
Kursen genomförs under tre dagar.

Innehåll
I utbildningen går vi igenom:

  • FPGA concept refresher
  • VHDL basic refresher
  • Configuration techniques
    • OTP/FLASH/SRAM based configuration methods
    • Program storage
    • Configuration time aspects
  • Hard FPGA macros
    • Useful hardware structures in addition to LUT/FF fabric of the FPGA such as Clock distribution and regeneration
    • PLLs/DLLs
    • BlockRAM
    • DSP modules
    • Gigabit tranceivers
  • Soft FPGA macros
    • Configurable building blocks (FIFO, RAM, ROM, Arithmetics etc.) through tools like Xilinx Core Generator or Altera MegaWizard
    • 3:rd party Intellectual Property (IP) modules
  • Code Entry
    • Various code entry aspects
    • Graphical design entry contra text editors
    • VHDL/Verilog templates etc
  • Test benches for verification in simulation
    • Self checking testbenches
    • Modelling of surrounding modules
  • Constraint files
    • Pin locking and IO standards
    • Timing constraints
  • Implementation
    • Logic synthesis
    • Place & Route
    • Configuration file generation
  • Timing closure
    • Predictable routing results
    • Pipeline of complex functions
    • Geometric pipelining
    • Guide files
    • Floorplanning
  • Target test
    • Verify the design on actual hardware
    • Test structures
  • Debugging
    • Using test muxes with external logic analyzers contra built in analyzers such as ChipScope/SignalTap etc.


Mer information
För mer information kontakta Åsa Detterfelt, 070-659 58 12, alternativt maila asa.detterfelt@mindroad.se.

"Du får både kunskapen och systemet med dig hem."

Utvecklingsplattform MicroBoard AES-S6MB-LX9-G ingår i kursen.