La vidéo : une Tang Nano 20K en carte graphique
La carte graphique du Projet 816 est un FPGA, la Tang Nano 20K. Le processeur ne voit d’elle qu’une fenêtre de 32 registres, à la manière de la VERA du Commander X16.
Le rôle de la 20K
La Tang Nano 20K est un FPGA de Sipeed, plus gros que la 9K. Dans le Projet 816, elle :
- joue le rôle d’une puce vidéo de type VERA, celle du Commander X16 ;
- produit l’image sur une prise HDMI ;
- garde la mémoire vidéo dans sa propre SDRAM, sans prendre de place dans les 16 Mo du processeur.
Une fenêtre de 32 registres
La 20K n’est pas branchée sur tout le bus : elle ne voit que A0 à A4 (32 registres), D0 à D7,
une sélection, R/W et PHI2. Ses registres apparaissent dans la page $00:9D00 –
$00:9DFF.
Le processeur n’écrit donc pas directement dans la mémoire vidéo : il y accède de manière
indirecte, comme sur la VERA. Le plan des registres (v0.1, à valider) prévoit deux ports : pour
chacun, le processeur donne une adresse vidéo et un pas, puis lit ou écrit les octets un à un par un
registre de données, l’adresse avançant toute seule. D’autres registres allument l’affichage, choisissent
le mode (VMODE), donnent la ligne en cours et déclenchent une interruption au retour vertical ou à une
ligne choisie. Voir Le plan des registres.
Les interruptions
La 20K peut demander l’attention du processeur en tirant la ligne d’interruption IRQB ou NMIB, en drain ouvert, directement, sans passer par la 9K.
Ce qui reste à définir
La résolution, les modes d’image, les couches et les sprites ne sont pas encore définis : ils seront décrits dans un plan de la mémoire vidéo, auquel ces registres donnent accès. Le son par la prise HDMI est une évolution prévue, à travers la 20K.