Instrumentele, metodologiile și fluxurile care au fost în vigoare încă de la începuturile designului semiconductorilor se defectează, dar de data aceasta nu există un număr mare de cercetători care să vină cu potențiale soluții. Industria este pe cont propriu pentru a formula acele idei, iar asta va necesita multă cooperare între companiile, fabricile și designerii EDA, ceea ce nu a fost punctul lor forte în trecut.
Este dificil să optimizați ceva când nu îl puteți analiza, iar analiza devine mult mai dificilă, deoarece multe dintre problemele din produsele semiconductoare mari sunt fie multi-fizice, fie sunt o combinație de hardware și software, sistem, placă. , pachet IC, interpozitor, cip și bloc IP. În trecut, o abordare împărțiți și cuceriți a fost modul în care problemele au fost tratate. Uneori, acest lucru se face ierarhic, cum ar fi verificarea completă a unui bloc înainte de a fi integrat sau, uneori, prin izolarea unei probleme, cum ar fi încrucișarea domeniului ceas.
Totuși, din ce în ce mai mult, unele probleme rezistă acestor tipuri de abordări, iar industria încă nu a găsit o soluție ușoară. De exemplu, probleme precum securitatea sunt probleme la nivel de sistem. Același lucru este valabil pentru multe probleme de performanță sau de putere. Chiar și probleme precum puterea și integritatea semnalului trebuie să se ocupe de o ierarhie care se întinde de la IP la sistem, printr-o interconectare complexă de mai multe straturi, fiecare dintre acestea fiind în mod tradițional adaptat unui set diferit de instrumente.
Acest lucru creează un nou set de probleme de modelare și necesită ca unele instrumente existente să-și asume un rol mult mai mare decât au avut în trecut. Alternativ, industria va trebui să devină serioasă în ceea ce privește impunerea constrângerilor asupra proiectelor, astfel încât analiza să fie posibilă. În timp ce această industrie începe să recunoască problemele, astăzi le abordează fragmentar. Până acum, nimeni nu a propus o soluție generală care să se extindă în viitor.
Este un joc de numere. „Dacă luați în considerare întregul sistem, numărul de colțuri explodează”, spune Shekhar Kapoor, director senior de marketing la Synopsys. „Astăzi, abordările încă se întorc la modul ierarhic de a face lucrurile și, de asemenea, se găsesc modalități de a reduce numărul de scenarii cu care trebuie să faci față. Fără acestea, cerințele de calcul vor fi uriașe. Și pentru a putea să vă deconectați de la sisteme, calea va fi mult, mult mai lungă.”
Abordările ierarhice sunt încă utile pentru unele lucruri. „Principiul abstracției este utilizat în locuri în care complexitatea fundamentală a analizei este prea complexă”, spune Prakash Narain, președinte și CEO al Real Intent. „În simulare, îl folosim în termeni de modele funcționale de magistrală și analiză de sincronizare statică. Îl folosim prin crearea de modele de sincronizare la nivel I/O, traversări domeniului ceas, tehnici de semnare statică pentru trecerea domeniului ceasului, trecerea domeniului de resetare. Toate acestea sunt locuri în care utilizăm cu succes tehnici ierarhice.”
Reducerea colțurilor implică adesea decizii de proiectare. „De ce să nu evitați trecerile de domenii”, spune Kapoor de la Synopsys. „Păstrează doar designul asincron, unde fiecare dintre piese este cronometrată singură. În acest fel, puteți gestiona numărul de colțuri pentru piesa respectivă. Apoi, puteți folosi tehnici de reducere a colțurilor pe deasupra. Cu abordări ierarhice pentru analiza cronometrarii, cronometrul fiecare parte separat, apoi pe ambele împreună cu constrângerile și facem îmbinarea colțurilor.”
Ce se înțelege prin poteci crescând peste tot. „Mulți oameni doresc să analizeze sistemele multi-die”, spune Mick Posner, director senior al HPC IP la Synopsys. „Soluțiile de integritate a semnalului și a puterii se concentrau pe matriță, prin pachet, către PCB. Acum, a devenit die, a interposer, a pachet, a PCB. Acest lucru este valabil mai ales pentru interfețele de înaltă performanță, cum ar fi 112G, și interfețele de memorie, unde se pune mult accent pe impactul acelui interpozitor sau al stratului de rutare. Trebuie să găsim cum să împachetăm acele informații cu IP-ul, ceea ce uneori este imposibil pentru că nu știm cum este utilizat acel IP. Putem furniza un flux de referință care să le arate cum fac acea analiză.”
Problema este că este dificil să faci unele dintre abstracțiile necesare. „Cerințele de abstracție sunt foarte specifice aplicației”, spune Narain de la Real Intent. „Depind de tehnologie și sunt diferite de la produs la produs chiar și pentru acea aplicație. Acestea depind de tehnologia care este utilizată de fiecare produs pentru implementarea funcționalității. Apoi trebuie să luați în considerare nivelul de precizie pe care îl căutați. Va fi foarte specific unei aplicații și tehnologiei, iar standardele vor urma cu adevărat mai târziu, deoarece acesta este un proces foarte dificil de realizat.”
Posner oferă un exemplu specific. „Pentru HBM3, am împachetat un design de referință. Este un design de referință al propriului nostru cip de testare. Am dezvoltat un PHY, dar când facem un cip de testare, trebuie să dezvoltăm și un interpozitor care se conectează la stiva HBM. Trebuie să facem totul într-un mod similar cu ceea ce ar trebui să facă un client. Atunci ei pot folosi acel flux. Dar, desigur, acesta a fost cipul nostru de testare. Ei pot reutiliza fluxul, dar datele reale vor fi specifice modului în care ei prezintă acel intermediar.”
Problema modelării
Motivul acestor dificultăți este lipsa modelelor și a mijloacelor de generare a acelor modele. Modelele sunt compromisuri între fidelitate, precizie și performanță. Modelele de înaltă precizie tind să aibă o fidelitate bună, dar se execută lent, în timp ce modelele care se execută mai repede renunță la ceva în ceea ce privește precizia, fidelitatea sau ambele. Modelele necesare sunt atât modele funcționale, cât și modele nefuncționale.
Ne confruntăm de ceva vreme cu problema în domeniul funcțional, dar este nevoie de mai multă muncă. „Pentru verificarea funcțională facem câteva modele”, spune Neil Hand, director de strategie pentru tehnologia de verificare a designului la Siemens EDA. „Avem exacte în cicluri, precise în set de instrucțiuni și așa mai departe. Dar vrei să ai o modalitate de a te deplasa cu ușurință între ele. Cu modelarea hibridă, aveți capacitatea a ceea ce ei numesc alergare rapidă, apoi rulare precisă. Din mers, trebuie să poți schimba modelul. De exemplu, cineva ar putea porni sistemul de operare pe un model mai puțin precis, care rulează rapid, apoi poate comuta starea de proiectare într-un model cu precizie. Acum sunt capabili să meargă înainte din acel punct cu mult mai multă granularitate și mult mai multă fidelitate în modelul în sine. Trebuie să dezvoltăm capabilități și mai mari de a comuta între fidelități atunci când aveți nevoie de ele.”
Astăzi, o metodologie similară este utilizată pentru verificarea la nivel de bloc și integrarea. „Când cumpărați un miez Arm, nu verificați funcționalitatea miezului Arm”, spune Simon Davidmann, fondator și CEO pentru Software Imperas. „Verificați integrarea acesteia. Aici intervin companii precum Breker. Aveți aceste blocuri, dar cum verificați dacă toate vorbesc frumos între ele? Nu faceți asta în același mod în care ați verifica un bloc cu UVM sau Verilog, care este ceea ce utilizați pentru verificarea la nivel de bloc. Ierarhia în verificare este să vă puneți toate blocurile în funcțiune, să le testați individual, apoi să le aduceți împreună și să vă faceți griji cu privire la testele de integrare. Dar necesită metodologii diferite.”
Problema a fost întotdeauna că crearea acestor modele necesită timp și efort și fiecare model trebuie verificat pentru a asigura coerența. „Pentru arhitectură aveți nevoie și de proprietăți nefuncționale, cum ar fi detaliile de sincronizare”, spune Tim Kogel, inginer principal pentru prototipuri virtuale pentru Synopsys. „Acest lucru implică un efort considerabil mai mare pentru a construi modelele. În timp ce industria a stabilit nivelurile mai înalte de abstractizare, nu a avut un succes la fel de a crea instrumente pentru construirea acestor modele de performanță nefuncționale. De exemplu, software-ul vede elementele de procesare ca unități de resurse mai abstracte și atunci este posibil să aveți modele mai detaliate ale subsistemului de interconectare și memorie sau rețeaua dintre diferitele cipuri. Arteris și Arm oferă acestea pentru rețele coerente, pentru diferite tipuri de interconectare IP și, de asemenea, pentru controlere de memorie, care sunt elementele cheie ale integrării.”
Sunt necesare mai multe instrumente de generare a modelelor. „Când analizați un design folosind anumite modele, aveți capacitatea de a crea un model abstract”, spune Malik Vasirikala, director și specialist de produs pentru Răspunsuri. „De exemplu, când analizez interiorul unui cip, știu și cum se comportă din perspectiva interfeței. Pot crea un model ca și cum aș vedea toată această parte de la periferie sau la limita cipului către lumea exterioară. Apoi, când analizez un alt cip conectat la el, nu am nevoie de detaliile interne ale cipului. Am conectat modelul comportamental la această analiză și am terminat.”
Dar există lacune. „Piesa care lipsește este o mai bună integrare și schimb de date între lumile fizice și lumile virtuale”, spune Kogel de la Synopsys. „Avem nevoie de un model arhitectural bazat pe informații despre planul de etaj învățat, geometrii învățate, care, atunci când este migrat la nivelul prototipului virtual, vă ajută să validați performanța, puterea și termica pe baza activității reale a aplicației.”
Când ai terminat?
Finalizarea este una dintre problemele în orice sarcină de analiză. Ați acoperit cazurile importante? Măsuri de acoperire există pentru verificarea funcțională la nivel de bloc, dar acesta este încă un model care trebuie migrat la niveluri superioare de abstracție și în domenii nefuncționale. „Dacă desfășurați o parte a verificării în domeniul RTL și unele în prototipul virtual, cum îmbinați aceste elemente de acoperire împreună?” întreabă Mâna lui Siemens. „Astăzi, acest lucru se realizează prin acoperire funcțională, dar există oportunitatea – mai ales când te uiți la generarea de stimuli, când folosești AI în ceea ce privește acoperirea lucrurilor – de a începe să deduci informații din diferite tipuri de acoperire.”
Lumea software-ului a fost foarte laxă în acest sens. „Nu cred că există o abordare sau o metodologie standard pentru acoperire”, spune Davidmann de la Imperas. „Din cunoștințele mele, nu există nicio automatizare pe care oamenii au făcut-o în jurul software-ului care să fie echivalent cu punctele de acoperire și grupurile de acoperire în HDL. Verificatorii de protocol există pentru verificare și analiză. Și puteți construi statistici, unde puteți urmări funcțiile sau urmăriți accesul la variabile. Având în vedere lipsa de standardizare, oferim instrumentele necesare, dar utilizatorul ar trebui să le construiască singur.”
Odată ce aveți o noțiune de acoperire, atunci devine posibil să vă gândiți la optimizarea verificării. „Fie că este vorba de un stimul portabil în forma sa actuală sau de ceva care se bazează pe aceste noțiuni, avem nevoie de generarea de scenarii la nivel de sistem”, spune Hand. „Putem să luăm asta și să mergem cu un nivel mai sus și să mergem cu prototipurile virtuale și modelarea sistemului și să facem generarea de scenarii în sisteme robuste? Va deveni din ce în ce mai important pe măsură ce sistemele devin din ce în ce mai integrate.”
Alții sunt de acord. „Vrei să ai această continuitate între nivelul IP, nivelul SoC și apoi verificarea ulterioară în silicon”, spune Kogel. „Stimulul portabil este o abordare pentru a realiza acest lucru. De asemenea, puteți rula ceea ce a fost un caz de testare abstract, cum ar fi un program pe un nucleu încorporat, apoi în prototipul virtual. În acest sens larg, aceasta este verificarea conceptului arhitectural. Mai târziu, rulați RTL cu software pe un emulator, pe un prototip FPGA și care poate fi folosit pentru validarea performanței, deoarece este mai degrabă ca „Ceea ce vedeți este ceea ce obțineți”. Nu este un model virtual de nivel înalt.”
Fig. 1: Niveluri multiple de modele și obiective de verificare. Sursa: Synopsys
O altă modalitate de abordare a verificării integrării este prin conformitatea funcțională. „Există o încercare în Arm numită „sistem pregătit” de a defini ce înseamnă a fi conform și capabil să pornească un sistem de operare”, spune Nick Heaton, inginer distins și arhitect de verificare a SoC la Cadenţă. „Dacă implementarea dvs. trece, nu va trebui să modificați versiunile OS ale Red Hat sau orice altceva. Vor porni doar pe asta. Acesta este un contract între software și hardware. Stimulul portabil încearcă să facă asta într-un mod mai generalizat, iar noi îl numim VIP pentru că este un fel de conținut ieșit din cutie pe care îl oferim, să zicem, la un nivel de coerență. Testăm toate permutările de coerență și le putem livra practic oricărei platforme, fie că este vorba de Arm sau RISC-V sau orice altceva.”
Problema de depanare
Un lucru este să poți rula un model, dar este un alt nivel de complexitate să găsești și să remediezi o problemă într-un model sau în modul în care modelul este utilizat. „Dacă depanați software-ul pe hardware sau pe un FPGA, obțineți un gdb care se conectează la acesta și puteți face un singur pas în fluxul de instrucțiuni al procesorului”, spune Davidmann. „Dar problema vine atunci când au 10 sau mai multe procesoare și trebuie să știe când „acesta” scrie „acesta”, cum arată asta? Analiza și depanarea trebuie făcute într-o manieră holistică, astfel încât să puteți vedea totul. Acest lucru trebuie să implice stivele de software, astfel încât să puteți privi comportamentul platformei.”
Acesta este un set diferit de cerințe decât doar depanarea hardware-ului. „Pe măsură ce începem să trecem la testarea integrării hardware/software, începem să vedem mai multe capabilități de depanare software integrate în mediul virtual de depanare a prototipului”, spune Hand. „Pe măsură ce îl punem la dispoziție pentru proiectanții de sisteme, avem ocazia să ne uităm la modelele de utilizare și care sunt mediile de design în care doresc să lucreze acele echipe? Cum putem incorpora asta? Vrei ca proiectanții de sistem să interacționeze cu prototipurile virtuale într-un mod care să fie semnificativ pentru ei. Totul este despre identificarea utilizatorilor finali și maparea modelelor de utilizare pentru aceștia. Este un domeniu în care putem face multe și ar trebui să facem multe.”
Instrumentele și metodologiile trebuie să corespundă nevoilor fiecărui nivel. „Băieții care fac verificarea integrării nu sunt cei care cunosc fiecare dintre blocuri”, spune Heaton de la Cadence. „Timpul de depanare sau timpul de răspuns devine din ce în ce mai important. Numărul de cicluri de depanare pe care le puteți rula într-o zi este extrem de problematic. Dacă instrumentele vă pot indica primul loc de comandă, vă pot economisi ore de depanare. Suntem la începutul acestei călătorii. Învățarea este în curs de desfășurare, iar modul în care folosim aceste instrumente este ceva care se va îmbunătăți.”
AI poate ajuta. „În ciuda faptului că oamenii au cea mai bună rețea neuronală, I/O-ul nostru este încă mai mult sau mai puțin în serie”, spune Matt Graham, director de grup de inginerie de produs la Cadence. „Poate că ne descurcăm două sau trei piste paralele, dar cu siguranță nu mai mult de atât. Mașinile pot lua în considerare toate aceste lucruri în paralel. Ei ar putea folosi un algoritm simplu, sau un set simplu de AI, pentru a face ceva peste acel lucru masiv paralel, extrem de integrat. Dar asta este diferit de ceea ce suntem capabili să facem noi înșine. Poate că sunt lucruri precum ultima dată când am avut o revizuire sau ceea ce s-a schimbat, sau identificarea unde diferă comportamentul sau care au fost parametrii care au fost modificați într-un IP.”
Concluzie
Complexitatea sistemului copleșește multe dintre instrumentele și metodologiile existente astăzi. Tehnicile folosite în trecut, deși încă sunt valoroase, nu sunt suficiente. Industria a văzut multe dintre aceste probleme în zona verificării funcționale, dar acesta este doar vârful aisbergului. Având în vedere cât de puține progrese s-au făcut în domeniul cel mai bine înțeles, progresul nu este probabil să fie rapid în multe dintre celelalte domenii, în special în cele determinate de ambalaje avansate.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- Capabil
- Despre Noi
- REZUMAT
- Cont
- precizie
- precis
- Obține
- peste
- activitate
- avansat
- AI
- Algoritmul
- TOATE
- mereu
- analiză
- analiza
- analiza
- și
- O alta
- aplicație
- abordare
- abordari
- arhitectural
- arhitectură
- ZONĂ
- domenii
- ARM
- în jurul
- Automatizare
- disponibil
- înapoi
- bazat
- Pe scurt
- deoarece
- deveni
- devine
- devenire
- înainte
- Început
- fiind
- CEL MAI BUN
- Mai bine
- între
- mai mare
- Bloca
- Blocuri
- bord
- Breaking
- aduce
- larg
- construi
- Clădire
- construiește
- luați autobuzul
- cumpăra
- Cadenţă
- apel
- denumit
- capacități
- capabil
- caz
- cazuri
- CEO
- cu siguranță
- verifica
- cip
- Chips
- COERENT
- combinaţie
- cum
- venire
- Companii
- complex
- complexitate
- conformitate
- conforme
- concept
- legat
- Connects
- Lua în considerare
- constrângeri
- conţinut
- contract
- cooperare
- Nucleu
- Colț
- colțuri
- înscrie-te la cursul
- acoperi
- acoperire
- acoperit
- crea
- creează
- Crearea
- Curent
- client
- cicluri
- de date
- zi
- afacere
- abuzive
- Deciziile
- livra
- livrarea
- cererile
- Dependent/ă
- Amenajări
- Designerii
- modele
- detaliu
- detaliat
- detalii
- dezvolta
- dezvoltat
- .
- diferit
- dificil
- dificultăți
- Director
- Distins
- face
- domeniu
- domenii
- Dont
- jos
- condus
- fiecare
- cu ușurință
- efort
- oricare
- element
- încorporat
- inginer
- Inginerie
- asigura
- Mediu inconjurator
- medii
- Echivalent
- mai ales
- stabilit
- Chiar
- tot
- exemplu
- schimb
- a executa
- existent
- extinde
- extern
- Modă
- FAST
- mai repede
- puțini
- fidelitate
- Smochin
- Găsi
- descoperire
- First
- Repara
- debit
- fluxurilor
- Concentra
- urma
- formă
- Înainte
- fondator
- Fondator și CEO
- fpga
- din
- complet
- funcțional
- funcționalitate
- funcții
- fundamental
- viitor
- joc
- General
- generator
- generaţie
- obține
- Da
- dat
- Go
- Goluri
- merge
- bine
- mai mare
- grup
- Grupului
- manipula
- Piese metalice
- pălărie
- ajutor
- ierarhie
- la nivel înalt
- performanta ridicata
- superior
- extrem de
- holistică
- ORE
- Cum
- Cum Pentru a
- hpc
- HTTPS
- mare
- Oamenii
- Hibrid
- idei
- identificarea
- Impactul
- punerea în aplicare a
- implementarea
- important
- impozant
- imposibil
- in
- incorpora
- crescând
- tot mai mult
- Individual
- industrie
- informații
- integrate
- integrare
- integritate
- scop
- interacţiona
- interfaţă
- interfeţe
- intern
- implica
- IP
- problema
- probleme de
- IT
- articole
- în sine
- călătorie
- Kapoor
- A pastra
- Cheie
- Copil
- Cunoaște
- cunoştinţe
- lipsă
- mare
- Nume
- strat
- straturi
- învățat
- învăţare
- Nivel
- nivelurile de
- Pârghie
- Probabil
- mic
- mai lung
- Uite
- arată ca
- Lot
- Masini
- făcut
- Efectuarea
- administra
- manieră
- multe
- cartografiere
- Marketing
- masiv
- Meci
- max-width
- semnificativ
- mijloace
- Memorie
- Îmbina
- care fuzionează
- metodologii
- Metodologie
- Metrici
- ar putea
- dispărut
- model
- modelare
- Modele
- modifica
- mai mult
- cele mai multe
- în mişcare
- multiplu
- necesar
- Nevoie
- nevoilor
- reţea
- rețele
- neural
- rețele neuronale
- Nou
- noțiune
- număr
- numere
- ONE
- de operare
- sistem de operare
- Oportunitate
- Optimizați
- optimizarea
- comandă
- OS
- Altele
- propriu
- pachet
- ambalaje
- Paralel
- parametrii
- parte
- special
- în special
- trece
- trecut
- cale
- modele
- oameni
- performanță
- perspectivă
- fizic
- bucată
- piese
- Loc
- Locuri
- platformă
- Plato
- Informații despre date Platon
- PlatoData
- Punct
- puncte
- piscină
- posibil
- potenţial
- putere
- Prakash
- preşedinte
- Principal
- principiu
- Problemă
- probleme
- proces
- prelucrare
- procesoare
- Produs
- Produse
- Program
- Progres
- proprietăţi
- propus
- protocol
- prototip
- prototipuri
- prototipuri
- furniza
- furnizează
- real
- tărâm
- motiv
- recunoaște
- Roșu
- Red Hat
- reduce
- design de referință
- Lansări
- necesita
- necesar
- Cerinţe
- Necesită
- cercetători
- resursă
- robust
- Rol
- Alerga
- funcţionare
- acelaşi
- Economisiți
- scenarii
- securitate
- vedere
- caută
- vede
- semiconductor
- senior
- sens
- de serie
- serios
- set
- să
- Emisiuni
- semna
- Semnal
- asemănător
- Simon
- simplu
- simulare
- întrucât
- singur
- Încet
- So
- până acum
- Software
- soluţie
- soluţii
- unele
- Cineva
- ceva
- Sursă
- se întinde
- specialist
- specific
- stivui
- Stive
- standard
- standarde
- Începe
- Pornire
- Stat
- statistică
- Pas
- Încă
- stimul
- Strategie
- curent
- puternic
- de succes
- Reușit
- astfel de
- suficient
- livra
- Intrerupator
- sistem
- sisteme
- adaptate
- Lua
- ia
- vorbesc
- Sarcină
- echipe
- tehnici de
- Tehnologia
- termeni
- test
- Testarea
- teste
- Zona
- Viitorul
- lor
- se
- termic
- lucru
- lucruri
- trei
- Prin
- Tim
- timp
- Contra cronometru
- sincronizare
- sfat
- la
- astăzi
- împreună
- de asemenea
- Unelte
- top
- față de
- tradiţional
- adevărat
- Tipuri
- înțeles
- In curs
- de unităţi
- us
- utilizare
- Utilizator
- utilizatorii
- utilizate
- Utilizand
- VALIDA
- validare
- Valoros
- diverse
- Verificare
- verificat
- verifica
- verificarea
- VIP
- Virtual
- lumi virtuale
- Ceas
- modalități de
- Ce
- dacă
- care
- în timp ce
- OMS
- voi
- fără
- Apartamente
- a face exerciţii fizice
- de lucru
- lume
- lume
- ar
- scris
- Ta
- zephyrnet