|
 |
Embedded Systems Engineering
It is recommended that candidates complete the required courses prior to the elective courses.
|
Prerequisite Courses
|
| Course # |
Title |
Winter |
Spring |
Summer |
Fall |
EECS 805 |
C Programming for Embedded Systems ( 1.5 CEU )
Show Details
Embedded software can be found in many electronic devices today. Increase your understanding of the essential embedded language features required for embedded systems programming. Embedded software developers benefit from this hands-on course by expanding their knowledge of using pointers and arrays, bit manipulation, using key words such as "volatile" and "register," and learning more about source code solutions to common embedded software problems.
|
 |  |

|

|
EECS X497.2 |
Introduction to Digital Logic and Hardware Architecture ( 3 units )
Show Details
Further your understanding on fundamentals of logic design, boolean algebra and essential Verilog and VHDL statements describing behavioral functions such as counters and other finite state machines. Learn about the ASIC Design Flow from examples of logic and circuit design analysis, computer abstractions, and performance metrics. Participants are provided an overview of typical microprocessor architectures, hardwired versus micro-programmed control unit design, instruction set, addressing, I/O bus interface, hardware-software interfaces, and memory organization.
|
 |  |

|  |
|
Required Courses (9 units)
|
| Course # |
Title |
Winter |
Spring |
Summer |
Fall |
EECS X497.32 |
Fundamentals of Embedded Systems Design and Programming ( 3 units )
Show Details
Gain an overview of embedded systems applications and design procedures, and learn how to plan and execute complete embedded systems designs that are cost-effective and competitive. You'll gain the knowledge needed to determine and document system requirements for new designs as well as for improving existing systems. You'll learn analysis techniques for optimizing system specifications as well as selecting microcontrollers for specific designs. Hands-on development is facilitated with an embedded system development kit.
|
 |  |  |

|
EECS X497.36 |
Embedded Systems Architecture ( 3 units )
Show Details
Learn about the architecture of embedded systems and explore the difference between embedded design and traditional electronic device design. The special demands on embedded systems including real-time programming, portability, low power usage, and miniaturization dictate a different approach. The course introduces models and architectures, and covers such topics as specification, system partitioning, design quality, and developing synthesizable models.
|
 |  |

|  |
EECS X497.34 |
Real-Time Embedded Systems Programming ( 3 units )
Show Details
Increase your understanding of the limitations and risks associated with embedded systems, and the methods and tools used to implement a successful design. Participants learn about the software process, with an emphasis given to the requirements definition, design and implementation phases, and limitations imposed by hardware design and real-time issues. Additional topics include: software architecture issues; development and debugging tools; advantages of languages commonly used in embedded systems; and verification methods. Hands-on development is facilitated with an embedded system development kit.
|
 |  |  |

|
|
Elective Courses (candidates choose 6 units)
|
| Course # |
Title |
Winter |
Spring |
Summer |
Fall |
| Programmable Logic Design and Analysis |
EECS X494.92 |
Logic Design and Analysis using Verilog ( 3 units )
Show Details
Expand your knowledge of gate level modeling, data flow modeling, behavior modeling, advanced modeling techniques, test benches, and logic synthesis. Learn the essentials of the Verilog hardware description language, syntax , and practical design scenarios. Participants learn fundamental and advanced usage of Verilog as a design capture and simulation development tool, and the use of the Programming Language Interface (PLI). The course will emphasize how Verilog is used in each step of the design automation process.
|
 |  |  |  |
EECS X494.94 |
VHDL Design and Modeling of Digital Systems ( 3 units )
Show Details
Familiarize yourself with the analysis and synthesis of digital systems using VHDL to simulate and realize VLSI systems. Participants learn the fundamental concepts of VHDL and practical design techniques. The VHDL methodology and design flow for logic synthesis addresses design issues related to component modeling, data flow description in VHDL and behavioral description of hardware. An emphasis is placed on understanding the hardware description language, VHDL design techniques for logic synthesis, design criteria, and VHDL applications.
|
 |  |  |

|
| Embedded Software Development |
EECS X497.24 |
Getting Software and Hardware Working - Co-Development and Co-Debug ( 1.5 units )
Show Details
This course takes participants through the hardware and software development process showing the value of co-simulation. Participants learn how, when, where and why using co-simulation is a valuable tool for today's development of embedded systems. Topics include: Parallel development and leveraging co-simulation to convert the engineering process from being serial to parallel, the state of co-simulation tools and what to expect, understand how to reduce risks in your products before they are produced via co-simulation, reasonable expectations from the tools and costs.
|
 |  |  |  |
EECS X497.19 |
Writing Portable Device Drivers ( 3 units )
Show Details
Gain a competitive edge on writing portable device drivers source code. Participants will gain practical knowledge of what constitutes a device driver, how to build one from a hardware datasheet, and how to write the code that will be readily portable across multiple platforms and operation systems. Increase your knowledge of timing, interrupt handling, direct memory access (DMA), how to avoid pitfalls, and other critical issues fundamental to writing device drivers. Hands-on lab exercises reinforce code writing skills.
|
 |  |  |

