I den komplexa världen av kiseldesign är det av största vikt att säkerställa noggrannheten och tillförlitligheten hos våra konstruktioner. I takt med att våra marker blir mer sofistikerade, blir processen med feljakt – att identifiera och rätta till fel i våra konstruktioner – ännu mer kritisk. Generativ AI har potentialen att revolutionera kiseldesignindustrin genom att förbättra våra bugg-jaktmöjligheter. Hur? Låt oss experimentera!
Experiment 4: Jaga efter insekter
För att demonstrera effektiviteten av Generativ AI i kiseldesign genomförde jag ett experiment med OpenAI:s GPT-4. Vi försåg systemet med en designspecifikation (från https://mathcircle.berkeley.edu/sites/default/files/archivedocs/2010_2011/contest/1011contestpdf/comp8.pdf) tillsammans med en implementering av designen. Målet? För att se om GenAI kunde identifiera några buggar.
Design specifikation: På ett 5 × 5 schackbräde rör sig en kung enligt följande regler: 1. Den kan flytta en ruta i taget, horisontellt, vertikalt eller diagonalt. 2. Den kan röra sig i var och en av de åtta tillåtna riktningarna högst tre gånger under hela sin rutt.
Följande är resultatet från GenAI-modellen:
1. Bug: Skriver över cur_x_pos med cur_y_pos annars börja cur_x_pos <= nxt_y_pos; cur_y_pos <= nxt_y_pos; slutet Detta avsnitt kommer att göra att kungens nuvarande x-position (cur_x_pos) alltid tar värdet av nxt_y_pos, vilket är felaktigt. Motexempel: Inmatningsscenario: Antag att kungen är i position (2,2) och move_request är försedd med riktning = 3'b010 (Upp). Designövergång: Förväntat: cur_x_pos förblir 2 och cur_y_pos blir 3. Faktiskt: Både cur_x_pos och cur_y_pos blir 3. Resultat: Förväntat resultat: Kungen flyttar till (2,3). Faktiskt resultat: Kungen flyttar till (3,3).
2. Bug: cur_moves_count[] initiering till noll if (återställ) cur_moves_count[dir] <= 3'd0; Alla riktningars rörelseräkningar initieras till noll vid återställning. Villkoret för att kontrollera maximala drag använder dock < 3'd3, vilket betyder att kungen kan röra sig 4 gånger i varje riktning innan ett fel höjs. Motexempel: Inmatningsscenario: Antag att kungen är i position (0,0) och fyra på varandra följande move_requests tillhandahålls med riktning = 3'b000 (Höger). Designövergång: Förväntat: Efter 3 drag till höger bör det 4:e draget utlösa ett fel. Faktiskt: Kungen flyttar sig fyra gånger till höger utan att utlösa ett fel. Resultat: Förväntat resultat: King flyttar till (3,0) och sedan utlöses ett fel. Faktiskt resultat: Kungen flyttar till (4,0) utan fel.
3. Bug: Brist på gränskontroll Även om koden innehåller gränskontroller för kungens rörelse på schackbrädet, tar den inte hänsyn till möjligheten att addering eller subtrahering från 3-bitarsvärdena kan resultera i roll-over-fel. Till exempel, om cur_x_pos är 3'd7 (vilket inte borde hända baserat på den nuvarande designen, men kan bero på yttre påverkan eller andra designproblem), kan subtrahering av 1 resultera i 0 snarare än en förväntad 6 på grund av bit-roll-over . Motexempel: Detta kan vara en teoretisk bugg eftersom den nuvarande designen inte tillåter att ett sådant scenario inträffar. Det är dock viktigt att överväga detta för robust design. Rekommendation: Gränskontroller kan förbättras, och ytterligare förnuftskontroller kan läggas till för att säkerställa att kungens position aldrig går utanför det giltiga intervallet.
Spännande iakttagelser
- Buggidentifiering: GenAI-modellen pekade på en specifik diskrepans mellan designspecifikationen och dess implementering med ett korrekt motexempel inklusive scenariot, övergångar och analys av faktiska kontra förväntade resultat. Detta var verkligen en äkta bugg som behövde åtgärdas.
- Falskt negativ: Som alla verktyg är Generativ AI inte ofelbar. Det lyfte fram ett problem som vid närmare inspektion visade sig inte vara en bugg. Detta tjänar som en påminnelse om att även om AI kan vara en värdefull assistent, förblir mänsklig expertis och omdöme avgörande i valideringsprocessen.
- Förbättringsproblem: Utöver bara feljakt föreslog GenAI-modellen också en förbättring - ett förslag för att förbättra designen som inte nödvändigtvis fixade en bugg utan snarare optimerar designen ytterligare. Denna oväntade fördel visar hur AI inte bara kan hjälpa till att hitta misstag utan också att föreslå innovationer.
Morgondagens landskap – GenAI-drivna HDL-kodredigerare/analysatorer!
Implikationerna av detta experiment är djupgående. Genom att integrera Generativa AI-verktyg i vårt HDL-kodutvecklingsflöde kan vi:
- Påskynda buggsökningsprocessen: Att automatisera de inledande stadierna av feldetektering kan minska antalet mantimmar som spenderas i de långa simuleringsvågformerna för felsökning.
- Minska verifieringskostnaden: Med färre buggar kvar för verifieringsverktyg/ingenjörer att hitta, kan verifieringsstängning uppnås tidigare, vilket leder till kostnadsbesparingar i det långa loppet.
Slutsatser
När halvledarindustrin fortsätter att utvecklas, kan utnyttjande av verktyg som Generativ AI ge oss ett försprång, vilket säkerställer att våra konstruktioner inte bara är felfria utan också tänjer på gränserna för vad som är möjligt. Det är bara en tidsfråga när andrapiloter och plugin-program får bred användning i branschen.
Läs också:
Generativ AI för Silicon Design – Artikel 3 (Simulera min design)
Generativ AI för Silicon Design – Artikel 2 (Debug My Waveform)
Generativ AI för Silicon Design – Artikel 1 (Code My FSM)
Dela det här inlägget via:
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://semiwiki.com/eda/338432-generative-ai-for-silicon-design-article-4-hunt-for-bugs/
- : har
- :är
- :inte
- $UPP
- 1
- 4:e
- 7
- 8
- a
- Enligt
- Konto
- noggrannhet
- uppnås
- tvärs
- faktiska
- lagt till
- tillsats
- Annat
- Antagande
- Efter
- AI
- Alla
- tillåter
- vid sidan av
- också
- Även
- alltid
- an
- analys
- och
- vilken som helst
- ÄR
- array
- Artikeln
- AS
- Assistent
- utgå ifrån
- At
- automatisera
- baserat
- BE
- blir
- blir
- innan
- börja
- fördel
- Berkeley
- mellan
- Bortom
- Bit
- båda
- gränser
- Bug
- insektsjakt
- fel
- men
- by
- KAN
- kapacitet
- Vid
- Orsak
- ta
- Kontroller
- schack
- Pommes frites
- närmare
- förslutning
- koda
- jämförelse
- komplex
- tillstånd
- genomfördes
- i följd
- Tänk
- innehåller
- fortsätter
- Pris
- kostnadsbesparingar
- kunde
- skapa
- kritisk
- avgörande
- Aktuella
- definiera
- demonstrera
- demonstrerar
- Designa
- mönster
- detaljerad
- Detektering
- Utveckling
- DID
- riktning
- riktningar
- avvikelse
- gör
- ner
- grund
- varje
- kant
- effektivitet
- annars
- änden
- förbättra
- säkerställa
- säkerställa
- Hela
- fel
- fel
- väsentlig
- Eter (ETH)
- Även
- utvecklas
- överstiger
- förväntat
- experimentera
- expertis
- extern
- färre
- hitta
- finna
- flöda
- efter
- För
- fyra
- från
- funktionella
- ytterligare
- Få
- generativ
- Generativ AI
- verklig
- Ge
- Målet
- Går
- hända
- hjälpa
- Markera
- hålla
- Hur ser din drömresa ut
- Men
- HTTPS
- humant
- jakt
- Jakt
- i
- Identifiering
- identifiera
- if
- genomförande
- implikationer
- förbättras
- förbättra
- in
- Inklusive
- indikerar
- industrin
- inledande
- innovationer
- ingång
- exempel
- Integrera
- in
- fråga
- problem
- IT
- DESS
- bara
- King
- Brist
- liggande
- ledande
- vänster
- Låt
- hävstångs
- tycka om
- BEGRÄNSA
- Lång
- Materia
- max-bredd
- maximal
- betyder
- kanske
- misstag
- modell
- modul
- mer
- mest
- flytta
- rörelse
- förflyttar
- my
- nödvändigtvis
- behövs
- negativ
- aldrig
- of
- on
- ONE
- endast
- optimera
- or
- Övriga
- vår
- ut
- Resultat
- produktion
- utanför
- Yttersta
- för
- plato
- Platon Data Intelligence
- PlatonData
- placera
- Möjligheten
- möjlig
- Inlägg
- potentiell
- drivs
- presentera
- process
- djupgående
- rätt
- föreslagen
- förutsatt
- Tryckande
- insamlat
- område
- snarare
- Läsa
- Rekommendation
- minska
- Reg
- tillförlitlighet
- förblir
- resterna
- påminnelse
- begära
- resultera
- revolutionera
- höger
- robusta
- Rutt
- regler
- Körning
- s
- Besparingar
- scenario
- §
- se
- halvledare
- serverar
- skall
- Kisel
- simulering
- sofistikerade
- kommer från
- specifik
- specifikation
- spent
- kvadrat
- stadier
- sådana
- system
- T
- Ta
- än
- den där
- Smakämnen
- sedan
- teoretiska
- detta
- tre
- tid
- gånger
- till
- verktyg
- verktyg
- övergång
- övergångar
- utlösa
- triggas
- trigg
- vände
- Oväntat
- på
- Upprätt
- us
- användningar
- giltigt
- godkännande
- Värdefulla
- värde
- Värden
- Verifiering
- Kontra
- vertikalt
- via
- vs
- var
- we
- när
- som
- medan
- bred
- kommer
- med
- utan
- världen
- X
- zephyrnet
- noll-