Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Stima potenza dissipata FPGA

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto UtenteDirtyDeeds, Foto UtenteIsidoroKZ, Foto Utenteg.schgor, Foto UtenteBrunoValente

0
voti

[1] Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 17 mag 2019, 10:12

Salve a tutti,
devo iniziare in facoltà un progetto che prevede la stima e l'ottimizzazione della potenza dissipata da alcuni circuiti implementati su FPGA. Del progetto vero e proprio magari ne riparleremo in seguito, adesso chiedo un aiuto per la fase "preliminare".
Sto cercando di giocare con Vivado (tool-chain della Xilinx) su alcuni semplici circuiti per impratichirmi con la stima di potenza ma non riesco a capire se i risultati che ottengo sono coerenti o se mi sto perdendo qualcosa.
Ho disegnato questo semplice circuito: uno shift register a 2 posizioni ognuna da 32 bit, le uscite dei due registri vengono moltiplicate e salvate in un registro di uscita a 64bit.
3.png

Ho aggiunto il constrain solo per il clock a 100MHz.
Ottengo questa power analysis
4.png

In cui l'89% della potenza la utilizzano gli I/O e nei dettagli si vede che è praticamente tutta dei pin in uscita (che sono gli unici OUT).

E' giusto che sia così? Sono valori ragionevoli? Ho mancato qualcosa? Aumentando e diminuendo la frequenza di clock non cambia praticamente nulla (a me pare strano)

PS mi permetto di taggare Foto Utenteboiler solo perché ci siamo già sentiti in PM

Davide
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26

1
voti

[2] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utenteboiler » 17 mag 2019, 10:24

dadduni ha scritto:In cui l'89% della potenza la utilizzano gli I/O e nei dettagli si vede che è praticamente tutta dei pin in uscita (che sono gli unici OUT).


Non proprio: sugli I/O viene dissipato l'89% del 48% del totale, quindi il 43% del totale.
Il 52% se ne va in dissipazione statica (leakage & co).

Ora devi chiederti, di questa lista che vedo, quali fattori sono dipendenti dalla frequenza di clock e quali non lo sono?

Che FPGA è? Che carico hai definito sull'I/O?

Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

0
voti

[3] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 17 mag 2019, 11:04

sugli I/O viene dissipato l'89% del 48% del totale

E già qui mi hai dato una bella informazione, non mi ero accorto del riquadro e pensvo fosse una somma di statica e dinamica :roll:

Che FPGA è? Che carico hai definito sull'I/O?

Spartan 7. Ho lasciato il carico di default di Vivado a 1pF
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26

1
voti

[4] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utenteboiler » 17 mag 2019, 11:15

dadduni ha scritto:Spartan 7. Ho lasciato il carico di default di Vivado a 1pF


Quindi hai 64 reti da 1 pF da switchare a 100 MHz. Assumendo Vio = 3 V otteniamo

P_{I/O} = nfCV^2 = 64 \cdot 100  \mathrm{MHz} \cdot 1 \mathrm{pF} \cdot \left(3 \mathrm{V}\right)^2 = 0.0576 \mathrm{W}

Che è quello che ottieni da Vivado.

Boiler
Ultima modifica di Foto Utenteboiler il 17 mag 2019, 11:16, modificato 1 volta in totale.
Motivazione: refuso
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

0
voti

[5] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 17 mag 2019, 11:44

Per gli output pare sia assegnato LCVMOS118 con Vcco=1.8V
Inoltre ho un "default toggle rate" di 12.5%.

Il default toggle rate (correggimi se sbaglio) dovrebbe essere statisticamente quanto switchano gli ingressi.

Se faccio nfCV^2 \cdot (TR) = 64 \cdot 100MHz \cdot 1pF \cdot (1.8V)^2 \cdot 0.125 che fa molto di meno di quanto calcolato da te e dal simulatore. Dove sbaglio?
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26

1
voti

[6] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utenteboiler » 17 mag 2019, 13:16

Mhhh, non saprei.
Hai dato un'occhiata alla documentazione? Per esempio qui: https://www.xilinx.com/support/document ... erates.htm

Boiler
Avatar utente
Foto Utenteboiler
14,7k 4 7 13
G.Master EY
G.Master EY
 
Messaggi: 2522
Iscritto il: 9 nov 2011, 12:27

0
voti

[7] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 19 mag 2019, 14:54

Toggle Rate reflects how often an output changes relative to a given clock input and can be modeled as a percentage between 0-200%

Questa pagina l'avevo già letta ma non ne ho capito il senso.
Dice "quanto cambiano le uscite rispetto ai fronti di clock". Ma nel circuito in [1] ho due linee di flip-flop, la prima dello shift register e la seconda all'uscita del moltiplicatore. A quale delle due si riferisce? perché se le uscite dello schift register cambiano con un certo rate allora anche l'ultimo registro dopo la moltiplicazione cambia con lo stesso rate. Se invece si riferisce proprio all'uscita penso che vada bene il calcolo fatto prima in cui se lo switching rate è 12% moltiplico la potenza per 0.12
Che ne pensi?
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26

0
voti

[8] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 19 mag 2019, 15:43

Ho fatto un paio di prove empiriche,
secondo la tua formula la potenza dovrebbe essere lineare con C, invece aumentando e diminuendo C viene una lineare affine con una costante di 60mW che non so da dove vengono fuori. In effetti impostando 0pF di carico comunque vengono 58mW extra che sono... bho, le capacità di gate?
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26

0
voti

[9] Re: Stima potenza dissipata FPGA

Messaggioda Foto Utentedadduni » 26 mag 2019, 12:38

Salve di nuovo. Ho finito di sistemare un setup di prova funzionante. E per mia ignoranza ci ho messo più del dovuto ma ho imparato tante cose nuove. Adesso ho funzionanti: sistema di indirizzamento, file di stimolo con i dati da scrivere nelle memorie, le block ram, un testbench che automaticamente simula estrae i dati degli switching e fa il report di potenza. Quindi da adesso sarei operativo per iniziare a fare le prove ma..... quali prove?
La FPGA in questione ha blocchi di RAM da 512bit, che vengono combinati per arrivare a 72Kb. Se si instanzia una RAM più grande di 512 più blocchi vengono accorpati assieme e l'indirizzamento avviene come se fosse un blocco unico, ma si va a scrivere su Block separati.
Quindi la domanda da risolvere è:
questione da risolvere ha scritto:esistono combinazioni di scritture più svantaggiose di altre?
Magari qualche scrittura che richiede uno switching maggiore su blocchi diversi o se ci sono blocchi più svantaggiosi di altri (magari a causa dell'indirizzamento accorpato) eccecc.

C'è un metodo operativo standard per risolvere questo tipo di problemi? La mia personale soluzione sarebbe una specie di Montecarlo: provare a caso tante scritture e vedere quale consuma di più. Ci sono modi migliori e più standard?
Avatar utente
Foto Utentedadduni
1.655 2 6 12
Expert EY
Expert EY
 
Messaggi: 1028
Iscritto il: 23 mag 2014, 16:26


Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 28 ospiti