pencil and rubber

Logo of Triple-A Level WCAG-1 Conformance, W3C-WAI Web Content Accessibility Guidelines 1.0

XHTML 1.0 Conformance Validation CSS 3 Conformance Validation
Logo of Department of Mathematics and Computer Science, Course on Dedicated systems and robotics lab, link to Forum

Hardware/Software CoDesign

An Introduction

Giuseppe Scollo

University of Catania
Department of Mathematics and Computer Science
Graduate Course in Computer Science


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

Table of Contents

  1. Hardware/Software CoDesign
  2. Lecture goals
  3. What is HW/SW codesign?
  4. Why HW/SW codesign? Flexible hardware ...
  5. ... dedicated vs embedded systems
  6. Technological driving factors in HW/SW codesign
  7. Economical driving factors in HW/SW codesign
  8. Design space of custom architectures
  9. Abstraction levels of codesign models
  10. Hardware description languages
  11. A small example in GEZEL
  12. System-on-Chip (SoC) design
  13. HW/SW interfaces
  14. Codesign platforms
  15. Cosimulation of HW/SW systems
  16. Overview of the GEZEL platform
  17. Introductory readings
  18. Supplementary readings
  19. Websites of interest

Lecture goals

Motivation and fundamental concepts of:

What is HW/SW codesign?

A "traditional" definition:

A "nontraditional" definition:

What's the difference?

Why the difference? See next...

Why HW/SW codesign? Flexible hardware ...

Hardware flexibility, to various extent:

PLA simulator PLA circuit example: half-adder

... dedicated vs embedded systems

The two terms are not synonyms:

Embedded systems: wide variety, fast-growing markets:

Dedicated systems are also components or subsystems of general-purpose information processing systems:

Technological driving factors in HW/SW codesign

Technological factors tip the balance in favour of more hardware:

Best-match for HW/SW codesign: parallel computing platforms

Economical driving factors in HW/SW codesign

Economical factors tip the balance in favour of more software:

Design space of custom architectures

The structured collection of all possible implementations of a given application

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

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

Abstraction levels of codesign models

Definable by the time granularity of elementary (atomic) actions

Starting at the lowest abstraction level:

Hardware description languages

Feature constructs for specification of (static) structure as well as of (dynamic) behaviour

The three most prominent ones, all with discrete event semantics:

A more concise language, for RTL description of synchronous hardware:

A small example in GEZEL

Collatz trajectories

Hardware datapath for the Collatz <i>t</i> trajectory

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 ;
    }
}

System-on-Chip (SoC) design

A generic SoC design template:

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

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

HW/SW interfaces

Basic concepts:

Codesign platforms

Collections of HW and SW tools for codesign development and testing

FPGA development boards are the basic hardware tools to this purpose

they come equipped with sophisticated software systems for high-level codesign and cosimulation

for example, the DE0 development board by Altera (see picture), which hosts a Cyclone III FPGA chip, is supported by the Quartus II software, freely available

FPGA development companies, such as Altera and Xilinx, also make boards freely available through their University Programs

Altera DE0 development board with Cyclone III FPGA

Altera DE0 development board with Cyclone III FPGA
source: ARSlab

Open-hardware platforms include: Parallella, Arduino, Cosino ...

Cosimulation of HW/SW systems

Cosimulation may also be carried out on a software platform, with no FPGA involved

such a platform typically includes:

cycle-accurate cosimulation allows designers to estimate the performance of codesign solutions well before their actual implementation

Overview of the GEZEL platform

A collection of Debian packages for Ubuntu installation (updated for every new LTS)

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

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

Introductory readings

Reference textbooks

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)

Supplementary readings

Textbooks

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)

Websites of interest

Codesign and embedded systems courses

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

Codesign platforms and tools

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