

         |

Emulateurs
graphiques
Windows
Unix (X11, MAC OS X, Linux)
Introduction
Il n'est pas
forcément évident de disposer
de la carte physiquement pour mettre en oeuvre le noyau FORTH
temps réel présenté dans ce site.
Etant donné
que la plupart des ordinateurs grand public (MAC ou PC)
bénéficien
d'une puissance de calcul très importante, il es
intéressan
de l'utiliser pour émuler d'autres machines sans trop de
perte de performance.
Le premier
émulateur du coeur FORTH a été
développé par un virtuose du monde PC, FBROTON,
qui a réalisé un programme extrêmemen
comple
et facile à installer sous Windows. Il a des performances
très acceptables lorsqu'il est installé sur un PC
avec processeur Pentium III. De plus, l'interface homme machine
est très simple d'utilisation ce qui le rend abordable
à toute personne pas trop experte en informatique.
Le
problème avec cet émulateur, c'est qu'il
ne tourne que sur PC sous Windows, ce qui n'est pas trop
gênan
sachant que c'est le système d'exploitation qui tourne
sur la plupart des ordinateurs existants. Par contre, pour une
personne comme moi par exemple, qui dispose d'un MAC, il fau
utiliser un émulateur de PC pour faire tourner ce
émulateur.
Ceci ajoute une couche de logiciel qui dégrade
énormémen
et donc très désagréablement les
performances.
Le monde MAC
vient d'évoluer considérablemen
avec le nouveau système d'exploitation MAC OS X
intégran
un noyau UNIX. Ceci le rend compatible avec les stations de travail
SUN et même avec les PC pour peu qu'ils soien
équipés
du système d'exploitation LINUX. Comme APPLE a eu la
géniale
idée de fournir les logiciels de développemen
dans
son nouveau système d'exploitation, j'ai pu me lancer dans
la réalisation d'un émulateur qui,
après
légère adaptation du script de compilation, s'es
révélé opérationnel sur une
station
SUN et même sur un PC sous LINUX.
Ceci fut la
première étape de mon émulateur
qui ne tournait alors qu'en mode terminal. Pour l'interface graphique,
une solution UNIX existe: OpenGL ( http://www.opengl.org/ ). Cette
norme perme
de disposer de routines graphiques très puissantes sur
toute machine UNIX comme une extension du langage C. Ce qui m'a
permis d'enrichir mon émulateur d'une émulation
de l'interface VGA intégrée dans le FPGA du coeur
FORTH.
L'émulateur
sous UNIX est maintenant bruyant grâce
à OpenAL ( http://www.openal.org/ ).
Windows
Découvrez
le
superbe émulateur du coeur FORTH pour PC sous Windows
réalisé par FBROTON. Vous trouverez une
documentation
complète qui vous permettra d'utiliser au mieux toutes
les possibilités offertes.
Unix (X11, MAC OS X, Linux)
Voici enfin une version de
l'émulateur
du coeur FORTH pour le monde UNIX. Les registres additionnels
spécifiques à l'émulateur sont les
mêmes
que ceux de l'émulateur de FBROTON afin de conserver une
certaine compatibilité.
ATTENTION
: ces logiciels son
libres de droit et ne peuvent en aucun cas être vendus.
Syst.
d'exploitation
/Ordinateur
|
Logiciel
|
Commentaires
|
OS X/MAC
|
CoeurFORTH.dmg |
Application MAC OS X version 5.00.
(Universal Binary pour PPC et X86 à partir de MAC OS 10.4).
Référencé sur 
|
LINUX/PC
|
CoeurFORTH.zip |
Version 5.00.
Il n'est pas nécessaire d'installer Linux sur votre PC. Vous
devez télécharger le CDROM KNOPPIX ou UBUNTU,
décompresser le fichier, aller dans le
répertoire "CoeurFORTH" puis lancer "CoeurFORTH" dans un terminal.
Testé avec CD UBUNTU 10.10.
|
Voici une représentation
graphique
de ce que l'on obtient sous MAC OS X:
Description des
différentes interfaces simulées:
Fenêtre |
Registres d'extension
associés |
Contrôle

|
Non applicable
Cette fenêtre contient un terminal VT100 et une partie contrôle permettant de configurer le FPGA e
l'accès aux fonctions de l'émulateur:
- choix entre instruction mulu ou addc
à l'initialisation,
- choix entre coeur 16 ou 32 bits,
- choix entre ROM interne et FLASH externe à
l'initialisation,
- poussoir d'initialisation (RESET),
- réglage des performances du coeur,
- réglage de la résolution de l'écran
graphique,
- réglage du niveau de la sortie son,
- affichage des performances du coeur,
- affichage des performances graphiques,
- affichage du niveau du son,
- indication du respect du temps réel,
- affichage du taux d'occupation du processeur hôte,
- accès aux autres fonctions de l'émulateur.
|
Entrées sorties discrètes

|
272 (0x110) PORT_A
273 (0x111) PORT_B
écriture: valeur[15..0]
lecture: (valeur&entrée)[15..0]
voyant allumé si valeur&entrée=1
Voir la page technique correspondante (avec une vidéo). |
Entrée sortie analogique

|
274 (0x112) échantillonnage
275 (0x113) entrée/sortie analogique
si écriture
échantillonnage = 0
-lecture et écriture analogique directe
-lecture échantillonnage = 1
sinon
-FIFO 2048 échantillons 10 us (1) à 8
échantillons 2,55 ms (255)
-lecture échantillonnage = nombre d'échantillons
disponibles
Les valeurs analogiques doivent être comprises entre -128 e
+127
Voir la page technique correspondante (avec une vidéo). |
Moteurs pas à pas

|
276 (0x114):
bits[15..7] = 0xFF8 si angle 0 (en haut)
0x000 sinon (lecture seule)
bit[6] = 1 pour piloter l'index
(lecture/écriture)
bit[5] = 1 pour piloter la grande aiguille
(lecture/écriture)
bit[4] = 1 pour piloter la petite aiguille
(lecture/écriture)
bits[3..0] = phase4,phase3,phase2,phase1
(lecture/écriture)
1 tour = 120 pas (3°/pas)
Voir la page technique correspondante (avec une vidéo). |
Barre graphe

|
277
(0x115):
écriture: valeur[15..0]
le bit 0 correspond au voyant vert à gauche
le bit 15 correspond au voyant rouge à droite
voyant allumé si valeur=1
Voir la page technique correspondante (avec une vidéo).
|
Petit clavier

|
278 (0x116) lecture seule:
bits[15..4] = 0xFFF si touche enfoncée
0x000 sinon
bits[3,2] = numéro de la ligne (0 en haut)
bits[1,0] = numéro de la colonne (0 à gauche)
les bits[3..0] sont mémorisés lorsque la touche
est relachée
Voir la page technique correspondante (avec une vidéo). |
Afficheurs 7 segments

|
280 (0x118) afficheur 0 (à gauche)
281 (0x119) afficheur 1
...
287 (0x11F) afficheur 7 (à droite)
lecture/écriture:
bits[15..8] = 0x00
bits[7..0] = a,b,c,d,e,f,g,dp
segment allumé si 1
Voir la page technique correspondante (avec une vidéo). |
Afficheurs matriciels

|
290 (0x122) colonne 0 (à gauche)
291 (0x123) colonne 1
...
299 (0x12B) colonne 9 (à droite)
lecture/écriture:
bits[15..8] = 0x00
bits[7..0] = 0, point en bas, ..., point en haut
point allumé si 1
Voir la page technique correspondante (avec une vidéo). |
Connexions UART

|
257 (0x101) UARTA_BAUD
258 !0x102) UARTA_CTRL
259 (0x102) UARTA_DATA
260 (0x103) UARTB_BAUD
261 !0x104) UARTB_CTRL
262 (0x105) UARTB_DATA
chaque UART peut être connectée au TERMINAL de la
fenêtre de contrôle, à un des 7 SOCKETs vers un autre
émulateur ou bien à une véritable liaison RS232 de
l'ordinateur hôte |
Interfaces CAN

|
Jusqu'à 8 émulateurs peuvent être connectés sur 2 bus CAN pouvant être reliés.
Voir la page technique correspondante (avec une vidéo).
|
|
 |
 |