In 1996 publiceerde Adrian Thompson van Sussex University een opmerkelijke whitepaper over een FPGA-circuit dat is geëvolueerd om bepaalde functies uit te voeren. Met behulp van evolutionaire algoritmen werd elke generatie circuits beoordeeld op geschiktheid door deze intrinsiek te testen - dat wil zeggen, binnen de Xilinx XC6216 FPGA zelf. Als het circuit dichter bij de gewenste functie kwam, mocht het zich verspreiden. Duizenden generaties later was het circuit daar: onderscheid maken tussen ingangssignalen van 1 kHz en 10 kHz. En het deed het zonder een eigen clock en zonder het gebruik van externe componenten.
 
Circuit Shorts: Evolving Hardware

Opmerkelijk is dat sommige - voor het menselijk oog! - schijnbaar overbodige onderdelen van het circuit essentieel waren voor de correcte werking ervan. Zonder deze elementen verslechterde de conditie van het circuit; zij hebben het circuit indirect beïnvloed. Het verplaatsen van hetzelfde circuit naar een ander deel van dezelfde FPGA zou de conditie ervan kunnen verslechteren, wat verdere evolutie vereist; het verplaatsen van het circuit naar eenzelfde andere FPGA-instantie, voorspelde Thompson, zal zeer waarschijnlijk ook resulteren in een verschillende mate van degradatie. Met enkele technische toelagen kunnen deze effecten ervoor zorgen dat het circuit over verschillende apparaten en omgevingscondities heen werkt.

De whitepaper is zeer toegankelijk en zelfs inspirerend na 25 jaar. Stel je voor dat het fitness-evaluatieprogramma in de FPGA wordt geïmplementeerd en het zichzelf dan programmeert op basis van de functie die het nodig heeft, beginnend bij een kleine kern van een circuit. Het resultaat zou dus kunnen worden gemaakt om alleen op die ene FPGA te werken, en alleen op één plaats daarin. Niet-vervangbare circuits, iemand?

Mensen werken nog steeds aan evolueerbare hardware, maar voor zover ik kan nagaan, heeft het nog geen reguliere toepassing gevonden. De bevindingen van Thompson over de fysieke uniciteit van dezelfde FPGA-instanties worden echter ook gebruikt bij het creëren van Physical Unclonable Functions (PUF's), waarbij het unieke karakter van elke siliciumchip, vanwege variabiliteit in de fabricage, wordt gebruikt om chipspecifieke ID's te creëren.

Dit werk herinnert me er ook aan dat halfgeleiderbedrijven de laatste tijd hebben onthuld dat ze AI gebruiken om de fysieke plaatsing van chips te helpen bij het maken van ... AI-chips. Net als bij het circuit van Thompson, vraag ik me af hoe die bedrijven uiteindelijk zullen omgaan met de onzekerheid die inherent is aan het proces: een circuit dat een mens niet volledig kan begrijpen of opnieuw kan creëren, is moeilijk - zelfs onmogelijk - volledig te verifiëren en te karakteriseren.

Ik wed dat het herhalen van Thompson's experiment op moderne hardware een heel interessante prestatie zou zijn. We kunnen dit gemakkelijker doen nu we open-source FPGA-ontwikkeltools hebben! Wie gaat de uitdaging aan?

Meer over circuitontwerp, evoluerende hardware en meer

Geïnteresseerd in circuitontwerp, FPGA's en aanverwante onderwerpen?
 
ElektorPCB4Makers.com

Vertaling: Hans Adams