POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC Valutazione di ImpulseC nell’ambito di co-design e nell’ambito di co-design e riconfigurabilità dinamica riconfigurabilità dinamica Relatore: Prof. Anna Antola Relatore: Prof. Anna Antola Correlatore: Ing. Marco Domenico Correlatore: Ing. Marco Domenico Santambrogio Santambrogio
14
Embed
POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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