ChipAgents-transcript: Versnelling van RISC-V-ontwerp en -verificatie met AI-agents
28 mei 2025 - Presentatie bij RISC-V International
De groeiende complexiteitskloof in halfgeleiderontwerp
Mehir Arora: Kan iedereen mij horen? Werkt deze microfoon? Oké, hij werkt. Fantastisch. Mijn naam is Mehir Arora. Ik kom van ChipAgents.ai. Wij zijn een bedrijf dat zich richt op AI voor elektronische ontwerpautomatisering, oftewel EDA; we zijn in feite een van de eersten. Wij focussen ons op agentic AI voor het ontwerpen en verifiëren van hardwarechips, en ik zal tijdens deze presentatie precies uitleggen wat dat inhoudt.
Ons uiteindelijke doel komt voort uit een kernprobleem waar iedereen mee te maken heeft. Dertig jaar geleden werkte je misschien met 10.000 logische poorten, maar vandaag de dag zijn dat er minstens 10 miljard. We zien een exponentiële toename in de complexiteit van chips. We zien een exponentiële toename in de eisen. Toch is er een tekort aan hardware-engineers. Er is geen sprake van een exponentiële groei van het aantal hardware-engineers om te voldoen aan de exponentieel stijgende verwachtingen die nu aan hardwareteams worden gesteld bij het produceren van volledige SOC's. Dit zijn werkelijk enorme systemen, die voor de grootste AI-systemen van dit moment mogelijk de biljoenen logische poorten bereiken.
Ons doel is dat kleinere teams met behulp van AI-agents kunnen concurreren met teams die vijf keer zo groot zijn. Over ongeveer een jaar zal dat getal eerder richting de 25 keer de omvang gaan. We gaan zien dat teams van vijf personen het echt kunnen opnemen tegen teams van 25, of teams van 20 tot 30 tegen teams van 100 tot 150. We hebben veel verschillende use cases, die allemaal mogelijk worden gemaakt door agentic AI; dit betekent dat je een volledige taak van begin tot eind kunt delegeren aan deze systemen. Ze voeren het asynchroon voor je uit.
Gerichte use cases voor agentic AI in hardware-engineering
Iedereen wil graag horen over de use cases, dus ik zal er over een ogenblik een paar demonstreren. Ze duren niet lang. Enkele van onze belangrijkste use cases komen voort uit het feit dat dit een zeer algemeen product is met veel verschillende mogelijkheden. Een van de meest interessante dingen is dat je acties kunt uitvoeren zoals het lezen van je regressielogs. Misschien draai je veel nachtelijke regressies. Je kunt de log-outputs, je waveforms, je design under test en je testbench inlezen, en de agent kan autonoom de hoofdoorzaak van die problemen vaststellen.
Er zijn ook geweldige functies zoals het lezen van specificaties, of het nu gaat om interne documentatie of zeer uitgebreide protocollen die volwassen en openlijk toegankelijke standaarden zijn. Je kunt die specificaties nemen en vervolgens volledige verificatieplannen voor het hele ontwerp genereren. Je kunt dat verificatieplan ook inlezen en zaken als UVM-coveragemodellen, sequenties en checkers produceren. Daarnaast kun je de microarchitectuur of een SystemC-architectuur inlezen en vervolgens nieuwe SystemVerilog-modules implementeren en integreren. Wij maken al deze nieuwe workflows mogelijk.
State-of-the-art benchmarks en academische fundamenten
Iedereen is erg geïnteresseerd in de prestaties, dus ik zal daar kort op ingaan. Ons team komt oorspronkelijk uit de academische wereld. Onze oprichters zijn professoren en promovendi van UC Santa Barbara. Ik ben zelf ook alumnus van UC Santa Barbara en kom eveneens uit de onderzoekshoek. Het initiële werk werd verricht aan iets dat SWE-bench heet, een zeer bekende benchmark voor AI-agents gericht op Python-programmering. De geverifieerde versie hiervan werd samengesteld in samenwerking met Princeton en OpenAI. Onze oprichters behaalden de leidende resultaten op deze SWE-bench-benchmark, en nu zijn we overgestapt naar hardware.
De slide op het scherm toont een tabel over Verilog-Eval, een benchmark geproduceerd door Nvidia voor agents die werken aan register-transfer level, ofwel RTL-taken. Wij behaalden een paar maanden geleden de state-of-the-art resultaten op deze benchmark. Dit is nu onze taak: dit academische werk omzetten in een product. Ik ga u een korte demonstratie van ons systeem geven. Om precies te verduidelijken waar de demonstratie over gaat: we gaan een root-cause analyse uitvoeren en vervolgens bespreken we het testplan en de generatie van het UVM-coveragemodel.
Live demonstratie: Waveform root-cause analyse en AXI-testplanning
Voor de demonstratie heb ik een Advanced Encryption Standard, ofwel AES-module, een encryptiemodule. Deze is momenteel defect en we willen de hoofdoorzaak achterhalen aan de hand van de waveforms. Tegelijkertijd heb ik een AXI-protocolspecificatie die ik van ARM heb gekregen, en ik wil al dit verificatiemateriaal samenstellen. Dat ga ik nu voor u doen.
Op het scherm heb ik Visual Studio Code openstaan. ChipAgents is ons vlaggenschipproduct en we implementeren het als een command-line utility. Hoewel ik in Visual Studio Code werk, hebben we aan zowel de linker- als de rechterkant een terminal openstaan. Aangezien we maar 10 minuten hebben, ga ik deze demonstraties parallel uitvoeren.
De eerste demonstratie waar ik het over ga hebben, heeft betrekking op deze AES-encryptiemodule. Het probleem dat we hebben is deze AES-module hier, wat slechts de topmodule is. Er zijn ook nog een paar andere modules. Ik heb ook een testbench. Deze testbench is erg snel. Hij bevat alleen deze eerste testcase hier en deze tweede twee testcases. Het probleem is dat de eerste testcase slaagt, maar de tweede faalt. Het is een bijzonder vervelend probleem, maar gelukkig heb ik een waveform die overeenkomt met de trace-output van deze run.
Dit is mijn interface naar ChipAgents, die volledig is gebaseerd op natuurlijke taal. Ik zal mijn commando aan ChipAgents invoeren in volledige natuurlijke taal. Laat ik ervoor zorgen dat ik in de juiste map sta. Ik neem deze prompt en ga naar de ChipAgents AES-map. Daar gaan we. Ik open ChipAgents en voer de prompt daar in, waarbij ik de agent de informatie geef dat de eerste testcase slaagt en de tweede faalt. Ik wil dat hij de waveform gebruikt om erachter te komen wat er aan de hand is.
Laten we tegelijkertijd ook naar dit AXI-protocol kijken. Dit is een specificatie van 300 pagina's die ik van de website van ARM heb gedownload voor het volledige AXI-protocol. Wat ik wil doen, is de protocolspecificatie lezen en een markdown-testplan schrijven. Ik wil ook het UVM-coveragemodel en de UVM-sequenties schrijven, en ik wil een paar verschillende dingen over die sequenties op basis van enkele algemene vereisten. Ik druk daar ook op enter, en het hele proces wordt in gang gezet. Ik voer deze twee dingen parallel uit omdat we niet al te veel tijd hebben, en op deze manier kan ik uitgebreid vertellen wat er allemaal gebeurt.
Gedetailleerde debugging van de AES-encryptiemodule
Laat ik eerst praten over de waveforms en hun mogelijkheden. U zult zien dat de agent testbench.vcd onderzoekt. Een van de eerste vragen die we krijgen is: welke andere waveform-formaten ondersteunen jullie? We ondersteunen FSDB's en er zijn nog veel meer verschillende waveform-formaten in aantocht. Op dit moment ondersteunen we FSDB's via de Verdi waveform viewing-bibliotheken.
U kunt zien dat de agent dit waveform-bestand analyseert. Hij bekijkt een aantal verschillende signalen in de VCD-waveform en bekijkt ook een aantal verschillende bestanden, waaronder de daadwerkelijke kerncomponenten van de AES-encryptiemodule.
Terwijl dat draait, zal ik een map-probleem voor de AXI-specificatie oplossen. Ik stond in de verkeerde map voor die. Daar gaan we, dat is de AXI-specificatie. Nu zal ik hem de opdracht geven om de AXI-specificatie te lezen en een markdown-testplan, UVM-sequenties en een coveragemodel te schrijven. Ik heb mijn mappen per ongeluk verwisseld, maar dat is niet erg, want de waveform-analyse is eigenlijk al klaar. Dit resultaat is zeer, zeer interessant.
Laten we de waveform-analyse eens doornemen. Om het nog eens te herhalen: wat ChipAgents feitelijk doet, is de waveform lezen. Hij leest de verschillende bestanden die bij de AES horen en voert van daaruit een root-cause analyse uit. Dit is de waveform-analyse die eruit is gekomen. Het voornaamste probleem zit in de state machine van de AES-128 encryptiemodule. In de 'add round key'-fase, wanneer de ronde-teller gelijk is aan NR min 1, wat de laatste ronde vertegenwoordigt, stelt hij de ciphertext en de 'done'-vlag correct in, maar hij zet de status onterecht op 'sub bytes' in plaats van 'idle'. Dat is het kernprobleem.
De agent geeft me zelfs bewijs binnen de waveform. Hij geeft de exacte picoseconde-tijdstempel van belang, waarbij hij me specifiek vertelt over het 'done'-signaal en ook over de status die onjuist overgaat. Hij vertelt me ook de andere tijdstippen waar ik naar kan kijken om de ciphertext te onderzoeken. Hier in de output laat hij me zien hoe hij door 4, dan 1, dan 2, en dan weer terug naar 4 fietst, terwijl hij naar status 0 zou moeten overgaan. Hij markeert de werkelijke hoofdoorzaak in de code tussen regel 80 en 90. De bug is heel duidelijk zichtbaar. Deze regel hier moet worden gewijzigd naar 0, en hij vertelt me ook wat de impact daarvan is.
Ten slotte vat ChipAgents onze resultaten samen, en u kunt zien dat hij de volledige root-cause analyse autonoom heeft voltooid. Dit is erg opwindend voor ons. We hebben meerdere commerciële klanten die ChipAgents al op deze manier gebruiken: ze nemen de regressie-outputs van nachtelijke runs, voeren de waveform en de design under test-bestanden in ChipAgents in, en isoleren vervolgens de hoofdoorzaak.
Automatisering van AXI-testplannen en UVM-sequentiegeneratie
Maar dat is niet het enige wat ChipAgents kan, hoewel het erg indrukwekkend is. Andere dingen die ChipAgents kan, zijn onder meer het samenstellen van dit volledige testplan voor mij, waar het op de achtergrond aan heeft gewerkt. Laat ik het aanmaken van dit bestand accepteren, en dan zal ik precies uitleggen wat er aan de hand is. Waar ChipAgents mee bezig was terwijl we de rest doornamen, was het AXI-protocol. Hij las dit AXI-protocol, controleerde de inhoudsopgave, controleerde de belangrijkste AXI-kanalen en hun doeleinden, de AXI-overgangstypes en de belangrijkste aspecten. Nu heeft hij dit grootschalige AXI-testplan voor mij samengesteld. Ondertussen vroeg ik hem ook om deze daadwerkelijke UVM-sequenties te maken.
Kort samengevat ga ik het hebben over het daadwerkelijke AXI-testplan. Ik zal het hier in markdown opmaken zodat iedereen enkele van de mogelijkheden kan bekijken. U kunt zien dat hij het testplan netjes voor mij heeft opgesomd in deze markdown-tabellen. Dat was mijn verzoek; ik wilde dat het in markdown zou zijn. Het legt alle verschillende specifieke details over de AXI-interface vast. Hier is bijvoorbeeld alle informatie over de kanaal-handshakes en alle verschillende handshakes die op alle kanalen worden uitgevoerd. Hier zijn de klok en reset, de 'write request'-kanalen en de 'write data'-kanalen.
Ik kan een stukje naar beneden scrollen naar wat interessantere zaken. We hebben al deze verschillende burst-types in de AXI opgesomd, samen met verschillende geheugenattributen, verschillende beveiligings- en beschermingstypes, transactie-identifiers, request-orderings, en exclusieve en atomische toegang. Er is veel informatie die hij uit deze specificatie moest halen. Deze specificatie is 300 pagina's lang en de agent heeft dit verificatieplan voor mijn ogen samengesteld. Dit bestond voorheen niet; geen van het verificatiemateriaal bestond voorheen.
We hebben dit systeem getest op willekeurige schalen, willekeurige groottes en willekeurige aantallen documenten. Je kunt het duizenden pagina's voeren; Ethernet heeft bijvoorbeeld 3.000 pagina's. ChipAgents verwerkt dat prima en produceert testplannen voor je, of je kunt ze bevragen om informatie over die specificaties te achterhalen. Dit is ook erg nuttig wanneer je andere zeer lange documenten bevraagt, mogelijk volledige codebases. Aan de verificatiekant is een groot knelpunt bijvoorbeeld het begrijpen van de RTL. Je kunt honderden bestanden in ChipAgents voeren, en hij zal ze allemaal doorzoeken en antwoorden geven over de dataflow.
Tegelijkertijd heeft ChipAgents deze zeer lange reeks transacties voor mij samengesteld. Laat me helemaal naar boven scrollen zodat ik het pad kan vinden. Hier zijn de UVM-sequenties. We kunnen allerlei verschillende onderdelen van de UVM-testbench doen, maar ik zal alleen de daadwerkelijke sequenties laten zien. Dit is een Verilog-bestand van 800 regels dat zojuist voor u is geproduceerd, uit het niets getoverd op basis van niets meer dan de specificatie en het testplan dat erdoor is gegenereerd. Het bevat de basissequenties, de 'write'-sequenties met een aantal verschillende restricties, de 'read'-sequenties, enzovoort. Ik kan hier doorheen blijven scrollen, maar u zult zien dat al deze sequenties direct aansluiten op het daadwerkelijke testplan dat is opgesteld.
De toekomst van elektronische ontwerpautomatisering
ChipAgents is nog met veel meer bezig. Kort samengevat: wij zijn op dit moment het enige bedrijf ter wereld dat dit belangrijke probleem in elektronische ontwerpautomatisering aanpakt. Het kernprobleem in hardware is dat er exponentiële verwachtingen rusten op hardwareteams. Mensen moeten enorme hoeveelheden informatie en data kunnen verwerken, en deze vervolgens tabelleren en omzetten in enorme hoeveelheden verificatiemateriaal. Ze moeten een enorme hoeveelheid debugging en een enorme hoeveelheid ontwerpwerk verrichten.
Wij hebben dit systeem gebouwd en het helpt teams om zich vijf of tien keer zo groot te voelen. Dat is de taak die we hebben gekregen, en dit is de vooruitgang die we tot nu toe hebben kunnen boeken. We hebben al veel commerciële klanten die gebruikmaken van ChipAgents. Dit is de toekomst van EDA, en daarom zijn we enthousiast om het te bouwen. Hartelijk dank.