Documente Academic
Documente Profesional
Documente Cultură
2ème année
Informatique Matérielle
Travaux Pratiques
Octobre 2006
page 1
Informations pratiques
Les groupes de Travaux Dirigés doivent être découpés en deux sous-groupes de 12 étudiants :
A1 et A2, B1 et B2, C1 et C2 (pour les étudiants de IMACS & MIC) et D1 et D2 (pour les
étudiants de MIC). Les étudiants de chaque groupe de TP doivent se répartir en binômes
(avec un monôme si le nombre total d’étudiants est impair, les trinômes n’étant pas
souhaitables). Chaque groupe de TP travaille dans une salle ou ‘sous-salle’ de 6 PCs avec un
enseignant. Cette répartition en groupes de TP et en binômes doit être effectuée par les
étudiants avant les TPs.
La présence et la participation aux séances de TP seront contrôlées.
Le travail se fait sur ordinateur sous Windows 2000. Les étudiants doivent utiliser leur
compte informatique INSAT (nom de login et mot de passe) valable dans toutes les salles
de l’INSAT connectées en réseau.
Tous les fichiers créés lors des séances de TP doivent être placés sur les répertoires personnels
des étudiants : tout fichier placé sur un autre répertoire risque d’être perdu.
Les étudiants peuvent accéder aux salles informatiques en dehors des séances de TP sous
réserve de disponibilité des salles et en demandant l’autorisation aux responsables de salles.
Nous vous conseillons de travailler avec méthode en donnant des noms clairs et courts à
vos fichiers et en n’hésitant pas à créer des sous-répertoires pour placer tous les fichiers
d’un même travail.
Vous pouvez télécharger ce document en version couleur et les outils DSCH3 et SIMPROC-
SIMUAL sur l’intranet pédagogique de l’INSAT (https://intranet.insa-toulouse.fr) :
Informatique Matérielle/Tronc Commun de 2ème année/TPs.
Introduction
La conception d’un produit logique industriel passe par une succession d’étapes dites
‘descendantes’ qui transforment progressivement les spécifications en une structure
assemblant des composants élémentaires. Les systèmes actuels étant de très grande
complexité, les ingénieurs utilisent des outils informatiques qui les aident à maîtriser ces
étapes de transformation et à vérifier la conformité des réalisations proposées avec les
spécifications. Tous les outils industriels de CAO (Conception Assistée par Ordinateur)
intègrent des Simulateurs logiques ou électroniques pour vérifier que la conception est
correcte. Le simulateur DSCH3 qui vous est proposé dans ce TP est une version simple
d’outil de vérification logique au niveau ‘portes’ dont la présentation est tout à fait semblable
à celle des outils professionnels. Vous allez donc vous familiariser avec ce contexte de travail
classique des conceptions orientées circuits intégrés tout en fixant certaines connaissances des
fonctions logiques combinatoires et séquentielles que vous avez vues en cours et en TD.
a
⊕ ⊕ S
1. Ouvrir DSCH en cliquant sur l’icône qui est sur le bureau Windows. Créer un nouveau
circuit que vous nommerez A3B (fichier A3B.sch). Placer dans le plan de travail de
l’outil DSCH des portes NANDs et XOR, des boutons d’entrée et des LEDs de sortie en
assemblant ces composants avec des connexions selon le schéma de la Figure 1. Se
référer à l’annexe I pour les commandes de l’outil DSCH.
Y4 X4 Y3 X3 Y2 X2 Y1 X1
Rs Z4 Z3 Z2 Z1
a
A
B S
b
Figure 3. Bascule RS
X Y
M o d u l e A d d i t io n n e u r
Re
b in a ir e 4 b its
Rs
X + Y
M o d u le d e
c o r r e c tio n
4 4
Les deux nombres binaires (X et Y) à ajouter sont compris entre 0 et 9. Le résultat de leur
addition binaire (X+Y) est donc :
• compris entre 0 et 18 si la retenue initiale Re vaut 0,
• compris entre 1 et 19 si Re vaut 1.
5
Une partie seulement des 2 configurations de sortie de l’additionneur binaire est donc
utilisée. Le résultat DCBN devant se présenter sous forme de deux chiffres décimaux (unités
et dizaine), il est nécessaire de corriger le résultat binaire lorsqu’il est supérieur à 9 pour
obtenir la forme souhaitée.
Exemples de fonctionnement :
• Prenons X = 0110 (6) et Y = 0010 (2) Î X + Y = 01000 (8). Le résultat est correct, la
partie unité vaut 8 (6 + 2) et la partie dizaine vaut 0.
• Prenons X = 0110 (6) et Y = 1000 (8) Î X + Y = 01110 (14). Le résultat est
incorrect et doit être corrigé : dizaine = 1 et unité = 0100 (4)
• Prenons X = 1001 (9) et Y = 0111 (7) Î X + Y = 10000 (16).
Il faut donc corriger : dizaine = 1 et unité = 0110 (6).
Nous allons maintenant reprendre et détailler ces deux modules : additionneur binaire 4-bits
et module de correction.
2 Module de correction
Le module de correction repose sur la comparaison à 10 et la soustraction (-10). Si le résultat
binaire est supérieur ou égal à 10, la retenue vaut 1 et il faut alors soustraire 10 au résultat
binaire (voir figure 5). Dans le cas contraire, le résultat est déjà correct.
Résultat binaire
X+Y
(Rs,Z4,Z3,Z2,Z1)
Comparateur
à 10
0 : < 10
1 : ≥ 10 Soustraction
(- 10)
U : Unité
D : Dizaine
(retenue) U4,U3,U2,U1
Remarque : Ce module effectue un transcodage du code binaire naturel à 5 bits vers un code
DCBN à deux digits.
1. Déterminer l’équation logique du comparateur à 10 en fonction des 5 bits d’entrées
(Rs, Z4, Z3, Z2, Z1 (Z1 est le poids faible)).
2. Réaliser le comparateur à 10.
3. Simuler et vérifier le fonctionnement du circuit comparateur.
4. Créer un module comparateur noté C10.
5. A partir du module S10 (soustraction 10) fourni par l’enseignant, mettre en place le
circuit de correction. La sélection de traitement « soustraction » ou « pas soustraction »
se fera à l’aide du module SELECTION fourni également en séance.
6. Simuler et vérifier le bon fonctionnement du circuit de correction.
7. Créer un module de correction.
8. Réaliser l’additionneur DCBN selon le schéma de principe de la figure 4 à partir des
modules additionneur et correction créés précédemment.
9. Simuler et vérifier le bon fonctionnement de l’additionneur DCBN complet.
Tapis 1
H1 Additionneur
1
COM1 Compteur NbrObjets
2
1 A
3
4 +
1
COM2 Compteur
2 B
2
3
H2 4 C5
Tapis 2
OK/KO
On désire réaliser un circuit qui indique combien d’objets sont présents dans l’unité. On
associe donc un compteur à chaque tapis et on ajoute les sorties de ces deux compteurs avec
un additionneur de nombres de 4 bits étudié dans la première partie. Les bits 3 et 4 des entrées
de cet additionneur seront donc mis à la valeur 0.
1. Réaliser l’interconnexion des objets CD2 (2 exemplaires) et AM4B.
2. Valider cette réalisation avec une séquence de fonctionnement ‘significative’.
3. On suppose que l’unité de traitement ne peut pas recevoir plus de 5 objets en même
temps. Définir et ajouter un module de comparaison à 5 (noté C5) qui détecte si le
nombre d’objets en sortie est supérieur ou égal à 5.
TP N°2
Structure et Fonctionnement des Ordinateurs
Les TP 2 & 3 illustrent la partie Structure et Fonctionnement des Ordinateurs de
l’enseignement d’Informatique Matérielle de seconde année. Ils sont consacrés à l’étude d’un
microprocesseur simulé et à la réalisation de petits programmes illustrant le fonctionnement
interne d’un microprocesseur. Ces études sont menées à l’aide de l’outil SimProc/SimUAL
qui fonctionne sous Windows 2000. Cet outil peut être téléchargé sur l’Intranet pédagogique
de l’INSAT.
Cette première fenêtre apparaît et décrit les différentes étapes, depuis l’élaboration d’un
algorithme structuré jusqu’au chargement en mémoire. L’exemple consiste à calculer la
valeur de (27-1) grâce à une méthode itérative. Vous trouverez en mémoire du simulateur, de
l’adresse 0010H à l’adresse 001AH, les instructions codées de ce programme.
Vous ferez fonctionner ce programme en mode pas à pas à partir d’un RESET.
A chaque étape, vous observerez et noterez les différentes actions effectuées dans la structure
(BUS, Multiplexeurs, UAL, registres généraux, registres d’adresses, …).
Algorithme structuré
Initialiser Var /* la valeur de Var doit être choisie > 0 */
Repeter
Var = Var -1
Tant que (Var ≠ 0)
Langage d’assemblage
Mnémoniques Commentaires
Etiquettes
Start : LDI R7,5 ; Initialiser Var (ici à 5)
Repeat: DEC R7 ; Var = Var - 1 (Indicateur Z affecté)
JNZ Repeat ; Tant que (Var ≠ 0)
End : JMP End ; Boucle infinie
Assemblage
On décide que le placement commencera à l'adresse hexadécimale 0020.
Code Source
Adresses
0020 1470 LDI R7,5
0021 0005
0022 0170 DEC R7
0023 24FE JNZ Repeat (-2)
0024 20FF JMP End (-1)
TP N°3
Structure et Fonctionnement des Ordinateurs
I - La méthode
Calcul du PGCD de deux nombres par la méthode d'Euclide
PGCD (A, B), avec A et B tels que A > B
1°) R1 = A mod B (reste de la division entière de A par B)
2°) R2 = B mod R1
3°) R3 = R1 mod R2
…
n°) jusqu'à Rn = 0. Alors PGCD = Rn-1
II - Algorithme structuré
A, B initialisés
Si (A < B)
Alors échanger A avec B
Répéter Calcul de R = A mod B
R = A mod B (voir ci-contre) RÅA
AÅB Tant que (R ≥ B) faire
BÅR
RÅR–B
Jusqu'à (R = 0)
(in fine PGCD en A)
Et finalement :
A, B initialisés avec A > B
Répéter
RÅA
Tant que (R ≥ B) faire
RÅR–B
AÅB
BÅR
Jusqu'à (R = 0)
(in fine PGCD en A)
Lancement de DSCH
Cliquer deux fois sur l’icône DSCH. L’écran de la figure 1 apparaît. Il comprend :
Dans la boite de dialogue qui apparaît (ci-dessus), choisir le fichier BASE.SCH puis “Ouvrir”.
L’écran de la figure 3 apparaît alors.
Une petite réglette vous permet de modifier la vitesse de simulation (utile lorsque l’on utilise
une entrée d’horloge). Enfin vous pouvez choisir de visualiser l’état logique des lignes (wires)
ou des entrées/sorties (pins) des portes logiques.
En mode de simulation, utilisez la souris pour cliquer dans les boutons logiques d’entrée des
petits circuits. L’état logique des entrées change alors et cela affecte ou non les sorties. La
couleur rouge correspond à un niveau logique “1”, le noir le niveau logique “0”. Cette
simulation est interactive.
Il est possible de visualiser les chronogrammes de l’évolution des signaux logiques (Figure 6).
Arrêt de la simulation
Cliquer sur l’icône Stop Simulate, ou choisir au menu SimulateÆ End simulation, ou encore
frapper Ctrl-E au clavier. La simulation s’arrête et vous êtes de nouveau en mode édition.
L’icône permet de visualiser les simulations logiques qui viennent d’être effectuées.
L’écran reporté ci-dessous montre l’évolution de différents signaux au cours du temps.
Quitter Dsch
Cliquer File ->Leave Dsch du menu principal pour quitter le logiciel. Celui-ci vous pose une
question de confirmation, ainsi qu’une demande éventuelle de sauvegarde du circuit en cours
d’édition s’il a été modifié.
Remarque. Pensez toujours à sauvegarder vos circuits dans des fichiers distincts avec des
noms clairs et courts.
BASIC SYMBOLS Certains symboles ont été construits avec des primitives et sont
disponibles sous DSCH : Add, Comp, Dlatch, et Rs.
Ces symboles se trouvent dans le répertoire « \symbols ».
Le schéma correspondant se trouve dans le répertoire « \schemas »
USER-DEFINED Vous pouvez créer votre propre symbole pour représenter votre
SYMBOLS dessin en cours d’édition : utiliser pour ce faire la commande
Menu→Schema to new symbol.
Les boutons et claviers définissent les pins d’entrée tandis que les
lampes et afficheurs précisent les sorties.
Par défaut, les entrées sont créées à gauche du symbole, les sorties
à droite. Cette répartition peut être modifiée par l’utilisateur
Les menus
Menu « File »
Redémarre le programme
avec un fichier par défaut
’example.sch’
Traduit le circuit en
Sauve le circuit en un fichier de texte au
cours format Verilog
Sous le circuit sous un
nom nouveau
Traduit le circuit en un
Génère un symbole fichier de texte au format
équivalent au schéma Spice
en cours d’édition
Passe en mode
monochrome ou couleur
Quitte le logiciel
Imprime le circuit
en cours d’édition
Menu « Edit »
Menu « View »
Voir l’ensemble du
circuit
Chronogrammes de
la dernière
simulation Remettre le dessin sous
sa forme originale
Menu « Simulate »
Vérifie le dessin
Options de
simulation
Démarre la simulation
La barre d’icônes
Move symbol
Electrical node
Start simulation
Copy
Connect
Rotate Left
Wire
Flip
Connect
Cette commande ajoute un point de connexion électrique entre deux fils qui se croisent
ou se touchent. Cliquer l’icône, puis cliquer à l’endroit de la connexion. Noter que la
jonction est automatiquement rajoutée lors de l’ajout d’interconnexion dans les cas de
figure standard.
Copy
Cliquer l’icône «copy ». Déplacer la souris dans la fenêtre de dessin, délimiter l’espace
englobant les éléments à copier. En relâchant la souris, la forme des objets copiés apparaît.
Cliquer à l’endroit désiré pour fixer les éléments à copier. La touche «escape » permet
d’arrêter le processus de copie.
Voir Paste pour replacer des éléments effacés.
Voir Cut pour effacer des éléments.
Voir Move pour déplacer un symbole, une ligne ou un texte.
Voir Stretch pour agrandir une connexion
Cut
Cliquer l’icône «cut ». Déplacer la souris dans la fenêtre de dessin, délimiter l’espace
englobant les éléments à effacer. En relâchant la souris, les objets englobés disparaissent. Un
simple clic dans un symbole ou sur une interconnexion permet aussi d’activer l’effacement.
Remarque : le nom d’une «pin » de symbole ne peut être effacé par cette commande. Il faut
cliquer deux fois dans le symbole pour éditer ses propriétés, puis déselectionner la propriété
«pin visible ».
Floating Lines
Avant la simulation, Dsch fait une vérification du dessin et peut trouver des lignes flottantes
et les signaler.
Insert Symbol
Cliquer dans la palette le symbole désiré, et sans relâcher le bouton de la souris, se remettre
dans la fenêtre de dessin pour désigner l’endroit où fixer le symbole. Relâcher le bouton de la
souris, le symbole est positionné. Une alternative est de lancer la commande Insert ->IEEE
Symbol.
Line
Cliquer l’icône. Revenir dans la fenêtre de dessin, cliquer pour fixer le point de départ de la
connexion et sans relâcher le bouton déplacer la souris au point d’arrivée de la connexion.
Relâcher alors la souris.
La ligne est automatiquement routée sur un pas de grille fixe
Dans certaines configurations de connexion attachées, un point de connexion électrique est
automatiquement rajouté.
Move Command
Cliquer l’icône ci-dessus. Cliquer dans le symbole, garder appuyé. La forme du symbole
apparaît. Déplacer la forme du symbole à l’endroit voulu. Le symbole est alors déplacé. Il est
aussi possible de déplacer des lignes et du texte.
En déplaçant un symbole verticalement ou horizontalement, les connexions existantes sont
réajustées.
En cliquant précisément à une extrémité d’une connexion, la commande «stretch » est activée
Pour déplacer un groupe d’objet, passer par la commande «cut » puis la commande «paste »
Paste
Cliquer l’icône «paste » ci-dessus. Les éléments effacés au préalable apparaissent sous la
forme d’une boite englobante. Cliquer à l’endroit voulu pour les fixer.
L’opération «paste » doit suivre l’opération «cut ».
Print Schema
Imprimer le schéma en cours d’édition. Lancer au préalable la commande «view All » si
vous voulez être sûr d’imprimer l’ensemble du dessin.
Properties
Informations sur l’état du logiciel avec le détail du remplissage de sa base de données.
Il est possible pour chaque «pin » du symbole de préciser sa position : ‘U’ pour « Up (haut)»,
‘D’ pour « down (bas)», ‘L’ pour « left (left)» and ‘R’ pour « right (droite) ». Les
numérotations affectent la position des pins, le « 1 » correspondant à la pin la plus en haut et à
gauche.
Cliquer Save pour sauvegarder votre symbole, dont le nom et l’endroit précis de sauvegarde
apparaissent dans le bandeau d’information.
Voir Insert -> User symbol pour rappeler votre nouveau symbole.
Symbol Library
Liste des symboles disponibles directement. Une alternative est d’utiliser la commande
« Insert -> IEEE Symbol »
Select
Cliquer l’icône «select » avant de double-cliquer dans un symbole pour éditer ses propriétés
Cliquer l’icône «select » avant de modifier la forme d’une interconnexion Cliquer ensuite sur
l’une ou l’autre des extrémités de l’interconnexion
Text
Cliquer l’icône «texte ». Revenir dans la fenêtre de dessin et cliquer à l’endroit où le
texte sera fixé. Une fenêtre apparaît dans laquelle vous entrez le texte au clavier. Une
fois validé, le texte est dessiné dans la fenêtre.
En cliquant dans le texte avec l’icône texte sélectionnée, vous pouvez l’éditer
Le texte est indépendant des autres éléments
La longueur de la chaîne est limitée à 128 caractères
View All
L’écran est redessiné de manière à inclure la totalité des objets en cours d’édition, symboles,
interconnexions et texte.
View Interconnect
Cette commande permet de faire apparaître dans une couleur spécifique le nœud électrique à
l’endroit précisé par le curseur. Cliquer «escape » pour redessiner le schéma avec les couleurs
normales.
Masse. Alimentation.
Récapitulatif
Résumé des principales commandes
Menu Sous menu Description
Icône
Dsch utilise quatre types de fichiers de données, tous de type texte lisible par tout éditeur de
base tel que NOTEPAD.
Présentation du simulateur
La vision du processeur simulé est celle qui apparaît dans la fenêtre suivante :
On retrouve dans ce cadre les différents éléments qui constituent la structure d’un ordinateur.
Les principaux sont l’unité de commande, l’unité arithmétique et logique, les unités d’entrée
et de sortie, une banque de registres généraux internes ainsi que quelques registres spécialisés
indispensables au fonctionnement de l’ordinateur. Il apparaît de plus dans ce même cadre la
mémoire externe au processeur, dans laquelle sont stockés les programmes et les données
(architecture de Von Neumann).
Afin de bien distinguer chacun de ces éléments, le simulateur permet d’obtenir l’affichage
suivant par simple clic du bouton gauche de la souris sur le fond de page :
Glossaire
Un glossaire rappelle le nom et le rôle de chacun des éléments internes (registres, signaux,
principaux composants, …) du processeur. Ce glossaire est accessible par simple clic sur le
bouton gauche de la souris sur le fond de page.
L’unité de Commande
L’unité de commande est modélisée par une machine séquentielle à états. Dans le
déroulement complet d’une instruction :
• 2 états sont nécessaires pour la recherche de l’instruction
9 lecture de l’instruction et chargement dans le registre d’instruction
9 décodage de l’instruction
• de 0 à 3 états sont utilisés pour exécuter l’instruction
• 4 états sont nécessaires pour le traitement d’une requête d’interruption (prise en
compte de l’interruption).
Le jeu d’instructions
• les instructions du groupe 0 sont celles qui utilisent l’unité arithmétique et logique.
• le groupe 1 rassemble les instructions de recopie, de chargement, de stockage et
d’entrée/sortie.
• le groupe 2 correspond aux instructions de sauts conditionnels et inconditionnels.
• enfin le groupe 3 contient les instructions de contrôle du processeur.
Les 5 figures suivantes décrivent ces formats et groupes, elles peuvent être appelées par
simple clic sur le bouton gauche de la souris sur le fond de page.
Instructions du groupe 0
Instructions du groupe 1
Instructions du groupe 2
Instructions du groupe 3