← Nieuwste papers
💻 computer science

Btor2MLIR: A Format and Toolchain for Hardware Verification

Dit artikel introduceert Btor2MLIR, een nieuw hardwareverificatieformaat en een toolchain gebouwd op het MLIR-framework die gebruikmaakt van volwassen compiler-infrastructuur om snelle prototyping van verificatietools mogelijk te maken en dient als een robuust alternatief voor het dominante Btor2-formaat.

Oorspronkelijke auteurs: Joseph Tafese, Isabel Garcia-Contreras, Arie Gurfinkel

Gepubliceerd 2026-07-21
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Joseph Tafese, Isabel Garcia-Contreras, Arie Gurfinkel

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Stel je voor dat je een detective bent die een mysterie probeert op te lossen, maar de aanwijzingen zijn geschreven in een geheime code die alleen een paar specialisten kunnen lezen. In de wereld van computerwetenschappen is deze "geheime code" de taal die wordt gebruikt om te beschrijven hoe computerchips (hardware) zich zouden moeten gedragen. Ingenieurs bouwen deze chips om alles aan te drijven, van je telefoon tot de satellieten in de ruimte, maar als er zelfs maar een minuscule fout in het ontwerp zit, kan het hele systeem crashen of vreemd gaan doen. Om dit te voorkomen, gebruiken onderzoekers "formele methoden"—wiskundige hulpmiddelen die fungeren als superkrachtige spellingscontroleurs om te bewijzen dat een ontwerp perfect is voordat het ooit gebouwd wordt.

Lange tijd spraken deze spellingscontroleurs verschillende talen. Sommigen spraken "BTOR2", een formaat dat populair is in hardwarewedstrijden, terwijl anderen "LLVM-IR" spraken, een taal die wordt gebruikt door softwarecompilers om code te controleren. Het was alsof je een vertaler had die alleen Frans naar Engels kon vertalen, en een andere die Spaans naar Engels kende. Als je een Franse vertaler wilde gebruiken om een Spaans boek te controleren, kwam je er niet uit. Je moest elke keer een hele nieuwe vertaler vanaf nul opbouwen. Deze paper introduceert een nieuwe, magische vertaler genaamd BTOR2MLIR. Deze bevindt zich in het midden en fungeert als een universele brug, waardoor hardwareontwerpen met softwaretools kunnen communiceren zonder dat het wiel telkens opnieuw uitgevonden hoeft te worden.

Het Probleen: Te veel dialecten, niet genoeg bruggen

In de wereld van hardwareverificatie is het BTOR2-formaat de standaard geworden voor het beschrijven van circuits voor wedstrijden zoals de Hardware Model Checking Competition (HWMCC). Beschouw BTOR2 als een zeer specifiek, efficiënt dialect voor het beschrijven van hoe een digitale schakeling telt, getallen optelt of controleert op fouten. Tools zoals BTORMC zijn specifiek gebouwd om dit dialect te lezen en te controleren of de schakeling veilig is.

De wereld van softwareverificatie is echter enorm en krachtig. Tools zoals SEAHORN zijn experts in het controleren van softwarecode geschreven in de LLVM-IR-taal. Deze tools zijn ongelooflijk volwassen en zijn decennialang verfijnd door massale projecten zoals de LLVM-compilerinfrastructuur. Ze hebben ingebouwde functies voor het optimaliseren van code, het vinden van bugs en het draaien van simulaties.

Het probleem is dat deze twee werelden zelden met elkaar praten. Om een krachtige softwaretool te gebruiken om een hardwareontwerp te controleren, moesten onderzoekers aangepaste, eenmalige vertalers schrijven. Het was alsof je elke keer een vierkante pen in een rond gat probeerde te passen. Deze vertalers moesten vaak basisfuncties (zoals het afhandelen van getallen of lussen) opnieuw implementeren die al bestonden in de softwaretools, wat leidde tot verspilde inspanning en potentiële fouten.

De Oplossing: De Universele Adapter (BTOR2MLIR)

De auteurs van deze paper, Joseph Tafese, Isabel Garcia-Contreras en Arie Gurfinkel van de Universiteit van Waterloo, besloten een betere brug te bouwen. Ze creëerden BTOR2MLIR, een nieuw formaat en toolchain gebaseerd op MLIR (Multi-Level Intermediate Representation).

Om MLIR te begrijpen, kun je het zien als een enorme, modulaire Lego-set. In plaats van elke keer een heel nieuw kasteel vanaf nul op te bouwen wanneer je een ander type huis wilt bouwen, geeft MLIR je een basisset stenen (dialecten) die je aan elkaar kunt klikken. Je kunt een nieuwe "hardware"-steen definiëren die er precies zo uitziet en werkt als BTOR2, maar die direct in de bestaande "software" Lego-structuur past.

