ASR1 – TD11 : Un vrai RISC dans mon FPGA ! A. Chis, M. Gallet, B. Pasca
2 Notre plateforme
2.1 Vue d’ensemble
Le FPGA sur lequel nous allons travailler se trouve sur une carte de d´
eveloppement mu-
nie de plein de ports d’entr´
ee/sortie tels que USB, RS232 (port s´
erie), PS/2, audio, SATA,
VGA,... ainsi que d’un emplacement pour une barrette de m´
emoire DDR. Tous ces ports et
p´
eriph´
eriques sont bien entendu directement interfac´
es avec le FPGA grˆ
ace aux I/O blocks de
celui-ci. La carte dispose en plus d’une horloge cadenc´
ee `
a100MHz, reli´
ee elle aussi `
a un port
d’entr´
ee du FPGA.
2.2 Contrˆoleur vid´eo
Le contrˆ
oleur vid´
eo affiche `
a l’´
ecran une r´
esolution de 640 ×480 pixels en 24 bits / pixel
(16 millions de couleurs).
Il s’agit en effet du contrˆ
oleur ´
etudi´
e par le premier DM. Ce contrˆ
oleur est mapp´
e sur
l’espace d’adressage correspondant `
a : 001X XXXX XXXX XXXX
2.3 Contrˆoleur PS/2
Le protocole PS/2 est un protocole s´
erie sur deux fils, `
a la I2C, le maˆ
ıtre ´
etant le p´
eriph´
erique.
Ce bus est bidirectionnel : le clavier (ou la souris) peut ´
ecrire sur le bus, mais peut aussi recevoir
des donn´
ees, comme par exemple l’´
etat allum´
ee/´
eteinte des LED sur le clavier. Le contrˆ
oleur
´
ecrit pour ce TD ´
etant tr`
es simpliste, il se contente d’´
ecouter sur le bus, mais n’y ´
ecrit jamais
rien.
Les messages envoy´
es par le p´
eriph´
erique font toujours 11 bits de long : 1bit de d´
ebut de
transmission, 8bits de donn´
ees, 1bit de parit´
e impaire et enfin 1bit de fin de transmission.
De mani`
ere `
a ne pas avoir `
a g´
erer les ph´
enom`
enes d’interruptions dans notre processeur, le
contrˆ
oleur PS/2 fonctionnel est equip´
e avec une file d’attente cyclique, longue de 254 ´
el´
ements,
cache pour le processeur. Dans cette file d’attente ne seront stock´
es que les 8bits de donn´
ees
de chaque transmission du p´
eriph´
erique.
Ce contrˆ
oleur est mapp´
e sur l’espace d’adressage correspondant `
a :
010X XXXX XXXX XXXX
2.4 M´emoire
La m´
emoire DDR ´
etant r´
eellement une horreur `
a g´
erer, nous allons nous contenter d’uti-
liser la m´
emoire disponible sur le FPGA sous forme de RAM blocks de 16kbits. En effet, ces
blocs ont le m´
erite d’ˆ
etre rapides d’acc`
es, mais aussi et surtout de disposer de deux paires
ind´
ependantes de ports lecture/´
ecriture. Ainsi, nous n’aurons pas `
a nous soucier des acc`
es si-
multan´
es `
a la m´
emoire. De plus, les RAM blocks proposent plusieurs modes d’adressage, de
16k×1bit `
a512 ×32 bits, ce qui va nous permettre de g´
erer diff´
erentes tailles de donn´
ees de
mani`
ere transparente.
Comme le processeur RISC que nous allons implanter est un processeur 16 bits, les mots
m´
emoire font 16 bits de mˆ
eme que les adresses. L’espace m´
emoire maximal est donc 216 ×16
bits.
4