Introduction to FPGA Design for Embedded Systems (Coursera)

Introduction to FPGA Design for Embedded Systems (Coursera)

Programmable Logic has become more and more common as a core technology used to build electronic systems. By integrating soft-core or hardcore processors, these devices have become complete systems on a chip, steadily displacing general purpose processors and ASICs. In particular, high performance systems are now almost always implemented with FPGAs. This course will give you the foundation for FPGA design in Embedded Systems along with practical design skills.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

You will learn what an FPGA is and how this technology was developed, how to select the best FPGA architecture for a given application, how to use state of the art software tools for FPGA development, and solve critical digital design problems using FPGAs. You use FPGA development tools to complete several example designs, including a custom processor. If you are thinking of a career in Electronics Design or an engineer looking at a career change, this is a great course to enhance your career opportunities.
Hardware Requirements:
You must have access to computer resources to run the development tools, a PC running either Windows 7, 8, or 10 or a recent Linux OS which must be RHEL 6.5 or CentOS Linux 6.5 or later. Either Linux OS could be run as a virtual machine under Windows 8 or 10. The tools do not run on Apple Mac computers. Whatever the OS, the computer must have at least 8 GB of RAM. Most new laptops will have this, or it may be possible to upgrade the memory.
Course 1 of 4 in the FPGA Design for Embedded Systems Specialization.

Syllabus

WEEK 1
What's this programmable logic stuff anyway? History and Architecture
What's this programmable logic stuff anyway? In Module 1 you learn about the history and architecture of programmable logic devices including Field Programmable Gate Arrays (FPGAs). You will learn how to describe the difference between an FPGA, a CPLD, an ASSP, and an ASIC, recite the historical development of programmable logic devices; and design logic circuits using LUTs. Examples will include designs of digital adders and multipliers in FPGAs.

WEEK 2
FPGA Design Tool Flow; An Example Design
In Module 2 you will install and use sophisticated FPGA design tools to create an example design. You will learn the steps in the standard FPGA design flow, how to use Intel Altera’s Quartus Prime Development Suite to create a pipelined multiplier, and how to verify the integrity of the design using the RTL Viewer and by simulation using ModelSim. Using the TimeQuest timing analyzer, you will analyze the timing of your design to achieve timing closure.

WEEK 3
FPGA Architectures: SRAM, FLASH, and Anti-fuse
FPGAs are programmable, and the program resides in a memory which determines how the logic and routing in the device is configured. In Module 3 you will learn the pros and cons of FLASH-based, SRAM-based, and Anti-Fuse based FPGAs. A survey of modern FPGA architectures will give you the tools to determine which type of FPGA is the best fit for a design. Architectures will be explored from the basic core logic cell up to consideration of large Intellectual Property (IP) blocks that are available on many FPGAs.

WEEK 4
Programmable logic design using schematic entry design tools
In module 4 you will extend and enhance your design from module 2, completing the design by adding IP blocks, implementing pin assignments and creating a programming file for the FPGA. One outcome will be improved design productivity, by use of design techniques like pipelining, and by the use of system design tools like Qsys, the system design tool in Quartus Prime. You will complete a Qsys system design by creating a NIOS II softcore processor design, which quickly gives you the powerful ability to customize a processor to meet your specific needs.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

