Vous êtes sur la page 1sur 22

MI41 - Final Automne 2001

MI41 FINAL

Documents autoriss : poly de cours et TD


Dure 2h

1. Circuit de Dcalage
1.1. Dcaleur simple
On souhaite raliser un circuit dit dcaleur 8 bits. Le principe consiste dcaler la valeur dun mot de 8 bits de N rangs vers la
gauche ou vers la droite.
N est compris entre 0 et 7. On se limitera au dcalage gauche (poids faible vers poids fort). Dans ce type de circuit, lors des
dcalages gauche, les bits de poids faibles prennent pour nouvelle valeur 0.
Exemple :
E5 E6 E5 E4 E3 E2 E1 E0

D2
<< N D1
D0

S7 S6 S5 S4 S3 S2 S1 S0
Dcaleur N bits

Les entres E sont les entres de donnes, les entres D correspondent au nombre de rangs de dcalage (N). S correspond aux
sorties dcales.
Ainsi si D = 011 (N = 3) S est gal E dcal de 3 rangs vers la gauche :
S7 = E4 ; S6 = E3 ; S5 = E2 ; S4 = E1 ; S3 = E0 ; S2 = 0 ; S1 = 0 ; S0 = 0
1.1.1. Description VHDL
1. Donnez la description comportementale (pas dquations logiques) VHDL de ce circuit dcaleur N bits (entity/architecture)

1.1.2. Ralisation laide de portes logiques


Le principe du dcalage est bas sur 3 circuits de dcalage. Chacun de ces circuits de dcalage permet deffectuer, en fonction
dune entre de commande D, les dcalages suivants :
Dcalage gauche de 0 bit si D0 = 0 ou dcalage gauche de 1 bit si D0 = 1.
Dcalage gauche de 0 bit si D1 = 0 ou dcalage gauche de 2 bits si D1 = 1.
Dcalage gauche de 0 bit si D2 = 0 ou dcalage gauche de 4 bits si D2 = 1.

E E E

<< 1 ou 0 D0 << 2 ou 0 D1 << 4 ou 0 D2


0

S S S
Dcaleurs 1, 2 et 4 bits

Exemple du dcaleur 1 bit


Si D0 = 0, [S7 S6 S5 S4 S3 S2 S1 S0] = [E7 E6 E5 E4 E3 E2 E1 E0]
Si D0 = 1, [S7 S6 S5 S4 S3 S2 S1 S0] = [E6 E5 E4 E3 E2 E1 E0 0]

1. Donner les quations logiques correspondant la sortie S7 du dcaleur 2 bits


