Het ontwerpen van FPGAs field-programmable gate array is een complexe bezigheid. Met een ontwerpomgeving waarbij op alle niveaus dezelfde taal wordt gebruikt, wil QBayLogic het ontwikkelproces versnellen en vereenvoudigen. Daarvoor is het functionele systeem Clash ontwikkeld. Jan Kuper van QBayLogic vertelt tijdens de hardware design-webinars hier meer over.
Door: Dimitri Reijerman
Kuper legt kort uit wat FPGAs, een schakeling van programmeerbare logische componenten, precies kunnen doen: FPGAs zijn processoren waarbij het rekenwerk rechtstreeks in de hardware plaatsvind. In feite kun je de digitale hardware zo organiseren dat je deze configureert voor een specifieke taak. Ze zijn een factor tien tot honderd sneller dan cpus en verbruiken veel minder energie. Het nadeel van een FPGA is, tot nu toe in ieder geval, dat het programmeren ervan niet eenvoudig is. Je programmeert ze niet in de traditionele zin, waarbij je stap voor stap alles beschrijft. Op een FPGA beschrijf je een structuur.
Hij vervolgt: Als je zon structuur wil beschrijven, moet je een FPGA - in principe - vertellen welk draadje met welke transistor wordt verbonden en hoe je als geheel alle schakelingen aan elkaar knoopt. Dat is een enorme lijst, tot wel miljarden verbindingen. Dat moet dus door een abstracte taal gebeuren die dat kan beschrijven.
In de FPGA-wereld wordt daarom gewerkt met andere talen, zegt Kuper: Traditioneel zijn dat talen als VHDL en Verilog. Maar deze talen zijn nogal flow-level waardoor het veel werk kost om alles op gang te krijgen. Ook moet je zeer gespecialiseerde mensen hebben en het is lastig om simulaties te draaien met talen als VHDL.
Iedereen is daarom op zoek naar hogere abstractietalen bovenop VHDL en Verilog. De wereld benadert het programmeren van een FPGA op de manier waarop we dat ooit geleerd hebben. Zoals C, C++, Java, noem ze maar op. Deze talen zijn echter gebaseerd op het programmeren van een normale processor.
Haskell & Clash
Een combinatie van Haskell en de voor FPGAs ontwikkelde omgeving Clash moet bedrijven daarbij helpen: Wij doen het met een andersoortige taal waarmee je rechtstreeks structuur kunt beschrijven, dus een functionele programmeertaal, legt Kuper uit. Wij werken met Haskell. Die taal kijkt abstracter naar een probleem en is geschikter voor een FPGA.. In onderzoek aan de UT is een compiler gebouwd waarmee de functionele code kan geschreven naar VHDL kan vertealen naar naar VHDL, zodat de FPGA geconfigureerd kan worden. Deze compiler is doorontwikkeld tot een totaalpakket Clash. Daaruit is ook QBayLogic ontstaan. Want deze manier is volgens ons d manier waarop je naar een FPGA moet kijken.
Tijdens zijn lezing zal Kuper de specifieke voordelen van Clash uit de doeken doen. Wilt u dit webinar kosteloos bezoeken? Registreer u nu.