Étape 2: Sortie - contrôleur VGA partie 1
On va afficher nos données visuelles à l’aide du port HDMI présent au Conseil d’administration. Le port HDMI est connecté à la PL (Programmable Logic = FPGA) côté de la ZYNQ et nous aurons besoin de concevoir un contrôleur en VHDL pour cela. Si vous avez déjà conçu un contrôleur VGA que vous trouverez cela très similaires. Les minutages pour HDMI et VGA sont en fait les mêmes, en fait, vous pouvez construire sur un contrôleur VGA existant pour obtenir un contrôleur HDMI.
Pour une meilleure compréhension de ce qui se passe en réalité, nous allons tout d’abord concevoir un contrôleur VGA
Nous voulons montrer à une résolution de 1920 x 1080.
Le contrôleur VGA est chargé de transmettre les données de pixels (en format RVB) séquentiellement, pixel par pixel à l’écran. En dehors de la zone d’affichage réel de 1920 x 1080 il y a aussi certaines zones de la "frontière", à savoir : front porch, balcon arrière et retracer. La taille en pixels de ces zones sont standard et spécifiques à chaque résolution. Ces zones n’apparaissent pas en fait sur l’écran, mais ils sont obligatoires et la couleur des pixels dans ce domaine doit être noire. Une question pertinente serait pourquoi ces zones supplémentaires sont nécessaires. Cette question défie l’objectif de ce instructable mais si vous êtes curieux, que je vous encourage à réaliser des recherches supplémentaires en ligne.
Il s’agit d’une bonne vidéo expliquant le VGA interface https://goo.gl/vfSw6o
Dans notre cas, nous voulons afficher à une résolution de 1920 * 1080, et ce sont les timings :
Zone d’affichage horizontal = 1920 pixels
Porche de Fron horizontal = 88 pixels
Horizontal Back Porch = 148 pixels
Retracer horizontal = 44 pixels
Zone d’affichage vertical = 1080 pixels
Porche vertical = 4 pixels
Vertical Back Porch = 36 pixels
Retracer vertical = 5 pixels
(Ici vous pouvez trouver les horaires pour les autres résolutions http://goo.gl/hFNRVb )
Notre résolution réelle sera donc 2200 x 1125. Nous voulons 60 fps (images par seconde) donc notre horloge pixel sera 60 * 2200 * 1125 = 148,5 MHz. Sur le plateau de Zybo une 125 Mhz horloge est fournie. Nous allons utiliser un IP MMCM pour générer l’horloge de Pixel 148,5 MHz nous avons besoin.