Reconfigurable Computing
Catalog Data: 

Graduate Course Information


ECE 506 Reconfigurable Computing

Credits: 3.00

Course Website:

UA Catalog Description:

Course Assessment:

Homework:  3 – 5 assignments

Project:  1 project

Exams:  1 Midterm Exam

Grading Policy: Typically:

  • 20% Midterm
  • 50% Project
  • 20% Homework
  • 10% Participation

Course Summary:

In this class, we investigate the state-of-the-art in reconfigurable computing both from a hardware and software perspective; understand both how to architect reconfigurable systems and how to apply them to solving challenging computational problems. The purpose of this course is to prepare students for engaging in research on reconfigurable computing. Initially, we review in detail the basic building blocks of most reconfigurable computers. Characteristics of FPGA architecture such as the organization of device logic and interconnection resources are examined to quantify hardware limitations. These physical limitations are then contrasted with computer-aided design issues such as the selection of circuit component locations in devices (the placement problem) and subsequent circuit interconnection between components (the routing problem). We then focus on the architecture for existing multi-FPGA systems and on compilation techniques for mapping applications described in a hardware description language to reconfigurable hardware. We will explore the question of “What makes an application suitable for reconfigurable computing” with case studies in Bioinformatics, Image processing, Video Processing, Cryptography, Molecular Dynamics and Computational Fluid Dynamics. We evaluate the FPGA based application acceleration with the emerging multicore architectures from the perspectives of price/performance and performance/watt. Specific contemporary reconfigurable computing systems are examined to identify existing system limitations and to highlight opportunities for research in dynamic and partial configuration areas. 

ECE562, ECE574A


“Reconfigurable Computing: The Theory and Practice of FPGA-Based Computation”  by Scott Hauck, André DeHon , Morgan Kaufman, 2007. Other reading material will be either presented in the class or available as online papers.


Course Learning Outcomes: 


Course Topics: 



1.     Introduction to Reconfigurable Computing (1 week)

2.     FPGA Architectures (2 weeks)

3.     FPGA Design Cycle           

a.     Technology-independent optimization (1 week)

b.    Technology Mapping (1 week)

c.     Placement (1 week)

d.    Routing (1 week)

4.     Coarse-grained Reconfigurable Devices  (1.5 week)

5.     Multi-FPGA Systems (1 week)

6.     Reconfigurable Computing Applications (2 weeks)

a.     Molecular Dynamics

b.    Image processing

c.     Video processing

d.    Bioinformatics

e.     Cryptography

f.     Fault tolerant systems

7.     FPGAs vs. Multicore architectures ( 1 week)

8.     Advanced Topics: ( 1.5 weeks)

a.     Dynamic Reconfiguration

b.    Partial Reconfiguration


Class/Laboratory Schedule: 

Lecture:  150 minutes/week

Prepared by: 
Ali Akoglu
Prepared Date: 
April 2013

University of Arizona College of Engineering