Una nuova era per l’analisi statica

SOFTWARE DI PROGETTAZIONE –

È possibile ridurre notevolmente i tempi di progettazione di SoC anche molto complessi, attraverso l’utilizzo della Static Timing Analysis gerarchica.

Due fatti vengono oggi dati per scontati nell’industria dei semiconduttori: da un lato che le dimensioni e la complessità dei progetti crescono continuamente, dall’altro che la pressione sul time-to-market è più forte che mai. Prenderemo il caso degli smartphone come esempio per sostenere questa tesi. Oggi con uno smartphone è possibile telefonare, scambiare messaggi di testo e Instant Messaging, fare fotografie e riprese video, giocare e svolgere molte altre attività. Domanda: com’è possibile tutto questo? Risposta: integrando in un singolo chip molteplici funzionalità capaci di interagire tra loro. Domanda: come ottenere questo risultato pur avendo a disposizione lo stesso tempo di progettazione del chip precedente? Risposta: con la riutilizzazione di parti precendenti dei progetti (design reuse, IP reuse).

Il design reuse
Con l’aumento della complessità dei progetti, che oggi riuniscono un numero sempre maggiore di funzioni in un singolo die, il design reuse è divenuto una tecnica comune. Si riutilizzano le IP (Intellectual Property), i flussi, le metodologie - e ciò spiega perché, talvolta, le dimensioni dei progetti crescano a un ritmo superiore alla legge di Moore. I progettisti, però, si sentono schiacciati tra due vincoli: da un lato la necessità di inserire nel chip un numero sempre maggiore di funzioni, dall’altro i requisiti di time-to-market che non accennano ad allentarsi.

L’analisi temporale statica
Il divario che si è venuto a creare, negli ultimi vent’anni, a causa del rapido aumento della complessità dei progetti e della lentezza dei progressi sul fronte della produttività, può essere in parte colmato con un maggiore impiego delle IP e può essere superato per quanto riguarda l’analisi temporale statica o Sta (Static-timing analysis). La Sta è un’attività chiave nella progettazione del chip e ha un effetto diretto sul tempo totale della progettazione stessa. Le dimensioni dei progetti raddoppiano o triplicano ogni due anni, pertanto per contenere il tempo di esecuzione (runtime) si ricorre oggi ai processori multicore. È certamente necessario che il software Sta sia in grado di utilizzare in modo ottimale la nuova infrastruttura hardware, ma ciò non è assolutamente sufficiente. L’aumento delle dimensioni dei progetti non si arresterà, mentre - come previsto dalla legge di Amdahl - aumentando il numero di core oltre un certo limite (breakdown) i vantaggi ottenibili con processori multicore tendono a diminuire. Per far fronte al continuo aumento delle dimensioni, i progetti vengono oggi suddivisi tramite tecniche gerarchiche dando luogo a unità di lavoro (blocchi) gestibili dai progettisti. Per rendere la Sta più veloce e più efficiente nell’uso della memoria, pertanto, si utilizzano modelli temporali gerarchici che rappresentano le temporizzazioni dei blocchi in modo compatto. Questi modelli, però, non sono in grado di rappresentare il contesto in cui i blocchi sono collocati nell’ambito del chip, il che provoca differenze tra i risultati della Sta eseguita in modalità “flat” sull’intero chip e la Sta eseguita in modalità gerarchica.
Un possibile esempio di come, nell’analisi Sta tradizionale, il modello temporale gerarchico del blocco non rappresenti con precisione il contesto riguarda l’effetto Crpr (Clock reconvergence pessimism removal). Se nel blocco entrano due clock correlati, risulta difficile - nell’analisi a livello di blocco - modellizzare le proprietà Crpr della loro sorgente comune posta a livello superiore. Solo se si effettua un’analisi “flat”, ossia dell’intero chip è possibile vedere l’intera rete del clock, pertanto gli effetti Crpr possono essere applicati con precisione solo in tal caso. Con la tecnologia HyperScale, le relazioni Crpr tra i clock al contorno dei blocchi vengono acquisite come parte del contesto aggiornato e usate per una precisa analisi a livello di blocco. Ciò elimina la necessità di condurre una Sta in modalità ”flat”. Questo è solo un esempio di come un effetto globale possa essere acquisito con maggiore precisione tramite il contesto HyperScale. Altri esempi comprendono la Aocv (Advanced on chip variation), le eccezioni temporali, gli effetti SI (Signal Integrity) e gli effetti del rumore. Questi limiti hanno impedito l’adozione generalizzata della Sta gerarchica per il signoff. Oggi il signoff Sta per i SoC più grandi, come quelli utilizzati negli smart phone, è effettuato in modalità “flat”. Di conseguenza l’esecuzione può richiedere parecchi giorni su computer costosi. Per aiutare i progettisti a trattare chip di maggiori dimensioni, i fornitori di strumenti signoff possono migliorare le prestazioni raggiungibili con processori a core singolo, sfruttare capacità di elaborazione multicore distribuite per utilizzare la server farm in modo efficiente o usare Cpu multicore. Questi accorgimenti hanno immensamente aiutato i progettisti a controllare i tempi di esecuzione della Sta sull’intero chip. Oggi, però, l’attenzione si concentra sulle sfide poste dai progetti più grandi, che non possono più essere contenuti nell’hardware attualmente disponibile e che stanno crescendo a un ritmo superiore a quello della legge di Moore.

