I den komplekse verden af siliciumdesign er det altafgørende at sikre nøjagtigheden og pålideligheden af vores design. Efterhånden som vores chips bliver mere sofistikerede, bliver processen med fejljagt – at identificere og rette fejl i vores design – endnu mere kritisk. Generativ AI har potentialet til at revolutionere siliciumdesignindustrien ved at forbedre vores bug-jagtfunktioner. Hvordan? Lad os eksperimentere!
Eksperiment 4: Jagt efter insekter
For at demonstrere effektiviteten af Generativ AI i siliciumdesign, udførte jeg et eksperiment med OpenAI's GPT-4. Vi forsynede systemet med en designspecifikation (hentet fra https://mathcircle.berkeley.edu/sites/default/files/archivedocs/2010_2011/contest/1011contestpdf/comp8.pdf) sideløbende med en implementering af designet. Målet? For at se om GenAI kunne identificere nogen fejl.
Designspecifikation: På et 5 × 5 skakbræt bevæger en konge sig efter følgende regler: 1. Den kan flytte en firkant ad gangen, vandret, lodret eller diagonalt. 2. Den kan bevæge sig i hver af de otte tilladte retninger højst tre gange på hele sin rute.
Følgende er output fra GenAI-modellen:
1. Fejl: Overskrivning af cur_x_pos med cur_y_pos ellers begynde cur_x_pos <= nxt_y_pos; cur_y_pos <= nxt_y_pos; ende Denne sektion vil få kongens nuværende x-position (cur_x_pos) til altid at tage værdien af nxt_y_pos, hvilket er forkert. Modeksempel: Input Scenario: Antag, at kongen er i position (2,2), og move_request er forsynet med retning = 3'b010 (Op). Designovergang: Forventet: cur_x_pos forbliver 2 og cur_y_pos bliver 3. Faktisk: Både cur_x_pos og cur_y_pos bliver 3. Resultat: Forventet udfald: Kongen flytter til (2,3). Faktisk udfald: Kongen flytter til (3,3).
2. Fejl: cur_moves_count[] initialisering til nul if (nulstil) cur_moves_count[dir] <= 3'd0; Alle retningers træktællinger initialiseres til nul ved nulstilling. Betingelsen for at tjekke for maksimale træk bruger dog < 3'd3, hvilket betyder, at kongen kan bevæge sig 4 gange i hver retning, før en fejl bliver rejst. Modeksempel: Input Scenario: Antag, at kongen er i position (0,0) og fire på hinanden følgende move_requests er forsynet med retning = 3'b000 (Højre). Designovergang: Forventet: Efter 3 træk til højre, skulle det 4. træk udløse en fejl. Faktisk: Kongen flytter fire gange til højre uden at udløse en fejl. Resultat: Forventet udfald: Kongen flytter til (3,0), og derefter udløses fejl. Faktisk udfald: Kongen flytter til (4,0) uden fejl.
3. Fejl: Manglende grænsekontrol Selvom koden indeholder grænsekontrol for kongens bevægelse på skakbrættet, tager den ikke højde for muligheden for, at tilføjelse eller subtraktion fra 3-bit værdierne kan resultere i roll-over fejl. Hvis f.eks. cur_x_pos er 3'd7 (hvilket ikke burde ske baseret på det nuværende design, men måske på grund af eksterne påvirkninger eller andre designproblemer), kan subtrahering af 1 resultere i 0 i stedet for en forventet 6 på grund af bit-roll-over . Modeksempel: Dette kan være en teoretisk fejl, da det nuværende design ikke tillader et sådant scenario at ske. Det er dog vigtigt at overveje dette for robust design. Anbefaling: Grænsetjek kan forbedres, og yderligere fornuftstjek kan tilføjes for at sikre, at kongens position aldrig går uden for det gyldige område.
Spændende observationer
- Fejlidentifikation: GenAI-modellen udpegede en specifik uoverensstemmelse mellem designspecifikationen og dens implementering med et korrekt modeksempel, herunder scenariet, overgange og faktisk vs forventet resultatanalyse. Dette var i sandhed en ægte fejl, der skulle rettes.
- Falsk negativ: Som ethvert værktøj er Generativ AI ikke ufejlbarlig. Det fremhævede et problem, som ved nærmere eftersyn viste sig ikke at være en fejl. Dette tjener som en påmindelse om, at selvom AI kan være en værdifuld assistent, forbliver menneskelig ekspertise og dømmekraft afgørende i valideringsprocessen.
- Forbedringsproblem: Ud over bare fejljagt foreslog GenAI-modellen også en forbedring - et forslag til forbedring af designet, der ikke nødvendigvis var at rette en fejl, men snarere optimere designet yderligere. Denne uventede fordel viser, hvordan kunstig intelligens ikke kun kan hjælpe med at finde fejl, men også med at foreslå innovationer.
Morgendagens landskab – GenAI-drevne HDL-kodeeditorer/analysatorer!
Implikationerne af dette eksperiment er dybe. Ved at integrere Generative AI-værktøjer i vores HDL-kodeudviklingsflow kan vi:
- Fremskynd bug-jagtprocessen: Automatisering af de indledende stadier af fejldetektion kan reducere mandetimerne brugt på debugging af lange simuleringsbølgeformer.
- Reducer bekræftelsesomkostninger: Med færre fejl tilbage for verifikationsværktøjer/ingeniører at finde, kan verifikationslukning opnås hurtigere, hvilket fører til omkostningsbesparelser i det lange løb.
I Konklusion
Efterhånden som halvlederindustrien fortsætter med at udvikle sig, kan udnyttelse af værktøjer som Generative AI give os et forspring og sikre, at vores designs ikke kun er fejlfrie, men også flytter grænserne for, hvad der er muligt. Det er kun et spørgsmål om tid, hvornår co-piloter og plug-ins vinder bred udbredelse i branchen.
Læs også:
Generativ AI til siliciumdesign – artikel 3 (Simuler mit design)
Generativ AI til siliciumdesign – artikel 2 (Debug My Waveform)
Generativ AI til siliciumdesign – artikel 1 (kode min FSM)
Del dette opslag via:
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- PlatoHealth. Bioteknologiske og kliniske forsøgs intelligens. Adgang her.
- Kilde: https://semiwiki.com/eda/338432-generative-ai-for-silicon-design-article-4-hunt-for-bugs/
- :har
- :er
- :ikke
- $OP
- 1
- 4.
- 7
- 8
- a
- Ifølge
- Konto
- nøjagtighed
- opnået
- tværs
- faktiske
- tilføjet
- tilføje
- Yderligere
- Vedtagelse
- Efter
- AI
- Alle
- tillade
- langs med
- også
- Skønt
- altid
- an
- analyse
- ,
- enhver
- ER
- Array
- artikel
- AS
- Assistant
- antage
- At
- Automatisering
- baseret
- BE
- bliver
- bliver
- før
- begynde
- gavner det dig
- Berkeley
- mellem
- Beyond
- Bit
- både
- grænser
- Bug
- bug-jagt
- bugs
- men
- by
- CAN
- kapaciteter
- tilfælde
- Årsag
- kontrollere
- Kontrol
- skak
- Chips
- tættere
- lukning
- kode
- sammenligning
- komplekse
- betingelse
- gennemført
- træk
- Overvej
- indeholder
- fortsætter
- Koste
- omkostningsbesparelser
- kunne
- skabe
- kritisk
- afgørende
- Nuværende
- definere
- demonstrere
- demonstrerer
- Design
- designs
- detaljeret
- Detektion
- Udvikling
- DID
- retning
- retninger
- uoverensstemmelse
- gør
- ned
- grund
- hver
- Edge
- virkningsfuldhed
- andet
- ende
- styrke
- sikre
- sikring
- Hele
- fejl
- fejl
- væsentlig
- Ether (ETH)
- Endog
- udvikle sig
- overstiger
- forventet
- eksperiment
- ekspertise
- ekstern
- færre
- Finde
- finde
- flow
- efter
- Til
- fire
- fra
- funktionel
- yderligere
- Gevinst
- generative
- Generativ AI
- ægte
- Giv
- mål
- Goes
- ske
- hjælpe
- Fremhæv
- hold
- Hvordan
- Men
- HTTPS
- menneskelig
- jagt
- Jagt
- i
- Identifikation
- identificere
- if
- implementering
- implikationer
- forbedret
- forbedring
- in
- Herunder
- angiver
- industrien
- initial
- innovationer
- indgang
- instans
- Integration
- ind
- spørgsmål
- spørgsmål
- IT
- ITS
- lige
- King (Konge)
- Mangel
- landskab
- førende
- til venstre
- lad
- løftestang
- ligesom
- GRÆNSE
- Lang
- Matter
- max-bredde
- maksimal
- betyder
- måske
- fejl
- model
- modul
- mere
- mest
- bevæge sig
- bevægelse
- bevæger sig
- my
- nødvendigvis
- behov
- negativ
- aldrig
- of
- on
- ONE
- kun
- optimering
- or
- Andet
- vores
- ud
- Resultat
- output
- uden for
- Paramount
- per
- plato
- Platon Data Intelligence
- PlatoData
- position
- Muligheden
- mulig
- Indlæg
- potentiale
- strøm
- præsentere
- behandle
- dyb
- passende
- foreslog
- forudsat
- Pushing
- hævet
- rækkevidde
- hellere
- Læs
- Anbefaling
- reducere
- Reg
- pålidelighed
- forblive
- resterne
- påmindelse
- anmode
- resultere
- revolutionere
- højre
- robust
- R
- regler
- Kør
- s
- Besparelser
- scenarie
- Sektion
- se
- halvleder
- tjener
- bør
- Silicon
- simulation
- sofistikeret
- indkøbt
- specifikke
- specifikation
- brugt
- firkant
- etaper
- sådan
- systemet
- T
- Tag
- end
- at
- derefter
- teoretisk
- denne
- tre
- tid
- gange
- til
- værktøj
- værktøjer
- overgang
- overgange
- udløse
- udløst
- udløsning
- Drejede
- Uventet
- på
- Oprejst
- us
- bruger
- gyldig
- validering
- Værdifuld
- værdi
- Værdier
- Verifikation
- versus
- lodret
- via
- vs
- var
- we
- hvornår
- som
- mens
- bred
- vilje
- med
- uden
- world
- X
- zephyrnet
- nul