ClockGating CTS
ClockGating CTS
Clocktree consuma più del 50% della potenza dinamica. I componenti di questa potenza sono:
1) Potenza consumata dalla logica combinatoria i cui valori cambiano ad ogni piè di pagina del clock
È una buona idea di design spegnere l'orologio quando non è necessario. Il funzionamento automatico dell'orologio è supportato da
strumenti EDA moderni. Identificano i circuiti in cui può essere inserito il clock gating.
Il clock gating RTL funziona identificando gruppi di flip-flop che condividono un segnale di controllo di abilitazione comune.
Le metodologie tradizionali utilizzano questo termine per controllare la selezione di un multiplexor collegato al D
portodella flip-flop orto controllare il pin di abilitazione dell'orologio su una flip-flop con capacità di abilitazione dell'orologio. RTL
il segnale di abilitazione dell'orologio controlla un circuito di gating dell'orologio che è collegato alle porte dell'orologio
di tutti i flip-flop con il termine di abilitazione comune. Pertanto, se un banco di flip-flop condivide un
l'abilitazione comune ha il gating dell'orologio RTL implementato, i flip-flop consumeranno zero dinamico
alimentazione finché questo segnale di attivazione è falso.
Obiettivo di inclinazione
Target Skew, il valore di skew su cui il motore cts cercherà di costruire un albero di clock bilanciato.
In questo post discuteremo su quali fattori sceglieremo il target skew del nostro
design e come questi fattori influenzano il nostro design QOR.
Come designer, è una tendenza generale avere uno skew nullo e un orologio perfettamente bilanciato.
l'albero, ma lo Zero skew non è complessivamente buono per il design, perché? Pensa in termini di latenza,
conteggio buffer, potenza dinamica e congestione.
Per uno skew zero, la latenza complessiva di un design aumenterà, poiché ci vorrà più clock.
Buff/Inv per bilanciare i flop (per zero skew), il che potrebbe portare a un aumento delle cose poco comuni
percorso dell'orologio (più soggetto a variazioni OCV) e alta dissipazione di potenza dinamica poiché tutti i flops
& il buffer verrà attivato contemporaneamente. Poiché ogni rete di clock richiede il doppio delle risorse di routing
a causa delle impostazioni NDR applicate sulla rete oraria, quindi la congestione aumenta anche quando è minore
i distorsioni sono mirati.
Man mano che la tecnologia si sta riducendo, diventa sempre più fondamentale chiudere il tempo attraverso gli angoli.
Lo skew ha un impatto diretto sul setup/hold. Il principale obiettivo per raggiungere lo skew zero è il hold.
tempistica in tutti gli angoli. Quindi, mediante una selezione ottimale del numero di skew (skew target), noi ...
ridurre il consumo energetico dell'orologio, il conteggio del buffer/invertitore dell'orologio e la congestione significativa
riduzione.
Per il target skew dobbiamo fare più esperimenti, creando un clock tree con target skew
definito mantenendo costanti i vincoli (SDC) e poi diversi numeri di skew sono
analizzato in base alla latenza, al potere e alla congestione.
Sappiamo che l'equazione di tempo di hold di un flop cioè,
TDistorsione< 70 ps
Il che significa che c'è un margine di ~70 ps di skew senza compromettere il tempo di hold nel caso peggiore.
Quindi facciamo più iterazioni impostando la distorsione obiettivo nell'intervallo di +- 30 ps e analizziamo per
i fattori sopra menzionati e per il controllo dei tempi (NFE) in tutti gli angoli.
A causa dell'aumento della temperatura, gli ioni metallici inizieranno a vibrare di più, quindi la mobilità dei vettori di carica
La tensione di soglia diminuirà anche con l'aumento della temperatura poiché il numero di minoritari
i portatori nel substrato stanno aumentando, il che rende necessario un Vt inferiore rispetto al solito per
forma un canale.
Quando la tensione VGS - Vt o la tensione di sovraccarico è elevata (in nodi più alti -> alta VGS), allora diminuisce
nel voltaggio di soglia a causa della variazione di temperatura è trascurabile perché l'overdrive complessivo
la tension ha un impatto molto ridotto, quindi il fattore di mobilità dominerà qui, ritardando i risultati di un
la cellula aumenterà con l'aumento della temperatura.
Quando la tensione di sovracorrente (VGS-Vt) è inferiore (nodo più piccolo -> meno VGS), allora diminuisce in
La tensione di soglia a causa dell'aumento della temperatura dominerà la tensione di sovracorrente complessiva,
resultsdelay of a cell going to decrease with rise in temperature.
Si dovrebbe notare che l'inversione della temperatura entra in gioco nei nodi inferiori.
(tensione più bassa) con effetti più prominenti sulle cellule HVT.
Ottimizzazione ICG
Nel post precedente abbiamo parlato del problema di temporizzazione dell'abilitazione ICG, per superare il problema utilizziamo
ICG optimization technique in pre-cts stage.
L'ottimizzazione ICG viene eseguita durante la fase di posizionamento e svolge
Dummy -CTS
Suddivisione ICG
Posizionamento consapevole del tempo
Dummy CTS
In Dummy CTS, verrà costruito un albero di clock fittizio per identificare l'ICG critico, chiamandolo come clock fittizio.
perché nella fase CTS lo strumento costruirà l'effettivo albero dell'orologio scartando quello fittizio
I vantaggi dei dummy cts sono:
Determina accuratamente il ICG abilita i percorsi temporali critici con l'aiuto di dummy cts
Ottimizzazione accurata del percorso dei dati per i percorsi ICG critici per il timing nella fase di posizionamento.
Division efficace delle ICG e posizionamento consapevole del clock (discutere di seguito).
Una cosa dovrebbe essere presa in considerazione, cioè dobbiamo applicare tutte le impostazioni relative al CTS come le eccezioni dell'albero di clock.
Regole NDR, livelli, eccetera prima di eseguire la fase di posizionamento per correlare gli alberi orari Dummy cts e cts reali.
il più possibile per un'ottimizzazione ottimale dell'ICG.
Divisione ICG
Dopo il Dummy CTS, l'ottimizzazione ICG esegue la suddivisione ICG, sappiamo che se una cella ICG sta pilotando più registri,
aumenterà la latenza downstream dell'ICG portando a più percorsi critici temporizzati abilitati.
Strumento per identificare gli ICG critici nei Dummy cts e fare lo splitting degli ICG, ovvero istanziare un ICG in molti ICG.
posizionali vicino al reg che guidano per ridurre la latenza ICG a valle per un miglior timing abilitato da ICG.
La suddivisione ICG è guidata dal tempo, il che significa che solo gli ICG con violazioni dei tempi di abilitazione si suddivideranno.
Figura 1: Suddivisione ICG
lo strumento posizionerà i ICG vicino ai cluster di registri con un temporizzazione critica (come mostrato nella figura 1).
Una cosa da notare è che l'ottimizzazione ICG potrebbe aumentare la dissipazione di potenza dinamica nel nostro design.
il design, che è abilitato dalla logica CTRL. Per ottenere un'uscita senza glitch dal cella ICG,
dovrebbe soddisfare il requisito di tempo (setup/hold) al pin di abilitazione del cellula ICG.
Idealmente, una cella ICG può gestire un numero infinito di flop, poiché il numero di flop aumenterà guidato dall'ICG.
la cella, lo strumento sta per aggiungere più buffer nel percorso dell'orologio per bilanciare l'albero dell'orologio, il che porterà a
Poiché la latenza L3 aumenterà, si tradurrà in un aumento della latenza ICG, poiché il periodo di clock è fisso.
ora abbiamo un periodo di clock inferiore rispetto a prima per soddisfare il tempo di setup al pin EN.
Quindi possiamo concludere che maggiore è la latenza ICG, più critico è il timing di abilitazione dell'ICG.
È sempre consigliabile affrontare la tempistica ICG nella fase in loco/prima del CTS, poiché dopo il CTS può essere
troppo tardi per il design per affrontare la violazione dei tempi ICG.
sappiamo che l'analisi del timing Pre-cts utilizzava la latenza dell'orologio ideale per tutti i pin dell'orologio, il che significa
Poiché la latenza ICG è 0, ciò renderà l'analisi temporale dell'abilitazione ICG troppo ottimistica, perché ora
La cella ICG riceverà il clock completo per soddisfare la configurazione al pin Enable (prima riceveva solo L3 - Latency ICG).
Quindi, nel progetto Pre-cts attuale, non si vedono violazioni dell'ICG, quindi non sono state corrette nel design.
Per superare questo problema di design, l'ottimizzazione ICG è una tecnica raccomandata per
i design con ICG critico abilitano il timing. Nel prossimo post parleremo di ICG
tecnica di ottimizzazione, come viene eseguita.
------------------------------------
Latch free clock gatng
Lo stile di gating della clock senza latch utilizza un semplice gate AND o OR (a seconda del fronte su cui viene attivato il flip-
I flops vengono attivati). Qui, se il segnale di abilitazione diventa inattivo tra i impulsi di clock o se si attiva molte volte.
quindi l'uscita dell'orologio gated può terminare prematuramente o generare più impulsi di clock. Questo
la restrizione rende inappropriato lo stile di gate a clock senza latch per il nostro flip-flop basato su un singolo clock
design.
Sono necessarie celle di gating specifiche per l'orologio nella libreria per essere utilizzate dagli strumenti di sintesi. Disponibilità dell'orologio
Le celle gatng e l'inserimento automatico tramite gli strumenti EDA rendono più semplice il metodo per tecniche a bassa potenza.
Il vantaggio di questo metodo è che il clock gating non richiede modifiche alla descrizione RTL.