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

Preview:

Citation preview

Présentation d’un 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

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

Présentation d’une carte vidéo

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)

Présentation d’une carte vidéo

• Architecture générale

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

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

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)

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”)

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

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)

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

Présentation d’une carte vidéo

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

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

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

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)

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

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

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)

Recommended