Vous êtes sur la page 1sur 56

Circuits programmables FPGA-SRAM

1- PRINCIPES et CLASSIFICATION
2- TECHNOLOGIES
3- ARCHITECTURES ET CIRCUITS
4- CONCEPTION : méthodes et outils

5 - APPLICATIONS: LOGIQUE
RECONFIGURABLE
1- LOGIQUE RECONFIGURABLE : PRINCIPES
2- LOGIQUE RECONFIGURABLE : EXEMPLES
– comparateurs, opérateurs arithmétiques
– filtres, DSP
3- LOGIQUE RECONFIGURABLE : APPLICATIONS
– Prototypage, émulation, vérification
4- RECONFIGURATION STATIQUE et DYNAMIQUE
5- PERSPECTIVES
– Circuits FPGAs complexes
–Logique reconfigurable dans les SOCs
5. 1 Logique reconfigurable :
principes

FPGA

EPLD SRAM Fusible

FPGA SRAM :
Reprogrammation statique ou dynamique

Pr. Michel ROBERT logique programmable


Programming technologies : SRAM (FPGAs)
SRAM
Programming must be done at each power-up
Word line

Vcc Vcc

Bit line
FPGA-SRAM

!C
A A
A B C
S S
C 0
1
SRAM cells 0
1 MUX S
B 0
C B 1
1
S=A.B ? 1

Pr. Michel ROBERT logique programmable


FPGA-SRAM
(a) Mise sous tension
Vcc
S
Vcc

CONF
CONF

Gnd Gnd
(b) Phase de configuration (c) Phase d’opération

Entrée « CONF » active : chargement


Entrée « CONF » désactivée
des SRAM (en chaîne)
fonctionnement normal du circuit configuré

Pr. Michel ROBERT logique programmable


5.2 Logique Reconfigurable : Exemples
Comparaison à une constante B :
Etude de S= A>B avec A = (A7, A6,…,A0) variable 8 bits
Equation du comparateur : SB= FB(A7, A6,…,A0)

avec FB = A7@(A6@(A5@(A4@(A3@(A2 @(A1@(A0)))))))


– avec @= opérateur « ET » ou « OU »

– Exemple: B = 129 = 10000001


– S129 = A7.(A6+(A5+(A4+(A3+(A2+(A1)))))))

– Exemple: B = 127
– S127 = A7

Pr. Michel ROBERT logique programmable


5.2 Logique Reconfigurable : Exemples
Multiplication par une constante :
- Hypothèse : granularité du FPGA-SRAM considéré = LUT 4
- Problème :
Soit S (S3,S2,S1,S0) une variable non signée codée sur 4 bits, et A
(A3,A2,A1,A0) une constante non signée sur 4 bits. On désigne par P, le
produit SxA, codé sur 8 bits.
En décomposant S sous la forme S = 23S3 + 22S2 + ......., on peut par un
changement de variable écrire P = 4 UxA + LxA, où U et L représentent une
variable non signée codée sur 4 bits.
Déterminer les fonctions booléennes F et G correspondants respectivement à
UxA et LxA.
Sachant que les CLB (Blocs logiques Configurables) du FPGA-SRAM
considéré contiennent chacun 2 "LUT4", évaluer le nombre de CLB
nécessaires pour réaliser la fonction P.

Pr. Michel ROBERT logique programmable


Exemple : Architecture d ’un filtre numérique FIR

Equation aux différences : Fonction de transfert en Z :


i = N −1
Y ( Z ) i = N −1 −i
y ( n) = ∑ a x(n − i )
i F (Z ) = = ∑ ai Z
i =0 X (Z ) i =1

Architecture :

Pr. Michel ROBERT logique programmable


Architectures d’un filtre FIR

DSP FPGA
1 1 2 3 4 N

Mult. Mult. Mult. Mult. Mult. ••• Mult.

Add Add

Traitement séquentiel Traitement parallèle


Architecture figée Architecture reconfigurable

Pr. Michel ROBERT logique programmable


FIR FILTER EXAMPLE
N BITS WIDE
SAMPLE DATA Sum of Products Equation

