Datamanagement voor FPGA-projecten is meer dan een pakket downloaden van internet en installeren. De toolkeuze voor beheer is afhankelijk van een groot aantal factoren. Voor een weloverwogen keuze is een goed inzicht nodig in de problemen, de omgeving en processen. Ook een goede toekomstvisie is noodzakelijk.
Bij elektronicaontwikkeling heb je al snel te maken met management van ontwerpgegevens, zo ook bij FGPA-ontwikkeling. Er wordt immers code gegenereerd die je moet beheren. Vaak werken meerdere mensen tegelijk aan dezelfde code. Ze willen versies kunnen terughalen en de veranderingen kunnen traceren.
Tot zover niets nieuws. Er zijn vele datamanagementpakketten die dit traject ondersteunen. FPGA-ontwikkeling heeft echter zijn specifieke aandachtspunten. Resultaatfiles zijn zo de wereld in te sturen en gaan daar een eigen leven leiden. Je hebt te maken interfaces naar de printplaten, software en met een hoge projectdruk.
Ook de technologietrends geven datamanagement een steeds hogere prioriteit. De Actels, Altera‘s en Xilinxen komen voortdurend met nieuwe chips met eigen specifieke tools en devicebibliotheken. Hun FPGA‘s worden groter en sneller en projecten met deze chips worden complexer. Ook had het gisteren al klaar moeten zijn. Een groter hergebruik biedt uitkomst. Designteams groeien echter in omvang en ontwerpers zitten elkaar meer en meer in de weg. Bovendien worden teams steeds vaker multidisciplinair en zijn er meer specialismen. Dit alles schreeuwt om datamanagement, maar hoe richt je dat in?
Bij het FPGA-ontwikkelproces moeten we tal van zaken beheren. Vele mensen werken aan dezelfde designs of zelfs dezelfde bestanden. Als een tester iets heeft gevonden dat niet te reproduceren valt met de nieuwste code, dan zal het team de versie moeten terugpakken die van toepassing is op de code die de tester onder handen heeft.

Bij de selectie van datamanagementoplossingen leidt dat tot allerlei vragen. Wat wil je er precies opslaan? Hoe hebben designers er zo weinig mogelijk last van? Welke features van datamanagement zijn nodig? Welke integraties zijn er met ERP-, PDM- en PLM-omgevingen en is het pakket daarop eenvoudig aan te passen? De eindeloze lijst van datamanagementpakketten bemoeilijk een goede keuze.
Welke data moet er worden beheerd? In principe alles wat we niet weer opnieuw kunnen genereren. Een netlist of de programmeerbare file hoeven we over het algemeen dus niet op te slaan, tenzij het veel tijd kost om deze weer te genereren. Om een project goed terug te kunnen halen, is het niet voldoende om alleen de Verilog- of VHDL-code op te slaan, al is het een goed begin. Ook de toolinstellingen voor synthese, place-and-route en de simulaties moeten mee. Maar zelfs dat is niet voldoende. Immers, bibliotheken veranderen en place-and-routebibliotheken en tooling krijgen hun updates. Ook voor de ontwikkelomgeving heeft het gevolgen. Om het project als geheel terug te kunnen zetten moeten ook de oudere bibliotheken en de oudere gereedschappen kunnen worden teruggehaald.
De designer heeft daar zo min mogelijk last als de functionaliteit is geïntegreerd in zijn werkomgeving. Een workbenchtool is daarvoor ideaal. Het gereedschap moet zorgen voor bijvoorbeeld koppeling van de ontwerptools in een workflow en opslag van files in het datamanagementtool. Ook moet het broncode borgen en identificeren (zo is de broncode altijd terug te halen), bibliotheken beheren (welke bibliotheken zijn bij welke project gebruikt?) en toolversies beheren en draaien (toolversies koppelen aan specifieke projecten). Er zijn echter geen standaard oplossingen. Wel kun je na een goede pakketkeuze goede resultaten bereiken.
Er is vrijwel altijd een omgeving waarbinnen de FPGA-ontwikkeling moet passen, zoals bord- of softwareontwerp. Die bevatten koppelingen om pinning en datadefinities te synchroniseren. Ga je op deze bestaande systemen meeliften, of kies je iets dat beter past. En hoe gaat het met de support?
Dan zijn er nog de bedrijfsprocessen waarbinnen FPGA-datamanagement zich moet afspelen. Configuratie-, change en releasemanagement zijn hierbij de belangrijkste. Dit kan geïmplementeerd zijn binnen productdatamanagement- (PDM) of product lifecycle management (PLM)-systemen en processen en in ERP-systemen die de productie regelen.
Bovenstaande geeft aan dat een methodologie voor datamanagement invoeren niet van de ene op de andere dag gaat. Een big bang-strategie blokkeert en leidt meestal tot onderbrekingen en uitloop van projecten. Alleen stap voor stap kan het succesvol zijn. Daarbij moet er veel aandacht zijn voor het informeren en opleiden van mensen. Anders is de acceptatie laag en is een succesvolle invoering bijna onmogelijk.
Richard van der Werf is consultant bij Dizain-Sync (voormalig Transfer Services). Hij geeft op 7 december op de themadag Configuration, change & release management in ontwikkeling een introducerende presentatie.