ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE. Design Flow



Documenti analoghi
Concetti di base di ingegneria del software

Dispensa di Informatica I.1

Lo sviluppo del software: usi e clausole commentate Aspetti Tecnici. Prof. Franco Sirovich Dipartimento di Informatica Università di Torino

Elettronica dei Sistemi Programmabili

IL PROCESSO DI FABBRICAZIONE (sviluppo nuovo prodotto)

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A2_3 V2.0. Processi. Scelta dei processi adeguati

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Architetture Applicative

Dispense di Informatica per l ITG Valadier

Database. Si ringrazia Marco Bertini per le slides

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Approccio stratificato

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Progettazione dei Sistemi di Produzione

e-dva - eni-depth Velocity Analysis

Ingegneria del Software 12. Progettazione. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Tecniche di Prototipazione. Introduzione

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

ARTICOLO TECNICO Smart-MED-Parks: il Software

VMware. Gestione dello shutdown con UPS MetaSystem

Vulnerability Assessment relativo al sistema Telecom Italia di autenticazione e autorizzazione basato sul protocollo Radius

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Informatica per le discipline umanistiche 2 lezione 14

Ciclo di vita del software

WEB SEMINAR Dettaglio servizio

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Pro e contro delle RNA

L evoluzione del mosaico digitale

TECNICHE DI SIMULAZIONE

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

12. Evoluzione del Software

IL SOFTWARE SECONDO LA NORMA UNI EN ISO :2008 (IIA PARTE) 1

Fasi di creazione di un programma

Soluzione dell esercizio del 12 Febbraio 2004

Hardware delle reti LAN

cin>>c8 s.r.l. Analisi del Dominio Pagina 1 di 7 Analisi del Dominio

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione.

L ergonomia dei sistemi informativi

REGTEL 5. La registrazione digitale delle telefonate

4.1 Che cos è l ideazione

Strumenti di modellazione. Gabriella Trucco

Sistemi Web! per il turismo! - lezione 3 -

Lo scenario: la definizione di Internet

La Progettazione Concettuale

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Esercizi su. Funzioni

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO

11. Evoluzione del Software

Base di dati e sistemi informativi

Scenario di Progettazione