Zo werkt hun nieuwe tool:

  1. De Vertaler: Ze hebben een "BTOR Dialect" gebouwd binnen MLIR. Dit is een directe, verliesvrije vertaling van het BTOR2-formaat. Als je een BTOR2-bestand hebt, kan BTOR2MLIR dit direct omzetten naar dit MLIR-dialect.
  2. De Brug: Omdat MLIR ontworpen is om uitbreidbaar te zijn, hebben ze een "conversie-pass" gemaakt die hun BTOR Dialect omzet naar het standaard LLVM Dialect. Dit is de magische stap. Het neemt de hardwarebeschrijving en zet deze om in een formaat dat softwaretools zoals SEAHORN van nature begrijpen.
  3. Het Resultaat: De output is LLVM-IR, een taal die softwareverificatie-engines moeiteloos kunnen analyseren.

Het Experiment: Werkt het echt?

Het team heeft niet alleen de brug gebouwd; ze hebben er ook een vrachtwagen overheen gestuurd om te zien of hij het houdt. Ze namen een collectie real-world hardware benchmarks uit de HWMCC-competitie (specifiek de sets van 2020 en 2019) en haalden deze door hun nieuwe toolchain.

Eerst controleerden ze op correctheid. Ze namen een BTOR2-bestand, zetten het om naar hun MLIR-formaat en zetten het vervolgens weer terug naar BTOR2. Ze vergeleken het originele en het "round-tripped" bestand. Het resultaat? Ze waren identiek. De veiligheidseigenschappen (de regels waaraan de schakeling moet voldoen) bleven perfect behouden. Zelfs in lastige gevallen waar de originele tools vastliepen of het geheugen tekortkwamen, losten hun round-tripped versies de problemen soms wel op, wat suggereert dat de vertaling geen fouten introduceerde.

Vervolgens testten ze de prestaties. Ze verbonden hun tool met SEAHORN, een beroemde software model checker, en BOOLECTOR, een snelle solver. Ze vergeleken deze nieuwe "hybride" pijplijn met BTORMC, de gouden standaard tool die specifiek voor BTOR2 is gebouwd.

De resultaten waren verrassend en bemoedigend:

  • Snelheid: In veel gevallen was de hybride pijplijn (BTOR2MLIR + SEAHORN + BOOLECTOR) competitief met, en soms zelfs sneller dan, de toegewijde BTORMC-tool. Bijvoorbeeld, in de "19/mann" categorie van benchmarks loste de hybride aanpak 44 instanties op in ongeveer 3.190 seconden, terwijl BTORMC meer instanties niet kon oplossen of vastliep.
  • Flexibiliteit: De tool ging succesvol om met complexe operaties zoals deling en bit-vectors, wat bewees dat de "Lego-stenen" van MLIR het zware werk van de hardwarelogica aankunnen.
  • Beperkingen: De auteurs waren eerlijk over wat hun tool nog niet kon. Het ondersteunt momenteel bitvectors en arrays, maar behandelt nog geen "fairness" en "justice" constraints (regels over hoe een systeem zich gedraagt over een oneindige tijd). Ook al werkt het goed, het heeft de toegewijde hardwaretools in elke categorie niet volledig verslagen; het was een sterke concurrent, geen totale vervanging.

Waarom dit ertoe doet

De paper beweert niet dat het de volledige hardwareverificatie heeft opgelost. In plaats daarvan suggereert het een nieuwe manier van denken. Door gebruik te maken van de volwassen, robuuste infrastructuur van de LLVM-compiler (die tools aandrijft voor alles van videogames tot webbrowsers), kunnen hardwareonderzoekers stoppen met het wiel opnieuw uitvinden.

De auteurs laten zien dat je een hardwareontwerp kunt nemen, het kunt vertalen naar een universele taal, en vervolgens krachtige, bestaande softwaretools kunt gebruiken om het te controleren. Dit opent de deur naar snelle prototyping. Als een onderzoeker een nieuwe verificatietechniek wil proberen, hoeft hij niet een hele nieuwe engine te bouwen; hij hoeft alleen maar zijn idee in het MLIR-framework te pluggen.

In de toekomst plant het team om deze brug te verbinden met nog meer tools, zoals KLEE (een symbolic execution engine) en LIBFUZZER (een fuzzing tool), die momenteel voor software worden gebruikt maar de manier waarop we bugs in hardware vinden revolutionair kunnen veranderen. Ze zijn ook van plan om andere formaten zoals AIGER en SMT-LIB te genereren.

Uiteindelijk is BTOR2MLIR een bewijs van concept dat de muren tussen hardware- en softwareverificatie aan het afbrokkelen zijn. Het suggereert dat door een gemeenschappelijke taal te spreken, we onze digitale wereld veiliger, sneller en gemakkelijker te bouwen kunnen maken.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →