TP architecture ordinateur 2016
TP1 : Circuits logiques avec [Link]
I. Introduction
Logisim est un logiciel open-source permettant de concevoir et de simuler des circuits logiques. Ce
document est un tutoriel qui décrit comment établir un système numérique à l’aide de cet éditeur de
schéma. Nous expliquerons les démarches nécessaires afin de concevoir, simuler une CPU simple.
Il existe différentes façons de décrire formellement les systèmes numériques : des langages de
description du matériel (HDL), des tables de vérité, des graphes d’états, ou des schémas. Logisim
permet uniquement de travailler sur des schémas. Le premier chapitre expliquera comment réaliser
un premier schéma.
Une des particularités de Logisim est de pouvoir éditer et simuler son circuit en même temps. Nous
expliquerons plus tard dans ce document comment simuler un circuit.
Etape 0: S'orienter
Lorsque vous démarrer Logisim, vous verrez une fenêtre semblable à l'illustration suivante.
FIGURE 1. Interface de Logisim
L'espace de Logisim est divisé en trois parties appelés le panneau de navigation, la table des attributs,
et la surface de travail (ou zone d'édition). Au-dessus de ces trois parties se trouvent la barre de menu
et la barre d'outils.
1
Nous pouvons rapidement mettre de détail le panneau de navigation et la table des attributs : nous ne
les examinerons pas dans ce tutoriel, et vous pouvez juste les ignorer. Par ailleurs, la barre de menu
s'explique d'elle-même.
Il nous reste la barre d'outils et la surface de travail. La surface de travail et l'endroit où vous dessinez
votre circuit ; et la barre d'outils contient les outils qui nous permettrons d'y arriver.
Question 2
Établir la table de toutes les fonctions logiques à 2 variables (a et b) possibles. Identifier
celles que vous connaissez.
La première chose que nous allons faire c'est d'ajouter les circuits logiques puis modifier le nombre
de bits 2 bit
2
Ajouter 2 entrer input le premier avec label A et le deuxième B
Ajouter plusieurs tunnel A pour lier entrer A avec chaque port logique et une autre B pour l’entrer B
Ajouter pour chaque port une sortie avec label le nom du port exemple AND pour la sortie de port
AND
3
Apres cliquer sur projet puis analyze circuit
4
Le logiciels affiche les tables de vérités de tous les ports
Question 4( facultatif
Simplifier l'expression suivante grâce à la méthode algébrique :
𝑓(𝑎, 𝑏, 𝑐) = (𝑎 + 𝑏 + 𝑐)(𝑎 + 𝑏 + 𝑐̅ )(𝑎 + 𝑏̅ + 𝑐̅)(𝑎̅ + 𝑏 + 𝑐)(𝑎̅ + 𝑏̅ + 𝑐)
Ecrire la table de vérité équivalente puis les étapes de question 5
Question 5
Ouvrir nouveau fichier Apres cliqué sur projet puis analyze circuit
Dans l’onglet inputs
Puis dans l’onglet outpus
5
Dans l’onglet table cliquer sur x dans la colonne f pour reproduire la table de vérité de
question
A B C f(a,b,c)
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
(a) simplification tables de Karnaugh minterms clique sur l’onglet minimized choisir sum of
product
6
Clique sur build circuit puis OK puis yes
Le logiciel propose le logigramme de solution
(b) simplification tables de Karnaugh maxterms clique sur l’onglet minimized puis choisir
prduct of sum
7
Clique sur build circuit puis OK puis yes
Le logiciel propose le logigramme de solution
Circuits combinatoires
Question 9 (facultatif vérifier avec logisim)
Utilisation des circuits logiques.
(a) Nous souhaitons utiliser un circuit pour "convertir" un nombre décimal (de 0 à 3) en
nombre binaire. Pour cela, nous utiliserons 4 entrées, actives de façon exclusive, pour
symboliser la valeur du nombre décimal à convertir. Faire la synthèse de ce circuit. Quel est
son nom ?
Ouvrir nouveau fichier Apres ajouté un circuits priority encoder avec select bit 2
8
Ajouter 4 entrer A,B,C,D
Ajouter un splitter pour pouvoir sélectionner chaque bits de sortis
9
Ajouter 2 sortis S0 et S1
Vérifier le fonctionnement de circuit avec un clique sur la main puis changer les
combinaisons
10
Pour réaliser ce circuit avec les ports logiques ; cliquer sur Project puis Analyze circuit
Puis ok suivi de minimize
11
Clique sur Build circuit après Vérifier le fonctionnement de circuit avec un clique sur la main
puis changer les combinaisons
(b)idem pour circuit decoder pour Faire la synthèse du circuit logique d'un décodeur
nécessaire pour adresser une mémoire de 8 mots.
12
TD 3 : Assembleur x86 (facultatif faire avec SASM langage nasm)
Exercice 1. Etat de la mémoire nasm
Tracer l'état de la mémoire lorsque les instructions suivantes sont exécutées.(vérifier avec
gdb)
instruction Eax Ebx edx Esp [esp] ZF CF OF SF
MOV eax, 0
MOV ebx , 0
MOV ax, 255
MOV bx, 0xff
PUSH ax
ADD ax,bx
MOV ax, [esp]
ADD al, bl
MOV ax, 127
MOV bx, 127
ADD al, bl
MOV eax, esp
MOV bx, [esp]
PUSH WORD 1
PUSH WORD 2
MOV bx, [esp+4]
POP bx
MOV ax,0xffff
MOV edx,0
MUL bx
Exercice 2. Code nasm (facultatif faire avec SASM langage nasm)
Traduire les bouts de code suivants en Assembleur :
si (eax=0 ou ebx=0) alors
ecx0
finsi
eax 5
tantque eax>0 faire
eax eax-1
fintantque
Exercice 3. Programmation avec nasm (facultatif faire avec SASM langage nasm)
Manipulation 1. Premier programme
Ecrire un programme qui demande sa date de naissance à l'utilisateur et lui répond en lui
Donnant son âge.
Indice : écrire les dates sous la forme : aaaammjj et calculer (aujourd'hui - naissance)/10000.
Manipulation 2. Ecrire un programme qui ...
1. calcule et affiche le maximum de 2 entiers entrés au clavier.
2. lit 2 entiers au clavier et qui affiche "OUI" si le premier divise le second et "NON" sinon.
3. lit un entier n au clavier et affiche n fois "Bonjour ".
4. qui demande le prénom à l'utilisateur et lui répond "Bonjour prénom".
13