Bouyela Ngoyi Gérard Armand professeur: Pierre Langlois ÉCOLE POLYTECHNIQUE DE MONTRÉAL INF3500 De la théorie à la pratique : Exemple d’utilisation de FPGA dans une PME Bouyela Ngoyi Gérard Armand professeur: Pierre Langlois
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 ?
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
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é ….
Présentation de Muxlab Application typique :
Présentation de Muxlab Application typique :
UTILISATION DE FPGA Retour sur la théorie :
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.
Exemple de design HDMI sur fibre .
Exemple de design Language utilisé : VHDL HDMI sur fibre . Choix du FPGA : LATTICE (LFXP3C)-TQFP100 Language utilisé : VHDL
Exemple de design HDMI sur fibre .
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. - Écriture des données sur les sorties du système
Exemple de design IMPLEMTATION
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èse Design 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.
Exemple de design Cas problématique de l’entrée bidirectionnel 10 10 10 10 X 11 11 Communication CEC :
Exemple de design Problème : avec pull-up on mesure 1.9 v au lieu de 3.3 volt ; pourquoi ? Communication CEC :
Exemple de design Problème : Lors du ack de la télévision on a un glitch du coté du DVD; pourquoi ? Communication CEC : sans glitch
Exemple de design Problème : Lors du ack de la télévision on a un glitch du coté du DVD; pourquoi ? Communication CEC : avec glitch
QUESTIONS ?