- 2 % 7, 0 ( 3 / 8 6

7. Architetture Software

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

Soluzioni integrate per la gestione del magazzino

Introduzione alla Progettazione per Componenti

Creare una Rete Locale Lezione n. 1

Cosa è un foglio elettronico

Che cos è un prototipo? Perchè creare prototipi?

Metodologie di programmazione in Fortran 90

PiattoRicco_XL (Versione 1.0) Software gratis e open source per il controllo di gestione nella ristorazione

Piano di gestione della qualità

Laboratorio di Informatica

Implementing a new ADT based on the HL7 version 3 RIM. Esempio

FABBRICAZIONE ADDITIVA: L ARTIGIANATO DEL FUTURO?

LA SOLUZIONE. EVOLUTION, con la E LA TECNOLOGIA TRASPARENTE IL SOFTWARE INVISIBILE INVISIBILE ANCHE NEL PREZZO R.O.I. IMMEDIATO OFFERTA IN PROVA

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Indice. pagina 2 di 10

Progettazione dei Sistemi Produttivi. Sergio Terzi

Le fattispecie di riuso

Esempi di algoritmi. Lezione III

Approfondimento: Migrazione dei database e backup della posta

Metodo Condomini e MultiDialogo

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Identificare le classi in un sistema

Introduzione alla Cooperazione applicativa in Campania

Specifiche dello sviluppo di un progetto software e indicazioni sulla documentazione e sulle modalità di esercizio delle prestazioni

Informatica per la comunicazione" - lezione 8 -

RISOLUTORE AUTOMATICO PER SUDOKU

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Strumenti per la gestione della configurazione del software

Specifiche tecniche e funzionali del Sistema Orchestra

PLC Sistemi a Logica Programmabile Il linguaggi di programmazione

Il modello veneto di Bilancio Sociale Avis

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Reti di calcolatori ed indirizzi IP

CALCOLO COMBINATORIO

La progettazione dell interfaccia HCI. Fabio Vitali

Sistemi informativi secondo prospettive combinate

Mac Application Manager 1.3 (SOLO PER TIGER)

Introduzione alla programmazione in C

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Calcolo del Valore Attuale Netto (VAN)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Ciclo di vita dimensionale

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Transcript:

ARCHITETTURE DI SISTEMI INTEGRATI PER APPLICAZIONI SPECIFICHE Design Flow Prof. Luigi Raffo Dipartimento di ingegneria elettrica ed elettronica Università di Cagliari

Flusso di progetto classico su silicio Prof. L. Raffo 25-set-04 DF-1

Descrizione del design-flow classico Quello che si vede e` il classico approccio Top-down alla progettazione (o anche a cascata, water-fall). Identifichiamone le parti principali: Progetto di sistema/architetturale: sviluppo dell idea di sistema e verifica del modello, identificazione dei sottoblocchi principali. Realizzazione dei blocchi: a seconda delle esigenze si puo` decidere di implementare tali blocchi direttamente a livello circuitale (progettazione full-custom) oppure attraverso la sintesi RTL (progettazione standard-cells). Realizzazione fisica: i blocchi progettati vengono messi assieme nel modo piu` conveniente per temporizzazioni e prestazioni (placement and routing). Viene stabilito il layout fisico determinando un subset delle maschere necessarie (file GDSII) che messe assieme alle informazioni sulla tecnologia determinano in maniera univoca la struttura del chip finale. Nello schema non si vedono dei ricircoli, ma ogni passo deve avere un punto di simulazione e verifica che si sta procedendo come previsto. Di solito ogni parte ha esperti specializzati che non si occupano del restante flusso di progetto. La parte piu` cruciale per la riuscita del progetto (anche in relazione all importanza che normalmente si da ad essa) e` sicuramente quella di definizione del sistema. Prof. L. Raffo 25-set-04 DF-2

Flusso digitale top-down Questo e` un dettaglio della progettazione basata su sintesi RTL. Lo scopo finale puo` anche essere l implementazione su FPGA. Prof. L. Raffo 25-set-04 DF-3

Progettazione di sistemi su chip (SoC) Il design-flow top-down e` perfetto per chip/sistemi che devono essere sviluppati completamente da zero. Questo e` il caso di moduli specifici (un moltiplicatore, un sommatore per esempio) ben definiti come interfaccia e prestazioni e di complessita` limitata. Le capacita` di integrazione su silicio hanno portato a mettere su un singolo pezzo di silicio dei sistemi anche molto complessi per esempio della complessita` di un semplice computer o di un modulo base di un cellulare. Questi sistemi (system-on-chip) non sono progettati completamente, ma utilizzano in gran parte moduli gia` disponibili sul mercato (IP), limitandosi quindi al progetto di alcuni moduli specifici e dell assemblaggio dei vari moduli. Deve essere chiaro che il risultato finale e` comunque un unico chip. Gli IP (intellectual property) sono forniti in una forma adatta alle esigenze di progettazione, possono essere di tipo: Soft-IP: viene fornita una versione RTL sintetizzabile Hard-IP: vengono fornite le maschere dell oggetto Nel primo caso ci deve essere una compatibilita` con la tool-chain usata dal progettista. Nel secondo deve essere usata per la specifica tecnologia utilizzata. La progettazione per SoC non puo` quindi essere globalmente di tipo top-down perche` deve tenere conto che alla base ci devono essere il piu` possibile blocchi gia` disponibili sul mercato. Tale esigenza e` l unica compatibile con il time-to-market richesto attualmente. La progettazione quindi diventa quasi spiroidale: parte dalle esigenze di sistema (top) ma anche dagli IP disponibili (bottom). Prof. L. Raffo 25-set-04 DF-4

Design flow a spirale Quello che segue e` un design flow tipico della progettazione di un SoC in cui tutti gli aspetti del progetto sono tenuti in considerazione parallelamente. Questa tecnica permette di avere subito una valutazione di come una scelta architetturale incida sul progetto fisico finale. Prof. L. Raffo 25-set-04 DF-5

Progetto di un modulo-design for reuse In questo contesto e` ovvio che se lo scopo e` quello di progettare un blocco comune puo` essere vantaggioso progettarlo per essere riusabile (Design for reuse). Un modulo per essere semplicemente usabile deve essere: ben documentato ben commentato scritto in un codice comprensibile ben determinata la procedura di verifica Un modulo per essere anche riusabile deve essere: progettato per risolvere un problema generale progettato per funzionare con diversi simulatori progettato con interfacce standard verificato separatamente dal chip per il quale e` stato progettato verificato in modo estremamente accurato completamente documentato indicando possibili applicazioni e limitazioni Di solito il progettista e` soggetto a scadenze molto stringenti, quindi non e` facile convincerlo a sviluppare design-for-reuse (si stima che si impieghi fino a 2/3 volte il tempo necessario per sviluppare un progetto non riusabile), daltronde si stima che il vantaggio di riutilizzare un modulo non sviluppato per esserlo e` irrisorio (1/2, 1/3 del tempo necessario a svilupparlo da zero). A prescindere comunque dalle considerazioni di convenienza, e` certo che lo sviluppo di moduli da usare in sistemi complessi/soc richiede la capacita` di maneggiare due principi che sono ormai cardine: riusabilita` e verificabilita`. Prof. L. Raffo 25-set-04 DF-6

La definizione del problema (specification) La prima parte della progettazione consente di sviluppare, verificare e rifinire fino a che non si ottengano delle specifiche sufficientemente dettagliate per permettere la codifica RTL. Questa prima parte e` di solito la piu` delicata e la piu` sottovalutata. In generale questa fase chiede che vengano definite: Funzionalita` Interfacce esterne ad altro hardware Interfacce verso il software Temporizzazioni Prestazioni Vincoli sull implementazione fisica come area e potenza Se il sistema ha una parte software: Funzionalita` Temporizzazioni Prestazioni Interfaccia con l hardware Struttura del software Le specifiche possono essere: Formali Esistono linguaggi specifici che definiscono funzionalita` e vincoli Eseguibili Un programma C, C++ o SystemC che implementa la funzionalita` del sistema richiesta. Questo metodo e` molto utile/utilizzato, ma specie se si usa C e C++, non permette di mettere vincoli su temporizzazioni e dissipazione di potenza per esempio. Prof. L. Raffo 25-set-04 DF-7

Progettazione di sistema La progettazione di un sistema SoC deve determinare tra l altro: cosa va su software cosa va su hardware se utilizzare un processore, quale e quanti che blocchi devono essere sviluppati, quali acquistati Si procede con: determinazione delle specifiche di sistema sviluppo di un modello comportamentale raffinare il modello comportamentale attraverso il test determinare cosa mettere su harware, cosa mettere su software sviluppare un modello architetturale raffinare il modello architetturale attraverso il test specificare i blocchi da implementare. La progettazione di un chip deve prevedere quindi una ampia parte di investigazione a livello di sistema/architetturale che deve essere affrontata con mezzi che non sono tipici della progettazione classica. Servono quindi linguaggi di programmazione (C/C++) o linguaggi specifici (SystemC) o tools di sviluppo (ad esempio Simulink per il Digital Signal Processing). Prof. L. Raffo 25-set-04 DF-8