Dati anagrafici, formazione e stato di servizio

 

Francesco Bruschi è nato a Milano, il 12/01/1975.

 

Il 21/12/2000 ha conseguito, presso il Politecnico di Milano, la laurea in Ingegneria Elettronica, indirizzo Segnali e Sistemi, con una valutazione di 96/100, discutendo una tesi dal titolo “Test di architetture VLIW” (relatore prof. Donatella Sciuto).

 

Nel 2001 ha vinto il concorso per l’ammissione al dottorato di ricerca in Ingegneria dell’Informazione, XVI ciclo, con una borsa di studio offerta da Siemens ICN, dal tema: “Metodologie e strumenti per la progettazione di sistemi digitali con componenti programmabili ed interazione hardware/software”.

 

Attualmente è studente di dottorato di ricerca in Ingegneria dell’Informazione presso la sezione informatica del Dipartimento di Elettronica e Informazione, Politecnico di Milano.

 

Attività didattica

 

 

Esternamente al Politecnico di Milano

 

Anno scolastico 1999-2000

 

Docenza dell’insegnamento Sistemi di Elaborazione e Trasmissione dell’Informazione presso l’Istituto Tecnico Industriale Badoni di Lecco

 

 

Presso il Politecnico di Milano

 

Anno accademico 2000-2001

 

Supporto alla didattica nell’ambito del corso Informatica 2 per il prof. Fabrizio Ferrandi

Supporto alla didattica nell’ambito del corso Informatica 2, Laurea on Line, per il prof. Roberto Negrini.

 

Anno accademico 2001-2002

 

Supporto alla didattica nell’ambito del corso Informatica 2 per il prof. Fabrizio Ferrandi

Supporto alla didattica nell’ambito del corso Informatica 2, Laurea on Line, per il prof. Roberto Negrini.

 

Anno accademico 2002-2003

 

Supporto alla didattica e agli esami nell’ambito del corso Informatica A per Gestionali, per la prof. Cristina Silvano

Supporto alla didattica nell’ambito del corso Informatica 2 per il prof. Fabrizio Ferrandi

Supporto alla didattica nell’ambito del corso Informatica 2, Laurea on Line, per il prof. Roberto Negrini.

 

Tra il 2000 e il 2003 ha inoltre seguito il lavoro di diversi studenti e tesisti impegnati in progetti concernenti l’utilizzo e la definizione di strumenti per il disegno assistito al calcolatore di sistemi elettronici digitali. La maggior parte di questi lavori si è svolta presso il laboratorio di Microarchitetture del Dipartimento di Elettronica e Informazione, Politecnico di Milano.

 

 

Attività scientifica

 

Validazione e test di sistemi digitali descritti a diversi livelli di astrazione

Nel contesto della progettazione di sistemi digitali complessi, il problema della verifica funzionale tende ad occupare una parte sempre più rilevante del tempo dedicato al progetto. Oltre ad essere strategicamente importante per la produzione di dispositivi affidabili, questa attività può avere un impatto decisivo sul costo di realizzazione di un prodotto. In particolare, la possibilità di applicare tecniche di verifica dai primi momenti del progetto può ripercuotersi positivamente sia sui costi di sviluppo sia sulla riduzione del time-to-market. Gli errori funzionali che non sono identificati immediatamente inducono difatti uno sforzo implementativo inefficiente, essendo poi necessaria una correzione di questi nel modello di più alto livello. L’esigenze di realizzare tecniche di verifica funzionale applicabili a tutti i livelli di astrazione nei quali si articola il progetto è quindi un requisito fondamentale per l’ottimizzazione delle pratiche di progetto.

Il lavoro di ricerca ha affrontato, nel vasto panorama della verifica funzionale a diversi livelli di astrazione, i seguenti argomenti:

 

Test di processori con architettura VLIW [B.1]

L’analisi delle peculiarità dei processori a parallelismo esplicito (EPIC), e ad istruzione lunga (VLIW) ha portato alla definizione ad-hoc per questa famiglia di processori di una metodologia di generazione per il test.

L’innovazione della proposta consiste nello sfruttare la peculiare struttura di questi dispositivi per l’applicazione dei test e la propagazione degli effetti, osservabili alle uscite del dispositivo. Inoltre, per la generazione del test è stata definita la tecnica della proiezione delle unità funzionali sulle operazioni, che consente applicare degli Automatic Test Pattern Generators (ATPG) per generare programmi macchina di test, riducendo la complessità della generazione.

 

Generazione di sequenze di ingresso per la verifica di modelli comportamentali

