Présentation dun design de carte vidéo Stéphane Tchoulack.

26
Présentation d’un design de carte vidéo Stéphane Tchoulack

Transcript of Présentation dun design de carte vidéo Stéphane Tchoulack.

Page 1: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’un design de carte vidéo

Stéphane Tchoulack

Page 2: Présentation dun design de carte vidéo Stéphane Tchoulack.

Sommaire

• Présentation de la compagnie• Présentation d’une carte vidéo

– Architecture générale– Conception– Validation– Tests– Exemple de traitement vidéo– Problèmes rencontrés

• Conclusion

Page 3: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation de la compagnie

Matrox Groupe Vidéo:

• Conception de cartes vidéos pour le marché OEM et end users

• Différentes cartes utilisables dans les Pcs et/ou macintosh

• Fonctions principales: IOs, convertisseurs, traitement

Page 4: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

Page 5: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Permettent de faire du traitement de signaux vidéos en temps réel

• Permettent de faire la compression H.264 plus vite que le temps réel

• Convertisseur d’une source vers une autre (HDMI, DVI, analog vidéo, SDI)

• Scaling d’un standard vers un autre (SD, HD, 3G)

Page 6: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Architecture générale

Page 7: Présentation dun design de carte vidéo Stéphane Tchoulack.

Video in DMA

SDI in

Video out DMASDI vout pathSDI out

Audio In DMAAudio in pathAnalog audio

in

Audio extract

Sdi Vin Path

Up/down scaler

Video out ( Uncompressed)

Video In (Uncompressed)

Compressed

Codec Video DMA

Codec Interface

Audio Out DMA

Audio out pathAnalog audio out

Memory controller

Onboard memory

GPDMAPCIe

CORE

PCIe x4

H264

Page 8: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Conception:– Dictée en fonction des besoins du client– Beaucoup de reutilisation d’une carte à l’autre, ce

qui sauve le temps de conception– Problème:

• Désir de Marketing vs faisabilité dans le temps donné• Désir de marketing vs espace disponible dans le FPGA

Page 9: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Conception:– Estimation des ressources utilisées par la future carte

(en prévoyant un extra pour les prochaines features)– Important: estimation de toutes les horloges

nécessaires au bon fonctionnement du système– Choix du FPGA adéquat (le moins cher qui permet

d’atteindre nos objectifs)– Faire un pinout qui servira à placer le FPGA sur la

carte ( c’est en fonction de ce pinout qu’on placera les autres composants sur la carte)

Page 10: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 11: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 12: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Conception– Codage VHDL– Définition des contraintes de temps (les plus critiques)– Synthèse effectuée avec synplify pro (on utilise

toujours la version la mieux compatible avec l’outil utilisé pour le placement: synplify pro 9 va avec ISE 11)

– Placement et routage effectué par ISE de XILINX. On doit toujours s’assurer que toutes nos contraintes sont respectées avec la plus grande rigueur (principe de “score”)

Page 13: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Conception– Timing Analyser: permet d’analyser

automatiquement tous les chemins dans le FPGA en fonction des contraintes données

=> On peut donc savoir quels sont les chemins qui posent le plus de problème

– FPGA editor: permet d’observer le contenu du FPGA (position de slices, des Block RAM, des Buffers) et de le modifier manuellement

Page 14: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 15: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 16: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 17: Présentation dun design de carte vidéo Stéphane Tchoulack.
Page 18: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Validation:– Validation hardware: preuve que les périphériques

communiquent bien entre eux. Effectuée par l’équipe NPI et Hardware (New Products Introduction)

– Validation FPGA: preuve que les principales fonctions sont bien exécutées (fait par FPGA et NPI)

Page 19: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Tests QA (assurance qualité)– Tests de la grande majorité des fonctions du produits,

effectués sur différents PCs, avec différents systèms d’exploitation

• Tests Production– Séquence de test effectuée sur chaque produit devant

être envoyé au client. Il est déjà arrivé qu’on constate des Bugs à cette étape

• Le même chemin est suivi pour le SDK bâti par l’équipe Software

Page 20: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Qu’est ce qu’il arrive lors d’une capture vidéo vers le host?

Page 21: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Capture 1080P60 4:2:2 8 bits

Capture vers mémoire locale dans le format demandé par software, roulant sur un PC/MAC.

1080P60: signal progressif de resolution 1920X1080 ayant une fréquence de rafraichissement vertical de 60Hertz.

4:2:2 8 bits: Pour deux pixels, on a : deux valeurs de luma, une valeur de chroma rouge et une valeur de chroma bleue

DRU Descrambler

serial_in_top

Framer

EDH

CRCauto_dete

ct

Flywheel

vin_formater

hs vs

drift_correction

hs vs

EA

ATC_extract

wdma4:2:2,4:2:2:4 – 8/10bpp

TRC_extractvin_align

FIFO

FIFOGTP_DUAL

proc amp

Page 22: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

Écriture vers mémoire host

Xilinx PCI/PCI-X Core

Master Controller Slave Controller + Config Space

Master Arbiter/Switcher Slave Switcher

SGCMDFORMAT

SGCTRLR

Memory bus access

GPDMACORE

Registers

GPDMA Requesters :- Commands gathering- Commands execution- Target split completion requests

Scatter-gather commands FIFO

TARGET ...

GPDMA Arbiter

Data muxes

Page 23: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Le FPGA demande au host la position en mémoire où sont situées les commandes qui lui sont destinées (SG_CMDFORMAT)

• Le FPGA lit les adresses données par le host et stocke les commandes, afin de les executer(SG_CTRLR)

• Le FPGA exécute les différentes commandes d’accès registre et accès mémoire (GPDMA_CORE)

Page 24: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• IOs ( réception d’un signal vidéo par décodeur vidéo, ou GTP) : utilisation de cores qui demandent de s’adapter à leur fonctionnement (il se peut qu’il y ait encore des bugs dans le core)

• Communication PCI express : pour la communication avec le host. Des fois la communication fonctionne bien avec un motherboard puis pas avec un autre; des fois aussi le core pcie utilisé a des bugs à l’intérieur. Il se peut aussi que ce soit le motherboard qui n’est pas completement compatible PCIe

Page 25: Présentation dun design de carte vidéo Stéphane Tchoulack.

Présentation d’une carte vidéo

• Timings : Nos boards sont produits en grande quantité. Si les contraintes ne sont pas bien effectuées, certains ne passeront pas les tests de production

• Placement : Souvent on doit faire des placements manuels pour aider l’outil à passer l’étape de mapping

Page 26: Présentation dun design de carte vidéo Stéphane Tchoulack.

Conclusion

• La conception d’un produit se fait en fonction des besoins du client

• On doit toujours être compétitif: livrer des produits fonctionnels à temps, tout en défiant la concurrence

• On doit toujours évoluer avec la technologie ( s’adapter aux nouvelles interfaces, par exemple PCIe)

• On doit évoluer en fonction des outils de conception (nouvelles mises à jour de XILINX par exemple)