ECE 332

ECE 332

Course Description

An embedded system is a dedicated computing system encompassing CPU, memory and input/output (IO) that is purpose built to serve a role within the context of a larger electrical or mechanical system. Since their introduction in the 90s, embedded systems have proliferated across home automation, entertainment, transportation, industrial control and various others systems. This course, is based on a state-of-the-art development board focusing on rapid prototyping of embedded systems using novel System-on-Chip (SOC) FPGAs and development tools for both software and hardware design. Students gain hands-on experience working with state-of-the-art Altera DE1-SOC boards which integrate an ARM-based hardcore processor system (HPS) consisting of processor, peripherals and memory interfaces tied with the FPGA fabric. The FPGA fabric allows custom hardware designs to be mapped as well as it can accommodate an Altera NIOS softcore microprocessor. In the process of designing systems with these boards, students get familiar with software tools like Quartus Prime, Qsys, Nios II IDE, ModelSim, OpenCL and Altera Monitor program. The labs involve interfacing external modules with the boards, implementing image processing algorithms in software, implementing a data compression algorithm in hardware using Verilog and decompression algorithm in software using C. Hence it is expected that the students are acquainted with basic digital design and have a good grasp of languages such as Verilog and C before taking this course.

Course Objectives

  • To understand the principles of Embedded Systems and the tradeoffs which guide the hardware-software partitioning of any design.
  • To develop embedded software and hardware, including reusing existing components.
  • To prototype, debug and demonstrate embedded systems combining modules, interfaces, computation, memory.
  • To evaluate and document laboratory processes and products.