|
EECS X497.31 |
Designing Embedded Software Using Real-time Operating Systems ( 3 units )
Show Details
Learn how to write real-time systems software in relation to the architectural design of a complete embedded system utilizing a real- time operating system kernel. Participants will gain a practical knowledge of how to use a real-time kernel to accomplish the design goals of a real-time system. Learn how a real-time kernel is used to satisfy hard real-time constraints in comparison to soft real-time constraints. Gain a greater insight into the concepts of task scheduling, resource management, inter-task communications, task synchronization, and interrupt handlers.
|
 |  |

|  |
EECS X497.10 |
Fundamentals of Embedded Linux ( 3 units )
Show Details
Further your understanding of Linux and its adoption as an embedded OS platform. This course provides an overview of methods and techniques to design and create embedded systems based on the Linux kernel. The essentials of the Linux operating system are discussed from the embedded system point of view including selecting, configuring, cross-compiling, installing a target-specific kernel; licenses; drivers and subsystems; the GNU development toolchain; and tools used to build embedded Linux systems. Prerequisite: Familiarity with software programming and hardware design.
|
 |  |  |

|
EECS X497.11 |
Linux Driver Primer ( 1.5 units )
Show Details
Gain a competitive edge by learning how to develop and write code for Linux device drivers. Participants will gain practical knowledge of what constitutes a device driver in Linux and basic Linux device driver building blocks. In addition, learn how to build and grow a framework from scratch that can be used to develop a Linux device driver. Increase your knowledge of timing, interrupt handling, direct memory access (DMA), how to avoid pitfalls, and other critical issues fundamental to writing Linux device drivers. Hands-on lab exercises reinforce code writing skills.
|
 |  |  |  |
| Advanced Embedded Design |
EECS X497.39 |
Embedded Systems Design Using ARM Technology ( 3 units )
Show Details
Increase your understanding of how system-on-chip (SoC) and microprocessors are designed and used in embedded systems development. Participants will learn about the 16/32-bit embedded RISC processor ARM architecture and discover its wide applicability in embedded applications. Concepts and methodologies employed in designing a system-on-chip (SoC) based around a microprocessor core are thoroughly discussed. Practical hands-on lab exercises based on the ARM instruction set are used to reinforce the concepts learned. Architectural Support for high-level languages, systems development, operating systems, and survey of ARM processor cores are discussed.
|
 |  |

|  |
EECS X499.51 |
Communications SoC Design ( 3 units )
Show Details
Explore the exciting field of digital communications and networking from a hardware perspective, specifically digital hardware design. Familiarize yourself with data transfer protocols necessary for the hardware implementation of a WAN or a LAN. Participants learn how to incorporate IP (Intellectual Property) into an IC design (i.e., microprocessor, RAM, etc.) to form a SoC (System on a Chip). Learn how to create a simplified 3-layer LAN configured for data transmission with a development board using Verilog or VHDL.
|
 |  |  |  |
EECS X494.95 |
FPGA Design with Hardware Description Languages ( 3 units )
Show Details
Gain a comprehensive understanding of Field Programmable Gate Arrays (FPGAs) architectures. Explore VHDL, Verilog, and variations of C as a hardware description language. Learn about design flow, simulation, and FPGA implementation. Engineers will enhance their knowledge of the CMOS process, trade-offs between FPGA's, metallized gate arrays, standard cells, and custom design. Gain insight into testability issues and boundary scan, termination, interfacing and timing issues, and methods of performance enhancement of a digital design.
|
 |  |  |  |
EECS X497.4 |
Applied Control Theory for Embedded Systems ( 3 units )
Show Details
Learn how to apply modern control theory to optimize your embedded system designs using microcontrollers or DSP devices. The majority of embedded designs are closed loop control systems, as opposed to open loop control. This course provides practical how-to knowledge in deriving and applying practical control theory algorithms. Z Transforms are introduced as a practical way of developing the needed difference equations for optimal designs. Participants learn to evaluate and select the best control algorithm for desired control applications such as proportional-integral-derivative (PID), fuzzy logic or Z Transform-derived difference equations.
|
 |  |

|  |
EECS X498.61 |
Real-Time Embedded Digital Signal Processing ( 3 units )
Show Details
Increase your level of expertise of embedded digital signal processing as well as DSP programming techniques. Participants learn about several important algorithms, such as Digital FIR, IIR filters, FFTs and advanced digital signal processing algorithms for embedded applications. An overview of fixed and floating point DSP processors is presented including memory use and management. DSP assembly-language programming is emphasized in conjunction with development tools that allow DSP code written in higher level languages, such as C and MATLAB.
|
 |  |  |  |
Course schedules are subject to change.
Individual courses may be taken without enrolling in the full certificate.
=Accelerated Format =Classroom =Online
=Classroom/Online =To Be Scheduled
|
|
|
|
- Certificates
- Focuses search on "Certificates"
- Certificate Candidacy

|