IP-cores med kildekoder

man jun 14, 2010 (Rolf)

by Flickr/propellaFPGA udvikling er en udfordring for mange virksomheder. Vi kan se flere virksomheder, som har FPGA som en central komponent i deres systemer. Så central at FPGA-udviklerne bliver flaskehalsen.

Tidligere var det software, som ofte var flaskehalsen. Det er det stadig, men FPGA udvikling er stødt til. Jeg tror det, som sker er, at FPGA bruges til at løse ganske komplekse funktioner i dag, mens systematikken ikke er fulgt med.

Der er et efterslæb på systematik og proces i forhold til den udviklede kompleksitet. Software har historisk været flaskehals i så mange projekter, at der for længst er investeret i systematik, proces og metoder. Det niveau er FPGA udvikling bare ikke nået til endnu i mange af de mindre (nogen kalder sig mellemstore) danske virksomheder.

Og så er det typiske danske FPGA team ikke ret stort – så der sidder nogle få nøglepersoner som blæksprutter og bliver flået i fra alle kanter: troubleshooting, hardware, software… Der er hele tiden alt for mange ting, som skal gøres. Det giver en dejlig følelse af at være værdifuld, når man har gang i en masse ting – men effektivt er det ikke.

IP-cores med kildekode

Leverandørerne af FPGA teknologi pumper markedsføring ud, som begejstret fortæller, hvor simpelt det er at designe med FPGA. Den ene og anden komplekse funktion kan “bare” downloades som ip-core og integeres i systemet. Man skal næsten intet lave selv! Og hvor er det skønt.

Hvis vi lige træder et skridt tilbage og ser hvordan tiden i de danske udviklingsafdelinger bliver brugt:

  • 50% Vedligehold, support, toubleshooting på ting som burde køre problemfrit i produktionen nu
  • 25% Task-skift, møder og administration
  • 25% Udvikling af nyt

Så er det jo rimelig klart at det ved al nyudvikling gælder om at få optimeret to parametre:

  1. God robust kvalitet af designet
  2. Let at vedligeholde

For FPGA udvikling gælder for begge parametre, at adgang til klidekoden for hele systemet er rigtig vigtigt. Uden kildekode er det ekstremt svært at gennemføre detaljeret review af kodens kvalitet – hvilket er en oplagt metode til at opnå 1). Uden kildekode er troubleshooting også vanskeliggjort i betydelig grad, hvilket direkte påvirker 2).

Jeg vil derfor anbefale, at kildekode købes med til alle ip-cores, uanset hvor “proven” den core er. Det er også en af grundene til at supportere koncepter som open-cores, hvor ip cores deles med det formål at hæve kvaliteten til alles bedste.

Hvad mener du? Kan jeres produkter realistisk set baseres på open-cores, ip-cores som købes med kildekode og egen udvikling?

Hvad mener du?