X0 PRODUCT
SUM K Multiplies
• X K Sums
C0 CLOCK = Multiply Time
X1
K Sample Rate = Clock Rate
• X
C1
X2
OUTPUT DATA
• X
0
C2
• • IMPLEMENTATION ?
• •
• K COEFFICIENTS •
K TAPS LONG
K SUMS

Pr. Michel ROBERT logique programmable


Traditional FIR Filter Implementation

General-Purpose DSP
1
– PERFORMANCE =
MAC cycle time X Number of Taps

– TMS320: MAC cycle time = one clock cycle


10-bit, 20-tap filter with 50 MHz TMS320 = 2.5 MHz
Additional filter taps slow performance

– Pentium: MAC cycle time = 11 clock cycles

Pr. Michel ROBERT logique programmable


Distributed Arithmetic (DA) Filter Design
SAMPLE MSB 8 WORD X N BIT
DATA
LOOK UP TABLE
PARALLEL IN 000 ...000000
SERIAL OUT 2 -1 Scaler
001 C0
LOOK
UP 010 C1
TABLE C1 + C0
R 011
A E
G 100 C2
Binary ADRS
I
SHIFT S n 101 C2 + C0
T FILTERED
B DATA OUT 110 C2 + C1
DATA n E
R C2 + C1 + C0
111

Clock Frequency
PERFORMANCE =
Number of Bits in Sample
10-bit, 20-tap filter using XC4000 at 50 MHz = 5 MHz
Pr. Michel ROBERT logique programmable
5.3 Logique Reconfigurable : Applications

Systèmes :
– co-processeurs reconfigurables
– optimisation d’architectures, à partir de blocs
FPGA “embarqués”

CAO : prototypage rapide et émulation

Pr. Michel ROBERT logique programmable


Reconfigurable technology : FPGAs

Why can reconfigurable be faster than microprocessors ?


S=Ax²+By+C

Temporal execution: Spatial execution:


• CPU-like way to compute • ASIC-like way to compute
• Sequential • Parallel
Flexibility Performance
Performance Flexibility
SOMETHING x y
A B C
t1 <- x
t2 <- y
t3 <- A.t1
t1
t2
BETWEEN ?
t3 <- t3.t1 t3
A
t2 <- B.t2
B
t3 <- t2+t3 C

Y <- t3+C #CYCLES: 7 #CYCLES: 3


ALU
Pr. Michel ROBERT logique programmable S
5.3 Logique Reconfigurable : Applications
PROTOTYPAGE DE SYSTEMES
Solutions réalisées à partir de circuits programmables :
– CARTES « STANDARDS » (Altera, Xilinx)
– CARTES SPECIFIQUES
– PLATEFORMES DE PROTOTYPAGE (Aptix, Eve,..)
– SYSTEMES D’EMULATION (Quickturn)

Pr. Michel ROBERT logique programmable


Hardware Boards : example
CARTE ALTERA UP-DLP

Pr. Michel ROBERT logique programmable


Prototypage Matériel : exemple
FPGA
Flex 10k20 Connecteurs Starter Kit processeur

RAM

R
processeur
processeur A
M A/D
D/A
RAM

2 E/S Série

Pr. Michel ROBERT logique programmable


Exemple : Carte de prototypage HW & SW
Code C VHDL

LOGICIEL MATERIEL

Compilation Synthèse

HOST
PC Protocole de communication

Carte TIM 40 Carte FPGA

DSP FPGA FPGA FPGA


TMS 320C40
Xilinx Xilinx Xilinx
RAM RAM
RAM RAM RAM
RAM RAM

CARTE MERE

Pr. Michel ROBERT logique programmable


Exemple : Carte de prototypage HW & SW

Carte TIM40
Carte LIRMM Carte mère
(Logic Inside Reconfigurable Micro Machine) Hunt Engineering

(a) Vue de dessous (a) Vue de dessus

Pr. Michel ROBERT logique programmable


Existing reconfigurable systems

Xilinx solutions : PCI based FPGA boards

SDRAM modules

Multiple million gates FPGA

PCI bus interface

Pr. Michel ROBERT logique programmable


Existing reconfigurable systems

Altera solutions : SOPC (System on a Programmable Chip)

