De la théorie à la pratique : Exemple dutilisation de FPGA dans une PME Bouyela Ngoyi Gérard...

Preview:

Citation preview

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 ?

Recommended