Kun je een ASIC reverse engineeren?

Eerder dit jaar publiceerden we een puzzel waarbij je een volledig neuraal netwerk kreeg en moest uitzoeken wat het deed. De respons was geweldig, dus we hebben er nog een gemaakt! Deze keer gaan we veel dieper de tech-stack in.

Voor deze puzzel hebben we een chip ontworpen, maar we geven je alleen de layout.

Een spoedcursus over hoe chips worden gemaakt

Moderne chips beginnen hun leven als code. Een hardware-ontwerper beschrijft een circuit in een hardwarebeschrijvingstaal zoals Verilog, die vervolgens wordt gesynthetiseerd tot een netlist van logische poorten: NAND's, NOR's, XOR's en flipflops. Vervolgens plaatsen en routeren electronic design automation (EDA) tools deze poorten: ze bepalen een fysieke locatie voor elke poort op de die en tekenen de metalen draden die ze verbinden over vele gestapelde routeringslagen die met via's zijn verbonden.

Het eindresultaat is een GDS-bestand: een geometrische beschrijving van elke polygoon op elke laag van de chip, van de transistors die de eigenlijke logica uitvoeren tot al het metaal daarop. Dat is het bestand dat een foundry zoals Intel of TSMC gebruikt om de fysieke siliciumchip te fabriceren.

Het GDS-bestand is, in zeer reële zin, de chip. Alles wat het circuit doet, staat erin. Het lastige is: niets is gelabeld!

De puzzel

We hebben een ASIC ontworpen en we geven je het uiteindelijke masker: alle metaal-, routerings- en actieve transistorlagen, samen met enkele voorbeeldinputs en -outputs.

Je taak is om deze te reverse engineeren. Herstel eerst een netlist uit de layout. Zoek vervolgens uit wat het werkelijke doel van het circuit is. Daarna volgt de puzzel binnen de puzzel: zodra je begrijpt wat de chip doet, gebruik je die kennis om de output te achterhalen waar de chip naar zoekt en vind je de stringwaarde die het uiteindelijke antwoord vormt.

Tips om te beginnen

  • De fysieke indeling van het circuit is zo ingericht dat het hints geeft over de functionaliteit, dus kijk goed naar de layout!
  • Er is één sectie in het ontwerp die wordt gebruikt om de output te genereren, maar die geen invloed heeft op de [success] output. Je kunt deze veilig negeren tijdens de eerste stappen van het reverse-engineeren.
  • Je zult een manier moeten bedenken om het onderliggende circuit te simuleren om je oplossing te testen en de uiteindelijke output te verkrijgen!
  • Je weet dat je de juiste oplossing hebt wanneer het [success] output-signaal hoog wordt. Vergeet niet om [rst_n] te schakelen vóór elke inputpoging.
  • We hebben een paar leuke Easter eggs verstopt in het circuit en in de repository (ook in delen die je niet nodig hebt om de hoofdpuzzel op te lossen); kijk of je ze kunt spotten als je klaar bent.

Inzendingen en regels

Zodra je het hebt uitgevonden, kun je je antwoord insturen samen met een korte beschrijving van hoe je het hebt gedaan. De inzendingen sluiten op 4 september 2026.

Je mag samenwerken met vrienden aan de puzzel, maar we vragen je vriendelijk om geen spoilers (of een volledige uitwerking) online te plaatsen totdat de inzendingen zijn gesloten. Als je je oplossing na de deadline publiceert (op een persoonlijke blog of repository), stuur ons dan een e-mail; mogelijk voegen we de link toe aan ons vervolgbericht!

Voer de puzzelbestanden niet rechtstreeks in een AI-tool in en gebruik AI niet voor het schrijven van je uitwerkingen. Je mag AI wel gebruiken voor het schrijven van scripts of code die je nodig hebt om de puzzel op te lossen. Het is ook toegestaan om AI te gebruiken bij de warm-up puzzel (zie hieronder).

Als je tijdens het proces vragen hebt, kun je contact opnemen via asic-puzzle@janestreet.com. We kunnen geen hints geven, maar we helpen je graag met andere zaken.

We zullen de interessantste uitwerkingen en technieken presenteren in een vervolgbericht en swag versturen naar onze favoriete oplossingen.

Een warming-up

Als je nog nooit een GDS-bestand hebt geopend, maak je geen zorgen: de meeste mensen hebben dat niet gedaan. Om je op weg te helpen, bieden we een klein uitgewerkt voorbeeld aan: een eenvoudige binaire adder, inclusief de Verilog-broncode, de netlist op poortniveau en het resulterende GDS-bestand. Je kunt dit gebruiken om bekend te raken met hoe een circuit wordt geprojecteerd op een layout en om eventuele tools die je bouwt te testen voordat je ze op de echte puzzel toepast.

De warm-up bestanden zijn beschikbaar in de puzzle repository. Alles wat je nodig hebt is gratis en open source: het ontwerp maakt gebruik van een open-source PDK, en tools zoals KLayout of Magic VLSI kunnen het GDS-bestand openen zodat je door de lagen kunt bladeren.

Er komt een grotere uitdaging aan

Beschouw deze puzzel als een warming-up op zich. Later dit jaar lanceren we een competitie waarbij we je niet uitdagen om onze chip te reverse engineeren, maar om je eigen chip te ontwerpen. De interessantste inzendingen zullen daadwerkelijk worden gefabriceerd, zodat je je chip in het echt kunt testen.

Blijf op de hoogte—we zullen de details in de komende maanden hier op de blog aankondigen.

Hardware bij Jane Street

Het hardwareteam bij Jane Street ontwerpt FPGA's en ASIC's die enkele van de snelste handelssystemen ter wereld aansturen. Het dagelijkse werk zit vol met puzzels zoals deze: staren naar een zee van poorten, timingrapporten of waveforms en langzaam uitpluizen wat er echt aan de hand is. Deze problemen zijn op een manier lastig die zeer bevredigend is om op te lossen, en eerlijk gezegd is dat een groot deel van de reden waarom we hier graag werken.

Als dit interessant klinkt, zijn er verschillende manieren om meer te leren:

  • Bekijk onze hardware-stages (FPGA en ASIC) en fulltime functies.
  • Lees over Hardcaml (onze open-source OCaml hardware-ontwerpbibliotheken).
  • Aan de academische kant kun je lezen over onze programma's voor gastonderzoekers en graduate fellowships.

***

Over de auteurs:

  • Ben is een hardware-ontwikkelaar bij Jane Street. Hij komt oorspronkelijk uit Nieuw-Zeeland, heeft een PhD in EE van de Universiteit van Tokio en is geïnteresseerd in buitenactiviteiten, sci-fi, cryptografie en vrijwel alles wat met technologie te maken heeft.
  • Anish trad in 2024 in dienst bij Jane Street als FPGA-engineer na zijn afstuderen aan Carnegie Mellon. Hij geniet er vooral van om softwaretools te bouwen die hardware-ontwerp efficiënter maken.