Gli strumenti, le metodologie e i flussi in atto fin dagli albori della progettazione dei semiconduttori stanno crollando, ma questa volta non c’è un ampio gruppo di ricercatori che proponga potenziali soluzioni. L’industria deve formulare queste idee da sola, e ciò richiederà molta cooperazione tra aziende EDA, fabbriche e designer, che non è stato il loro punto di forza in passato.
È difficile ottimizzare qualcosa quando non è possibile analizzarlo e l'analisi sta diventando molto più difficile perché molti dei problemi nei prodotti a semiconduttori di grandi dimensioni sono multifisici o sono una combinazione di hardware e software, sistema, scheda , pacchetto IC, interpositore, chip e blocco IP. In passato, il modo in cui venivano affrontati i problemi era l’approccio “divide et impera”. A volte questo viene fatto in modo gerarchico, ad esempio verificando completamente un blocco prima che venga integrato, o talvolta isolando un problema, come con l'incrocio del dominio dell'orologio.
Tuttavia, alcuni problemi resistono sempre più spesso a questo tipo di approcci e il settore deve ancora trovare una soluzione semplice. Ad esempio, questioni come la sicurezza sono questioni a livello di sistema. Lo stesso vale per molti problemi di prestazioni o alimentazione. Anche questioni come l'alimentazione e l'integrità del segnale devono fare i conti con una gerarchia che si estende dall'IP al sistema, attraverso una complessa interconnessione di molti livelli, ognuno dei quali è stato tradizionalmente adattato a un diverso insieme di strumenti.
Ciò crea una nuova serie di problemi di modellazione e richiede che alcuni strumenti esistenti assumano un ruolo molto più importante rispetto al passato. In alternativa, l’industria dovrà prendere sul serio l’imposizione di vincoli sui progetti, in modo tale da rendere possibile l’analisi. Sebbene questo settore stia iniziando a riconoscere i problemi, oggi li sta affrontando in modo frammentario. Finora nessuno ha proposto una soluzione generale che si estenderà al futuro.
È un gioco di numeri. "Se si prende in considerazione l'intero sistema, il numero di angoli sta esplodendo", afferma Shekhar Kapoor, direttore senior del marketing presso Synopsys. “Oggi, gli approcci continuano a tornare al modo gerarchico “divide et impera” di fare le cose, e anche a trovare modi per ridurre il numero di scenari da affrontare. Senza questi, i requisiti computazionali saranno enormi. E per poter approvare i sistemi, il percorso sarà molto, molto più lungo”.
Gli approcci gerarchici sono ancora utili per alcune cose. "Il principio di astrazione viene utilizzato laddove la complessità fondamentale dell'analisi è troppo complessa", afferma Prakash Narain, presidente e CEO di Real Intent. “Nella simulazione, lo utilizziamo in termini di modelli funzionali del bus e di analisi temporale statica. Lo utilizziamo creando modelli temporali a livello di I/O, incroci del dominio dell'orologio, tecniche di approvazione statica per l'incrocio del dominio dell'orologio, attraversamento del dominio di ripristino. Questi sono tutti luoghi in cui utilizziamo con successo tecniche gerarchiche”.
La riduzione degli angoli spesso implica decisioni di progettazione. “Perché non evitare gli incroci di dominio”, afferma Kapoor di Synopsys. “Basta mantenere il design asincrono, in cui ciascuno dei pezzi è cronometrato per conto proprio. In questo modo puoi gestire il numero di angoli per quel particolare pezzo. Quindi puoi utilizzare anche le tecniche di riduzione degli angoli. Con approcci gerarchici per l’analisi temporale, cronometramo ciascuna parte separatamente, quindi entrambe insieme con i vincoli, ed eseguiamo la fusione degli angoli.
Cosa si intende per sentieri che aumentano ovunque. "Molte persone vogliono fare analisi di sistemi multi-die", afferma Mick Posner, direttore senior di HPC IP presso Synopsys. “Le soluzioni per l'integrità del segnale e dell'alimentazione si concentravano sullo stampo, attraverso il package, fino al PCB. Ora è diventato morire, interporre, imballare, PCB. Ciò è particolarmente vero per le interfacce ad alte prestazioni, come 112G, e le interfacce di memoria, dove si presta molta attenzione all'impatto dell'interposer o al livello di routing. Dobbiamo capire come assemblare tali informazioni con l’IP, il che a volte è impossibile perché non sappiamo come viene utilizzato quell’IP. Possiamo fornire un flusso di riferimento che mostra loro come eseguono tale analisi”.
Il problema è che fare alcune delle astrazioni necessarie è difficile. "I requisiti di astrazione sono molto specifici per l'applicazione", afferma Narain di Real Intent. “Dipendono dalla tecnologia e sono diversi da prodotto a prodotto anche per quell'applicazione. Dipendono dalla tecnologia utilizzata da ciascun prodotto per implementare la funzionalità. Quindi devi considerare il livello di precisione che stai cercando. Sarà molto specifico per un’applicazione e per la tecnologia, e gli standard arriveranno in seguito perché è un processo molto difficile da realizzare”.
Posner fornisce un esempio specifico. “Per HBM3 abbiamo creato un progetto di riferimento. Si tratta di un progetto di riferimento del nostro chip di test. Abbiamo sviluppato un PHY, ma quando eseguiamo un chip di prova dobbiamo anche sviluppare un interposer che si colleghi allo stack HBM. Dobbiamo fare tutto in modo simile a quello che dovrebbe fare un cliente. Quindi possono sfruttare quel flusso. Ma ovviamente quello era il nostro chip di prova. Possono riutilizzare il flusso, ma i dati effettivi saranno specifici rispetto al modo in cui dispongono l’interpositore”.
Il problema della modellazione
La ragione di queste difficoltà è la mancanza di modelli e di mezzi per generarli. I modelli sono compromessi tra fedeltà, accuratezza e prestazioni. I modelli ad alta precisione tendono ad avere una buona fedeltà ma vengono eseguiti lentamente, mentre i modelli che vengono eseguiti più velocemente rinunciano a qualcosa in termini di precisione, fedeltà o entrambi. I modelli richiesti sono sia modelli funzionali che non funzionali.
Ci occupiamo da tempo del problema nel dominio funzionale, ma è necessario ulteriore lavoro. "Per la verifica funzionale realizziamo alcuni modelli", afferma Neil Hand, direttore della strategia per la tecnologia di verifica del progetto presso SiemensEDA. “Abbiamo accuratezza del ciclo, accuratezza del set di istruzioni e così via. Ma vuoi avere un modo per spostarti facilmente tra di loro. Con la modellazione ibrida, hai la capacità di ciò che chiamano corsa veloce, quindi corsa precisa. Al volo, devi essere in grado di cambiare modello. Ad esempio, qualcuno potrebbe avviare il sistema operativo su un modello meno accurato e veloce, quindi passare lo stato di progettazione in un modello accurato. Ora sono in grado di procedere da quel punto con molta più granularità e molta più fedeltà nel modello stesso. Dobbiamo sviluppare capacità ancora maggiori per passare da una fedeltà all’altra quando ne hai bisogno”.
Oggi, una metodologia simile viene utilizzata per la verifica a livello di blocco e di integrazione. "Quando acquisti un nucleo Arm, non ne verifichi la funzionalità", afferma Simon Davidmann, fondatore e CEO di Software Impera. “Verificatene l'integrazione. È qui che entrano in gioco aziende come Breker. Hai questi blocchi, ma come controlli che si parlino tutti bene tra loro? Non lo fai nello stesso modo in cui verificheresti un blocco con UVM o Verilog, che è ciò che usi per la verifica a livello di blocco. La gerarchia nella verifica consiste nel far funzionare tutti i blocchi, testarli individualmente, quindi riunirli e preoccuparsi dei test di integrazione. Ma richiedono metodologie diverse”.
Il problema è sempre stato che la creazione di questi modelli richiede tempo e impegno e ciascun modello deve essere verificato per garantirne la coerenza. "Per l'architettura sono necessarie anche proprietà non funzionali, come i dettagli temporali", afferma Tim Kogel, ingegnere principale per la prototipazione virtuale per Synopsys. “Ciò comporta uno sforzo considerevolmente maggiore per costruire i modelli. Sebbene l’industria abbia stabilito livelli di astrazione più elevati, non ha avuto altrettanto successo nel creare strumenti per costruire questi modelli di performance non funzionali. Ad esempio, il software vede gli elementi di elaborazione come unità di risorse più astratte e quindi potresti avere modelli più dettagliati del sottosistema di interconnessione e memoria o della rete tra i diversi chip. Arteris e Arm li forniscono per reti coerenti, per vari tipi di IP di interconnessione e anche per i controller di memoria, che sono gli elementi chiave dell'integrazione.
Sono necessari più strumenti per la generazione di modelli. "Quando analizzi un progetto utilizzando modelli particolari, hai la capacità di creare un modello astratto", afferma Malik Vasirikala, direttore e specialista di prodotto per Ansis. “Ad esempio, quando analizzo le parti interne di un chip, so anche come si comporta dal punto di vista dell’interfaccia. Posso creare un modello come se vedessi l'intera parte dalla periferia o al confine del chip con il mondo esterno. Quindi, quando analizzo un altro chip ad esso collegato, non ho bisogno dei dettagli interni del chip. Inserisco semplicemente quel modello comportamentale in questa analisi e ho finito.
Ma ci sono delle lacune. “Il pezzo che manca è una migliore integrazione e scambio di dati tra i mondi fisici e quelli virtuali”, afferma Kogel di Synopsys. "Abbiamo bisogno di un modello architettonico basato su informazioni apprese sulla planimetria e geometrie apprese, che, una volta migrate al livello di prototipo virtuale, aiutano a convalidare prestazioni, potenza e calore in base all'attività dell'applicazione reale."
Quando hai finito?
Il completamento è uno dei problemi in qualsiasi attività di analisi. Hai trattato i casi importanti? Esistono metriche di copertura per la verifica funzionale a livello di blocco, ma questo è ancora un altro modello che deve essere migrato a livelli più alti di astrazioni e in domini non funzionali. "Se stai eseguendo parte della tua verifica nel regno di RTL e parte nel prototipo virtuale, come unisci insieme questi elementi di copertura?" chiede la Mano di Siemens. “Oggi ciò avviene attraverso la copertura funzionale, ma c’è l’opportunità – soprattutto quando si considera la generazione di stimoli, quando si utilizza l’intelligenza artificiale sul lato della copertura – di iniziare a dedurre informazioni da diversi tipi di copertura”.
Il mondo del software è stato molto permissivo a questo riguardo. “Non penso che esista un approccio o una metodologia standard per la copertura”, afferma Davidmann di Imperas. "Per quanto ne so, non esiste alcuna automazione eseguita attorno al software che sia equivalente ai punti di copertura e ai gruppi di copertura in HDL. Esistono controllori di protocollo per la verifica e l'analisi. E puoi creare statistiche, dove puoi guardare le funzioni o guardare gli accessi alle variabili. Data la mancanza di standardizzazione, forniamo gli strumenti necessari, ma l’utente dovrebbe costruirseli da solo”.
Una volta che si ha una nozione di copertura diventa possibile pensare ad ottimizzare la verifica. “Che si tratti di stimoli portatili nella sua forma attuale, o di qualcosa che si basa su tali nozioni, abbiamo bisogno di una generazione di scenari a livello di sistema”, afferma Hand. “Possiamo prendere questo e andare a un livello superiore e andare con i prototipi virtuali e la modellazione del sistema e generare scenari su sistemi robusti? Diventerà sempre più importante man mano che i sistemi diventeranno sempre più integrati”.
Altri sono d'accordo. "Vuoi avere questa continuità tra il livello IP, il livello SoC e la successiva verifica in silicio", afferma Kogel. “Lo stimolo portatile è un approccio per raggiungere questo obiettivo. È quindi anche possibile eseguire quello che era un caso di test astratto, come un programma su un core incorporato, quindi nel prototipo virtuale. In senso lato si tratta della verifica del concetto architettonico. Successivamente, esegui RTL con il software su un emulatore, su un prototipo FPGA, e questo può essere utilizzato per la convalida delle prestazioni perché è più come "Ciò che vedi è ciò che ottieni". Non è un modello virtuale di alto livello. "
Fig. 1: Livelli multipli di modelli e obiettivi di verifica. Fonte: sinossi
Un altro modo per affrontare la verifica dell'integrazione è attraverso la conformità funzionale. "In Arm esiste un tentativo chiamato 'system ready' per definire cosa significa essere conformi e in grado di avviare un sistema operativo", afferma Nick Heaton, illustre ingegnere e architetto di verifica SoC presso Cadenza. “Se la tua implementazione passa, non dovrai modificare le versioni del sistema operativo di Red Hat o altro. Si avvieranno semplicemente su quello. Questo è un contratto tra il software e l'hardware. Lo stimolo portatile sta cercando di farlo in un modo più generalizzato, e lo chiamiamo VIP perché è una specie di contenuto fuori dagli schemi che stiamo offrendo, diciamo, a un livello di coerenza. Testiamo tutte le permutazioni della coerenza e possiamo fornirle praticamente su qualsiasi piattaforma, che si tratti di Arm o RISC-V o altro."
Il problema del debug
Una cosa è essere in grado di eseguire un modello, ma trovare e risolvere un problema in un modello o nel modo in cui viene utilizzato il modello è un altro livello di complessità. "Se stai eseguendo il debug del software su hardware o FPGA, ottieni un gdb che si connette ad esso e puoi eseguire un singolo passaggio del flusso di istruzioni di un processore", afferma Davidmann. “Ma il problema arriva quando hanno 10 o più processori e hanno bisogno di sapere quando ‘questo’ scrive su ‘quello’, che aspetto ha questo? L'analisi e il debug devono essere eseguiti in modo olistico in modo da poter vedere tutto. Ciò deve coinvolgere gli stack software in modo da poter osservare il comportamento della piattaforma”.
Si tratta di una serie di richieste diverse rispetto al semplice debug dell'hardware. "Mentre iniziamo a dedicarci ai test di integrazione hardware/software, stiamo iniziando a vedere più funzionalità di debug del software integrate nell'ambiente di debug del prototipo virtuale", afferma Hand. “Mentre lo rendiamo disponibile per i progettisti di sistemi, abbiamo l'opportunità di esaminare i modelli d'uso e quali sono gli ambienti di progettazione su cui i team vogliono lavorare? Come possiamo incorporarlo? Desideri che i progettisti di sistema interagiscano con i prototipi virtuali in un modo che sia significativo per loro. Si tratta di identificare gli utenti finali e mappare loro i modelli d’uso. È un’area in cui c’è molto che possiamo fare e c’è molto che dovremmo fare”.
Gli strumenti e le metodologie devono soddisfare le esigenze a ciascun livello. "I ragazzi che effettuano la verifica dell'integrazione non sono gli stessi che conoscono ciascuno dei blocchi", afferma Heaton di Cadence. “Il tempo necessario per eseguire il debug o il tempo di risposta sta diventando sempre più importante. Il numero di cicli di debug che è possibile eseguire in un giorno è estremamente problematico. Se gli strumenti possono indirizzarti al primo ordine, puoi risparmiare ore di debug. Siamo all'inizio di questo viaggio. L’apprendimento è in corso e il modo in cui utilizziamo questi strumenti è destinato a migliorare”.
L’intelligenza artificiale può aiutare. "Nonostante il fatto che gli esseri umani abbiano la migliore rete neurale, il nostro I/O è ancora più o meno seriale", afferma Matt Graham, direttore del gruppo di ingegneria del prodotto presso Cadence. “Forse possiamo gestire due o tre binari paralleli, ma certamente non di più. Le macchine possono considerare tutte queste cose in parallelo. Potrebbero utilizzare un semplice algoritmo, o un semplice insieme di intelligenza artificiale, per fare qualcosa attraverso quella cosa massicciamente parallela e altamente integrata. Ma questo è diverso da quello che siamo in grado di fare da soli. Forse si tratta di cose come l’ultima volta che abbiamo avuto una revisione o cosa è cambiato, o l’identificazione di dove il comportamento differisce, o quali sono stati i parametri che sono stati modificati in un IP”.
Conclusione
La complessità del sistema supera molti degli strumenti e delle metodologie oggi in uso. Le tecniche utilizzate in passato, pur essendo ancora valide, non sono sufficienti. L'industria ha riscontrato molti di questi problemi nel campo della verifica funzionale, ma questa è solo la punta dell'iceberg. Considerando gli scarsi progressi compiuti nell’area più conosciuta, è probabile che i progressi non siano rapidi in molte altre aree, in particolare quelle legate al packaging avanzato.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://semiengineering.com/design-and-verification-methodologies-breaking-down/
- 1
- 10
- a
- capace
- WRI
- ABSTRACT
- Il mio account
- precisione
- preciso
- Raggiungere
- operanti in
- attività
- Avanzate
- AI
- algoritmo
- Tutti
- sempre
- .
- analizzare
- l'analisi
- ed
- Un altro
- Applicazioni
- approccio
- approcci
- architettonico
- architettura
- RISERVATA
- aree
- ARM
- in giro
- Automazione
- disponibile
- precedente
- basato
- fondamentalmente
- perché
- diventare
- diventa
- diventando
- prima
- Inizio
- essendo
- MIGLIORE
- Meglio
- fra
- maggiore
- Bloccare
- Blocchi
- tavola
- Rottura
- portare
- ampio
- costruire
- Costruzione
- costruisce
- autobus
- Acquistare
- Cadenza
- chiamata
- detto
- funzionalità
- capace
- Custodie
- casi
- ceo
- certamente
- dai un'occhiata
- patata fritta
- Chips
- COERENTE
- combinazione
- Venire
- arrivo
- Aziende
- complesso
- complessità
- conformità
- compiacente
- concetto
- collegato
- collega
- Prendere in considerazione
- vincoli
- contenuto
- contratto
- cooperazione
- Nucleo
- Angolo
- angoli
- corso
- coprire
- copertura
- coperto
- creare
- crea
- Creazione
- Corrente
- cliente
- cicli
- dati
- giorno
- affare
- trattare
- decisioni
- consegnare
- consegna
- richieste
- dipendente
- Design
- designer e gli illustratori veneziani,
- disegni
- dettaglio
- dettagliati
- dettagli
- sviluppare
- sviluppato
- *
- diverso
- difficile
- le difficoltà
- Direttore
- Distinto
- fare
- dominio
- domini
- Dont
- giù
- spinto
- ogni
- facilmente
- sforzo
- o
- elementi
- incorporato
- ingegnere
- Ingegneria
- garantire
- Ambiente
- ambienti
- Equivalente
- particolarmente
- sviluppate
- Anche
- qualunque cosa
- esempio
- exchange
- eseguire
- esistente
- estendere
- esterno
- Moda
- FAST
- più veloce
- pochi
- fedeltà
- Fico
- Trovate
- ricerca
- Nome
- Fissare
- flusso
- flussi
- Focus
- seguire
- modulo
- Avanti
- fondatore
- Fondatore e CEO
- FPGA
- da
- completamente
- funzionale
- funzionalità
- funzioni
- fondamentale
- futuro
- gioco
- Generale
- la generazione di
- ELETTRICA
- ottenere
- Dare
- dato
- Go
- Obiettivi
- andando
- buono
- maggiore
- Gruppo
- Gruppo
- maniglia
- Hardware
- ha
- Aiuto
- gerarchia
- alto livello
- Alte prestazioni
- superiore
- vivamente
- olistica
- ORE
- Come
- Tutorial
- hpc
- HTTPS
- Enorme
- Gli esseri umani
- IBRIDO
- idee
- identificazione
- Impact
- realizzare
- implementazione
- importante
- imponente
- impossibile
- in
- incorporare
- crescente
- sempre più
- Individualmente
- industria
- informazioni
- integrato
- integrazione
- interezza
- intento
- interagire
- Interfaccia
- interfacce
- interno
- coinvolgere
- IP
- problema
- sicurezza
- IT
- elementi
- stessa
- viaggio
- Kapoor
- mantenere
- Le
- Genere
- Sapere
- conoscenze
- Dipingere
- grandi
- Cognome
- strato
- galline ovaiole
- imparato
- apprendimento
- Livello
- livelli
- Leva
- probabile
- piccolo
- più a lungo
- Guarda
- una
- lotto
- macchine
- fatto
- Fare
- gestire
- modo
- molti
- mappatura
- Marketing
- massicciamente
- partita
- max-width
- significativo
- si intende
- Memorie
- Unire
- fusione
- metodologie
- Metodologia
- Metrica
- forza
- mancante
- modello
- modellismo
- modelli
- modificare
- Scopri di più
- maggior parte
- in movimento
- multiplo
- necessaria
- Bisogno
- esigenze
- Rete
- reti
- Neurale
- rete neurale
- New
- Nozione
- numero
- numeri
- ONE
- operativo
- sistema operativo
- Opportunità
- OTTIMIZZA
- ottimizzazione
- minimo
- OS
- Altro
- proprio
- pacchetto
- imballaggio
- Parallel
- parametri
- parte
- particolare
- particolarmente
- Passi
- passato
- sentiero
- modelli
- Persone
- performance
- prospettiva
- Fisico
- pezzo
- pezzi
- posto
- Partner
- piattaforma
- Platone
- Platone Data Intelligence
- PlatoneDati
- punto
- punti
- pool
- possibile
- potenziale
- energia
- Prakash
- Presidente
- Direttore
- principio
- Problema
- problemi
- processi
- lavorazione
- processori
- Prodotto
- Prodotti
- Programma
- Progressi
- proprietà
- proposto
- protocollo
- prototipo
- prototipi
- prototipazione
- fornire
- fornisce
- di rose
- regno
- ragione
- riconoscere
- Rosso
- Red Hat
- ridurre
- progetto di riferimento
- Uscite
- richiedere
- necessario
- Requisiti
- richiede
- ricercatori
- risorsa
- robusto
- Ruolo
- Correre
- running
- stesso
- Risparmi
- Scenari
- problemi di
- vedendo
- cerca
- vede
- semiconduttore
- anziano
- senso
- serial
- grave
- set
- dovrebbero
- Spettacoli
- segno
- Signal
- simile
- Simon
- Un'espansione
- simulazione
- da
- singolo
- Lentamente
- So
- finora
- Software
- soluzione
- Soluzioni
- alcuni
- Qualcuno
- qualcosa
- Fonte
- campate
- specialista
- specifico
- pila
- Stacks
- Standard
- standard
- inizia a
- Di partenza
- Regione / Stato
- statistica
- step
- Ancora
- stimolo
- Strategia
- ruscello
- forte
- di successo
- Con successo
- tale
- sufficiente
- fornire
- Interruttore
- sistema
- SISTEMI DI TRATTAMENTO
- su misura
- Fai
- prende
- parlando
- Task
- le squadre
- tecniche
- Tecnologia
- condizioni
- test
- Testing
- test
- Il
- L'area
- Il futuro
- loro
- si
- termico
- cosa
- cose
- tre
- Attraverso
- Tim
- tempo
- Timed
- sincronizzazione
- tipo
- a
- oggi
- insieme
- pure
- strumenti
- top
- verso
- tradizionalmente
- vero
- Tipi di
- inteso
- In corso
- unità
- us
- uso
- Utente
- utenti
- utilizzati
- Utilizzando
- CONVALIDARE
- convalida
- Prezioso
- vario
- Convalida
- verificato
- verificare
- verifica
- VIP
- virtuale
- mondi virtuali
- Orologio
- modi
- Che
- se
- quale
- while
- OMS
- volere
- senza
- Lavora
- allenarsi
- lavoro
- mondo
- Il mondo di
- sarebbe
- scrittura
- Trasferimento da aeroporto a Sharm
- zefiro