Multiple million gates FPGA

SDRAM connector

Firewire connector (IEEE1394)

serial ports

USB connector

PS2 ports

Parallel port

Pr. Michel ROBERT logique programmable


VGA connector
Plateforme de prototypage : principe

CIRCUITS RECONFIGURABLES

Pr. Michel ROBERT logique programmable


Plateformes de prototypage

- Expérimentation “rapide” :
~ matériels et logiciels
~ adéquation Algo. / Archit.
~ temps réel

- Moyen de prototypage d’applications

- Aspects pluridisciplinaires autour de


supports communs

- Coûts (matériel “standard”)

Pr. Michel ROBERT logique programmable


Prototypage de systèmes mixtes matériels / logiciels
(1) Accélérateurs de simulation

(3) Plateformes Reconfigurables

(2) Machines d’émulation D µ (4) Cartes Spécifiques


S P
P
µP µP
I I
F P P DSP RAM
µP µP P
µP µP
G
A FPGA FPGA

FPGA FPGA
FP FP FP
GA GA GA

FP FP FP
GA GA GA

FP FP FP
GA GA GA

Coût et maintenance
élevés Faible Coût
Flexibilité
Architecture figée
Pr. Michel ROBERT logique programmable
PEKEE PROJECT
THE CONCEPT OF HYBRID PLATFORM FOR RESEARCH, EXPERIMENTATION
AND EDUCATION
Ouverte, Evolutive, Modulaire, Autonome

Boîtier
Carte Fille
Coques
Carte PC
embarqué

Carte TP
à Carte châssis
wrapper +
Bus OPP

2 Moteurs

Accumulateurs intelligents

Pr. Michel ROBERT logique programmable


Pr. Michel ROBERT logique programmable
Robot PEKEE : CARTES
• Compatible PC : Technologie STPC
• Microprocesseur x86 à 75 MHz
• 32 Mo SDRAM
• Compact Flash 128 Mo (connectique IDE)
• Connectique PC : PS/2, VGA, RJ45 et USB
• Interface Bus OPP
• Alimentation
• OS: win9X ou Linux ou autres

• Interfaçage de montages électroniques


avec le robot : micro-contrôleurs, FPGA,
ASIC, SOC,…

• Communication inter-cartes
•Interface Bus OPP / Bus adresses
données (16 bits R W CS)
(transparente pour l’utilisateur)
Pr. Michel ROBERT logique programmable
Reconfiguration de FPGA-SRAM
S

CONF
CONF Phase de configuration Phase d’opération:

RECONFIGURATION STATIQUE
• Chargement séquentiel de plusieurs architectures Couche OPERATIVE
conf1
• Une architecture par application

RECONFIGURATION PSEUDO-DYNAMIQUE conf2


SRAM SRAM SRAM
• Chargement séquentiel de plusieurs architectures
• Plusieurs architectures par application
conf3 SRAM SRAM SRAM

RECONFIGURATION DYNAMIQUE SRAM SRAM SRAM


• Chargement continu conf4
• L’architecture évolue en cours de traitement Couche de CONFIGURATION
Pr. Michel ROBERT logique programmable
5.4 Reconfiguration statique et dynamique:
FPGA
SRAM-based FPGAs Load
Initial Concept : fixed
configuration for each
Configuration
project RUN

Load
A
FPGA
Load
B RUN C
A
B

Load
C
Pr. Michel ROBERT logique programmable
5.4 Reconfiguration statique et dynamique:
New Approach : changing the configuration on the fly,
in real time

FPGA

B
A

Load
D

D
C

Pr. Michel ROBERT logique programmable


5.4 Reconfiguration statique et dynamique:
Partial / dynamic reconfiguration is the ability to update only a
portion of the configuration memory in a FPGA with a new
configuration without stopping the functionality of unchanged
sections of the FPGA.

Dynamic
Reconfiguration

Static Dynamic Static Dynamic


Core Core 1 Core Core 2

Xilinx Virtex FPGA


Pr. Michel ROBERT logique programmable
Fragmentation

Time
Temporal plane
of configuration
nth reconfig.

2nd reconfig. y

1st reconfig.

Initial config.

