Post on 09-Jan-2016
description
POLITECNICO DI MILANO
Marco Fracassi Matr. 665268
Pamela Gotti Matr. 663638
Valutazione di ImpulseC Valutazione di ImpulseC nell’ambito di co-design enell’ambito di co-design ericonfigurabilità dinamicariconfigurabilità dinamica
Relatore: Prof. Anna AntolaRelatore: Prof. Anna Antola
Correlatore: Ing. Marco Domenico SantambrogioCorrelatore: Ing. Marco Domenico Santambrogio
2
SommarioSommario
•Obiettivi
•Panoramica dei linguaggi ad alto livello
•ImpulseC: potenzialità e limiti
•Hardware/software codesign
•Riconfigurabilità dinamica
•Test effettuati: algoritmi di rilevazione dei contorni
•Risultati
•Conclusioni e sviluppi futuri
3
ObiettiviObiettivi
Studiare un framework di sviluppo per applicazioni basate su un linguaggio ad alto livello
Scegliere uno tra i vari framework disponibili sul mercato: è stato scelto ImpulseC
Capire come ImpulseC possa essere inserito in un discorso legato ad Hardware/Software co-design
Valutare ImpulseC per quanto riguarda stima delle prestazioni, cosimulazione, possibilità di partizionare l’applicazione
Capire come ImpulseC possa essere utilizzato nell’ambito di un sistema riconfigurabile
Studio di ImpulseC all’interno dell’architettura riconfigurabile Caronte
4
Panoramica sui linguaggi ad alto Panoramica sui linguaggi ad alto livellolivello
SystemC
JHDL CatapultC ImpulseC
Linguaggio utilizzato
C++ Java C++ C
Tipologia Open source
Open source
Proprietario Proprietario
Produce codice sintetizzabile
No Non sempre
Sì – ma a volte
illeggibile
Sì
Supporto a simulazione HW
No Sì Sì No
Supporto a stima delle prestazioni
No No Sì No
Facilità di sviluppo Alta Alta ma “verbosa
”
Alta Alta
5
ImpulseC : modello di ImpulseC : modello di programmazioneprogrammazione
Processo scritto
in standard C
Stream
outputsStream
inputs
Signal
input
Signal
outputs
Memoria condivisa
Lettura/scrittura
6
ImpulseC: potenzialita’ e limitiImpulseC: potenzialita’ e limiti
Vantaggi:Compatibilità con i compilatori standardGUI di supporto per lo sviluppo dei progettiElevata semplicità nella generazione dell’HDLPossibilità di abilitare varie tipologie di ottimizzazione (pipeline, unroll) Possibilità di simulazione software
Limiti:Supporto solo a dati di tipo interoSupporto solo ad alcune funzioni matematicheMancano degli strumenti per la stima delle prestazioniVincoli per la programmazione hardware:
Supporto per la ricorsione assente, puntatori risolti a compile time, limitato supporto alle strutture, utilizzo di chiamate a funzione limitato, supporto ai file assente
7
Hardware/software codesignHardware/software codesign
8
Riconfigurabilità dinamicaRiconfigurabilità dinamica
9
Metodologia: algoritmi di Metodologia: algoritmi di rilevazione dei contornirilevazione dei contorni
Canny Sobel
10
Risultati: stima tempi di esecuzioneRisultati: stima tempi di esecuzione
11
Risultati:sintesi dell’intera Risultati:sintesi dell’intera architetturaarchitettura
Canny Sobel
Area XP2VP7 XP2VP20 XP2VP30 XP2VP7 XP2VP20 XP2VP30
Slices 306% 162% 110% 672% 357% 242%
Flip flops 87% 46% 31% 41% 22% 15%
LUTs 258% 137% 93% 220% 117% 79%
IOBs 41% 29% 29% 14% 10% 10%
BRAMs 9% 4% 2% 9% 4% 2%
MULT18X18s
13% 6% 4% 27% 13% 8%
GCLKs 12% 12% 12 12% 12% 12%
Max.Freq.
57.039 MHz
57.039 MHz
57.039 MHz
64.602 MHz
64.602 MHz
64.602 MHz
Monolitico 7x7
12
Risultati:sintesi dei singoli Risultati:sintesi dei singoli corecore
Monolitico 7x7
Canny Sobel
XC2VP7 XC2VP20
XC2VP30
XC2VP7 XC2VP20
XC2VP30
Filtraggio Filtraggio
Slice 98% 52% 35% 614% 326% 220%
LUTs 83% 44% 30% 192% 102% 69%
Max Freq.
66.173 66.173 66.173 64.602 64.602 64.602
Non Maximum suppression Conversione in scala di grigi
Slice 205% 109% 74% 81% 43% 29%
LUTs 193% 102% 70% 77% 41% 27%
Max Freq.
91.552 91.552 91.552 108.010 108.010 108.010
Isteresi Convoluzione
Slice 108% 58% 39% 117% 62% 42%
LUTs 97% 52% 35% 89% 47% 32%
Max.Freq 97.194 97.194 97.194 73.157 73.157 73.157
13
Conclusioni e sviluppi futuriConclusioni e sviluppi futuri
Hardware/software codesign: ImpulseC supporta lo sviluppo di progetti e facilita il partizionamento dell’applicazione tra HW e SW; è molto veloce la generazione del VHDL, è quindi semplice l’esplorazione di scenari alternativi; non contiene strumenti per la stima delle prestazioni; consente una simulazione di tipo “desktop”Riconfigurabilita’: le architetture generate sono risultate troppo grandi per le schede disponibili in laboratorio: la riconfigurabilita’ e’ pertanto necessaria per la simulazione delle applicazioni sviluppate
All’interno del flusso di Caronte ImpulseC puo’ essere facilmente utilizzato per la generazione delle Black Box
Ulteriori sviluppi: stretta collaborazione con gli sviluppatori di ImpulseC e Xilinx per rendere completo il framework
14
Fine presentazione