Firmware - Luglio-Agosto 2014 / N°102/103 - (Page 60)
SPOTlight
Figura 5 - Codice iniziale in ambiente Vivado HLS, che non tiene conto del comportamento
della memoria tampone di linea dei dati video
e NlogN rispettivamente nello scenario
del caso peggiore, del caso medio e del
caso migliore. Nel frattempo, per l'algoritmo bubblesort, la complessità è N2, N2,
N. Questa, in sé, sembra una buona ragione per cercare un'alternativa.
Nell'elaborazione delle immagini è necessario un comportamento determini-
stico nel metodo di classificazione, allo
scopo di produrre l'immagine in uscita
ad una velocità costante. Di conseguenza, nessuno degli algoritmi sopra menzionati è un buon candidato per il nostro
progetto FPGA con Vivado HLS. Le reti di
classificazione offrono un modo per ottenere un tempo di esecuzione più rapido
attraverso il ricorso all'esecuzione parallela. Il blocco costruttivo fondamentale
di una rete di classificazione è il comparatore - un componente semplice che
può ordinare due numeri, a e b, e quindi
fornire il loro massimo e il loro minimo rispettivamente all'uscita superiore e all'uscita inferiore, effettuando un'inversione se necessario. Il vantaggio delle reti
di classificazione rispetto agli algoritmi
classici di ordinamento è che il numero
di comparatori è fissato per un determinato numero di ingressi. Di conseguenza, è semplice realizzare una rete di classificazione nell'hardware di un FPGA. La
figura 3 illustra una rete di classificazione per cinque campioni (progettata con
Xilinx System Generator). Notate che il ritardo di elaborazione è esattamente pari
a cinque campioni, indipendentemente
dal valore dei campioni in ingresso. Notate anche che i cinque segnali in uscita in parallelo sulla destra contengono i
dati ordinati, con il massimo in cima e il
minimo in fondo. La realizzazione di un
filtro delle mediane attraverso una rete di
classificazione in linguaggio C è immediata, come illustrato nel codice in figura 4. Le direttive stabilite con il tool Vivado HLS sono inglobate nel codice C in sé
(#pragma HLS). Vivado HLS richiede solo
due direttive di ottimizzazione per gene-
Figura 6 - Stima delle prestazioni di Vivado
HLS per il filtro delle mediane elementare
di riferimento, qualora dovesse essere usato
come una funzione reale di alto livello;
il risultato è lontano dall'ottimale
rare del codice RTL ottimale. La prima
consiste nel distribuire l'intera funzione
con un intervallo di inizializzazione di 1
per avere una velocità dei pixel in uscita
uguale alla frequenza di base dell'FPGA.
La seconda ottimizzazione consiste nel
rimodellare la finestra di pixel in registri
separati, migliorando così la banda e
accedendo a tutti i dati contemporaneamente in parallelo.
FOCUS ON
SKILLS
INSIDE
TOOLS
ANALOG
TIPS'N TRICKS
MARKET NEWS
SPOTLIGHT
EVENTS ZAPPING
MEMBERSHIP
Tabella dei contenuti per la edizione digitale del Firmware - Luglio-Agosto 2014 / N°102/103
TIPS'n tricks
FOCUS on Triplo DES con Microchip
SKILLs Delay/Block Debouncer
INside
Una Soluzione ZigBee a Singolo Chip
La famiglia XMEGA e gli ADC di Atmel
ANALOG “Sensing” Virtuale a 2-Fili per Regolatori di Tensione
SPOTlight
Proteggere gli Investimenti in R&D con l’Autenticazione Sicura
Vivado High-Level Synthesis
Il CMRR negli Operazionali ad Ampia Gamma Dinamica
News
EVENTS zapping
Guida
Firmware - Luglio-Agosto 2014 / N°102/103
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2015-02_109
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2015-01_108
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-12_107
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-11_106
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-10_105
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-09_104
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-07_102
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-06_101
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-05_100
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-04_99
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-03_98
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-02_97
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2014-01_96
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-12_95
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-11_94
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-10_93
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-09_92
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-07_90_91
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-06_89
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-05_88
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-04_87
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-03_86
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-02_85
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2013-01_84
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-12_83
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-11_82
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-10_81
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-09_80
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-07_78-79
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-06_77
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-05_76
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-04_75
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-03_74
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-02_73
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2012-01_72
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-12_71
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-11_70
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-10_69
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-09_68
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-07_66_67
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-06_65
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-05_64
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-04_63
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2011-02_62
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2011-02_61
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2011-01_60
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-12_59
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-11_58
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-10_57
https://www.nxtbook.com/newpress/inwaredizioni/Firmware/2010-09_56
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2010-07_54-55
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-2010-06_53
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Maggio-2010-52
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Aprile-2010-51
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Marzo-2010-50
https://www.nxtbook.com/newpress/inwaredizioni/Firmware-magazine/Febbraio-2010-49
https://www.nxtbookmedia.com