Spatial plane of
configuration
x

Pr. Michel ROBERT logique programmable


Coprocesseur programmable

CPU Mémoire E/S

Accés rapide aux


registres internes Interface avec le micropocesseur
prévu
FPGA
RPU (*)
Reconfiguration
partielle ou complète
rapide (*) Reconfigurable Processing Unit

E/S

Pr. Michel ROBERT logique programmable


Exemple : XC6200 (abandonné) 1/4

16x16 Tile 4x4 Block

User I/Os

FastMAPtm
User I/Os Function Cell

User I/Os
Interface
Address
Data
Control

User I/Os

*Number of tiles varies between devices in family

Pr. Michel ROBERT logique programmable


VIRTEX Architecture
Resources
– CLBs
– IOBs
– RAMs
– Clocks Partial Reconfiguration
Configuration
– bitstream: configuration bitfile
– configuration columns
Dynamic loading of new
» Center hardware modules
»
»
CLB
IOB
Change the configuration
» Block SelectRAM Interconnect for each column of the
» Block SelectRAM Content chip

Pr. Michel ROBERT logique programmable


Left IOB Column

Block SelectRAM Content

Block SelectRAM Interconnect

Pr. Michel ROBERT


2
2

CLB Column

IOBs
IOBs
Configuration Columns

2
2

CLB Column
2

2
Center Column

2
2

CLB Column
IOBs GCLKs IOBs
IOBs GCLKs IOBs

logique programmable
2
2

CLB Column
IOBs
IOBs
VIRTEX Architecture

Block SelectRAM Interconnect

Block SelectRAM Content

Right IOB Column


Existing reconfigurable systems

Altera solutions :Excalibur products

Low-Cost High-Performance Multi-Processor


Embedded Processor Custom DSP System
Excalibur ARM 922T + Memory
DSP

ESB

ESB
ESB ESB

ESB
75K Gates
Available
150K Gates

ESB ESB

ESB ESB
ESB ESB
Available
ACEX™ EP1K100

ESB
APEX EP20K200E

500K Gates
Available

Pr. Michel ROBERT logique programmable Excalibur XA10


Existing reconfigurable systems
Altera solutions :Excalibur products
• Several millions gates FPGAs
• Hard / Soft processors (NIOSTM , ARMTM )

Excalibur NIOS
(soft processor)

Excalibur ARM
(hard processor)

Pr. Michel ROBERT logique programmable


5.5 Circuits programmables : perspectives

µC1 DSP RAM

Bloc FPGA

- complexité croissante (loi de moore)


- organisation hiérarchique : blocs dédiés
- bus d’interconnexions ?
- outils de CAO HW & SW ?
Pr. Michel ROBERT logique programmable
5.5 Circuits programmables : perspectives

Architectures multi-processeurs

Exemple : Altera série Stratix Exemple : Altera


re* série APEX xxxx
EPXA10
Maximum System Gates 1,772,000
EP1S120 (2003) Typical Gates (IEEE) 1,000,000
LEs 38,400
Blocs Logiques : 114140 Embedded System Blocks (ESBs) 160
Blocs mémoires 512 bits : 1118 Maximum RAM Bits 327,680
Blocs mémoires 4Kbits : 520 Maximum User I/O Pins 521
Blocs Méga RAM : 12 Single-Port SRAM 256 Kbytes
Blocs DSP (MAC + registres +..) : 28 Dual-Port SRAM 128 Kbytes
E/S : 1310 Total Ram Bits (PLD + Stripe) 3,473,408
Pr. Michel ROBERT logique programmable
Evolution des systèmes microélectroniques : perspectives
MATERIEL STANDARD ou SPECIFIQUE ?

Matériel spécifique « SOC »


Hier
A/D • Programmable
Circuit
standard
Circuit
standard µP Logique (HW & SW)
D/A « ASIC »
• Complexité
mémoire P=>S
• Performances
mémoire Analog

S=>P
RAM ROM

µC
Aujourd’hui DSP REUTILISATION

FPGA FPGA ASIC


µP

Demain
ASIC ASIC ASIC

mémoire
Matériel standard « FPGA-based system »
mémoire Analog

