DEDICATED SYSTEMS

Academic Year 2018/2019 - 2° Year - Curriculum Data Science
Teaching Staff: Giuseppe SCOLLO
Credit Value: 6
Scientific field: INF/01 - Informatics
Taught classes: 24 hours
Exercise: 24 hours
Term / Semester:

Learning Objectives

Knowledge and understanding: To acquire knowledge and understanding of the main methodologies to model, to design, and to implement optimally, processing systems dedicated to a specific application.

Applying knowledge and understanding: To acquire capabilities to use hardware and software tools, such as development boards for dedicated systems, in order to design and to implement dedicated systems for high performance applications.

Making judgements: To be able to evaluate the quality of solutions to design problems for highly specialized dedicated systems, in terms of several performance parameters, such as computation speed, use of hardware resources, energy efficiency, cost, development time.

Communication skills: To acquire communication skills and proper language to communicate, with non-expert people, about problems relating to functioning, design, implementation, and evaluation of dedicated systems.

Learning skills: To develop the ability to adapt one's own knowledge to the rapid evolution of the discipline and to keep up-to-date through specialized sources in the field.


Course Structure

Classroom lectures and lab tutorials with on-line exercises on a Moodle departmental server with restricted access and implementation of lab experiences on a DE1-SoC development board with FPGA.


Detailed Course Content

The course is divided into 12 lectures (24 hours) and 12 lab tutorials (24 hours). Here are its detailed contents, as available in the preliminary Quick learning guide:

  • L01. Introduction to dedicated systems codesign.
  • T01. Introduction to the combined use of Gezel with a VHDL simulator.
  • L02. Architectures and design process of dedicated systems.
  • T02. Introduction to design of hardware systems using FPGA.
  • L03. Dataflow models, control flow.
  • T03. Hardware description languages: Gezel, VHDL, Verilog, SystemC.
  • T04. Combinational network examples in VHDL.
  • L04. Software implementations of dataflow models.
  • T05. Sequential network examples in VHDL, hardware implementation of dataflow models.
  • L05. Synchronous systems as finite state machines with datapath (FSMD).
  • T06. FSMD examples in Gezel and in VHDL.
  • L06. Microprogramming: architectures, control, microprogrammed interpreters.
  • T07. Microprocessor design example in Gezel and VHDL.
  • L07. Program design and analysis for dedicated systems.
  • T08. Program analysis tools and examples of their use.
  • L08. System-on-Chip (SoC) design.
  • T09. SoC development on FPGA with application profiling.
  • L09. HW/SW communication, on-chip bus systems.
  • T10. Component development on FPGA. Planning of student seminars.
  • L10. Microprocessor interfaces.
  • L11. Hardware interfaces.
  • T11. FPGA implementation of a memory-mapped coprocessor.
  • L12. Design of a memory-mapped multicore coprocessor.
  • T12. FPGA implementation of a memory-mapped multicore coprocessor.

Textbook Information

  1. P.R. Schaumont: A Practical Introduction to Hardware/Software Codesign, 2nd Edition. Springer (2012), with a list of errata produced starting from the 2013-2014 course edition
  2. M. Zwolinski: Digital System Design With VHDL, 2nd Edition. Pearson (2004)
  3. F. Vahid & T. Givargis: Embedded System Design: A Unified Hardware/Software Introduction. Wiley (2002)
  4. P. Marwedel: Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems, 2nd Edition. Springer (2011)

Access to other educational material is given through the Quick learning guide.