De la théorie à la pratique : Exemple d’utilisation de De la théorie à la pratique : Exemple d’utilisation de FPGA dans une PMEFPGA dans une PME
Bouyela Ngoyi Gérard ArmandBouyela Ngoyi Gérard Armand
professeur: professeur: Pierre LangloisPierre Langlois
ÉCOLE POLYTECHNIQUE DE MONTRÉAL
INF3500
2
PLAN DE LA PRÉSENTATION
- Introduction / Parcours
- Présentation de la compagnie
- Utilisation de FPGA - Pourquoi utiliser un FPGA
- Exemple de design
- Conclusion
- Période de question ?
3
INTRODUCTION
B . Ing / M.Sc.A – École Polytechnique de Montréal
Chargé de cours/ lab (INF1500/INF3500/ELE4302) Actuellement à l’emploi de Muxlab
- Transport & Distribution Audio / Vidéo sur câble torsadé
Tache : R&D Project leader / Ingénieur HW – SW - FW
4
Présentation de Muxlab
PME montréalaise de 50 employés
Marché : distribution audio/vidéo/data sur câble torsadé
Les clients : Wal-Mart , aéroport , magasins , tours à bureaux , compagnies de sécurité ….
5
Présentation de Muxlab
Application typique :
6
Présentation de Muxlab
Application typique :
7
UTILISATION DE FPGA
Retour sur la théorie :
8
UTILISATION DE FPGA
Dans quel cas utiliser un FPGA ? :
• Traitements de signaux hautes vitesses.
• Nécessité de parallélisassions des traitements de signaux numériques.
• Réduction de cout : traitements logiques complexes.
9
Exemple de design
HDMI sur fibre .
10
Exemple de design
HDMI sur fibre .
TRANSMITTER RECEIVER
IR
RS-232
CEC
SCL
SDA
5V_STATUS
HPD
IR
RX
TX
FPGA
MUX/DEMUX
IR
HDMI OUT
RS-232
CEC
SCL
SDA
5V_STATUS
HPD
IR
RX
TX
FPGA
MUX/DEMUX
TRANSCEIVERS TRANSCEIVERS
DRIVER 38KHz MODULATOR
LIGNES BASSE VITESSE 5 MHz
HDMI IN
Choix du FPGA : LATTICE (LFXP3C)-TQFP100
Language utilisé : VHDL
11
Exemple de design
HDMI sur fibre .
TRANSMITTER
OUTPUTS
FPGA
MUX/DEMUX
LIGNE BASSE VITESSE 5 MHzSerialisateur De-Serialisateur
SerialisateurDe-Serialisateur
INPUTS
RECEIVER
OUTPUTS
INPUTS
FPGAMUX/DEMUX
12
Exemple de design
IMPLEMENTATION
• Sérialisateur
- Lectures des entrées.
- Traitements des données ( machine à états, synchrone )
- Écriture des données sur le lien.
• Dé-sérialisateur
- Synchronisation avec le lien.
- Traitements des données ( machine à états, synchrone )
- Écriture des données sur les sorties du système
13
Exemple de design
IMPLEMTATION
TRANSMITTER
FPGA
LIGNE BASSE VITESSE 5 MHz
Serialisateur
INPUTS
RECEIVER
A=1
B=0
C=0
D=1
REGISTRES DES ENTREES
TRAITEMENTS
SERIALISATION
SYNC A=1 B=0 C=0 D=1 SYNC A=0 etc....
FPGA
REGISTRES DES SORTIES
TRAITEMENTS
Detection de la synchronisation
Dé-Serialisateur
A=1
B=0
C=0
D=1
14
Exemple de design / Implémentation
2 Fichiers (VHDL)
1 TOP (mapping et bidirectionalité , environ 600 lignes de code )
SERDES (environ 1100 lignes de code)
Résultats de synthèseDesign Summary Number of registers: 549 PFU registers: 544 PIO registers: 5 Number of SLICEs: 409 out of 1536 (27%) SLICEs(logic/ROM): 409 out of 1152 (36%) SLICEs(logic/ROM/RAM): 0 out of 384 (0%) As RAM: 0 As Logic/ROM: 0 Number of logic LUT4s: 397 Number of distributed RAM: 0 (0 LUT4s) Number of ripple logic: 202 (404 LUT4s) Number of shift registers: 0 Total number of LUT4s: 801 Number of PIO sites used: 28 out of 62 (45%) Number of PIO FIXEDDELAY: 0 Number of DQSDLLs: 0 out of 2 (0%) Number of PLLs: 0 out of 2 (0%) Number of block RAMs: 0 out of 6 (0%) Number of GSRs: 1 out of 1 (100%) JTAG used : No / Readback used : No / Oscillator used : No / Startup used : No Notes:- 1. Total number of LUT4s = (Number of logic LUT4s) + 2*(Number of distributed RAMs) + 2*(Number of ripple logic) 2. Number of logic LUT4s does not include count of distributed RAM and ripple logic.
15
Exemple de design
Cas problématique de l’entrée bidirectionnel
FPGA
DVD CEC
Serialisateur
De-Serialisateur
FPGA
Serialisateur
De-Serialisateur
TVCEC
vcc
10k
GND
10k
vcc
10k
GND
10k
Communication CEC :
DVDSYNC INITIATEUR
TVde la communication
0x01 = DV1
de la communication
0x40 = TV
Ack DVD Ack TV = je suis la
3.3v
0v
DESTINATAIRE
10
10 10
10
1111X
16
Exemple de design
Problème : avec pull-up on mesure 1.9 v au lieu de 3.3 volt ; pourquoi ?
FPGA
DVD
CEC
Serialisateur
De-Serialisateur
FPGA
Serialisateur
De-Serialisateur
TVCEC
vcc
10k
GND
10k
vcc
10k
GND
10k
Communication CEC :
DVDSYNC INITIATEUR
TVde la communication
0x01 = DV1
de la communication
0x40 = TV
Ack DVD Ack TV = je suis la
3.3v
0v
DESTINATAIRE
>47k
VCC
17
Exemple de design
Problème : Lors du ack de la télévision on a un glitch du coté du DVD; pourquoi ?
FPGA
DVD CEC
Serialisateur
De-Serialisateur
FPGA
Serialisateur
De-Serialisateur
TVCEC
vcc
10k
GND
10k
vcc
10k
GND
10k
Communication CEC : sans glitch
DU coté du DVD
SYNC INITIATEUR de la communication
0x01 = DV1
DESTINATAIREde la communication
0x40 = TV
Ack DVD Ack TV = je suis la
3.3v
0v
18
Exemple de design
Problème : Lors du ack de la télévision on a un glitch du coté du DVD; pourquoi ?
FPGA
DVD CEC
Serialisateur
De-Serialisateur
FPGA
Serialisateur
De-Serialisateur
TVCEC
vcc
10k
GND
10k
vcc
10k
GND
10k
Communication CEC : avec glitch
DU coté du DVD
SYNC INITIATEUR de la communication
0x01 = DV1
DESTINATAIREde la communication
0x40 = TV
Ack DVD Ack TV = je suis la
3.3v
0v
19
QUESTIONS ?