Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 1 sur 21
QUESTION 1 {2 points}
La figure ci-dessous montre le diagramme d'états d'une machine séquentielle algorithmique
(MSA). On vous demande de réviser le design afin d’améliorer ses performances.
A
X
D
B
M
SB
SEZ
RST
'1''0'
C
'1''0'
H
J
F
I
Y
Y
'0'
E
G
L
'1'
SB
DSBW
SB
SEZ
SB
SEZ
X
'0'
'1'
KSB
DSBW
SB
DSBW
N
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 2 sur 21
QUESTION 1 {suite}
a) Indiquez les états qui doivent avoir une assignation adjacente selon les principes
d’optimisation de MSA. {0,5 point}
Principes d’optimisation de MSA États adjacents
Principe 1
A-N ; D-G ; K-L ; M-J
Principe 2
D-E ; I-J ; L-A ; M-N
Principe 3
F-G ; I-J-K
b) En supposant l’assignation suivante et l’entrée asynchrone Y, existerait-il des états
erronés ? Si oui, lesquels ? {0,5 point}
État Q3Q2
Q1Q0 00 01 11 10
00 A E I M
01 B F J N
11 C G K --
10 D H L --
I et J adj => pas d’états erronées
D et E => 0010 – 0100 => 0xx0 => 0000,0010,0100,0110 => 0000 et 0110
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 3 sur 21
QUESTION 1 {suite}
c) Indiquez le(les) partie(s) d’une MSA sur laquelle(lesquelles) les principes
d’optimisations ont un impact (Note : une mauvaise réponse en annule une bonne) {0,5
point}.
IFL OFL Mémoire Aucune
Principe 1 X
Principe 2 X
Principe 3 X
Élimination des états redondants X X X
Assignation bit par état X X X
d) Identifiez, s’il y a lieu, le ou les états redondants. Simplifiez et redessinez le diagramme
d'états réduit de cette MSA. {0,5 point}
1) N-A et D-G ; 2) L-M ; 3) J-K
A-N
D-GB L-
M
RST
'1'
'0'
C
'1'
'0'
HF
I
Y Y
E
SB
DS
BW
SB
SE
Z
SB
SE
Z
X'0
''1
'
J-K
SB
DS
BW
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 4 sur 21
QUESTION 2 {1,5 point}
Veuillez fournir quelques caractéristiques du CNA utilisé lors de la prise de mesure en sachant
que le niveau de tension de Vref est de 6 V.
a) À l’aide du tableau suivant :
Entrée
Sortie
idéale
(V)
Sortie
mesurée
(V)
Décalage
(V)
Gain
(V)
000 0 0,2 0.2
001 0.75 0,9
010 1.5 1,7
011 2.25 2.5
100 3 3.0
101 3.75 4.0
110 4.5 4,5
111 5.25 5.6 0.15
Quelle est la précision du CNA {0,1 point}
3 bits
Quelle est la résolution du CNA {0,2 point}
1 LSB = 0.75V
Quelle est l’erreur de décalage (en LSB) du CNA {0,2 point}
0.2V / 0.75 = 0.266666 LSB
Quelle est l’erreur de gain (en LSB) du CNA {0,2 point}
0.15 V / 0.75 = 0.2 LSB
Est-ce que le CNA est monotone ? Justifiez votre réponse {0,2 point}
OUI, sortie toujours croissante
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 5 sur 21
QUESTION 2 {suite}
b) À l’aide du tableau suivant :
Entrée
Sortie
idéale
(V)
Sortie mesurée avec compensation
linéaire des erreurs (V)
NLI
(V)
NLD
(V)
000 0 0,0 0 ---
001 0.75 0,8 0.15 0.05
010 1.5 1,4 0.1 -0.15
011 2.25 2.3 0.05 0.15
100 3 2,8 -0.2 -0.25
101 3.75 3,75 0 0.2
110 4.5 4.6 0.1 0.1
111 5.25 5,25 0 -0.1
Quelle est l’erreur NLI (en LSB) du CNA {0,3 point}
-0.2V / 0.75 = -0.26666 LSB
Quelle est l’erreur NLD (en LSB) du CNA {0,3 point}
-0.25V / 0.75 = 0.3333 LSB
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 6 sur 21
QUESTION 3 {2 points}
Les questions suivantes portent sur les principaux problèmes des systèmes logiques.
a) Expliquez clairement en quelques mots et à l’aide d’un croquis comment la
métastabilité peut provoquer un dysfonctionnement d’un circuit logique {0,25 point}.
La résolution de la métastabilité peut aboutir à un niveau H ou L. Si la métastabilité est
propagée dans le circuits, l’interprétation de cet état n’est pas assurément le même
partout.
b) Expliquez précisément comment la synchronisation d’une entrée asynchrone permet de
diminuer la probabilité d’obtenir un dysfonctionnement lié à la métastabilité causé par
cette entrée {0,25 point}.
Donne le temps (1 cycle d’horloge) à la métastabilité de se résoudre sans la propager (on
la bloque entre deux registres).
c) Expliquez clairement en quelques mots et à l’aide d’un croquis si nécessaire comment
une MSA peut se retrouver dans un état erroné {0,25 point}.
Si l’entrée asynchrone change entre le Tp de la logique IFL de deux bascules qui
dépendent de cette entrée, les excitations des 2 bascules auront interprété différemment
la valeur de l’entrée.
d) Expliquez précisément comment la synchronisation d’une entrée asynchrone permet
d’éliminer complètement tout dysfonctionnement lié aux états erronés causé par cette
entrée {0,25 point}.
Assure que l’entrée ne changera pas entre le Tp de la logique IFL de deux bascules
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 7 sur 21
QUESTION 3 {suite}
e) Donnez un exemple de transitoire en sortie de type SB-SE {0,25 point}.
Etat A (00) avec Z=0 / Etat B (11) avec Z=0 / Etat C (10) avec Z=1
Passage de 00 vers 11 en passage transitoire par 10
A – C- B donc Z= 0-1-0
f) Dans un contexte contemporain, pourquoi les solutions qui permettent d’éliminer les
transitoires sur les sorties conditionnelles à l’horloge sont difficilement applicables ou
ne sont pas recommandées {0,25 point}.
Pas possible de contrôler facilement les délais sur les signaux et les horloges pour ces
types de solutions
g) Pourquoi est-il recommandé d’utiliser qu’un seul front d’horloge (ex : front montant) et
qu’une seule horloge (lorsque possible) pour l’ensemble d’un système logique {0,25
point}.
Pas optimal pour la freq max d’opération + synchronisation
h) Identifiez les problèmes qui pourraient survenir si la fréquence de l’horloge d’un
système logique dépasse la fréquence maximale d’opération en prenant soin de
spécifiez le(s) paramètre(s) temporel(s) impliqué(s) pour chaque problème {0,25
point}.
Métastabilité si Tsu et Th non respecté
État erroné si changement entre TP IFL de différentes bascules
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 8 sur 21
QUESTION 4 {5 points}
On vous demande de calculer la fréquence maximale d'opération du circuit suivant, en vous
servant des paramètres donnés au tableau suivant et du circuit ci-dessous :
FCT
4
4
5
A_in
B_in
Z_out
A3A2A1A0
B3B2B1B0
C4F3F2F1F0
4
4
5
An
Bn
Fn
Cn
Cn+1
Circuit logique interne du module FCT pour 1 bit (Indice : remplacez n par 0,1,2 et 3)
Note : Vous contrôlez C0 mais ce dernier doit demeurer inchangé une fois fixé.
Paramètres électriques de composants
Composant tpHL tpLH tSU tH
NON-ET 6 ns 7 ns --- ---
NON-OU 8 ns 9 ns --- ---
ET 10 ns 11 ns --- ---
OU 12 ns 13 ns --- ---
XOR1 (L)
14 ns
(H)
15 ns
(L)
16 ns
(H)
17 ns
--- ---
XNOR1 (L)
18 ns
(H)
19 ns
(L)
20 ns
(H)
21 ns
--- ---
Bascule D 24 ns 22 ns 4 ns 5 ns 1 : L’entrée qui ne varie pas engendre un délai de propagation différent selon son état L-L (L) ou H-H (H)
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 9 sur 21
QUESTION 4 {suite}
a) Calculez la fréquence maximale d’opération en prenant soin d’identifier le(s)
chemin(s) critique(s) et la(les) séquence(s) qui sensibilise(nt) le(s) chemin(s) {3
points}.
Début HL sur A0 : 24ns
C0-C1 : C0=H-H, A0=HL, B0=LL => 17ns + 16ns
3x C1(2,3)-C2(3,4) : C1(2,3)=L-H, A1(2,3)=LL, B1(2,3)=LL => 3x(16ns +16ns)
Fin:4ns
Total= 24+ 17 + 16 + 3 x( 16 + 16 ) + 4 = 157 ns
Fmax=6.369 MHz
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 10 sur 21
QUESTION 4 {suite}
b) Proposez une modification (la plus simple possible) qui permettrait d’augmenter la
fréquence d’opération. Quel impact aura cette modification ? Quelle serait cette
nouvelle fréquence d’opération ? {1 point}.
An
Bn
Fn
Cn+1Cn
Début HL sur A0 : 24ns
C0-C1 : C0=L-L, A0=HL, B0=HH => 17ns + 16ns
3x C1(2,3)-C2(3,4) : C1(2,3)=L-H, A1(2,3)=LL, B1(2,3)=LL => 3x(16ns)
Fin:4ns
Total= 24+ 17 + 16 + 3 x(16 ) + 4 = 109 ns
Fmax=9.174 MHz
c) Proposez une modification qui permettrait d’augmenter la fréquence d’opération à
son maximum. Quel impact aura cette modification ? Quelle serait cette nouvelle
fréquence d’opération ? {1 point}.
An
Bn
Fn
Cn+1Cn
Début HL sur A0 : 24ns
C0-C1 : C0=L-L, A0=HL, B0=HH => 17ns + 16ns
Fin:4ns
Total= 24+ 17 + 16 + 4 = 61 ns
Fmax=16.393 MHz
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 11 sur 21
QUESTION 5 {2,5 points}
Les questions suivantes portent sur les mémoires et les circuits programmables.
a) Indiquez par un X les associations entre les types de mémoires et les caractéristiques
suivantes (Note : une mauvaise réponse en annule une bonne) {0,8 point}
ROM PROM EPROM FLASH SRAM DRAM FRAM
Volatile
x x
Écriture et lecture multiple par
l’usager en opération normale
x x x x
Effaçable avec UV
x
Nécessite une haute tension pour
l’écriture
x x
Doit être rafraichie périodiquement
x
Utilise un matériau ferroélectrique
x
Possède 6 transistors par bit
x
Possède une grille flottante
x x
b) Pourquoi faut-il pré-charger les lignes de données des mémoires de type DRAM ?
{0,2 point}
Capacité de la ligne de données et très grande par rapport à la capacité de
donnée
c) Quelle technologie de mémoire possède le FPGA que vous avez utilisé au laboratoire
(Xilinx Artix-7 : XC7A200T) et qui permet de configurer ses interconnections ? {0,2
point}
SRAM
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 12 sur 21
QUESTION 5 {suite}
d) Donnez un avantage et un inconvénient de la mémoire DRAM par rapport à la
mémoire SRAM ? {0,2 point}
+ plus grande capacité
- plus lente
e) Expliquez la raison d’utiliser des « gros » transistors dans l’architecture de la
mémoire SRAM. {0,2 point}
Permet d’imposer une nouvelle valeur lors de l’écriture car la résistance du canal est
plus faible que celle des transistors des inverseurs
f) Au point de vue architectural, qu’est-ce qui différentie un CPLD d’un FPGA? {0,2
point}
Architecture pour la logique combinatoire
FPGA : LUT (ET fixe et OU prog)
CPLD : plan ET programmable et ou fixe / ET prog et OU prog
g) Nommez deux (2) des quatre (4) grandes catégories de ressources matérielles d’un
composant programmable ? {0,2 point}
Interconnexions
Horloges
Entrées/sorties
Fonctions combinatoires et séquentielles
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 13 sur 21
QUESTION 5 {suite}
h) Sachant que vous disposez de mémoire ROM de 4M x 16 bits et que vous désirez une
mémoire RAM de 32M x 8 bits, dessinez le schéma du module mémoire. {0,5 point}
CE
ADD
DATA
CE
ADD
DATA
CE
ADD
DATA
CE
ADD
DATA
16
16
16
8MSB
8
8LSB
16
s
A0
CE0
A22..A1
A22..A1
A22..A1
A22..A1
CE1
CE2
CE3
CE
A24 A23
CE0
CE1
CE2
CE3
0
1
2
3s0s1
1 parmi 4
0
1
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 14 sur 21
QUESTION 6 {4 points}
Vous désirez concevoir un dispositif de sécurité (CAT-A) qui protège une zone restreinte.
Vous avez huit (8) capteurs de sécurité et vous prévoyez échantillonner chacun des capteurs à
5 kHz. Lorsqu’un des échantillons dépasse le seuil de fonctionnement normale pendant plus
de 10 ms, le système doit générer une alarme (A1). De plus, le système doit également
générer une alarme (A2) lorsqu’il ne reçoit pas de code d’identité (entrée au clavier) valide
en moins de 20 secondes.
a) Vous désirez utiliser un CAN (architecture avancée) pour la numérisation des signaux
provenant des capteurs (un CAN par capteur). La tension analogique des capteurs varie
entre 0 et 5 V, vous désirez utiliser une tension de référence de 5 V et vous désirez une
résolution d’au moins 10 mV. De plus, vous disposez de plusieurs CAN à approximations
successives de 5 bits qui complètent leur conversion en 300 us. Dessinez le schéma bloc
complet de l’architecture avancée du CAN que vous allez réaliser à partir d’un nombre
minimal de CAN à approximations successives (vous pouvez utiliser tous les autres
composants de votre choix à l’exception de CAN). Prenez soin de spécifier la fréquence
d’horloge que vous prévoyez utiliser pour les CAN à approximation successive à 5 bits.
{2 point}
log(5V/10mV)/log(2)=8.966 => 9 bits => pipeline de 2 CAN
fech=5kHz => Tech = 200us => parallèle de 2 avec e/b dans le pipeline
fclk =5/300us = 16.667 kHz
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 15 sur 21
E/B CAN
5
Sech_0 SC_0
E/B CAN
5
Sech_1 SC_1
Fc=2.5 kHz
MSA
Sech_1 SC_1 Sech_0 SC_0
10
10
10
sel
0
1
selsel
E/B CAN CNA
MSB
5
Sech_1 SC_1
E/B CAN CNA
MSB
5
Sech_0 SC_0
32
32
LSB
LSB
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 16 sur 21
QUESTION 6 {suite}
b) Sachant que vous désirez utiliser une mémoire ROM pour contenir les échantillons des
deux alarmes audibles (fmax = 20 kHz pour A1 et A2) et que les échantillons sont
représentés sur 12 bits, spécifiez la capacité minimale requise. Notez que les alarmes
sont un signal périodique (qui se répète) sur une période de 5 secondes chacune et qu’une
seule des alarmes est active à la fois. {0,5 point}
2 x 5 s x 40 000 ech /s x 12 bits = 400 000 x 12 bits = 390.625 k x 12 bits
Donc ROM de 512k x 12 bits
c) Dessinez le schéma bloc et le diagramme d’état (si vous utilisez une MSA) d’un circuit
qui génère les alarmes lors de l’activation de l’un des deux signaux de contrôle
(active_alarme1 et active_alarme2) à partir de la ROM trouvée en b), d’un CNA (ne
dessinez pas la structure interne du CNA) et d’un hautparleur. {0,5 point}
Haut-Parleur
Mémoire
A1 A2
ADD MSB
ADD LSB
cmpt
clkrst
CNA
FiltreFc=20kHz
128
Modulo200 000
Freq= 40kHz
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 17 sur 21
QUESTION 6 {suite}
d) Dessinez le diagramme d’état d’une MSA qui génère l’activation (active_alarme2) de
l’alarme (A2) lorsque le code d’identité (1-2-3) n’est pas entré au clavier (code_clavier)
après plus de 20 s après l’activation de l’alarme (A1). Le signal code_clavier est encodé
sur 4 bits et les symboles sont les caractères 0 à 9. Notez qu’une fois le code d’identité
validé, le système doit attendre que l’alarme (A1) soit désactivée avant de se réamorcer.
De plus, une fois que l’alarme A2 est activée, seul l’activation du signal de remise à zéro
(reset) peut réinitialiser le système {1 point}
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 18 sur 21
Wait
A10
1
Cnt=cnt+1A2=0
Cnt=0A2=0
Cnt=fin
code
bipCnt= don’t care
A2=1
1
autre
1
start
Cnt=cnt+1A2=0
Cnt=fin
code
2
1
autre
2Cnt=cnt+1
A2=0
Cnt=fin
code
3
3Cnt=don’t care
A2=0
A1
1
autre
non
oui
non
non
RST
1
0
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 19 sur 21
QUESTION 7 {3 points}
Complétez, en VHDL, la description d’un tampon synchrone de type FIFO (first-in first-out)
en utilisant une mémoire à double port synchrone et un peu de logiques. Le tampon doit
avoir :
Deux (2) signaux de statut (flag) :
- full : Devient actif lorsqu’il n’y a plus de place pour écrire une nouvelle donnée ;
- empty : Devient actif lorsqu’il n’y a plus de donnée à récupérer dans le tampon.
Deux (2) signaux de contrôle :
- Write_en : Inscrit la donnée présente sur Data_in dans la queue de mémoire
lorsqu’actif et que le signal full n’est pas actif ;
- Read_en : Produit en sortie la plus ancienne donnée non lu lorsqu’actif et que le
signal empty n’est pas actif.
Data_in
Write_en
full
Data_out
Read_en
empty
clk
FIFO
12 12
rst
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
-- Complétez la description de l’entity {0,2 point}
entity fifo is
port (
rst : in std_logic;
clk : in std_logic;
data_in : in std_logic_vector(11 downto 0);
data_out : out std_logic_vector(11 downto 0);
full : out std_logic;
empty : out std_logic;
write_en : in std_logic;
read_en : in std_logic
);
end fifo;
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 20 sur 21
architecture behav of fifo is
signal adresse_in_p, adresse_in_f: std_logic_vector(9 downto 0);
signal adresse_out_p, adresse_out_f: std_logic_vector(9 downto 0);
signal full_p, full_f, empty_p, empty_f : std_logic;
type ram_type is array (0 to 1023) of std_logic_vector(11 downto 0);
--à compléter {0,2 point} signal RAM : ram_type;
--à compléter si requis (indice : deux signaux simplifieraient la gestion des flags signal adresse_full_f, adresse_full_p : std_logic_vector( 9 downto 0 );
Begin
--à compléter {0,2 point} full <= full_p;
empty <= empty_p;
--complétez le process synchrone {0,2 point} sync_process: process(rst,clk)
begin
if rst=’1’ then
adresse_in_p <= (others=>’0’);
adresse_out_p <=(others=>’0’);
full_p <= ‘0’;
empty_p <= ‘1’;
adresse_full_p <= “00”&X“01”; elsif
adresse_in_p <= adresse_in_f;
adresse_out_p <= adresse_out_f;
full_p <= full_f;
empty_p <= empty_f;
adresse_full_p <= adresse_full_f;
end if;
end process;
--complétez le process combinatoire {0,3 point}
empty_flag_process:process(adresse_in_p, adresse_out_p ) -- empty_f <= ? begin
if adresse_in_p = adresse_out_p then
empty_f <=’1’;
else
empty_f <= ‘0’;
end if;
end process;
--complétez le process combinatoire {0,3 point}
full_flag_process:process( adresse_in_p, adresse_full_p ) -- full_f <= ? begin
if (adresse_in_p = adresse_full_p) then
full_f <=’1’;
else
full_f <= ‘0’;
end if;
end process;
ELE3311-Systèmes logiques programmables
Examen final, hiver 2017
SOLUTION
Page 21 sur 21
--complétez le process combinatoire {0,3 point}
addr_in_process : process( adresse_in_p,full_p, write_en ) -- adresse_in_f <= ? begin
if full_p =’0’ and write_en =’1’ then
adresse_in_f <= std_logic_vector(unsigned(adresse_in_p) + 1);
adresse_full_f <= std_logic_vector(unsigned(adresse_in_p) + 2);
else
adresse_in_f <= adresse_in_p;
adresse_full_f <= std_logic_vector(unsigned(adresse_in_p) + 1);
end if;
end process;
--complétez le process combinatoire {0,3 point}
addr_out_process : process( adresse_out_p, empty_p, read_en) -- adresse_out_f <= ? begin
if empty_p =’0’ and read_en =’1’ then
adresse_out_f <= std_logic_vector(unsigned(adresse_out_p) + 1);
else
adresse_out_f <= adresse_out_p;
end if;
end process;
--Complétez la description de la mémoire à double port synchrone {1 point} dual_port_ram_process:process( clk ) begin
if clk’event and clk=’1’ then
if write_en=’1’ then
ram(to_integer(unsigned(adresse_in_p))<=data_in;
end if;
data_out<= ram(to_integer(unsigned(adresse_out_p));
end if;
end process;
end behav;
Bon examen !
Philippe Levesque
Mohamad Sawan