Verktøy, metoder og strømmer som har vært på plass siden begynnelsen av halvlederdesign bryter sammen, men denne gangen er det ikke en stor pool av forskere som kommer opp med potensielle løsninger. Industrien er alene om å formulere disse ideene, og det vil kreve mye samarbeid mellom EDA-selskaper, fabrikker og designere, noe som ikke har vært deres sterke side tidligere.
Det er vanskelig å optimalisere noe når du ikke kan analysere det, og analyse blir mye vanskeligere fordi mange av problemene i store halvlederprodukter enten er multifysikk, eller de er en kombinasjon av maskinvare og programvare, system, kort , IC-pakke, interposer, chip og IP-blokk. Tidligere har en del-og-hersk-tilnærming vært måten problemer ble håndtert på. Noen ganger gjøres dette hierarkisk, for eksempel fullstendig verifisering av en blokk før den integreres, eller noen ganger ved å isolere et problem, for eksempel med klokke-domenekryssing.
I økende grad motstår noen problemer imidlertid denne typen tilnærminger, og industrien har ennå ikke funnet en enkel løsning. For eksempel er problemer som sikkerhet problemer på systemnivå. Det samme gjelder for mange ytelses- eller strømproblemer. Til og med problemer som strøm og signalintegritet må håndtere et hierarki som spenner fra IP til system, gjennom en kompleks sammenkobling av mange lag, som hver tradisjonelt har vært skreddersydd for et annet sett med verktøy.
Dette skaper et nytt sett med modelleringsproblemer og krever at noen eksisterende verktøy tar en mye større rolle enn de har gjort tidligere. Alternativt vil industrien måtte gjøre alvor av å legge begrensninger på design, slik at analyse er mulig. Mens denne industrien begynner å gjenkjenne problemene, takler den det på en stykkevis måte i dag. Så langt har ingen foreslått en generell løsning som vil strekke seg inn i fremtiden.
Det er et tallspill. "Hvis du tar hele systemet i betraktning, eksploderer antall hjørner," sier Shekhar Kapoor, seniordirektør for markedsføring i Synopsys. "I dag går tilnærmingene fortsatt tilbake til den hierarkiske splitt-og-hersk-måten å gjøre ting på, og også finne måter å redusere antall scenarier du må forholde deg til. Uten disse vil beregningskravene være enorme. Og for at du skal kunne melde deg på systemene, vil veien være mye, mye lengre.»
Hierarkiske tilnærminger er fortsatt nyttige for noen ting. "Prinsippet om abstraksjon brukes på steder der den grunnleggende kompleksiteten i analysen er for kompleks," sier Prakash Narain, president og administrerende direktør i Real Intent. «I simulering bruker vi det i form av bussfunksjonelle modeller og statisk tidsanalyse. Vi bruker det ved å lage I/O-nivå timing modeller, klokke-domene kryssinger, statiske sign-off teknikker for klokke-domene kryssing, tilbakestill-domene kryssing. Dette er alle steder hvor vi lykkes med å bruke hierarkiske teknikker."
Hjørnereduksjon innebærer ofte designbeslutninger. "Hvorfor ikke unngå domenekryssing," sier Synopsys' Kapoor. "Bare hold designet asynkront, der hver av delene er timet for seg selv. På den måten kan du administrere antall hjørner for den aktuelle brikken. Deretter kan du bruke hjørnereduksjonsteknikker på toppen av det. Med hierarkiske tilnærminger for tidsanalyse tar vi tid hver del separat, og deretter begge sammen med begrensningene, og gjør hjørnesammenslåingen.»
Hva menes med at stier øker overalt. "Mange mennesker ønsker å gjøre analyser av multi-die-systemer," sier Mick Posner, seniordirektør for HPC IP hos Synopsys. "Signal- og strømintegritetsløsninger brukes til å fokusere på dyse, gjennom pakke, til PCB. Nå har det blitt dø, til mellomlegger, å pakke, til PCB. Dette gjelder spesielt for høyytelsesgrensesnitt, for eksempel 112G, og minnegrensesnitt, der det er mye fokus på virkningen av den interposeren, eller rutinglaget. Vi må finne ut hvordan vi skal pakke den informasjonen med IP-en, noe som noen ganger er umulig fordi vi ikke vet hvordan den IP-en brukes. Vi kan levere en referanseflyt som viser dem hvordan de gjør den analysen.»
Problemet er at det er vanskelig å gjøre noen av de nødvendige abstraksjonene. "Astraksjonskrav er veldig spesifikke for applikasjonen," sier Real Intents Narain. "De er avhengige av teknologien, og de er forskjellige fra produkt til produkt selv for den applikasjonen. De er avhengige av teknologien som brukes av hvert produkt for å implementere funksjonaliteten. Deretter må du vurdere nivået av nøyaktighet du søker. Det vil være veldig spesifikt for en applikasjon og teknologien, og standardene kommer virkelig til å følge senere fordi det er en veldig vanskelig prosess å gjennomføre."
Posner gir et spesifikt eksempel. "For HBM3 pakket vi sammen et referansedesign. Det er en referansedesign av vår egen testbrikke. Vi utviklet en PHY, men når vi gjør en testbrikke, må vi også utvikle en interposer som kobles til HBM-stakken. Vi må gjøre alt på samme måte som en kunde måtte gjøre. Da kan de utnytte den flyten. Men det var selvfølgelig testbrikken vår. De kan gjenbruke flyten, men de faktiske dataene kommer til å være spesifikke for hvordan de legger ut interposeren.»
Modelleringsproblemet
Årsaken til disse vanskelighetene er mangelen på modeller og måtene å generere disse modellene på. Modeller er avveininger mellom troskap, nøyaktighet og ytelse. Modeller med høy nøyaktighet har en tendens til å ha god troskap, men utføres sakte, mens modeller som kjører raskere gir opp noe når det gjelder enten nøyaktighet, troskap eller begge deler. De nødvendige modellene er både funksjonelle og ikke-funksjonelle modeller.
Vi har jobbet med problemet i det funksjonelle domenet en stund, men det kreves mer arbeid. "For funksjonell verifisering gjør vi noen få modeller," sier Neil Hand, direktør for strategi for designverifiseringsteknologi hos Siemens EDA. "Vi har syklus-nøyaktig, instruksjonssett-nøyaktig, og så videre. Men du vil ha en måte å enkelt flytte mellom dem. Med hybridmodellering har du muligheten til det de kaller løpe-fort, deretter løp-nøyaktig. På farten må du kunne bytte modell. For eksempel kan noen starte operativsystemet på en mindre nøyaktig, løpsrask modell, og deretter bytte designtilstanden til en løpsnøyaktig modell. Nå er de i stand til å gå videre fra det punktet med mye mer granularitet og mye mer troskap i selve modellen. Vi må utvikle enda større evner for å bytte mellom troskapene når du trenger dem.»
I dag brukes en lignende metodikk for blokknivå og integrasjonsverifisering. "Når du kjøper en Arm-kjerne, verifiserer du ikke funksjonaliteten til Arm-kjernen," sier Simon Davidmann, grunnlegger og administrerende direktør for Imperas programvare. "Du bekrefter integreringen av det. Det er her selskaper som Breker kommer inn. Du har disse blokkene, men hvordan sjekker du at de alle snakker hyggelige til hverandre? Du gjør det ikke på samme måte som du ville verifisert en blokkering med UVM eller Verilog, som er det du bruker for verifisering på blokknivå. Hierarkiet i verifisering er å få alle blokkene dine til å fungere, teste dem individuelt, deretter samle dem og bekymre deg for integrasjonstester. Men de krever forskjellige metoder."
Problemet har alltid vært at å lage disse modellene tar tid og krefter, og hver modell må verifiseres for å sikre konsistens. "For arkitektur trenger du også ikke-funksjonelle egenskaper, for eksempel timingdetaljer," sier Tim Kogel, rektor for virtuell prototyping for Synopsys. – Dette innebærer betydelig mer innsats for å bygge modellene. Mens industrien har etablert de høyere abstraksjonsnivåene, har det ikke vært like vellykket å lage verktøy for å bygge disse ikke-funksjonelle ytelsesmodellene. For eksempel ser programvare på prosesseringselementene som mer abstrakte ressursenheter, og da kan du ha mer detaljerte modeller av interconnect- og minneundersystemet, eller nettverket mellom de forskjellige brikkene. Arteris og Arm gir disse for sammenhengende nettverk, for ulike typer sammenkoblings-IP, og også for minnekontrollerne, som er nøkkeldelene i integrasjonen."
Flere modellgenereringsverktøy kreves. "Når du analyserer et design ved å bruke bestemte mønstre, har du muligheten til å lage en abstrakt modell," sier Malik Vasirikala, direktør og produktspesialist for Ansys. «For eksempel, når jeg analyserer det indre av en brikke, vet jeg også hvordan den oppfører seg fra et grensesnittperspektiv. Jeg kan lage en modell som om jeg ser hele denne delen fra periferien, eller ved grensen av brikken til den ytre verden. Så når jeg analyserer en annen brikke koblet til den, trenger jeg ikke de interne detaljene til brikken. Jeg kobler bare den atferdsmodellen inn i denne analysen, og jeg er ferdig."
Men det er hull. "Det som mangler er en bedre integrasjon og utveksling av data mellom de fysiske verdenene og de virtuelle verdenene," sier Synopsys' Kogel. "Vi trenger en arkitektonisk modell basert på innlært plantegningsinformasjon, lærte geometrier, som når de migreres til det virtuelle prototypenivået hjelper deg med å validere ytelsen, kraften og termikken basert på den virkelige applikasjonsaktiviteten."
Når er du ferdig?
Fullføring er et av problemene i enhver analyseoppgave. Har du dekket de viktige sakene? Dekningsberegninger finnes for funksjonell verifisering på blokknivå, men dette er nok en modell som må migreres til høyere nivåer av abstraksjoner og til ikke-funksjonelle domener. "Hvis du kjører en del av verifiseringen din i RTL-området, og noen i den virtuelle prototypen, hvordan slår du sammen disse dekningselementene?" spør Siemens’ Hand. "I dag er det gjort gjennom funksjonell dekning, men det er muligheten - spesielt når du ser på stimulansgenerering, når du bruker AI på dekningssiden av ting - å begynne å utlede informasjon fra forskjellige typer dekning."
Programvareverdenen har vært veldig slapp i denne forbindelse. "Jeg tror ikke det er standard tilnærming eller metodikk for dekning," sier Imperas' Davidmann. "Men jeg vet, er det ingen automatisering folk har gjort rundt programvare som tilsvarer dekningspunkter og dekningsgrupper i HDL. Protokollsjekkere finnes for verifisering og for analyse. Og du kan bygge statistikk, hvor du kan se funksjonene, eller se tilgangene til variabler. Gitt mangel på standardisering, gir vi det nødvendige verktøyet, men brukeren må bygge det selv."
Når du først har en forestilling om dekning, blir det mulig å tenke på å optimalisere verifisering. "Enten det er bærbar stimulus i sin nåværende form, eller noe som bygger på disse forestillingene, trenger vi scenariogenerering på systemnivå," sier Hand. "Kan vi ta det og gå ett nivå høyere og gå med de virtuelle prototypene og systemmodelleringen og generere scenarier på tvers av robuste systemer? Det kommer til å bli mer og mer viktig ettersom systemene blir mer og mer integrerte.»
Andre er enige. "Du vil ha denne kontinuiteten mellom IP-nivå, SoC-nivå og senere in-silisiumverifisering," sier Kogel. "Bærbar stimulus er en tilnærming for å oppnå det. Du kan da også kjøre det som var en abstrahert testcase, som et program på en innebygd kjerne, deretter i den virtuelle prototypen. I den vid forstand er dette verifiseringen av det arkitektoniske konseptet. Senere kjører du RTL med programvare på en emulator, på en FPGA-prototype, og som kan brukes til å validere ytelsen fordi det er mer som «Det du ser er det du får.» Det er ikke en virtuell modell på høyt nivå. ”
Fig. 1: Flere nivåer av modeller og verifikasjonsmål. Kilde: Synopsys
En annen måte å nærme seg integrasjonsverifisering på er gjennom funksjonell samsvar. "Det er et forsøk i Arm kalt "systemklar" for å definere hva det vil si å være kompatibel og i stand til å starte opp et operativsystem, sier Nick Heaton, en fremtredende ingeniør og SoC-verifiseringsarkitekt ved Cadence. "Hvis implementeringen går gjennom, trenger du ikke å endre OS-utgivelsene av Red Hat, eller hva som helst. De vil bare starte på det. Dette er en kontrakt mellom programvaren og maskinvaren. Bærbar stimulus prøver å gjøre det på en mer generalisert måte, og vi kaller det VIP fordi det er et slags ut-av-boksen innhold vi leverer på, for eksempel, et sammenhengsnivå. Vi tester alle permutasjonene av sammenheng, og vi kan levere det i utgangspunktet til enhver plattform, enten det er Arm eller RISC-V eller hva som helst.»
Feilsøkingsproblemet
En ting er å kunne kjøre en modell, men det er et helt annet kompleksitetsnivå å finne og fikse et problem i en modell eller hvordan modellen brukes. "Hvis du feilsøker programvare på maskinvare eller en FPGA, får du en gdb som kobles til den, og du kan enkelttrinns en prosessors instruksjonsstrøm," sier Davidmann. "Men problemet kommer når de har 10 eller flere prosessorer, og de trenger å vite når 'dette' skriver til 'det', hvordan ser dette ut? Analyse og feilsøking må gjøres på en helhetlig måte slik at du kan se alt. Dette må involvere programvarestablene slik at du kan se på oppførselen til plattformen."
Dette er et annet sett med krav enn bare feilsøking av maskinvare. "Når vi begynner å gå til testing av maskinvare/programvareintegrering, begynner vi å se flere funksjoner for programvarefeilsøking integrert i det virtuelle prototypefeilsøkingsmiljøet," sier Hand. "Når vi begynner å gjøre det tilgjengelig for systemdesignere, er det en mulighet for oss å se på bruksmodellene, og hvilke designmiljøer vil disse teamene jobbe med? Hvordan kan vi innlemme det? Du vil at systemdesignere skal samhandle med de virtuelle prototypene på en måte som er meningsfull for dem. Det handler om å identifisere sluttbrukerne og kartlegge bruksmodellene til dem. Det er et område hvor det er mye vi kan gjøre, og det er mye vi burde gjøre.»
Verktøyene og metodene må matche behovene på hvert nivå. "Gutta som utfører integrasjonsverifisering er ikke gutta som kjenner hver av blokkene," sier Cadence's Heaton. «Tid til å feilsøke eller behandlingstid blir stadig viktigere. Antallet feilsøkingssykluser du kan kjøre på en dag er kritisk problematisk. Hvis verktøyene kan henvise deg til den første bestillingsplassen, kan det spare timer med feilsøking. Vi er på begynnelsen av denne reisen. Læringen er i gang, og måten vi bruker disse verktøyene på er noe som kommer til å bli bedre.»
AI kan hjelpe. "Til tross for at mennesker har det beste nevrale nettverket, er vår I/O fortsatt mer eller mindre seriell," sier Matt Graham, produktingeniørgruppedirektør i Cadence. «Kanskje vi kan håndtere to eller tre parallelle spor, men absolutt ikke mer enn det. Maskiner kan vurdere alle disse tingene parallelt. De kan bruke en enkel algoritme, eller et enkelt sett med AI, for å gjøre noe på tvers av den massivt parallelle, svært integrerte tingen. Men det er annerledes enn det vi er i stand til å gjøre selv. Kanskje er det ting som forrige gang vi hadde en revisjon eller hva som har endret seg, eller å identifisere hvor atferden er forskjellig, eller hva var parametrene som ble endret i en IP.»
konklusjonen
Systemkompleksitet er overveldende mange av verktøyene og metodene som er på plass i dag. Teknikker brukt tidligere, selv om de fortsatt er verdifulle, er ikke tilstrekkelige. Industrien har sett mange av disse problemene innen funksjonell verifisering, men det er bare toppen av isfjellet. Gitt hvor lite fremskritt som er gjort på det mest kjente området, er det ikke sannsynlig at fremgangen vil være rask på mange av de andre områdene - spesielt de som drives av avansert emballasje.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- I stand
- Om oss
- ABSTRACT
- Logg inn
- nøyaktighet
- nøyaktig
- Oppnå
- tvers
- aktivitet
- avansert
- AI
- algoritme
- Alle
- alltid
- analyse
- analysere
- analyserer
- og
- En annen
- Søknad
- tilnærming
- tilnærminger
- arkitektonisk
- arkitektur
- AREA
- områder
- ARM
- rundt
- Automatisering
- tilgjengelig
- tilbake
- basert
- I utgangspunktet
- fordi
- bli
- blir
- bli
- før du
- Begynnelsen
- være
- BEST
- Bedre
- mellom
- større
- Blokker
- Blocks
- borde
- Breaking
- bringe
- bred
- bygge
- Bygning
- bygger
- buss
- kjøpe
- Cadence
- ring
- som heter
- evner
- stand
- saken
- saker
- konsernsjef
- Gjerne
- sjekk
- chip
- chips
- SAMMENHENGENDE
- kombinasjon
- Kom
- kommer
- Selskaper
- komplekse
- kompleksitet
- samsvar
- kompatibel
- konsept
- tilkoblet
- forbinder
- Vurder
- begrensninger
- innhold
- kontrakt
- samarbeid
- Kjerne
- Corner
- hjørner
- kurs
- dekke
- dekning
- dekket
- skape
- skaper
- Opprette
- Gjeldende
- kunde
- sykluser
- dato
- dag
- avtale
- håndtering
- avgjørelser
- leverer
- levere
- krav
- avhengig
- utforming
- designere
- design
- detalj
- detaljert
- detaljer
- utvikle
- utviklet
- Die
- forskjellig
- vanskelig
- vanskeligheter
- Regissør
- Fornem
- gjør
- domene
- domener
- ikke
- ned
- drevet
- hver enkelt
- lett
- innsats
- enten
- elementer
- innebygd
- ingeniør
- Ingeniørarbeid
- sikre
- Miljø
- miljøer
- Tilsvarende
- spesielt
- etablert
- Selv
- alt
- eksempel
- utveksling
- henrette
- eksisterende
- utvide
- utvendig
- Mote
- FAST
- raskere
- Noen få
- fidelity
- Fiken
- Finn
- finne
- Først
- Fix
- flyten
- Flows
- Fokus
- følge
- skjema
- Forward
- Grunnleggeren
- Grunnlegger og administrerende direktør
- FPGA
- fra
- fullt
- funksjonelle
- funksjonalitet
- funksjoner
- fundamental
- framtid
- spill
- general
- genererer
- generasjonen
- få
- Gi
- gitt
- Go
- Mål
- skal
- god
- større
- Gruppe
- Gruppens
- håndtere
- maskinvare
- hatt
- hjelpe
- hierarki
- høyt nivå
- høy ytelse
- høyere
- svært
- helhetlig
- TIMER
- Hvordan
- Hvordan
- hpc
- HTTPS
- stort
- Mennesker
- Hybrid
- Ideer
- identifisering
- Påvirkning
- iverksette
- gjennomføring
- viktig
- pålegge
- umulig
- in
- innlemme
- økende
- stadig
- individuelt
- industri
- informasjon
- integrert
- integrering
- integritet
- hensikt
- samhandle
- Interface
- grensesnitt
- intern
- involvere
- IP
- utstedelse
- saker
- IT
- varer
- selv
- reise
- Kapoor
- Hold
- nøkkel
- Type
- Vet
- kunnskap
- maling
- stor
- Siste
- lag
- lag
- lært
- læring
- Nivå
- nivåer
- Leverage
- Sannsynlig
- lite
- lenger
- Se
- ser ut som
- Lot
- maskiner
- laget
- Making
- administrer
- måte
- mange
- kartlegging
- Marketing
- massivt
- Match
- max bredde
- meningsfylt
- midler
- Minne
- Flett
- sammenslåing
- metoder
- metodikk
- Metrics
- kunne
- mangler
- modell
- modellering
- modeller
- modifisere
- mer
- mest
- flytting
- flere
- nødvendig
- Trenger
- behov
- nettverk
- nettverk
- neural
- nevrale nettverket
- Ny
- Forestilling
- Antall
- tall
- ONE
- drift
- operativsystem
- Opportunity
- Optimalisere
- optimalisere
- rekkefølge
- OS
- Annen
- egen
- pakke
- emballasje
- Parallel
- parametere
- del
- Spesielt
- spesielt
- passerer
- Past
- banen
- mønstre
- Ansatte
- ytelse
- perspektiv
- fysisk
- brikke
- stykker
- Sted
- steder
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- Point
- poeng
- basseng
- mulig
- potensiell
- makt
- Prakash
- president
- Principal
- prinsipp
- Problem
- problemer
- prosess
- prosessering
- prosessorer
- Produkt
- Produkter
- program
- Progress
- egenskaper
- foreslått
- protokollen
- prototype
- prototyper
- prototyping
- gi
- gir
- ekte
- riket
- grunnen til
- gjenkjenne
- Rød
- Red Hat
- redusere
- referansedesign
- Utgivelser
- krever
- påkrevd
- Krav
- Krever
- forskere
- ressurs
- robust
- Rolle
- Kjør
- rennende
- samme
- Spar
- scenarier
- sikkerhet
- se
- søker
- Sees
- halvledere
- senior
- forstand
- serie~~POS=TRUNC
- alvorlig
- sett
- bør
- Viser
- undertegne
- Signal
- lignende
- Simon
- Enkelt
- simulering
- siden
- enkelt
- Sakte
- So
- så langt
- Software
- løsning
- Solutions
- noen
- Noen
- noe
- kilde
- spenn
- spesialist
- spesifikk
- stable
- Stabler
- Standard
- standarder
- Begynn
- Start
- Tilstand
- statistikk
- Trinn
- Still
- stimulus
- Strategi
- stream
- sterk
- vellykket
- vellykket
- slik
- tilstrekkelig
- levere
- Bytte om
- system
- Systemer
- skreddersydd
- Ta
- tar
- snakker
- Oppgave
- lag
- teknikker
- Teknologi
- vilkår
- test
- Testing
- tester
- De
- Området
- Fremtiden
- deres
- seg
- termisk
- ting
- ting
- tre
- Gjennom
- Tim
- tid
- Tidsbestemt
- timing
- typen
- til
- i dag
- sammen
- også
- verktøy
- topp
- mot
- tradisjonelt
- sant
- typer
- forstås
- underveis
- lomper
- us
- bruke
- Bruker
- Brukere
- benyttes
- utnytte
- VALIDERE
- validering
- Verdifull
- ulike
- Verifisering
- verifisert
- verifisere
- verifisere
- VIP
- virtuelle
- virtuelle verdener
- Se
- måter
- Hva
- om
- hvilken
- mens
- HVEM
- vil
- uten
- Arbeid
- trene
- arbeid
- verden
- Verdens
- ville
- skriving
- Din
- zephyrnet