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, link to Forum

Introduction to dedicated systems codesign

Lecture 01 on Dedicated systems

Teacher: Giuseppe Scollo

University of Catania
Department of Mathematics and Computer Science
Graduate Course in Computer Science, 2018-19

Table of Contents

  1. Introduction to dedicated systems 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. Reference 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 DE1-SoC development board by Intel (see picture), which hosts a Cyclone V FPGA chip, with an ARM Cortex-A9 processor on the same chip, may include two NIOS II softcore processors on the FPGA, and is supported by the Quartus Prime Lite software, freely available

Intel DE1-Soc development board with Cyclone V FPGA

Intel DE1-SoC development board with Cyclone V FPGA
source: Intel® FPGA University Program

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 up to 16.04, no further development is foreseen)

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

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

Reference readings

Reference textbooks

Schaumont, Ch. 1, Sect. 1.1.4 – 1.4, 1.6

Supplementary readings

Textbooks

Vahid & Givargis, Ch. 1, Sect. 1.1 – 1.4

Brandolese, Fornaciari, Cap. 1

Websites of interest

Codesign and embedded systems courses

Hardware/Software Codesign, Patrick Schaumont, VirginiaTech
rijndael.ece.vt.edu/schaum/teaching/4530

Hardware/Software 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/en/lehre/courses/sommersemester-2017/cyber-physical-system-fundamentals-ss-2017/slides-cpsf-ss-2017.html

Introduction to Embedded Systems, Edward A. Lee and Sanjit A. Seshia, U. of Berkeley
bcourses.berkeley.edu/courses/1454183

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

Intel® FPGA University Program - Educational Materials: www.altera.com/support/training/university/materials.html

Xilinx University Program: www.xilinx.com/support/university.html

CUDA: developer.nvidia.com/cuda-zone

Parallella: www.parallella.org

Arduino: www.arduino.cc

Cosino: www.cosino.io