Un altro problema nella verifica funzionale è la generazione di sequenze d’ingresso in grado di sollecitare la maggior parte dei comportamenti “critici” di un sistema. I requisiti per questi algoritmi sono la velocità di generazione, la compattezza delle sequenze generate, e l’abilità delle stesse nell’evidenziare la presenza di eventuali errori. La ricerca in questo settore ha prodotto la proposta di un algoritmo per la generazione di sequenze di test, basato sull’enumerazione di percorsi nello spazio di stato di modelli descritti con in stile comportamentale in SystemC. Caratteristica peculiare di questa proposta è la formulazione del problema della giustificazione agli ingressi come problema di soddisfacibilità (SAT).

 

Simulazione di errore e di guasto[B.3]

Nel contesto della verifica funzionale la possibilità di simulare la presenza di errori in un modello è necessaria per diversi motivi, tra i quali la valutazione della qualità delle sequenze di test prodotte. Questa qualità può difatti essere valutata attraverso la “copertura” degli errori. La copertura può a sua volta essere definita come la frazione degli errori che vengono evidenziati dalla sequenza di test rispetto al totale di quelli possibili. E’ evidente la copertura dipende dalla definizione d’errore utilizzata, vale a dire dai cosiddetti “modelli d’errore”. Per valutare la copertura di una sequenza d’ingresso rispetto ad un dato modello d’errore è necessario poter verificare, per ciascun possibile errore, che questo sia evidenziato dall’applicazione della sequenza. La ricerca in questo settore ha prodotto una metodologia per la simulazione di guasto di modelli SystemC descritti a diversi livelli d’astrazione. Attraverso l’utilizzo di funzioni d’iniezione d’errore, e di una fase di instrumentazione del codice, è possibile simulare molti dei modelli di errore interessanti ai fini della verifica, con un minimo sovraccarico dell’esigenza computazionale.

 

Metodologie e strumenti per la specifica e il progetto di sistemi digitali con interazione di componenti hw/sw e riconfigurabili