• Prototype rapide
“ASIC based system” FPGA FPGA FPGA

• Programmable
µP
FPGA FPGA FPGA

mémoire mémoire
• Reconfigurable

- composants standards, FPGA > 1M portes


- composants programmables
Pr. Michel ROBERT logique programmable
5.5 Circuits programmables : perspectives

Circuits Evolutions : standard or custom ?


Wa v e ( 1 989 )
Makimoto’s
“The Programmable System-on-a-Chip
is the next wave“
standard hardwired procedural programming structural programming

re
TTL µproc.,

co
memory

nf
1967 1987 2007
LSI, ASICs,

igu
1957 1977 1997
MSI accel’s

ra
ble
custom algorithm: fixed algorithm: variable algorithm: variable
resources: fixed resources: fixed resources: variable

Pr. Michel ROBERT logique programmable


Familles d’architectures

Microprocesseurs Spécifique (ASIC)

DSP
Accélérateurs

Processeurs VLIW
ASIC reconfigurables (filtres…)
reconfigurables

FPGA

Reconfigurable

Pr. Michel ROBERT logique programmable


5.5 Perspectives : Architectures programmables et SOCs

DSP RAM

Custom Logic
CPU

Reconfigurable Logic

Pr. Michel ROBERT logique programmable


5.5 Perspectives : Architectures programmables et SOCs
System-on-Chip Architectures
“Silicon board” : put on a chip what we used to put on one or several boards

CPUs
Memory
Embedded
Reusable IP Software

Communication network
Reconfigurable Interconnect www

Analog Reconfigurable Hardwired


RF logic logic

Environment
- Heterogeneous components
- Complex on-chip communication network
- HW/SW trade offs
Pr. Michel ROBERT logique programmable
Heterogeneous Reconfigurable System-on-a-Chip

Light weight general purpose


processor for control intensive
oriented (parts of) algorithms

Flexibility for coarse grained


oriented algorithms (in a
particular application domain)
Flexibility for bit level (e.g. DSP algorithm)
oriented algorithms

Pr. Michel ROBERT logique programmable


Reconfiguration dans un système sur puce (SOC)
- Consommation
- Stockage de données PRG MEM
- Transfert de données
RAM1

Reconfigurable
management
Memory
RAM2

core
µP RAM
RAM3

RAM4

Frame Buffer Input Frame Buffer Output


I-cache D-cache

Memory Interface
management

Bus Programmable
arbitrer interconnect
Timers, IOs, Timers, IOs, Interface
UARTS… UARTS…

Pr. Michel ROBERT logique programmable


Architectures : du « grain fin » au « grain épais »

GRAIN FIN bit mot hybride algorithme application GRAIN ÉPAIS

CLB Cœur reconfigurable Cœur Cœur

Reg FILE
FPGA
DCT MPEG4
ALU + MULT
DSP

Granularité ?

Système sur puce


HW-SW
Pr. Michel ROBERT logique programmable
Coarse grain RAs
Kress Array (univ. of Kaiserlautern)
• PE (reconfigurable Processing Element) contains: rALU, small register file, routing resources
• rALU operations: arithmetic, relational, logic, special, xfer-only
• PE use: operations, routing only, routing and operations
• routing-only use adds flexibility
• pipe-like asynchronous inter-PE communication
• smart interface for data scheduling (data streams entering and leaving the FPAA)

Generalization of Systolic Arrays :


Super systolic array

Pr. Michel ROBERT logique programmable


Kress Array (univ. of Kaiserlautern)
Symmetric Nearest Neighbour filter (SNN) using 8 NN ports / 16 global buses

Pr. Michel ROBERT logique programmable


Systolic RIng

Maximize flexibility, performances, and minimize programming difficulty…

Switch 1 Switch 2

N1,1 N1,2 N2,1 N2,2


flexibility
BN1 BN3 BN2 BN4

Switch 3 Switch 4
RISC
N3,1 N3,2 N4,1 N4,2
Fine grain
Reconfigurable logic
SYSTOLIC
CISC VLIW RING
SIMD
Parallelism

Programming difficulty
Pr. Michel ROBERT logique programmable
Activités liées à la recherche : architectures reconfigurables

