140 likes | 321 Views
Valutazione di ImpulseC nell’ambito di co-design e riconfigurabilità dinamica. Relatore: Prof. Anna Antola Correlatore: Ing. Marco Domenico Santambrogio. Sommario. Obiettivi Panoramica dei linguaggi ad alto livello ImpulseC: potenzialità e limiti Hardware/software codesign
E N D
Valutazione di ImpulseC nell’ambito di co-design ericonfigurabilità dinamica Relatore: Prof. Anna Antola Correlatore: Ing. Marco Domenico Santambrogio
Sommario 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
Obiettivi • 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
ImpulseC : modello di programmazione Memoria condivisa Lettura/scrittura Stream outputs Stream inputs Processo scritto in standard C Signal input Signal outputs
ImpulseC: potenzialita’ e limiti • Vantaggi: • Compatibilità con i compilatori standard • GUI di supporto per lo sviluppo dei progetti • Elevata semplicità nella generazione dell’HDL • Possibilità di abilitare varie tipologie di ottimizzazione (pipeline, unroll) • Possibilità di simulazione software • Limiti: • Supporto solo a dati di tipo intero • Supporto solo ad alcune funzioni matematiche • Mancano degli strumenti per la stima delle prestazioni • Vincoli 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
Metodologia: algoritmi di rilevazione dei contorni Canny Sobel
Risultati:sintesi dell’intera architettura Monolitico 7x7
Risultati:sintesi dei singoli core Monolitico 7x7
Conclusioni 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