You are on page 1of 4

LO11

P2015

Examen nal

LO11 - Examen nal - 24 juin 2015

Dure 2 heures
Polycopi version papier et notes de cours autoriss. Autres documents, notes de TD et TP interdites.
Calculatrice non communicante autorise. Tablettes, tlphones portables et appareils assimils interdits.

Les rponses devront tre claires et concises.

Questions
1. Citer toutes les caractristiques d'une porte logique.
2. Quelle est la principale dirence entre les machines de Moore et de Mealy. Quelle consquence cela a sur le
fonctionnement ?
3. Citer les direntes technologies d'interconnexion dans les PLDs.
4. Sur un circuit ASIC ou PLD, l'oprateur de multiplication peut-il tre synthtis par une logique combinatoire ?
5. Expliquer ce qu'est un processeur ZISC.
6. Donner la ou les dirences entre une architecture RISC et une architecture CISC.
7. Expliquer ce qu'est un processeur softcore ?
8. En VHDL, quel est le rle d'une boucle (loop, ...) en synthse et en simulation ?
9. La relation N = n2n
permet de convertir une valeur n, exprime en code binaire naturel, en une valeur N
2
exprime en code binaire rchi avec N =

3
X

Ai 2i et n =

i=0

3
X

ai 2i . Utiliser cette relation pour retrouver

i=0

l'expression boolenne de chaque bit Ai de N en fonction des bits ai de n.

Exercice 1
Clk

Tx

t0

Le diagramme des temps de la gure ci-dessus reprsente la transmission srie de donnes (T x) au format 8N1 (8
bits, No parity, 1 stop). La transmission dbute l'instant t0 lors du premier front descendant de T x.
10. Donner les valeurs des octets transmis en hexadcimal.
11. En utilisant le codage ASCII (table en annexe), donner le message transmis.

Universit de Technologie de Troyes

1/4

G. Millon, S. Moutou, M. Doussot

LO11

P2015

Examen nal

Exercice 2
Yk

= OU exclusif
g0
D0
D

h0

Q0

g2

D1
D

h1

Q1

D2
D

Q2

g3

D3
D

Q3
h4

Clk
Xk
Les symboles h0 , h1 , h4 reprsentent les valeurs 1 de la suite Hk = {1, 1, 0, 0, 1}, les symboles g0 , g2 , g3 reprsentent
les valeurs 1 de la suite Gk = {1, 0, 1, 1}. La suite binaire en entre vaut Xk = {1, 1, 0, 1} et est associe au polynme
X(x) par ordre de puissance dcroissante. A dmarrage toutes les sorties des bascules D sont 0 (Q0 = Q1 = Q2 =
Q3 = 0).
12. En prenant la suite binaire Xk par ordre de puissance dcroissante, donner les valeurs de la suite binaire Yk la
n du calcul. On prsentera le rsultat sous la forme suivante :
Xk
Yk

13.
14.
15.
16.

Donner les polynmes H(x) , G(x), X(x) et Y (x) associs respectivement aux suites binaires Hk , Gk , Xk , Yk .
Donner l'expression de Y (x) en fonction de H(x), G(x), H(x).
Utiliser cette expression pour vrier le rsultat de la suite Yk .
On dsire crer un composant VHDL qui ralise ce calcul. Donner le source VHDL de l'architecture correspondant
l'entit galois fournie en annexe.
17. On veut tester le composant galois avec les signaux d'entres enregistrs dans un chier texte "stimilis.txt" dont
le contenu est fourni en annexe, et enregistrer les rsultats dans un chier texte "resultats.txt" dont le format
est fourni en annexe. Donner le code VHDL de l'architecture du chier testbench galois_test qui permet de
le tester.

Exercice 3
Etude d'un systme microprocesseur implment sur un FPGA pour le traitement de donnes. Le schma de ce
systme est donn en annexe.
Ce programme fait le calcul de la moyenne "au l de l'eau" des donnes lues sur le port A. Le rsultat du calcul est
crit sur le port B aprs chaque lecture d'une donne.
18. Donner le code source VHDL du composant iomux qui permet de multiplexer les donnes des deux ports A et
B. L'entit du composant est fournie en annexe.
19. Donner le code source VHDL du composant ioport qui permet d'instancier les ports A et B. On utilisera un
paramtre gnrique pour l'adresse de base du port A ou B. Ce composant doit inclure les registres DDRA et
PORTA prsents en annexe. L'entit de ce composant est fournie en annexe.
20. Donner le code C du programme qui permet de tester les ports A (en entre) et B (en sortie) de ce systme en
crivant sur le port B les valeurs lues sur le port A.
21. On veut implmenter un programme qui calcule la moyenne des donnes entrantes sur le port A au l de l'eau
x xk1
avec le symbole x qui reprsente la valeur moyenne. Le programme
avec la relation xk = xk1 + k
k
enregistre une donne du port A s'il dtecte un front montant sur le bit 7 du port A. Les donnes sont exprimes
sur 7 bits (bits 0 6 du port A). Donner le code source du programme qui, aprs avoir lu chaque donne sur le
port A, calcule la moyenne et crit le rsultat sur le port B.
22. Expliquer pourquoi on utilise le bit 7 pour dtecter une nouvelle valeur.
23. Question bonus : en partant du calcul standard de la moyenne, retrouver la relation de rcurrence prcdente.