Grain fin (FPGA)


Grain F Grain épais (Architecture
Grain épaisreconfigurable)

Opérateurs ALU, MULT


arithmétiques
Multiplexeurs

Registres

Dnode Dnode
Sw

e
Switch

h
tc

r
i tc i 3200 MIPS@200MHz
u
h Sw

t
Dnode Dnode

ru c
Dnode Dnode Dnode Dnode
S t e a u
n
Flot de

An
I/O Switch données Switch I/O
Direct
Dnode Dnode Dnode Dnode

h Dnode Dnode Sw personnalisable...


Switch

i tc
wit c h
S
Dnode Dnode

Breveté Pr. Michel ROBERT 16 Dnodes version


logique programmable
2 levels dynamically reconfigurable architecture:

• Global mode (first level)


The program which manages the configuration runs on the RISC processor 1
The configuration of an entire cluster can be modified at each clock cycle 2
The operating layer computes the data coming from the host processor 3

• Local mode (second level)


Each Dnode runs his own up-to-8 instructions program
OPERATING layer Dnode
A B

+ Reg FILE

ALU + M ULT

+ * S

RAM
CONFIGURATION *
layer 3
2 DATA Host
µP
CONFIG

1
Config MANAGEMENT CODE

Controller
Pr. Michel ROBERT logique programmable
Systolic Ring Dnode : word-level processing unit
Constitution
• Optimized Datapath (16 bits)
µinst.
• Register File (4x16bits)
• Hardwired ALU and multiplier
Reg FILE
Features
• Complex computations in local mode (FIR,IIR, WT…)
• Low silicon area (0.07mm², 0.18µm CMOS process)
• Single-cycle operations (ex:MAC+register load)
ALU + MULT

Pr. Michel ROBERT logique programmable


Systolic Ring architecture Forward dataflow
No complex data routing problems (crossbars…)
Unidirectional data transfers between adjacent layers (pipeline)
Linear performances increase with Dnode number
Provides 3200 MIPS@200MHz of computing power for a 16 Dnodes realization

Forward Layer n-1

I/O
Dataflow
D-Node
D node D-Node

Switch components:

Switch
I/O Switch Switch I/O
Direct FIFO connection for Data injection D-Node
D node D-Node

BUS connection for RISC communication


Full connectivity between 2 Dnode layers D-Node D-Node D-Node D-Node Layer n
Node
Config.
I/O Switch Switch I/O
controller
D-Node D-Node D-Node D-Node
D node Layer n+1

D-Node D-Node
D node
Local mode : stand-alone

Switch
I/O Switch Switch I/O

D-Node
D node D-Node
D node
Global mode : FPGA like

I/O
Pr. Michel ROBERT logique programmable
Systolic Ring architecture Forward dataflow
Peak power : 3200 MIPS@200MHz (16 Dnodes version)

Dnode Dnode

Switch
E/S Switch Switch E/S

Dnode Dnode

Dnode Dnode Dnode Dnode Layer n

E/S Switch Dataflow Switch E/S

Dnode Dnode Dnode Dnode Layer n+1

Dnode Dnode
Switch

Switch Switch
E/S E/S
Dnode Dnode

Pr. Michel ROBERT logique programmable


Systolic Ring Architectures Reconfigurables Dynamiquement
ARD@LIRMM
Switch 1 Switch 2

N1,1 N1,2 N2,1 N2,2


MRAM-FPGA
BN1 BN3 BN2 BN4

Switch 3 Switch 4
CG CG CG CG

N3,1 N3,2 N4,1 N4,2 CG


CLB CLB
CG

CG CLB CLB
Dnode Dnode
Switch

Switch Switch

I/O Dnode Dnode I/O

Dnode Dnode Dnode Dnode


Magnetic Tunnel Junction
Non volatility, remancence
Switch Switch

I/O I/O
Dnode Dnode Dnode Dnode

Dnode Dnode Shadowed reconfiguration


Dynamical reconfiguration
Switch

Switch Switch

Dnode Dnode
I/O I/O
High timing performances

Banque
de Registre

ALU + MULT

Dnode
Pr. Michel ROBERT logique programmable