Vous êtes sur la page 1sur 5

I.

Jeu d’instructions demandé :


On considère un robot capable de marcher, en avant ou en arrière, et de pivoter vers la gauche ou vers
la droite. Ce robot est programmable, suivant du jeu d’instructions dans le tableau ci-dessous :

II. Exemple d’application :


Le robot dispose de 4 compteurs permettant l’écriture de programmes avec des boucles. Le
programme de cet exemple d’application, demande au robot d’avancer de 16 pas, puis de pivoter à
gauche, les toutes 4 fois (il suit alors un rectangle et revient en position de départ).

III. Description des composants :


Le prototypage du circuit de commande de ce cerveau du robot sur un FPGA, sera réalisé à partir des
composants suivants :

• Un compteur de programme destiné à contenir l’adresse de la prochaine instruction à exécuter. On


suppose que ce compteur de programme est initialisé avec l’adresse de la première instruction du
programme ;

• Un registre instruction destiné à contenir une instruction lue en mémoire ;

• Un décodeur ;
• Quatre compteurs 8bits ;

• Un composant combinatoire permettant de décrémenter ( -1) une valeur 8 bits ;

• Un contrôleur du moteur du robot qui, sur un front montant d’horloge, lorsque son entrée est à 1
actionne un des moteurs selon la commande appliquée (mouvement=1 pour pivoter et 0 pour archer ;
sens=1 pour avancer ou tourner à gauche et 0 pour reculer ou tourner à droite).

III.Prototypage du Cerveau d’un Robot Programmable


Le but de cette partie de projet est de réaliser un programme VHDL permettant d e concevoir
le processus de travail du cerveau du robot programmable , suivant un cahier de charge bien définit,
qui sert à contrôler deux moteurs qui jouent le rôle des actionneurs du système.

Le travail consiste à implanter un design en utilisant l’outil ISE 12.3 de XILINX, ce design
contient :

• Un programme « Data_Path » utilisant la notion component qui permet l’exécution

des toutes les opérations définies par les instructions.

• La machine d’états finis « FSM_Motor », qui permet de déterminer l’action à

exécuter.

• Un module « Motor_Controller » qui permet la gestion de l’horloge en fonction de

l’horloge de l’FPGA.

1. L’unité de contrôle (FSM) :


Le mot de contrôle pour ce chemin de données est constitué de 5 signaux de contrôle : IR_Load, Jmp,
PC_Load, Set_Dec, et Cmp_Load. Ces signaux sont utilisés pour exécuter les opérations du cycle
d’instruction et les opérations des jeux d’instructions. Le c hemin de données génère un signal de
statut (Cmp_Neq0) pour l’unité de contrôle.

Les signaux de contrôle qui sont générés à chaque état, et qui déterminent l’action à exécuter, sont
données dans la table de sorties présentée ci -dessous :

III. Le Contrôleur Moteur :

La conception du contrôleur Moteur (Motor Controller), a été faite suivant deux versions, l’une est
basique, concernant la simulation des entrées du moteur commandé, l’autre est plus pratique de point
de vue, signaux de commande du moteur pas à pas.

Dans sa version basique, le contrôleur moteur doit générer, 4 signaux de sortie sur un front montant
d’horloge , correspondant { l’action désirée { exécuter ( Mav, Mar, Tg, Td). Cette tâche est réalisé
avec le module Cmp_position du contrôleur moteur basique ; lorsque son entrée est à 1
actionne un des moteurs selon la commande appliquée (mouvement=1 pour pivoter et 0 pour
marcher ; sens=1 pour avancer ou tourner à gauche et 0 pour reculer ou tourner à droite
3. Le chemin de données (Data Path) :

Le chemin de données doit permettre l’exécution de toutes les opérat ions définies par les instructions.
Il est organisé en trois parties :

1. Une partie pour mettre en œuvre les opérations du cycle d’instruction (chercher

une instruction FETCH et incrémenter ou charger le PC)

2. Une mémoire ROM

3. Une partie pour effectuer les opérations sur les données pour toutes les instructions du jeu
d’instructions.

Vous aimerez peut-être aussi