Skip to main content

FPGA and Hardware Design


ENSTSA

About This Course

FPGA and Hardware Design introduces students to the principles, architecture, and applications of Field-Programmable Gate Arrays (FPGAs). The course explores the evolution of programmable logic devices, compares FPGA technology with ASICs and microcontrollers, and demonstrates why FPGAs have become essential in modern embedded systems, artificial intelligence accelerators, digital signal processing, and high-performance computing.

Students will study the internal architecture of modern FPGAs, including Configurable Logic Blocks (CLBs), Look-Up Tables (LUTs), Flip-Flops, programmable routing networks, Block RAM (BRAM), DSP slices, and clock management resources. Practical learning activities emphasize hardware-oriented thinking, digital design methodology, timing analysis, and architectural optimization through real-world FPGA design exercises.

By the end of the course, students will be able to analyze FPGA architectures, evaluate design trade-offs, implement combinational and sequential logic using FPGA resources, and understand how modern hardware accelerators are constructed using programmable logic technology.

Requirements

Students should have prior knowledge of digital logic design, Boolean algebra, combinational and sequential circuits, multiplexers, decoders, flip-flops, registers, counters, and finite state machines. Familiarity with Karnaugh maps and logic simplification techniques is strongly recommended.

Course Staff

Instructor

Salah Eddine AGAB

Instructor, National Higher School of Autonomous Systems Technology (ENSTSA). This course is designed for fourth-year students in Autonomous Embedded Systems Engineering (AESE) and focuses on the design and analysis of FPGA-based digital systems through a combination of theoretical concepts and practical hardware implementation.

Prerequisites

To successfully follow this course, students must have prior knowledge of the following topics. If you are unfamiliar with any of these, it is strongly recommended to review them before starting the chapters.

  • Digital Logic Design: Logic gates, truth tables, combinational and sequential circuits.
  • Combinational Circuits: Multiplexers, decoders, adders, comparators.
  • Sequential Circuits: Flip-flops (D, JK, T), registers, counters, and finite state machines.
  • Basic Boolean Algebra: Simplification techniques, Karnaugh maps, and De Morgan's theorems.

Frequently Asked Questions

Who should take this course?

This course is intended for fourth-year engineering students with a background in digital electronics and logic design who wish to learn FPGA architecture and hardware implementation techniques.

What software will be used?

Laboratory activities and demonstrations are based on industry-standard FPGA development tools and hardware design workflows. Additional software requirements will be provided during the practical sessions.

How will I be assessed?

Assessment consists of 20% continuous assessment, 20% practical work, and a 60% final examination covering all course topics.

Enroll