C, VHDL och FPGA

FPGA är en förkortning för Field-Programmable Gate Array, som är en typ av integrerad krets som kan konfigureras om. En FPGA är en logikmatris som ändras för att få önskad funktion. För att beskriva hur kretsen skall fungera användas ett hårdvarubeskrivande språk till exempel VHDL eller Verilog.
​​​​​​​

Varför FPGA?

I en FPGA kan funktioner arbeta parallellt och på så kan fler uppgifter utföras samtidigt och högre prestanda fås. I många lösningar i industrin låtar man en FPGA eller CPLD avlasta processorn på ett kort. Uppgifter som lämpar sig för en FPGA är kommunikation mot periferikretsar för A/D-omvandling, minnen med mera.

Det finns möjlighet att implementera en FPGA-lösning med en mjuk processor (IP-block) som kan programmeras med till exempel C. På sätt kan man spara plats på kortet och funktioner kan flyttas mellan hårdvara och mjukvara för att uppnå god prestanda.


FPGA på Motion Control

På Motion Control utreder vi noga huruvida en FPGA är rätt lösning på problemet. Kretsarna är dyrare och drar generellt mer ström än processorer. Vi har arbetat med Xilinx, Alteras och Lattice kretsar och utvecklingsverktyg i ett flertal industriprojekt.

Referensprojekt

OSU800
Framtagning av VHDL-kod till Xilinx Spartan 6 LX4 för OSU-charge samt OSU-auxiliary. Gränssnitt mot A/D-omvandlare och temperaturgivare. Information och mätdata via optolänk till övervakande system. Syftet att övervaka och reglera spänningar för att upprätthålla nivåer hos två kondensatorbankar.

Tesla
Implementering av befintlig algoritmlösning skriven i LabVIEW till VHDL för att kunna användas i en Altera Cyclone III FPGA. Syftet är att utföra avancerade DSP-beräkningar med A/D-omvandlat data från 4 kanaler och generera inkrementella signaler på utgångarna.