tp homade assembleur

Transcription

tp homade assembleur
TP HOMADE ASSEMBLEUR
Bonne nouvelle il existe un générateur de binaire pour Homade. Il produira votre fichier VHD
spécifiant la ROM qui contient le programme à exécuter à partir d’un code post fixé respectant la
syntaxe présentée sur le site www.lifl.fr/~dekeyser/Homade.
Copiez les fichier de www.lifl.fr/~dekeyser/Homade/V1.4/asm/ chez vous. Un exemple de code est
fourni dans le fichier add8_TP1.fs.
Ce TP va consister à valider quelques algorithmes sur Homade à partir de codes développés avec cet
assembleur.
Avant exécution il faut modifier les deux lignes suivantes dans homade.sh.
GFORTH="gforth"
HOMADEFS= …ma_dir…./hmdV1.4.fs
La commande pour lancer cet assembleur est
sh homade.sh mon_fichier_sans_extension
Le fichier hmdV1.4.fs doit être copier dans votre directory , il contient une liste d’IP prédéfinis pour
lesquels il existe un mot clef Forth. Ce sont les lignes qui contiennent binary. Vous pourrez modifier
ce fichier si vous voulez modifier l’assembleur.
Le lancement de la commande sous linux nécessite un nom, lit le fichier
mon_fichier_sans_extension.fs et produit le fichier mon_fichier_sans_extension.vhd.
Si vous utilisez votre propre machine vous devait charger GNU Gforth et récupérer ces fichiers.
1) Compilez le fichier add8.fs et comparez le code avec celui que vous aviez fourni dans le TP
précèdent
2) Ecrire le code pour ADD16.fs, le compiler et exécuter sur homade
3) Proposez un code qui saisit un nombre I sur les switchs et affiche le Iième nombre de la suite
de fibonacci : 1 1 2 3 5 8 13 …… (affichage en hexa) (un IP VHDL pour transformer un hexa en
BCD serait à développer pour Homade ;-))
4) Même programme qui affiche tous les Iieme premiers nombres de fibo en laissant le temps
de les voir sur l’afficheur ( IP Wait est fait pour ralentir Homade), Vous pouvez aussi
développer un IP fibo en Vhdl qui fait la même chose : sommet de pile = I , IP long et résultat
sur la pile… ( 20 assuré si çà tourne dans Homade;-)
5) Développer un programme casino qui utilise les switchs pour parier, les leds comme roulette
et qui gagne des points quand le switch ou l’un des switchs aura été positionné devant la led
finalement allumée et qui en perd sinon… On définira une fonction rdm, on peut aussi définir
un IP RDN mais il y a beaucoup plus de travail à faire…. Ce projet est ouvert , vous pouvez
définir votre propre cahier des charges avec votre propre ambition dans la réalisation, un
minimum devra néanmoins fonctionner !