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

UX and Interface Design for Embedded Systems (Coursera) Coursera
University of Colorado Boulder

UX and Interface Design for Embedded Systems (Coursera)

UX and Interface Design for Embedded Systems is the first of three classes in the Embedded Interface Design (EID) specialization, an online version of the on-campus EID class taught in graduate embedded systems design. This first course is focused on user experience (UX) and the related methods, practices, and principles that will help ensure your embedded interface designs for devices and systems are what your users both need and want.

Aug 3rd 2026
5-12 Weeks
Linux System Programming and Introduction to Buildroot (Coursera) Coursera
University of Colorado Boulder

Linux System Programming and Introduction to Buildroot (Coursera)

This course provides an overview of System Programming for the Linux operating system, or software which is interfacing directly with the Linux Kernel and C library. The basic components of a Linux Embedded System, including kernel and root filesystem details are discussed. The Buildroot build system is introduced, which students use to build their own custom Embedded Linux system through programming assignments.

Jul 27th 2026
4 Weeks
VLSI CAD Part I: Logic (Coursera) Coursera
University of Illinois at Urbana-Champaign

VLSI CAD Part I: Logic (Coursera)

A modern VLSI chip has a zillion parts -- logic, control, memory, interconnect, etc. How do we design these complex chips? Answer: CAD software tools. Learn how to build thesA modern VLSI chip is a remarkably complex beast: billions of transistors, millions of logic gates deployed for computation and control, big blocks of memory, embedded blocks of pre-designed functions designed by third parties (called “intellectual property” or IP blocks). How do people manage to design these complicated chips? Answer: a sequence of computer aided design (CAD) tools takes an abstract description of the chip, and refines it step-wise to a final design.

Jul 27th 2026
5-12 Weeks
FPGA computing systems: Background knowledge and introductory materials (Coursera) Coursera
Politecnico di Milano

FPGA computing systems: Background knowledge and introductory materials (Coursera)

This course is for anyone passionate in learning how a hardware component can be adapted at runtime to better respond to users/environment needs. This adaptation can be provided by the designers, or it can be an embedded characteristic of the system itself. These runtime adaptable systems will be implemented by using FPGA technologies.

Aug 10th 2026
4 Weeks
Real-Time Embedded Systems Theory and Analysis (Coursera) Coursera
University of Colorado Boulder

Real-Time Embedded Systems Theory and Analysis (Coursera)

This course provides an in-depth and full mathematical derivation and review of models for scheduling policies and feasibility determination by hand and with rate monotonic tools along with comparison to actual performance for real-time scheduled threads running on a native Linux system.

Aug 3rd 2026
4 Weeks
M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera) Coursera
University of Colorado Boulder

M2M & IoT Interface Design & Protocols for Embedded Systems (Coursera)

This course can also be taken for academic credit as ECEA 5348, part of CU Boulder’s Master of Science in Electrical Engineering degree. M2M and IoT Interface Design and Protocols is the third of three classes in the Embedded Interface Design (EID) specialization, an online version of the on-campus EID class taught in graduate embedded systems design. This course is focused on connecting devices to each other and to the cloud to create prototypes and actual systems that flow data from devices to consumers. The class includes an introduction to M2M (Machine-to-Machine) and IoT (Internet of Things) concepts, using the cloud to develop IoT systems (specifically AWS (Amazon Web Services) and its IoT framework), a review of common communications protocols at every level of connected devices, and other IoT design concerns such as security, message queuing approaches, and the use and design of APIs and microservices .

Aug 3rd 2026
4 Weeks
Real-Time Embedded Systems Concepts and Practices (Coursera) Coursera
University of Colorado Boulder

Real-Time Embedded Systems Concepts and Practices (Coursera)

This course can also be taken for academic credit as ECEA 5315, part of CU Boulder’s Master of Science in Electrical Engineering degree. Course Description: In this course, students will design and build a microprocessor-based embedded system application using a real-time operating system or RT POSIX extensions with Embedded Linux. The course focus is on the process as well as fundamentals of integrating microprocessor-based embedded system elements for digital command and control of typical embedded hardware systems.

Aug 3rd 2026
4 Weeks
Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Architecting Smart IoT Devices (Coursera)

This course will teach you how to develop an embedded systems device. In order to reduce the time to market, many pre-made hardware and software components are available today. You'll discover all the available hardware and software components, such as processor families, operating systems, boards and networks. You'll also learn how to actually use and integrate these components.

Jul 27th 2026
5-12 Weeks
Capstone: Autonomous Runway Detection for IoT (Coursera) Coursera
EIT Digital

Capstone: Autonomous Runway Detection for IoT (Coursera)

The students will develop a larger system using the learning outcomes from these courses, and the students will evaluate the developed system in a real-world programming environment. This course is a true engineering task in which the student must, not only implement the algorithm code, but also handle the interfaces between many different actors and hardware platforms.

Aug 10th 2026
3 Weeks
Requirement Specifications for Autonomous Systems (Coursera) Coursera
University of Colorado Boulder

Requirement Specifications for Autonomous Systems (Coursera)

This course will discuss different ways of formally modeling requirements of interest for autonomous systems. Examples of such requirements include stability, invariance, reachability, regular languages, omega-regular languages, and linear temporal logic properties. In addition, it will introduce non-deterministic finite and büchi automata for recognizing, respectively, regular languages and omega-regular languages.

Jul 27th 2026
5-12 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
Fundamentals of Digital Design for VLSI Chip Design (Coursera) Coursera
L&T EduTech

Fundamentals of Digital Design for VLSI Chip Design (Coursera)

This comprehensive learning module delves into Boolean algebra and its applications in digital circuit design, covering fundamental concepts like Boolean variables, logic gates, and their relationship with digital logic circuits. Participants explore Boolean expressions, simplification techniques, and consensus theorems, including the advanced Quine McCluskey method.

Jul 27th 2026
4 Weeks