Universit de Technologie de Troyes

2/4

G. Millon, S. Moutou, M. Doussot

LO11

P2015

Examen nal

Annexe
Exercice 1
Table ASCII :
dec
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Hex
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F

0
0

1
1

2
2
!
"
#
$
%
&
'
(
)
*
+
,
.
/

LF
CR

3
3
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?

4
4
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O

5
5
P
Q
R
S
T
U
V
W
X
Y
Z
[
\
]
^
_

6
6
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o

7
7
p
q
r
s
t
u
v
w
x
y
z
{
|
}
~

Exercice 2
Entit du chier galois.vhd :

entity g a l o i s i s
port ( c l k : in STD_LOGIC;
r e s e t : in STD_LOGIC;
x : in STD_LOGIC;
h : in STD_LOGIC_VECTOR(0 to 4 ) ;
g : in STD_LOGIC_VECTOR(0 to 4 ) ;
y : out STD_LOGIC) ;
end g a l o i s ;
Contenu de resultats.txt :
Contenu de stimulis.txt :
# xk
0
1
1
0
1
0
0
0

Universit de Technologie de Troyes

#xk yk
0 X
1 X
1 X
0 X
1 X
0 X
0 X
0 X

Les valeurs 'X' seront remplaces par les valeurs


relles de la sortie

3/4

G. Millon, S. Moutou, M. Doussot

LO11

P2015

Examen nal

Exercice 3
Schma du systme microprocesseur
IO_Drd
IO_A

IO_DrdB
IO_DrdA

IOMUX

DM_Dwr
DM_rd
DM_wr
DM_A

DM_Drd

DM
PM_A

PM_Drd

IO_Drd
DM_Drd
PM_Drd
Rst
en

PM

IO_Dwr
IO_rd
IO_wr
IO_A
DM_Dwr
DM_rd
DM_wr
DM_Areal
DM_A
PM_A
OT_InstrErr
OT_featErr
AVR

IO_Dwr
IO_rd
IO_wr
IO_A
rst

IO_Drd
IO

IOPORT
IO_Dwr
IO_rd
IO_wr
IO_A
rst

IO_Drd
IO

IOPORT

Entit des composants iomux et ioport


entity iomux i s
Generic (ADDR_A
: i n t e g e r := 16#19#; ADDR_B : i n t e g e r := 16#16#);
Port ( io_A : in STD_LOGIC_VECTOR (5 downto 0 ) ;
io_DrdA : in STD_LOGIC_VECTOR (7 downto 0 ) ;
io_DrdB : in STD_LOGIC_VECTOR (7 downto 0 ) ;
io_Drd : out STD_LOGIC_VECTOR (7 downto 0 ) ) ;
end iomux ;
entity i o p o r t i s
Generic (BASE_ADDR : i n t e g e r := 16#19#);
Port ( c l k : in STD_LOGIC;
r s t : in STD_LOGIC;
IO_A : in STD_LOGIC_VECTOR (5 downto 0 ) ;
IO_Drd : out STD_LOGIC_VECTOR (7 downto 0 ) ;
IO_Dwr : in STD_LOGIC_VECTOR (7 downto 0 ) ;
IO_rd : in STD_LOGIC;
IO_wr : in STD_LOGIC;
IO : inout STD_LOGIC_VECTOR (7 downto 0 ) ) ;
end i o p o r t ;
IO_A
IO_Drd
IO_Dwr
IO_rd
IO_wr

bus d'adresse du priphrique


bus de donnes de sortie du priphrique
bus de donnes d'entre du priphrique
signal de contrle pour l'accs en lecture un registre du priphrique
signal de contrle pour l'accs en criture un registre du priphrique

Adresses et fonctions des ports A et B


Adresse registre
0x1B
0x1A
0x19
0x18
0x17
0x16

Nom registre
PORTA
DDRA
PINA
PORTB
DDRB
PINB

fonction
accs aux bits d'entres ou sorties du port A
registre de direction du port A 1=sortie, 0=entre
registre utilis en entre quelque soit la direction du port A
accs aux bits d'entres ou sorties du port B
registre de direction du port B 1=sortie, 0=entre
registre utilis en entre quelque soit la direction du port B

En C, les registres des ports A et B sont accessibles directement avec les constantes PORTA, DDRA, PORTB,
DDRB incluses dans "avr/io.h".
Universit de Technologie de Troyes

4/4

G. Millon, S. Moutou, M. Doussot

You might also like