FPGA computing systems: Partial Dynamic Reconfiguration (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: Partial Dynamic Reconfiguration (Coursera)

INTRONew application domains demand ever increasing adaptability and performance. In order to cope with changing user requirements, improvements in system features, changing protocol and data-coding standards, and demands for support of a variety of different user applications, many emerging applications in communication, computing and consumer electronics demand that their functionality stays flexible after the system has been manufactured. Reconfigurable Systems-on-a-Chips (SoCs) employing different microprocessor cores and different types of reconfigurable fabrics are one attractive solution for these domains.

Nov 2nd 2026
4 Weeks
FPGA computing systems: A Bird’s Eye View (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: A Bird’s Eye View (Coursera)

Nowadays the complexity of computing systems is skyrocketing. Programmers have to deal with extremely powerful computing systems that take time and considerable skills to be instructed to perform at their best. It is clear that it is not feasible to rely on human intervention to tune a system: conditions change frequently, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment.

Nov 16th 2026
4 Weeks
Modeling of Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Modeling of Autonomous Systems (Coursera)

This course will explain the core structure in any autonomous system which includes sensors, actuators, and potentially communication networks. Then, it will cover different formal modeling frameworks used for autonomous systems including state-space representations (difference or differential equations), timed automata, hybrid automata, and in general transition systems. It will describe solutions and behaviors of systems and different interconnections between systems.

Oct 19th 2026
4 Weeks
FPGA Softcore Processors and IP Acquisition (Coursera) Coursera
University of Colorado Boulder

FPGA Softcore Processors and IP Acquisition (Coursera)

This course will introduce you to all aspects of development of Soft Processors and Intellectual Property (IP) in FPGA design. You will learn the extent of Soft Processor types and capabilities, how to make your own Soft Processor in and FPGA, including how to design the hardware and the software for a Soft Processor. You will learn how to add IP blocks and custom instructions to your Soft Processor.

Oct 19th 2026
4 Weeks
Modeling and Debugging Embedded Systems (Coursera) Coursera
University of Colorado Boulder

Modeling and Debugging Embedded Systems (Coursera)

This is part 3 of the specialization. In this course students will learn : * About SystemC and how it can be used to create models of cyber-physical systems in order to perform "what-if" scenarios; * About Trimble Engineering's embedded systems for heavy equipment automation; * A deeper understanding of embedded systems in the Automotive and Transportation market segment; * How to debug deeply embedded systems; * About Lauterbach's TRACE32 debugging tools; * How to promote technical ideas within a company; * What can be learned from studying engineering failures.

Oct 19th 2026
4 Weeks
Graphic Elements of Design: Color Theory and Image Formats (Coursera) Coursera
University of Colorado Boulder

Graphic Elements of Design: Color Theory and Image Formats (Coursera)

Examining and exploring the various types of images and graphic elements will be the focus of this course. We will start with color theory to distinguish between CMYK, Pantone and RGB color options and their usages. Then we will review the various types of images used in both print and digital design projects. Finally we will look at logo designs to determine what makes for the best images and graphic elements for corporate branding and imaging.

Nov 2nd 2026
3 Weeks
Introduction to OpenCL on FPGAs (Coursera) Coursera
Intel Corporation

Introduction to OpenCL on FPGAs (Coursera)

OpenCL™ is a standard for writing parallel programs for heterogeneous systems, much like the NVidia* CUDA* programming language. In the FPGA environment, OpenCL constructs are synthesized into custom logic. An overview of the OpenCL standards will be discussed. You will learn about the platform, execution, memory, and programming models that define the OpenCL specification. Syntax of the OpenCL language will be discussed, and you will see examples of OpenCL usage.

Mar 4th 2024
5-12 Weeks
System Validation: Automata and behavioural equivalences (Coursera) Coursera
EIT Digital

System Validation: Automata and behavioural equivalences (Coursera)

Have you ever experienced software systems failing? Websites crash, calendar not synchronising, or even a power blackout. Of course you have! But did you know that many of these errors are the result of communication errors either within a system or between systems? Depending on the system, the impact of software failures can be huge, even resulting in massive economic damage or loss of lives. Software, and in particular the communication between software-intensive systems, is very complex and very difficult to get right. However, we _need_ dependability in the systems we use, directly or indirectly, to support us in our everyday lives.

Nov 16th 2026
3 Weeks
Digital Manufacturing & Design (Coursera) Coursera
University at Buffalo,The State University of New York

Digital Manufacturing & Design (Coursera)

This course will expose you to the transformation taking place, throughout the world, in the way that products are being designed and manufactured. The transformation is happening through digital manufacturing and design (DM&D) – a shift from paper-based processes to digital processes in the manufacturing industry. By the end of this course, you’ll understand what DMD is and how it is impacting careers, practices and processes in companies both large and small.

Oct 26th 2026
2 Weeks
3D Printing Software (Coursera) Coursera
University of Illinois at Urbana-Champaign

3D Printing Software (Coursera)

This course will demonstrate how to use 3D printing software to create digital designs that can be turned into physical objects. It will also demonstrate how 3D scanners work to turn physical objects into digital designs. This course is hands-on in nature and will provide step-by-step instructions to guide you through two popular 3D modeling programs, Tinkercad and Fusion 360.

Nov 2nd 2026
5-12 Weeks
Introduction to Embedded Systems Software and Development Environments (Coursera) Coursera
University of Colorado Boulder

Introduction to Embedded Systems Software and Development Environments (Coursera)

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine.

Nov 9th 2026
4 Weeks
Introduction to Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Introduction to Architecting Smart IoT Devices (Coursera)

Embedded Systems are so ubiquitous that some of us take them for granted: we find them in smartphones, GPS systems, airplanes and so on. But have you ever wondered how these devices actually work? If so, you're in the right place! In this course, you'll learn about the characteristics of embedded systems: the possibilities, dangers, complications and recipes for success.

Jun 15th 2026
3 Weeks