Table of Contents
La gestione del flusso di energia è diventata una pietra angolare dei moderni sistemi digitali, influenzando direttamente la durata della batteria, il comportamento termico e l'affidabilità a lungo termine. Nei progetti FPGA e ASIC, la capacità di controllare il consumo di energia a livello hardware è sempre più critica. VHDL (VHSIC Hardware Description Language) fornisce un quadro potente per descrivere e implementare sofisticate strategie di gestione della potenza, da semplice battitura di clock a complesse scaling multi-domini, tutto all'interno di un unico, sintetizzabile
Comprendere la gestione della potenza in disegni digitali moderni
Il consumo di energia nei circuiti digitali è ampiamente classificato in potenza dinamica e potenza statica. L'alimentazione dinamica deriva dalla carica e dalla scarica di carichi capacitivi ogni volta che una transizione di segnale, e si bilancia con la frequenza di clock e il quadrato della tensione di alimentazione. L'alimentazione statica, o la potenza di perdita, viene consumata anche quando non si verifica alcun interruttore, a causa di perdite sub-potenza e di perdite di cancello.
Le tecniche di gestione dell'energia mirano a ridurre la potenza dinamica abbassando la tensione e la frequenza durante i periodi di bassa attività, e a ridurre la potenza statica spegnendo la potenza a blocchi o utilizzando celle a bassa leakage. Queste tecniche devono essere accuratamente orchestrate per evitare errori funzionali, violazioni dei tempi e sovraccarico dell'area eccessiva. VHDL consente ai progettisti di codificare queste politiche di controllo direttamente nella descrizione dell'hardware, consentendo la simulazione precoce.
VHDL come strumento per la gestione del potere
VHDL offre un alto livello di astrazione per la modellazione di logica di controllo, macchine statali e percorsi dati. Questa astrazione è particolarmente utile per la gestione dell'energia perché permette al progettista di definire comportamenti complessi e basati su eventi, come l'inserimento di modalità a bassa potenza, la veglia su interruzioni o la tensione di scaling, senza ottenere bloccati nei dettagli a livello di gate. Inoltre, il codice VHDL può essere sintetizzato da moderni strumenti di alimentazione EDA in modo efficiente.
I principali costrutti VHDL per la gestione della potenza includono incarichi di segnale concomitanti, dichiarazioni di processo, macchine a stato finito e istanza dei componenti. Ad esempio, un semplice orologio consente di generare il segnale con un processo che monitora le bandiere di attività, o un controller di schermatura di potenza può essere implementato come una macchina di stato che sequenzia gli interruttori di potenza e le celle di isolamento.
La simulazione delle funzioni di gestione della potenza in VHDL consente la verifica delle sequenze di wake-up, la gating senza glitch e le transizioni di scaling della tensione corrette.
Tecniche core implementate con VHDL
Gattura dell'orologio
Clock gating[] è una delle tecniche di riduzione dell'energia più utilizzate. Disabilita l'orologio a un registro o modulo quando i dati memorizzati non è necessario, eliminando inutili attività di commutazione. In VHDL, la gating dell'orologio è tipicamente implementata utilizzando un segnale di attivazione dell'orologio (CE). Il segnale CE è generato dalla logica combinariale o da una macchina di transizione di stato finita che rileva le condizioni del valore.
L'approccio classico VHDL è quello di utilizzare una dichiarazione se all'interno di un processo orologio: [] Gli strumenti di sintesi inferiscono automaticamente una cella di gating dell'orologio (un fermo e un cancello E) da tale codice, a condizione che la probabilità di abilitare è sufficientemente alta per giustificare la testata.
La gating dell’orologio può ridurre la potenza dinamica del 20% al 50% nei disegni tipici, a seconda del fattore di attività. È particolarmente efficace nei circuiti dei percorsi dati, dove molti registri detengono valori di lunga durata. La capacità di VHDL di esprimere tale abilitare la logica lo rende concisamente il linguaggio di scelta per l’attuazione del gating dell’orologio sia in FPGA che in ASIC.
Potenza di raccolta
Il flusso di potenza[] è una tecnica più aggressiva che taglia la tensione di alimentazione a un intero blocco, eliminando il consumo di energia sia dinamica che statica. Nei progetti ASIC, la schermatura di alimentazione viene realizzata inserendo gli interruttori di alimentazione (solitamente intestazione o footer switch) tra l'alimentazione elettrica e la rete di alimentazione interna del blocco.
Durante la transizione al sonno, il controller afferma prima un segnale di ritenzione (per i registri di stato-retentivo), poi disabilita l'orologio, quindi apre l'interruttore di alimentazione. Durante la veglia, l'interruttore è chiuso prima, la tensione si dilaga (modellato tramite ritardi nella simulazione), poi l'orologio è ri-applicabile dichiarazioni di verifica.
La funzione di accoppiamento di potenza può ridurre l'alimentazione statica per ordini di grandezza, ma introduce la superficie di sovraccarico per interruttori e celle di isolamento, e aumenta la complessità della planimetria. VHDL consente al progettista di parametrizzare il numero di domini di potenza e i protocolli di controllo, rendendo il design scalabile.
Scala dinamica di tensione e frequenza (DVFS)
La tensione di abbassamento riduce sia la potenza dinamica che quella statica quadratica, mentre la frequenza di abbassamento riduce la potenza dinamica linearmente. In VHDL, il controllo DVFS può essere implementato come una macchina di stato che monitora i contatori di prestazioni o le richieste esterne, e poi emette comandi a un regolatore di tensione (tramite un'interfaccia seriale come I2C) e ad un orologio di divisione PLL o programmabile.
Ad esempio, un modulo VHDL potrebbe rilevare che un processore è in un periodo di bassa utilizzazione e istruisce l'unità di gestione della potenza (PMU) per ridurre la tensione di base a 0.8V e dimezzare la frequenza dell'orologio.
I forti tipi di digitazione e di enumerazione di VHDL sono adatti per definire coppie di tensione/frequenza (ad esempio, il tipo dvfs state è (HIGH PERF, MEDIUM, LOW POWER) e le condizioni di transizione. La logica sintetizzata risultante è compatta e veloce.
Domini e turni a più livelli
Quando un design contiene domini di tensione multipli (ad esempio, un nucleo di 1.0V e un I/O di 1.8V), i segnali che attraversano i domini devono passare attraverso i turnisti di livello per evitare cancelli dannosi o interpretazioni sbagliate dei livelli logici. VHDL consente ai progettisti di istantanare i componenti del livello di spostamento esplicitamente e descrivere la topologia del dominio di potenza utilizzando attributi o costanti del pacchetto.
Per i disegni ASIC, VHDL può essere utilizzato per definire i domini di potenza e per annotare quali registri appartengono a quale dominio. Queste informazioni vengono trasmesse allo strumento place-and-route per guidare la creazione di anelli di potenza e switch. In FPGAs, i domini multi-tensione sono spesso mappati a diverse banche o rotaie VCC, e vincoli VHDL (ad esempio, utilizzando attributi di sintesi) aiutano lo strumento ad assegnare i giusti standard I
Strategie avanzate per la gestione del potere
La Retenzione di Stato e la Logica di Wake-Up
Quando un blocco è alimentato, lo stato interno viene perso a meno che non vengano utilizzati registri speciali di stato-retentive. Questi registri hanno una fornitura secondaria che rimane, mantenendo il contenuto infradito durante il sonno. VHDL può modellare tali registri istantaneendo una ritenzione flip-flop primitivo o utilizzando un'entità personalizzata che include un ingresso di ritenzione. La logica di controllo emette un segnale di salvataggio prima di power-off e un segnale di ripristino dopo il wake-up.
I registri di conservazione aumentano l'area ma riducono drasticamente il tempo di svegliamento perché il blocco può riprendere dove è partito senza ricaricarsi dalla memoria. I banchi di prova VHDL possono simulare i cicli di ritenzione, riducendo il perno di ritenzione e verificando l'integrità dei dati.
Scala di tensione adattiva (AVS)
AVS è una tecnica a ciclo chiuso che regola la tensione in base alle prestazioni in silicio reali, spesso utilizzando un percorso di replica o un oscillatore ad anello per misurare la velocità di processo. VHDL può implementare il loop di controllo digitale, tra cui un'interfaccia ADC (ad esempio, per la lettura del sensore di temperatura on-chip) e un compensatore PID che calcola un codice di tensione di destinazione.
AVS può raggiungere margini di tensione quasi ottimali, risparmiando 10-30% di potenza in più rispetto alla tensione del peggiore dei casi fissi. Le operazioni aritmetiche di VHDL e la libreria numeric std lo rendono semplice per implementare l'algoritmo di controllo.
Considerazioni e sfide di progettazione
La gestione dell'energia di implementazione in VHDL richiede un'attenta considerazione dei vincoli di temporizzazione, soprattutto durante le transizioni di modalità. La gating dell'orologio introduce un rapporto di configurazione/hold tra il segnale di attivazione e il bordo dell'orologio, che deve essere soddisfatto per evitare gli ictus.
L'integrità del segnale è un'altra preoccupazione: quando gli orologi sono chiusi, la fermata improvvisa e l'avvio possono causare rumore di alimentazione-fornitura. La simulazione VHDL da sola non può catturare effetti analogici, quindi si raccomanda la simulazione mista-segno o l'analisi post-layout. Inoltre, la logica di controllo consuma l'energia; questa sovraccarica deve essere pesata contro i risparmi per garantire il vantaggio netto.
Per la sintesi, i progettisti dovrebbero evitare di scrivere VHDL che crea accidentalmente latches o loop combinatori nei percorsi di controllo di potenza. L'uso di reimpostazioni sincroni e macchine stato ben definite è consigliato. Strumenti come Xilinx Vivado o Synopsys Design Compiler forniscono opzioni di sintesi a bassa potenza che ottimizzano automaticamente la gating orologio e la gating di potenza in base ai segnali di VHDL abilitare.
Verifica e simulazione delle funzionalità di gestione del potere
La verifica della gestione dell'energia è impegnativa perché coinvolge più stati di potenza, eventi di sveglia asincrono e interazioni con il resto del sistema. I banchi di prova VHDL possono modellare il comportamento del dominio di potenza mediante l'utilizzo di segnali di tensione di alimentazione (reali o virtuali) e introducendo ritardi per il dilagamento della tensione.
Gli strumenti di stima di potenza possono leggere i file di attività di simulazione VHDL (VCD, SAIF) per calcolare la potenza dinamica.Per la potenza statica, le tabelle di perdita per ogni cella di tecnologia sono combinate con probabilità di commutazione.
Applicazioni reali nel mondo
La gestione della potenza basata su VHDL è pervasiva nei SoC mobili, nei microcontrollori IoT, nelle reti ASIC e nei moduli radar automobilistici. Ad esempio, un processore a basso potere IoT in 28nm CMOS utilizza VHDL per implementare modalità di sonno multiple: un sonno leggero con detersivo dell'orologio, un sonno profondo con il gating di potenza (tenendo solo un piccolo dominio sempre su), e una modalità di arresto che taglia completamente l'alimentazione.
Nei progetti FPGA, come quelli trovati nelle radio definite dal software o nella lavorazione della banda base, la gestione della potenza VHDL può far oscillare le frequenze dell'orologio in base al caricamento del canale, riducendo drasticamente la dissipazione del calore.
Conclusioni
La sua capacità di modellare logica di controllo, macchine di stato e interfacce ad alto livello, unita alla sua capacità di sintesi, lo rende ideale per descrivere gating orologio, gating di potenza, DVFS fondazione e altre tecniche. Designer che padroneggiano la gestione della potenza VHDL può ottenere significative riduzioni sia in potenza dinamica che statica, migliorare l'efficienza del sistema e estendere ulteriormente la vita del prodotto.
Per ulteriori informazioni sui concetti di gestione del potere, vedere gli articoli di Wikipedia su clock gating, power gating, e dinamica tensione e scalatura di frequenza]. Per linee guida pratiche dettagliate, Xilinx Power Analysis Guide[7