matite e gomma

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0

Validazione XHTML 1.0 Validazione CSS 3
Logo del Dipartimento di Matematica e Informatica, Insegnamento di Sistemi dedicati e laboratorio, link al Forum

CoDesign Hardware/Software

Introduzione

Giuseppe Scollo

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea Magistrale in Informatica


International School of Advanced and Applied Computing (ISAAC)
Catania, 21-25 Settembre 2015

Indice

  1. CoDesign Hardware/Software
  2. Obiettivi dell'introduzione
  3. Cosa è il codesign HW/SW?
  4. Perché il codesign HW/SW? Hardware flessibile ...
  5. ... sistemi dedicati, sistemi embedded
  6. Fattori tecnologici rilevanti del codesign HW/SW
  7. Fattori economici rilevanti del codesign HW/SW
  8. Spazio di progetto di architetture dedicate
  9. Livelli di astrazione di modelli per il codesign
  10. Linguaggi di descrizione dell'hardware
  11. Un piccolo esempio in GEZEL
  12. Progetto di System-on-Chip (SoC)
  13. Interfacce HW/SW
  14. Piattaforme per il codesign
  15. Cosimulazione di sistemi HW/SW
  16. Panoramica della piattaforma GEZEL
  17. Testi introduttivi
  18. Testi per approfondimenti
  19. Siti web di interesse

Obiettivi dell'introduzione

Motivazione e concetti fondamentali di:

Cosa è il codesign HW/SW?

Una definizione "tradizionale":

Una definizione "non tradizionale":

Qual è la differenza?

Perché questa differenza? V. appresso...

Perché il codesign HW/SW? Hardware flessibile ...

Hardware flessibile, in varia misura:

simulatore di PLA esempio di circuito su PLA: semisommatore

... sistemi dedicati, sistemi embedded

I due termini non sono sinonimi:

Sistemi embedded: grande varietà, mercati in rapida crescita:

Sistemi dedicati sono anche componenti o sottosistemi di sistemi di elaborazione dell'informazione general-purpose:

Fattori tecnologici rilevanti del codesign HW/SW

Fattori tecnologici giocano a favore di più hardware:

Supporti ottimali al codesign HW/SW: piattaforme di calcolo parallelo

Fattori economici rilevanti del codesign HW/SW

Fattori economici giocano a favore di più software:

Spazio di progetto di architetture dedicate

La collezione strutturata di tutte le possibili realizzazioni di una data applicazione

Schaumont, Fig. 1.7 - The hardware-software codesign space

Schaumont, Fig. 1.7 - The hardware-software codesign space

Livelli di astrazione di modelli per il codesign

Definibili dalla granularità temporale delle azioni elementari (atomiche)

A partire dal livello più basso di astrazione:

Linguaggi di descrizione dell'hardware

Hanno costrutti per la specifica di struttura (statica) e di comportamento (dinamico)

I tre più diffusi, tutti con semantica di eventi discreti:

Un linguaggio più sintetico, per descrizione RTL di hardware sincrono:

Un piccolo esempio in GEZEL

Traiettorie di Collatz

Datapath hardware per la traiettoria di Collatz di <i>t</i>

dp collatz ( in start : ns(1) ; in x0 : ns(16) ;
                  out t ns(32)) {
    reg r : ns(32) ;
    sig x : ns(32) ;
    always {
          t = r ;
          x = start ? x0 : r ;
          r = x[0] ? x + (x >> 1) + 1 : x >> 1 ;
    }
}

Progetto di System-on-Chip (SoC)

Uno schema generico di progetto:

Schaumont, Fig. 8.1 - Generic template for a system-on-chip

Schaumont, Fig. 8.1 - Generic template for a system-on-chip

Interfacce HW/SW

Concetti di base:

Piattaforme per il codesign

Collezioni di strumenti HW e SW per lo sviluppo e il collaudo in codesign

le schede di sviluppo di FPGA sono gli strumenti hardware di base a tal fine

sono accompagnate da sofisticati sistemi software per il codesign ad alto livello e per la cosimulazione

per esempio, la scheda di sviluppo Altera DE0 (v. immagine), che monta un chip FPGA Cyclone III, è supportata dal software Quartus II, liberamente disponibile

aziende di sviluppo di FPGA, quali Altera e Xilinx, danno anche alcune schede gratis attraverso programmi di collaborazione con università

Scheda di sviluppo Altera DE0 con FPGA Cyclone III

Scheda di sviluppo Altera DE0 con FPGA Cyclone III
fonte: ARSlab

Piattaforme di sviluppo open-hardware includono: Parallella, Arduino, Cosino ...

Cosimulazione di sistemi HW/SW

La cosimulazione può anche essere condotta su piattaforma software, senza impiego di FPGA

una tale piattaforma tipicamente consta di:

la cosimulazione al livello dei cicli di clock mette i progettisti in grado di stimare le prestazioni di soluzioni di codesign ben prima della loro realizzazione effettiva

Panoramica della piattaforma GEZEL

Una collezione di pacchetti Debian per l'installazione su Ubuntu (aggiornati a ogni nuova LTS)

Schaumont, Fig. A.1 - Overview of the GEZEL tools

Schaumont, Fig. A.1 - Overview of the GEZEL tools

Testi introduttivi

Testi di riferimento

P.R. Schaumont: A Practical Introduction to Hardware/Software Codesign
2nd Ed., Springer (2012)

P. Marwedel: Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems
2nd Edition. Springer (2011)

F. Vahid & T. Givargis: Embedded System Design: A Unified Hardware/Software Introduction
Wiley (2002)

Testi per approfondimenti

Libri di testo

C. Brandolese, W. Fornaciari: Sistemi embedded: sviluppo hardware e software per sistemi dedicati
Pearson, Milano (2007)

E.A. Lee & S.A. Seshia: Introduction to Embedded Systems - A Cyber-Physical Systems Approach
Ed. 1.5, Version 1.50 (2014)

F. Vahid, T. Givargis & B. Miller: Programming Embedded Systems: An Introduction to Time-Oriented Programming
Version 4.0. Uniworld (2012)

M. Wolf: Computers as components: Principles of embedded computing system design
3rd Edition, Morgan Kaufmann (2012)

D. Ibrahim PIC Microcontroller Projects in C
2nd Edition. Newnes, Elsevier (2014)

P. Wilson Design Recipes for FPGAs: Using Verilog and VHDL
1st Edition. Newnes, Elsevier (2007)

Siti web d'interesse

Corsi di codesign

Hardware/Software Codesign, Patrick Schaumont, VirginiaTech
www.faculty.ece.vt.edu/schaum/teachcodesign.html

Hardware/Sofware Codesign with FPGAs, Jim Plusquellic, U. of New Mexico
ece-research.unm.edu/jimp/codesign

Cyber-physical system fundamentals, P. Marwedel, TU Dortmund
ls12-www.cs.tu-dortmund.de/daes/de/lehre/english-courses/ss15-cyber-physical-system-fundamentals.html

Introduction to Embedded Systems, Edward A. Lee and Sanjit A. Seshia, U. of Berkeley
chess.eecs.berkeley.edu/eecs149

Free online course on Embedded Systems, EE Herald, Bangalore
eeherald.com/section/design-guide/esmod.html

Piattaforme e strumenti per il codesign

GEZEL: rijndael.ece.vt.edu/gezel2/

Altera: www.altera.com

Xilinx: www.xilinx.com

CUDA: developer.nvidia.com/cuda-zone

Parallella: www.parallella.org

Arduino: www.arduino.cc

Cosino: www.cosino.io