Educational goals
The course provides the methodological and technological knowledge for analysis and synthesis of modern embedded systems ( ie those general and special computer system designed for embedded in industrial (transport, energy, mechanical, etc.) or consumer products (telephony, entertainment, multimedia processing, etc.), bound to meet certain requirements as real-time and performance, as well as requirements on consumption, size, reliability and security.
The student is started to the design of embedded systems based on SoC (System on Chip), MPSoC (on Single Chip Multi Processor) and special (DSP, dedicated hardware) architecture, also made with FPGA technologies. Development methodologies and IDE environments widely used in industry, will be used for the design process.
A large part of the course will be spent in practice in which the student will use industrial IDE environments (HDL compilers – VHDL, Verilog, System-C, debugger, simulators and tools for mapping). This part goal is to provide the necessary knowledge for synthesis of circuits on FPGA and for the design of SOC system:
- with ARM processor on STMicroelectronics STM32F4;
- with Sparc processor synthesized on FPGA on Digilent Nexys 2;
- with Intel processor on board Galileo.
In this context, a full project will be developed by the entire classroom: to realize a complete embedded system, the class will be divided into groups. Each of them will have a task assigned and, following industrial design and development process, they will meet frequently to establish interfaces of their tasks so that at the end of the course all of them will be able to merge all their works into the final product.
Course program
The course is organized in three main parts: a theoretical one, a technological one and practical one.
Theoretical part
- Special and general architectures for embedded systems and their levels organization.
- Hardware architectures based on the integration of commercial hardware (processors, peripherals, multiprocessors, multicomputer, DSP, system on chip, etc.), specific hardware (designed using VHDL and automatic synthesis technologies ) and devices for the connection with actuators and sensors field.
- Architectural features of systems and processors for applications on Systems System on Chip (SoC) and Multiprocessor System on Chip (MPSoC).
- Bare metal software, operating systems and application software for embedded systems with or without real-time constraints.
- Development process characterization of processing systems for critical industrial applications in terms of cost, reliability, time, safety, power consumption and footprint.
- Design process: modeling techniques (formal and simulation models); techniques and tools for the synthesis; analysis and evaluation of performance and reliability.
- Partitioning logic of a dedicated system between functional units implemented in hardware and / or software on SOC and MPSoC embedded systems.
Technological part
- Basic programmable devices: PROM, E ^ {2} PROM, PLA, PAL, etc.
- ASIC and FPGA devices.
- System on Chip (SoC) and Multiprocessor System on Chip (MPSoc).
- Most popular processor architectures for embedded systems: the ARM family; the SPARC architecture and its open source implementation (Gaisler LEON3); native processors of family of FPGAs (Xilinx MicroBlaze); other processors synthesized as FPGA IpCore (low-end processors with 8, 16, 32-bit CISC and RISC type, Java machine).
- I / O devices synthesized as IPCore (UART / USART, PIO, I2C, SPI, USB, etc.).
- Synthesis and use of memories ROM / RAM and Flash.
- Bus and high-performance interconnection systems.
- Sensors and actuators: operation principles, types, interfaces and examples of use.
- Sensor networks: functional, and architectural applications.
Practical part
The course is oriented to the designing of modern embedded systems based on SoC architectures (System on Chip), MPSoC (on Single Chip Multi Processor) and special (DSP, dedicated hardware), integrated on commercial VLSI chip or on programmable devices such as ASICs or FPGAs.
For the design development methodologies and IDE environments widely used in industry will be used. In particular, all Hw / Sw levels of an embedded system will be analyzed in detail:
- The basic components for their realization such as memory subsystems, the hierarchical (or not) bus system, the interconnect networks and NOC (network-on-chip).
- Special components based on ASIP and DSP.
- FPGA programmable components, containing either special machines (dedicated combinatorial hardware, synchronous or asynchronous, dedicated hardware made starting by IP-Core components, “Intellectual Property Core”, developed ad hoc or open source) and proprietary or open IP-Core of RISC/CISC general purpose or special purpose processors.
- The I / O subsystem, characterized by the most widely I / O devices, sensors, actuators and their networks.
- Hybrid systems that on a single interconnection platform, integrates different IP core types, thus realizing a multiprocessor architectures.
- Middleware and the S.O. also with real-time requirements.