La tecnologia PrimeTime HyperScale
Oggi i progettisti possono avvalersi della tecnologia PrimeTime HyperScale, sviluppata da Synopsys, che rende possibile la Sta gerarchica effettuando precise analisi temporali a livello di blocco, ma nel contesto del livello gerarchico più alto. La tecnologia PrimeTime HyperScale elimina la necessità di generare e convalidare il modello temporale gerarchico. PrimeTime HyperScale offre un aumento di prestazioni e capacità da cinque a dieci volte, superando il divario di produttività descritto in figura 2 e mantenendo al contempo la precisione propria dell’analisi “flat”. Inoltre PrimeTime HyperScale consente una più rapida convergenza delle temporizzazioni a livello gerarchico superiore e a livello di blocco, grazie a un meccanismo di aggiornamento automatico del contesto, e offre la scalabilità necessaria per realizzare giornalmente analisi su progetti fino a 500 milioni di instances (cosa praticamente impossibile con l’attuale approccio a “full-chip”). Nel corso del ciclo di implementazione i progettisti dei blocchi eseguono la Sta per vari motivi, tra cui la pulizia dei vincoli di progetto, l’analisi multi-scenario e la convalida di grandi violazioni. Queste esecuzioni della Sta a livello di blocco non vengono riutilizzate in seguito. Ma perché buttare via queste analisi e duplicare lo sforzo eseguendo la Sta sull’intero chip? La tecnologia HyperScale è stata sviluppata prendendo come riferimento la tecnica di riutilizzo dei progetti, su cui oggi i progettisti fanno grande affidamento. Poiché oggi i SoC vengono costruiti con un mix di IP vecchie e nuove, l’integrazione di blocchi nati in ambienti diversi è divenuta una sfida inevitabile per i progettisti. La tecnologia HyperScale consente loro di ‘riutilizzare’ i risultati della Sta a livello di blocco eseguiti nel corso del flusso, per guidare il processo di timing closure. Non è necessario buttare via questi risultati e duplicare gli sforzi eseguendo l’analisi sull’intero chip. HyperScale è progettata per gestire questi scenari in modo efficace e può rapidamente mostrare ai progettisti l’impatto dell’integrazione in ambienti misti, offrendo chiare indicazioni su come risolvere i problemi. Oggi più che mai, il compito di creare vincoli puliti al livello di ‘signoff’ per un blocco è una forma d’arte. Il progetto del blocco inizia con budget stimati che vengono raffinati nel tempo, un’attività manuale e soggetta a errori. Ciò può portare all’incoerenza dei vincoli tra il blocco e il livello gerarchico più che lo contiene, il che può creare due effetti indesiderabili: il blocco può essere progettato in modo conservativo (over-design); o si possono verificare errori su alcuni percorsi critici per le timing, portando a un chip difettoso. L’analisi dell’intero chip, già di per sé intensa in termini di tempo di esecuzione e di memoria occupata, diviene ancora più pesante se sono richiesti degli ECO sulle timing, prolungando così i tempi per il raggiungimento della design closure e provocando ritardi rispetto agli obiettivi di time-to-market. HyperScale effettua una completa analisi timing intorno ai confini del blocco per acquisire automaticamente il contesto delle timing, compresa l’integrità dei segnali, la on-chip variation e gli effetti di clock reconvergence pessimism removal. Questo allineamento di contesto tra il blocco e il livello superiore, più che il semplice controllo dei vincoli Synopsys Design Constraints (SDC), assicura una convergenza delle temporizzazioni facile e veloce. I gruppi di progetto incaricati dell’implementazione a livello di blocco possono usare il contesto aggiornato anche al livello più alto, a scopo di ottimizzazione, ottenendo una timing closure più veloce e più precisa.
Un confronto dei risultati di timing slack viene fatto con riferimento a una Sta “flat”, tra un’analisi iniziale con budget stimati e un’analisi con contesto corretto tramite HyperScale. L’analisi iniziale dei blocchi con budget stimati è solitamente pessimistica o imprecisa, portando a false violazioni da correggere e a tempi di realizzazione più lunghi. Avendo informazioni precise sul contesto delle temporizzazioni è possibile correggere opportunamente le violazioni vere, in un tempo molto minore. La tecnologia PrimeTime HyperScale affronta le attuali sfide della Sta nei progetti gerarchici e consente un facile signoff Sta gerarchico per SoC contenenti milioni di istanze, come quelli usati negli odierni smart phone. HyperScale consente di superare il divario di produttività nell’analisi Sta, con un miglioramento di cinque o dieci volte dei tempi di esecuzione e dell’occupazione di memoria, riducendo significativamente il tempo totale di progettazione. Questa innovazione rappresenta quindi l’inizio di una nuova era nella Sta e un’importante pietra miliare nello sviluppo dell’analisi statica.

Pubblica i tuoi commenti