2. Donner le logigramme correspondant la sortie S7 du dcaleur 2 bits (on n'utilisera que des portes logiques 2 entres)
3. Donner la structure du dcaleur N bits en utilisant les blocs fonctionnels, donns ci-dessus, des dcaleurs 1, 2 et 4 bits.
4. Si les portes logiques utilises ont un temps de traverse de 1ns, quel est le temps de travers du dcaleur N bits ?

UTBM 1/3 Nicolas Lacaille


MI41 - Final Automne 2001
1.2. Registre dcaleur
On souhaite raliser le registre suivant
DataIn

D[2..0]
H Registre load

DataOut
Avec :
DataOut correspond la valeur (un octet) mmorise dans le registre
Lorsque load est actif (i.e. lorsque load = 1) la donne, sur un octet, prsente sur lentre DataIn est charge dans le
registre sur un front montant de lhorloge H.
Lorsque la valeur prsente sur lentre D[2..0] est diffrente de "000" et que load est inactif la donne dans le registre
est dcale sur un front montant de lhorloge H de N rang vers la gauche, o N correspond au nombre binaire D[2..0].

1.2.1. Description VHDL


On souhaite, pour raliser le registre dcaleur, rutiliser le circuit dcaleur simple. On suppose que ce dernier est disponible
sous forme de component et peut donc tre utilis dans cette nouvelle description laide de linstruction port map.
1. donner la description comportementale en VHDL de ce registre dcaleur (entity/architecture)

1.2.2. Ralisation cble


On dispose des composants suivant :

0 1 LoadA Registre chargement D[2..0] << N


MuxA
MUX parallle 8bits
H

Dcaleur 8 bits
Multiplexeur 2 voies vers 1, les bus Registre chargement parallle synchrone :
sont sur 8 bits LoadA lorsquil est actif autorise le
chargement du registre sur front montant
dhorloge H. Dans le cas contraire les
donnes contenues dans le registre A sont
inchanges

1. Donnez, en utilisant les composants ci dessus et en commentant votre rponse, la structure du registre dcaleur sous forme de
schma.
2. Quel est lintrt dune telle structure par rapport un simple registre dcalage ?
3. Si votre registre tait implant en dur dans un microprocesseur. Quelle frquence dhorloge maximale autoriserait-il ?
(En considrant toujours des portes logiques 2 entres ayant un temps de traverse gal 1 ns).

UTBM 2/3 Nicolas Lacaille


MI41 - Final Automne 2001

2. Squenceur de commande
Un processus de lecture criture d'une interface priphrique (change de donnes) est donn par le graphe ci-dessous :

repos
w1
R1 r1 W1

1 3
w3
r3
w2
r2
R2 W2

2 4

On souhaite raliser un squenceur de commande cbl l'aide de bascules D.


1. Expliquer comment raliser ce squenceur cbl en vous appuyant sur un schma.
2. Donner les quations des entres Di des bascules du squenceur cbl (on ne simplifiera pas les quations)

On souhaite que le passage de l'tat "repos" l'tat "1" s'effectue avec la condition suivante :
nStrobe = 0
nRead = 0

et que le passage de l'tat "repos" l'tat "3" s'effectue avec la condition suivante :
nStrobe = 0
nRead = 1

Par ailleurs, lors de la transition entre l'tat repos et l'tat 1 la valeur prsente sur un bus de donne doit tre mmorise dans un
registre chargement parallle synchrone :

load
load : commande synchrone
bus de donnes de chargement
Q D
H : horloge du squenceur

3. Donner l'quation de la condition d'volution r1


4. Donner l'quation de load

UTBM 3/3 Nicolas Lacaille


MI41 Final

MI41 Examen final - 2h

Les documents sont autoriss except livres et photocopies de livres. Le prt de documents entre tudiants n'est pas autoris.

1. Description VHDL (7pts)


Donnez la description (entity et architecture) du timer BCD (dcimal cod binaire) dcrit ci-dessous.
Descriptif fonctionnel :

D7 D6 D5 D4 D3 D2 D1 D0
load#
TIMER BCD
CLK
Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 Borrow

Ce timer BCD est un dcompteur BCD qui ne dcompte qu'une seule fois et qui gnre un signal en fin de dcomptage :
la commande load# est une commande synchrone active niveau bas
lorsque load# est actif la valeur prsente sur les entres D est charge
lorsque load# est inactif, la valeur courante est dcrmente d'une unit BCD
lorsque le dcompteur atteind la valeur Zro la sortie borrow est active. Cette sortie reste active tant qu'une
nouvelle valeur n'est pas charge.

2. Squenceur de machine RISC (6 pts)


Il s'agit dans cet exercice de raliser un squenceur cbl simplifi pour une machine de type RISC

0
Fetch
=1

Decode t 1
br op
ls

2 3 4
Execute
t =1 =1

5 6 7
Store
=1 =1 =1

L'excution des instructions est dcompose en 4 tapes qui sont pour une opration entire : la recherche en mmoire de
l'instruction, le dcodage de l'instruction, l'xcution et le rangement des rsultats.
Les instructions sont de 3 types :
op : opration entire (registre registre),
ls : opration load/store,
br : branchement conditionnel.
Description des diffrentes tapes
N place description de l'opration Opration ralise en sortie de place (franchissement transition)
0 recherche instruction mmorisation dans registre d'instruction
1 dcodage instruction mmorisation dans registre de micro-commandes
2 calcul des conditions de branchement rsultat test (registre d'tat) t = vrai ou faux
3 calcul adresse load/store mmorisation dans registre d'adresse
4 excution du calcul (opration UAL) mmorisation dans registre de rsultat
5 calcul adresse du saut mmorisation dans compteur de programme
6 donne place sur le bus (store) attente lecture ou criture effective
donne prsente (load)
7 dplacement rsultat dans registre de rsultat opration sauvegard dans registre destination
destination

UTBM Automne 2000 1/3 Nicolas Lacaille


MI41 Final
Questions : Il s'agit de raliser le squenceur cbl de ce microprocesseur qui implmente le graphe tats donns
prcdemment, l'aide de bascules D actives sur front montant.
1. Expliquez le principe d'un squenceur cbl et donnez la structure du squenceur demand
2. Donnez les quations d'entre de chaque bascule en expliquant votre dmarche
Notes importantes :
on gardera le codage des tats proposs
on ne demande pas de dessiner le logigramme complet

3. Etude d'une unit d'excution entire (7 pts)


On considre l'unit d'excution entire d'un processeur RISC suivante :

LDR SA
D
U

MUXA
DA

A
L 32 bits Banc
de 16
MUXD

DR 16x32 bits SB U
DC C
A
registres

C
LDA
L
R0 R15
DB
MUXB

B
LDD LDC

LDB

3.1. Description
Les donnes traites sont toutes de longueur 32 bits
A,B,C et R0 R15 sont des registres commande de chargement synchrone
Les multiplexeurs et l'UAL sont purement combinatoires (uniquement des portes logiques, pas de bascules).
Fonctionnement des registres
Tous les registres ont un fonctionnement synchrone. Pour que la valeur prsente en entre d'un registre soit charg, il faut
que la commande de chargement (LDA, LDB, LDC, LDR) du registre concern soit active (gale '1') et qu'il y ait un
front montant d'horloge.
Le banc de registres comporte 16 registres indpendants. D est une commande de slection de registre sur 4 bits (D3 D2
D1 D0) permettant de dsigner le registre qui va tre charg. Ainsi pour sauvegarder une valeur dans un des registres il
faut qu'au moment du front, LDR soit actif et que le numro du registre soit spcifi sur D. Exemple si D = "0110" et que
LDR est actif, au moment du front, le registre 6 est charg avec la valeur prsente sur DR.
Fonctionnement des multiplexeurs :
Le multiplexeur MUXD est un multiplexeur 2 voies de 32 bits vers 1. Il permet d'aiguiller une donne provenant du bus de
donnes (L) ou de la sortie du registre C selon la valeur de LDD vers les entres des 16 registres du banc de
LDD = 0 aiguillage de L (i.e. DR = L)
LDD = 1 aiguillage de C (i.e. DR = C)
Les multiplexeurs MUXA et MUXB sont des multiplexeurs 16 voies de 32 bits vers 1. Ils permettent respectivement
d'aiguiller la sortie d'un des 16 registres du banc de registres vers les entres des registres A et B.
SA (resp. SB) est une commande 4 bits SA3 SA2 SA1 SA0 (resp SB3 SB2 SB1 SB0) permettant d'aiguiller la sortie du
registre correspondant au numro de slection. Ainsi si SA = "0010" (donc 2) c'est la valeur de R2 qui se trouve prsente
en sortie du multiplexeur.

UTBM Automne 2000 2/3 Nicolas Lacaille


MI41 Final
Fonctionnement de l'UAL
L'UAL utilise permet en fonction du mot de commande U U Opration DC
d'effectuer les oprations arithmtiques et logiques ci-contre : 0000 A
0001 B
DC 32 0010 non A
0011 non B
0100 A plus B
U3
0101 non (A plus B) plus 1
U2 0110 A moins B
U1 0111 non (A) plus 1
U0 UAL 1000 B moins A
1001 non (A) plus 1
1010 A+B
1011 non (A+B)
1100 AB
A 32 B 32 1101 non (A.B)
1110 AB
1111 non (A B)

Fonctionnement du systme
Le systme est command par un squenceur cbl fournissant aprs chaque front d'horloge une commande constitue de 21
bits.
LDD | LDR LDA LDB LDC | D3 D2 D1 D0 | SA3 SA2 SA1 SA0 | SB3 SB2 SB1 SB0 | U3 U2 U1 U0

Exemple de commande :
0 9 5 A 7 B h ( 0 1001 0101 1010 0111 1011 b) :
en sortie du MUXD DR = L
commande de chargement du registre R5 active
commande de chargement du registre C active
en sortie du MUXA on a DA = R10
en sortie du MUXB on a DB = R7
opration non (A + B) slectionne au niveau de l'UAL
Au prochain front d'horloge on aura :
la valeur prsente sur L qui sera charge dans R5
la valeur en sortie de l'UAL (soit l'opration logique non(A + B)) qui sera charge dans le registre C
la prsence d'une nouvelle commande envoye par le squenceur pour raliser une autre opration

3.2. Questions
1. On souhaite transfrer la valeur d'un registre vers un autre registre. Avec l'architecture propose, la valeur transfre doit
ncessairement transiter par l'UAL.
1.1. Expliquez les oprations ncessaires pour faire transiter une valeur du registre R3 au registre R7 (copie de R3 dans R7).
1.2. Combien de priodes d'horloge sont ncessaires pour raliser cette opration ?
2. Donnez la squence des commandes (en hxadcimal) que doit envoyer le squenceur pour raliser l'opration donne ci-
aprs. Vous dtaillerez chaque opration.
ADD R2, R1, R0 : addition du contenu des registres R0 et R1 et sauvegarde du rsultat dans R2 (R2 R0 plus R1).
3. On considre le programme suivant :
ADD R4, R1, R0
ADD R6, R2, R3
ADD R9, R7, R8
ADD R5, R4, R2
Donnez la squence minimale des commandes pour raliser ce programme. On utilisera au maximum les possibilits de
recouvrement des oprations ("pipelining").
4. Si les oprations sont excutes en recouvrement on parle de "pipeline". De combien d'tages est constitu ce pipeline ?
5. On considre le programme suivant :
1 load R0, L chargement d'une donne fournie par le bus de donnes (L) dans le registre R0
2 load R1, L chargement d'une donne fournie par le bus de donnes (L) dans le registre R1
3 ADD R4, R1, R0
4 OR R5, R4, R2 OU logique bit bit de R2 et R4, le rsultat est sauvegard dans R5 (R5 R4 OU R2)
5 ADD R6, R2, R3
6 ADD R7, R4, R2
7 OR R11, R3, R1
5.1. Donnez, en justifiant votre rponse, le nombre de cycles ncessaires pour excuter ce programme sachant qu'il utilise
au maximum les possibilits de recouvrement (pipeline).
5.2. Proposez une solution (logicielle) pour rduire la dure de traitement de ce programme.
UTBM Automne 2000 3/3 Nicolas Lacaille
Examen final MI 41 Automne 1999

1. Squenceur programm (10 pts.)


On souhaite raliser un squenceur dun automatisme squentiel laide dune mmoire de 16 octets (ROM 16x8). Le
graphe de description de lautomatisme et la structure du squenceur sont fournis en annexes.

Description :
Lorsquune adresse est fournie en entre de la mmoire, le contenu de la cellule mmoire (8 bits) associe est disponible
en sortie.
Ladresse de loctet mmoire est fournie par la sortie du compteur.
La sortie du multiplexeur MUX est relie au load du compteur.
Compteur prchargeable synchrone :
- la valeur courante du compteur est constamment disponible en sortie
- lorsque load est mis 0 le mot plac en entre est charg sur un front actif d'horloge et le compteur prend alors la
nouvelle valeur aprs le front
- lorsque load est 1, la valeur courante du compteur sincrmente dune unit chaque front dhorloge
- Lorsque clear est 0, la valeur du compteur est force 0000 sur le front actif d'horloge.
X et Y sont les sorties de commande du systme.

Expliquez la structure du mot mmoire.


En justifiant la dmarche adopte, donner le contenu de la mmoire pour obtenir le fonctionnement dsir. Vous rendrez
avec votre copie lannexe complte en noubliant pas dy inscrire votre nom.
Expliquez comment vous raliseriez ce squenceur en logique cble (de manire synchrone). Vous appuierez vos
explications en donnant un schma de principe sous forme de blocs fonctionnels o chacun des blocs sera clairement
explicit.
Note : On ne demande ni de rsoudre les quations logiques mises en jeu ni de dessiner le logigramme complet.

2. Squenceur de machine caf (5 pts)


A la mise sous tension de la machine, la lampe est teinte, aucun gobelet ne peut tomber, le caf ne peut couler, la machine
rend tout jeton gliss dans la fente prvue cet effet. La machine ne sera disponible que lorsque la variable binaire t sera 1
pour signifier la fin du chauffage initial du caf. Ensuite, le fonctionnement de la machine est le suivant :
Tant qu'il manque soit du caf, soit des gobelets, la lampe est teinte et le jeton est rendu l'utilisateur
S'il ne manque ni caf, ni gobelet, la lampe est allume, le systme attend un jeton
Lorsque le jeton est dtect, alors
- la lampe s'teint
- puis le gobelet tombe
- puis le caf.
- Lorsque le gobelet est plein, la pice est avale.
- Un nouveau caf ne peut tre servi que si l'utilisateur retir son gobelet

t
A
c
g
R
V
p

M
L

r0
r1
Signification des variables binaires :

Final MI 41 A1999 Nicolas Lacaille


- p = 1 : jeton en attente
- g = 1 : gobelet prsent dans rserve
- c = 1 : caf prsent dans rservoir
- r0 = 1 gobelet prsent sous tuyau
- r1 = 1 gobelet plein prsent
- R = 1 : ouverture vanne caf
- V = 1 : ouverture clapet gobelet
- M = 1 : jeton rendu l'utilisateur
- A = 1 : jeton aval
- L = 1 : lampe allume
- t = 1 : caf chaud

Etablir le graphe d'tat correspondant au cahier des charges


On suppose que pour permettre le chauffage initial du caf, il est ncessaire d'attendre une minute.
- Comment raliseriez vous la variable binaire t indiquant la fin du chauffage initial.
- Justifiez la frquence d'horloge que vous choisiriez pour raliser le squenceur de la machine.

3. Assembleur 68HC11 (5 pts)


Dans cette partie, il s'agit d'crire des sous routines en assembleur 68HC11. Pour chacune des sous routines afin qu'elles soient
portables, si besoin, on utilisera uniquement des variables locales situes dans la pile. De mme le passage de paramtres
s'effectuera par la pile et le rsultat retourn par la fonction s'effectuera dans le registre A pour les donnes 8 bits et dans le
registre D pour les donnes 16 bits.
Note importante:
pour les paramtres stocks dans la pile, l'ordre croissant des adresses correspond aux paramtres lus de gauche
droite dans la fonction prototype en C.
La pile sera vide des variables temporaires passes en paramtres avant de retourner au programme appelant.

3.1. Addition BCD


Donner le code assembleur d'une routine prenant deux nombres BCD en paramtre et retournant le rsultat BCD de
l'addition de ces 2 nombres.
Prototype C
unsigned char AdditionBCD (unsigned char val1, unsigned char val2)

Ajouter votre fonction une gestion d'erreur : si le rsultat est trop grand, le nombre retourn sera constitu que de '1'.
3.2. Permutation dans un tableau
Donner le code assembleur d'une routine ralisant une permutation entre 2 donnes d'un tableau. C'est dire la valeur
contenue dans une case i d'un tableau est mise dans une case j et la valeur de la case j est mise dans la case i.
Prototype C :
void EchangeDonnes(char * val1, char * val2)

Quelle modification faudrait-il apporter votre code si les donnes pointes taient du type "short int" (entiers sur 16 bits);

Rappel sur les pointeurs : un pointeur correspond une adresse o se trouve la variable ainsi *pointeur = valeur signifie que
pointeur est une adresse et que le contenu de la ou des case(s) mmoire correspondante(s) est valeur.

Final MI 41 A1999 Nicolas Lacaille


ANNEXES

H CLK Clear 1
0 Compteur
load EN 1

X
ROM 16x8 A3 A2 A1 A0
1
c Adresses Contenu (binaire)
c MUX 0
Y 1
a 00 2
2 X 3 =1 3
b 01 4
b 5
c 10 6
Y 7
ab 11
4 8
9
Slection A
a B
C
5 D
E
F
XY
C1 C0 X Y A3 A2 A1 A0

NOM : PRENOM :

Final MI 41 A1999 Nicolas Lacaille


Mdian Automne 2001

Mdian MI41

Dure : 2h. Documents autoriss : polycopis de cours et TD uniquement. Le barme est donn titre indicatif uniquement.

1. Conversions (2pts)
On adopte une reprsentation signe sur 12 bits. La convention de reprsentation est la reprsentation en complment 2.
Donnez les reprsentations binaires et hexadcimales des nombres dcimaux suivants :
1. +132
2. - 507
3. + 2048
4. -3020

2. Soustracteur binaire (13pts)


On souhaite raliser un soustracteur binaire qui effectue la soustraction binaire dun nombre A sur N bit par un nombre B
galement sur N bits et retourne le rsultat S (S = A B). Ce soustracteur devra tre complet : retenue entrante C0 et retenue
sortante CN+1.
C0 ANA0 BNB0

Soustracteur
S = A B C0

CN+1
SNS0
2.1. N = 1 (4pts)
En expliquant clairement votre dmarche, dterminez les quations logiques vrifies par S0 et C1 dun soustracteur complet 1
bit (N = 1).
Tracez (proprement la main) le logigramme

2.2. N = 4 (1pt)
Donnez la structure sous forme de bloc du soustracteur complet pour N = 4.

2.3. Additionneur/soustracteur
2.3.1. Additionneur/Soustracteur sans retenue 8 bits (5 pts)
On souhaite raliser un soustracteur 8 bits (sans retenue entrante ni retenue sortante) laide dun additionneur complet 8 bits,.

CP0 A7A0 B7B0

Additionneur
SP = A + B + CP0

CP8
SP7SP0

1. Rappelezr comment faire la soustraction de deux mots de 8 bits A B laide de loprateur daddition
2. Donnez le schma de principe du soustracteur sans retenue utilisant le circuit additionneur donn ci-dessus.
3. Expliquez comment faire un additionneur/soustracteur command sans retenue laide du circuit additionneur :
A7A0 B7B0
A/S# commande du circuit :
- Si A/S# = 1 alors S = A + B
- Si A/S# = 0 alors S = A - B
Additionneur/
Soustracteur
A/S#

S7S0

UTBM MI41 1/2 Nicolas Lacaille


Mdian Automne 2001

2.3.2. Additionneur/soustracteur avec retenue 8 bits (3pts)


On souhaite maintenant dune part tenir compte de la retenue entrante C0 et dautre part gnrer une retenue C8 pour un circuit
additionneur/soustracteur de poids suprieurs.

C0 A7A0 B7B0
A/S# commande du circuit :
- Si A/S# = 1 alors S = A + B + C0
- Si A/S# = 0 alors S = A B C0
Additionneur/
A/S# Soustracteur

C8
S7S0
On reprend le circuit dadditionneur complet pour raliser ce circuit
1. Expliquer comment tenir compte de la retenue entrante C0
2. Expliquer comment gnrer la retenue sortante C8
3. Donnez le schma de principe de ladditionneur/soustracteur complet.

3. Systme synchrone (5pts)


On considre le systme ci dessous, o CLK est un signal dhorloge.

Les sortie des bascules sont initialement zro Q2=Q1=Q0= 0 ;


En dtaillant votre dmarche, donnez le cycle dcrit par Q2 Q1 Q0

UTBM MI41 2/2 Nicolas Lacaille


Automne 2000 Mdian

MI41 - Mdian

Dure : 2h.
Documents autoriss excepts livres et photocopies de livres.
Lisez bien l'nonc avant de commencer.

1. Reprsentation binaire des nombres


1.1. Reprsentations signes complment 2 sur 5 bits
1. Donnez les valeurs dcimales des reprsentations numriques suivantes :
01110 ; 10101 ; 10000
2. Donnez les reprsentations numriques des nombres dcimaux suivants :
13 ; -11 ; 29
1.1.2. Reprsentation flottante normalise IEEE 754 32 bits
Soit le nombre flottant suivant :
1100 0100 1000 0000 0000 0010 1001 0000
On souhaite convertir ce nombre en un nombre entier. Les nombres entiers sont galement reprsents sur 32 bits
suivant une reprsentation signe complment 2. Le nombre flottant donn n'tant par forcment entier la conversion devra
tronquer le nombre sa partie entire.

Donnez la reprsentation binaire du nombre entier correspondant

2. Transcodeur binaire rflchi/binaire naturel


Le code binaire rflchi permet de coder les nombres de manire ce qu'entre deux nombres conscutifs un seul bit change.
L'intrt d'un tel code et de rduire les consquences d'une erreur de dtection d'un bit. Ainsi si on fait une erreur d'un bit sur un
mot binaire cod en binaire rflchit, alors le nombre ne sera faux que d'une unit.
Dans cet exercice, le but est d'tablir une relation entre le code binaire rflchi et le code binaire naturel.

1. Mots de 2 bits :
A (A1, A0) est le mot cod en binaire rflchi et B le mot cod en binaire naturel. Donnez l'quation la plus simple possible de
B0 en fonction de A1 et A0
A1 A0 B1 B0
0 0 0 0
0 1 0 1
1 1 1 0
1 0 1 1
2. Mots de 3 bits :
Dterminez les quations de B2, B1 et B0 en fonction de A2, A1, A0

A2 A1 A0 B2 B1 B0
0 0 0 0 0 0
0 0 1 0 0 1
0 1 1 0 1 0
0 1 0 0 1 1
1 1 0 1 0 0
1 1 1 1 0 1
1 0 1 1 1 0
1 0 0 1 1 1
3. Mots de N bits :
Etablissez une relation permettant de dterminer un bit Bi du mot B (binaire naturel) en fonction des bits Aj du mot A (binaire
rflchi)

UTBM MI4 1/2 Nicolas Lacaille


Automne 2000 Mdian

3. Chronogrammes
Soit le schma suivant :

J0 Q0 J1 Q1
H H
K0 Q0 K1 Q1

Le systme est initialement dans l'tat Q1 Q0 = 0 0. Tracez, en les justifiant, les chronogrammes d'volution de Q1 et Q0 en
fonction de l'horloge H.

4. Compteur asynchrone
On dispose de bascules D actives sur front montant avec Preset et Clear asynchrone ainsi que de portes logiques lmentaires..
1. Ralisez un compteur asynchrone par 5 (5 tats complets) ralisant le cycle suivant : 0, 1, 2, 3, 4, 0

PR
D Q
H
CLR

2. On souhaite modifier le cycle un fois sur 2. Une fois sur 2 l'tat correspondant la valeur 4 est saut ce qui donne pour le
cycle : 0, 1, 2, 3, 4, 0, 1, 2, 3, 0
Donnez le schma du systme ralisant le nouveau cycle.

UTBM MI4 2/2 Nicolas Lacaille


Vendredi 26 novembre 1999

Mdian MI41 2h

1. Conversions (4 pts.)
On considre des nombres reprsents sur 6 bits. Complter le tableau suivant lorsque cela est possible (mettre une croix
sinon).

Dcimal Binaire naturel Hexadcimal Binaire sign Hexadcimal


associ (Complment 2) associ
X X 111010
X X 010011
17
-23 X X
55
73
-32 X X

2. Logique combinatoire (4 pts.)


Soit la table de vrit suivante :
abcd S
0000 0 1. Donner l'quation la plus simple possible de cette fonction logique.
0001 1 2. Donner le logigramme correspondant.
0010 1
0011 X
0100 1
0101 0
0110 0
0111 1
1000 1
1001 0
1010 0
1011 1
1100 X
1101 1
1110 1
1111 X

Mdian MI41 Automne 1999 1 N. Lacaille


Vendredi 26 novembre 1999

3. Description VHDL (7 pts.)


Ecrire l'entity et l'architecture d'un registre 8 bits 3 tats, possdant:
2 lignes de commandes : load et OE
8 lignes de donnes
Fonctionnement :
- Lorsque load est '0' la valeur prsente sur le bus de donnes est acquise
- Lorsque load repasse '1' la valeur acquise est mmorise l'intrieur du registre
- Lorsque OE est '0' la valeur mmorise l'intrieur du registre est mise en communication avec le bus de donnes
- Lorsque OE est '1' les sorties du registre sont l'tat haute impdance ('Z' en VHDL)

Note : On ne grera pas de priorit entre Load


REGISTRE
load et OE (les 2 pouvant tre OE
simultanment actif).
D7 D6 D5 D4 D3 D2 D1 D0

Bus de donnes (8 lignes)


! Votre description devra tre commente et justifie

Rappel sur la haute impdance


Fonctionnement quivalent un
interrupteur monodirectionnel :
OE
Sortie dispositif Entre/Sortie OE = 1 OE = 0
dispositif
Entre dispositif
Interrupteur ouvert Interrupteur ferm
= haute impdance (basse impdance)

4. Compteur synchrone (7 pts.)


On souhaite raliser un compteur synchrone par 7 avec des bascules D actives sur front montant. Ce compteur compte
suivant la frquence d'horloge H de 0 6. On souhaite pouvoir charger une nouvelle valeur tout moment et de manire
synchrone. Le chargement s'effectue en plaant la broche load un niveau bas. Lorsque load est 0, sur un front montant de H,
la valeur prsente sur An A0 est charge dans le compteur.

An A0

Load
H Compteur

Qn Q0

1. Raliser ce compteur synchrone l'aide de bascules D actives sur front montant et de portes logiques lmentaires.
2. Ajouter une broche d'inhibition EN votre schma. Lorsque EN vaut '1' le dispositif fonctionne comme dcrit
prcdemment, lorsque EN vaut '0' la valeur courante du compteur est conserve.

Mdian MI41 Automne 1999 2 N. Lacaille