Un settore del mercato elettronico in forte e costante espansione è quello dei dispositivi embedded. La complessità di questi sistemi è in costante aumento e questo genera nuove esigenze sia nei confronti delle soluzioni architetturali implementative che delle metodologie di progetto. La risposta più promettente al problema delle architetture è quella delle cosidette "platform FPGA": queste sono sistemi su singolo chip composti da uno o più processori, periferiche e grandi quantità di logica programmabile (FPGA). L'adozione di queste architetture apre possibilità che, per essere sfruttate, richiedono di affrontare in maniera innovativa alcune classiche problematiche del progetto, tra le quali la specifica, l'hardware/software codesign, la verifica funzionale. La ricerca svolta in questo ambito ha riguardato lo studio delle problematiche concernenti la realizzazione di un flusso di progetto che, partendo da descrizioni del sistema in qualche linguaggio di alto livello (C, C++ o varianti di questi per la descrizione dell'hardware) portasse alla realizzazione del sistema su un'architettura composta da processori e logica programmabile sullo stesso chip.

 

Metodologie per la specifica di sistemi digitali con formalismi orientati agli oggetti [B.2] [B.4] [C.1] [D.1]

I formalismi orientati agli oggetti hanno rivoluzionato il panorama della progettazione dei sistemi software a tutte le complessità. Una questione interessante nel contesto della progettazione hardware è se questa tecnologia possa essere utilizzata per il progetto di sistemi digitali complessi, apportando benefici tra i quali la riusabilità dei componenti e l’efficienza nel progetto (cambia).

In questo contesto, il lavoro di ricerca ha esplorato la possibilità di utilizzare un formalismo tipico della progettazione ad oggetti quale UML nella modellizzazione di sistemi hardware e hardware/software. E’ stato proposto un flusso di progetto basato su SystemC come linguaggio di descrizione.

Inoltre, nel contesto del progetto ESPRIT Odette, sono state esplorate le potenzialità dell’uso di tecniche orientate agli oggetti quando sia possibile effettuare una sintesi automatica di simili descrizioni.

 

Strumenti per l’analisi di modelli funzionali e transaction based [B.5]

L’evoluzione dei linguaggi di progetto per i sistemi digitali ha, tra i suoi effetti, quello di fornire al progettista formalismi per descrivere i sistemi a livelli di astrazione sempre diversi in un contesto sintattico uniforme; questo avviene ad esempio con SystemC, linguaggio in grado di esprimere modelli sia a livello di porta logica sia a livello funzionale atemporizzato. Tra questi livelli di astrazione, particolare interesse sta suscitando quello transaction-based, che può essere visto come fase intermedia tra una specifica funzionale pura e un sistema descritto in stile Register Transfer Level (RTL). Per sfruttare appieno le potenzialità di questo formalismo, è necessario definire delle metodologie e degli strumenti che consentano il raffinamento di una descrizione transaction-based, assistendo il progettista nelle scelte architetturali necessarie.

La ricerca svolta in questo ambito ha portato alla definizione di una serie di metriche che, calcolate su un modello transaction-based consentono di stimare le prestazioni del sistema dopo aver operato le principali scelte architetturali.

 

Modellizzazione ad alto livello della riconfigurabilità e sintesi automatica su dispositivi FPGA

I dispositivi riconfigurabili come i Field Programmable Gate Arrays (FPGA) stanno costantemente crescendo in diffusione nei sistemi embedded; le ragioni di questa crescita sono, tra le altre, i bassissimi costi non ricorrenti di ingegnerizzazione (NRE) dovuti alla possibilità di realizzare prototipi con una spesa molto minore di quella necessaria per i circuiti dedicati (ASIC).

La presenza di questi componenti riprogrammabili offrirebbe anche la possibilità di progettare sistemi innovativi in cui le risorse hardware possono variare durante il funzionamento. Uno degli ostacoli da superare per aprire questa prospettiva è la mancanza di strumenti che consentano di modellizzare la riconfigurabilità di un sistema hardware o hardware/software. La ricerca svolta in questo campo ha esplorato la possibilità di utilizzare il modello di riconfigurabilità, presente nativamente in alcuni linguaggi (come ad esempio Java), offerto dal caricamento dinamico delle classi. Attualmente l’interesse maggiore riguarda la formulazione di un algoritmo per la sintesi di descrizioni che utilizzino il caricamento dinamico delle classi su componenti riconfigurabili come le FPGA.

 

 

Pubblicazioni

 

Su atti di conferenze con comitato di revisione internazionale

 

[B.1] M. Beardo, FRANCESCO BRUSCHI, F.Ferrandi, D. Sciuto,
“An Approach to Functional Testing of VLIW Architectures”,
Proc. IEEE HLDVT'00 – 5th IEEE International Workshop on High Level Design Validation and Test, Berkeley, California, USA, November 8-10, 2000, pp. 29-33.

 

[B.2] Massimo Bombana, FRANCESCO BRUSCHI, Fabrizio Ferrandi e Donatella Sciuto

“SystemC Specification of a Telecom Compatible PCI Interface”

Proc. Design Automation and Test in Europe (DATE) 2002, 4-8 marzo, Parigi

 

[B.3] FRANCESCO BRUSCHI, Michele Chiamenti, Fabrizio Ferrandi e Donatella Sciuto

Error simulation based on the SystemC design description language”

Proc. Design Automation and Test in Europe (DATE) 2002, 4-8 marzo, Parigi

 

[B.4] FRANCESCO BRUSCHI, Elisabetta di Nitto, Donatella Sciuto
SystemC code generation from UML models”
Proc.
Forum on Design Languages, Marsiglia, Francia, 2002

 

[B.5] Giampaolo Agosta, FRANCESCO BRUSCHI, Donatella Sciuto
“Static Analysis of Transaction Level Models”
Accettato per la pubblicazione su Proceedings of DAC 2003, Anaheim, CA, USA

 

[B.6] FRANCESCO BRUSCHI, Massimo Bombana
“SystemC-VHDL co-simulation and synthesis in the HW domain”
Proc. DATE 2003, Munich, Germany, March 3-7, 2003, pp. 101-106

 

[B.7] FRANCESCO BRUSCHI, Fabrizio Ferrandi
“Synthesis of complex control structures from behavioral SystemC models”
DATE 2003, Munich, Germany, March 3-7, 2003, pp. 112-118

 

Capitoli di libri con comitato di revisione internazionale

 

[C.1] FRANCESCO BRUSCHI, Luciano Baresi, Elisabetta di Nitto, Donatella Sciuto
SystemC code generation from UML models”
Accettato per la pubblicazione su :"System Specification and Design Languages"
CHDL Series
Kluwer, 2003

 

Rapporti per progetti ESPRIT

 

[D.1] Massimo Bombana, FRANCESCO BRUSCHI
IST Framework 5 Odette project,

Internal report “Industrial design example specification”

 

[D.2] Massimo Bombana, FRANCESCO BRUSCHI
IST Framework 5 Odette project,

Internal report “Telecom specific class library specification”

 

[D.3] Massimo Bombana, FRANCESCO BRUSCHI

“Evaluation Report on Methodologies and Tools based on 1st prototypes”

Rapporto interno per ODETTE, progetto ESPRIT

 

Rapporti interni

 

[E.1] FRANCESCO BRUSCHI
”A UML based methodology for the specification and design of embedded systems”
Rapporto Interno n.2002.5 , Anno 2002

 

Altro

 

Comitati di programma e attività di revisione

 

E’ stato revisore per le conferenze Forum on Design Languages (FDL), Design, Automation and Test in Europe (DATE).

 

Collabora alla revisione di articoli sottomessi alla rivista “Design and Test Automation of Embedded Systems”, edita da Kluwer.