Reconfigurable Computing�(adapted from Bobda‘s Book [1])
Prof. Dr. Vanderlei Bonato
The University of Sao Paulo (USP)
Institute of Mathematical and Computing Sciences (ICMC)
Agenda
Early Work
Gerald Estrin Fix-Plus Machine
Pragmatic problem studies predicts gains in computation
speeds in a variety of computational tasks when executed
on appropriate problem-oriented configurations of the
variable structure computer. The economic feasibility of the
system is based on utilization of essentially the same
hardware in a variety of special purpose structures. This
capability is achieved by programmed or physical
restructuring of a part of the hardware.
G. Estrin, B. Bussel, R. Turn, J Bibb (UCLA 1963)
Gerald Estrin Fix-Plus Machine
Speed gain over IBM7090 (2.5 to 1000)
Gerald Estrin Fix-Plus Machine
Was initially an IBM 7090, but could be any general purpose computer
Made upon a set of problem specific optimized functional units in the
basic configuration( trigonometric functions, logarithm, exponentials,
n-th power, roots, complex arithmetic, hyperbolic, matrix operation)
The basic blocks
Gerald Estrin Fix-Plus Machine
The mother board
The wiring harness
Gerald Estrin Fix-Plus Machine
Estrin at work.
Substantial efforts
on Reconfiguration
The Rammig Machine
Investigation of a system, which, with no manual or
mechanical interference, permits the building changing, processing and destruction of real (not simulated) digital hardware
Franz J. Rammig (University of Dortmund 1977)
The concept resulted in the construction of a
hardware editor. Useful to observe a circuit under
test (Hardware Emulation)
The Rammig Machine
Programmable Logic
PALs and PLAs
Programmable Array Block Diagram for Sum of Products Form
Inputs
Dense array of
AND gates
Product
terms
Dense array of
OR gates
Outputs
PALs and PLAs
Example:
Equations
Personality Matrix
1 = asserted in term
0 = negated in term
- = does not participate
1 = term connected to output
0 = no connection to output
Input Side:
Output Side:
Reuse
of
t
erms
F
1
1
0
1
0
0
Outputs
Inputs
Product
t
erm
A
1
-
1
-
1
B
1
0
-
0
-
C
-
1
0
0
-
F
0
0
0
0
1
1
F
2
1
0
0
1
0
F
3
0
1
0
0
1
A B
B C
A C
B C
A
F0 = A + B C
F1 = A C + A B
F2 = B C + A B
F3 = B C + A
PALs and PLAs
Example Continued - Unprogrammed device
All possible connections are available
before programming
A
B
C
F0
F1
F2
F3
PALs and PLAs
Example Continued -
Programmed part
Unwanted connections are "blown"
Note: some array structures
work by making connections
rather than breaking them
A
B
C
F0
F1
F2
F3
AB
BC
AC
BC
A
PALs and PLAs
Alternative representation for
high fan-in structures
Short-hand notation
so we don't have to
draw all the wires!
X at junction indicates
a connection
Notation for implementing
F0 = A B + A B
F1 = C D + C D
A B C D
AB+AB
CD+CD
AB
CD
CD
AB
Unprogrammed device
Programmed device
PALs and PLAs
Design Example
F1 = A B C
F2 = A + B + C
F3 = A B C
F4 = A + B + C
F5 = A ⊕ B ⊕ C
F6 = A ⊕ B ⊕ C
Multiple functions of A, B, C
ABC
A
B
C
A
B
C
ABC
ABC
ABC
ABC
ABC
ABC
ABC
F1
F2
F3
F4
F5
F6
A
B
C
PALs and PLAs
What is difference between Programmable Array Logic (PAL) and�Programmable Logic Array (PLA)?
PAL : AND array is programmable, OR array is fixed at fabrication
A given column of the OR array
has access to only a subset of
the possible product terms
PLA: Both AND and OR arrays are programmable
PALs and PLAs
Design Example: BCD to Gray Code Converter
Truth Table
K-maps
Minimized Functions:
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
W
0
0
0
0
0
1
1
1
1
1
X
X
X
X
X
X
X
0
0
0
0
1
1
0
0
0
0
X
X
X
X
X
X
Y
0
0
1
1
1
1
1
1
0
0
X
X
X
X
X
X
Z
0
1
1
0
0
0
0
1
1
0
X
X
X
X
X
X
AB
CD
00
01
11
10
00
01
11
10
D
B
C
A
0
0
X
1
0
1
X
1
0
1
X
X
0
1
X
X
K-map for
W
AB
CD
00
01
11
10
00
01
11
10
D
B
C
A
0
1
X
0
0
1
X
0
0
0
X
X
0
0
X
X
K-map for X
X
AB
CD
00
01
11
10
00
01
11
10
D
B
C
A
0
1
X
0
0
1
X
0
1
1
X
X
1
1
X
X
K-map for
Y
AB
CD
00
01
11
10
00
01
11
10
D
B
C
A
0
0
X
1
1
0
X
0
0
1
X
X
1
0
X
X
K-map for
Z
W = A + B D + B C
X = B C
Y = B + C
Z = A B C D + B C D + A D + B C D
PALs and PLAs
Programmed PAL:
4 product terms per each OR gate
Minimized Functions:
W = A + B D + B C
X = B C
Y = B + C
Z = A B C D + B C D + A D + B C D
A B C D
A B C D
A
BD
BC
0
0
0
0
B
C
0
0
BC
BCD
AD
BCD
W X Y Z
Complex Programmable Logic Devices
Complex Programmable Logic Devices
Field-Programmable Gate Arrays (FPGAs)
FPGA Structure
FPGA Structure
FPGA Programming Technologies
FPGA Programming Technologies
Advantages:
Drawback: No reprogrammation possible
FPGA Programming Technologies
FPGA Programming Technologies
FPGA Function generators
a XOR b
a
b
0 0 0
0 1 1
1 0 1
1 1 0
0
1
1
0
a
b
a Xor b
LUT
FPGA Function generators
a XOR b
a
b
0 0 0
0 1 1
1 0 1
1 1 0
0
1
1
0
a
b
a Xor b
LUT
FPGA Function generators
2-input LUTs
3-input LUTs
4-input LUTs
A
F = ABD + BC
B
C
D
+
A
B
D
B
C
D
A
B
C
F
A
B
D
B
C
D
A
B
C
C
D
A
B
F
F
FPGA Function generators
Y
4 x 1
MUX
s0
s1
C0
C1
C2
C3
0
0
0
1
Y
s1
s0
0 0 C0
0 1 C1
1 0 C2
1 1 C3
0
0
0
1
=AND
Static and dynamic Reconfiguration
The computation and reconfiguration is defined once at compile
time.
This category encounters the rapid prototyping systems, the non-
frequently reconfigurable systems as well as some frequently
reconfigurable systems.
Intel FPGAs
Xilinx FPGAs
Design Flow
Hardware/software partitioning
Software
C, C++, Java
etc ...
Hardware
VHDL, Verilog
HandelC, etc..
Interface
Coarse-grained RC
FPGA Design Flow
FPGA Design Flow - Design entry
FPGA Design Flow – Functional Simulation
FPGA Design Flow – Synthesis
FPGA Design Flow – Place and route
FPGA Design Flow – Configuration bitstream
FPGA Design Flow – Example
FPGA Design Flow – Example
Karnaugh-minimization of the
functions T1, T2, T3, and T4
FPGA Design Flow – Example
FPGA Design Flow – Example
Exemplo de produtos com
hardware reconfigurável
*
50
Microsoft Research: Project Catapult
Microsoft Research: Project Catapult
Amazon EC2 F1 Instances
Maxeler Technologies
Other examples
References