21
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 SE Z RST '1' '0' C '1' '0' H J F I Y Y '0' E G L '1' SB DSB W SB SE Z SB SE Z X '0' '1' K SB DSB W SB DSB W N

QUESTION 1 {2 points} - Moodle · 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

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: QUESTION 1 {2 points} - Moodle · 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

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

Page 2: QUESTION 1 {2 points} - Moodle · 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

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

sboyer
Note
Errata: F-G devrait être D-F-G
Page 3: QUESTION 1 {2 points} - Moodle · 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

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

Page 4: QUESTION 1 {2 points} - Moodle · 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

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

Page 5: QUESTION 1 {2 points} - Moodle · 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

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

Page 6: QUESTION 1 {2 points} - Moodle · 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

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

Page 7: QUESTION 1 {2 points} - Moodle · 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

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

Page 8: QUESTION 1 {2 points} - Moodle · 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

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)

Page 9: QUESTION 1 {2 points} - Moodle · 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

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

sboyer
Zone de texte
Comme il s'agit d'une ALU et que nous contrôlons les entrées, nous ne pouvons éliminer les séquences présent-suivant-vérification et utiliser les 2-3 séquences qui restent. Toutes les combinaisons binaires sont possibles (2^8). Nous devons choisir la séquence pour avoir le délai le plus long. Ici, on veut une transition HL sur A0 pour avoir le délai le plus long (24 ns) pour la bascule. Ensuite, on choisit C0 = H pour inverser et avoir une transition LH à la sortie du 1er XOR, puisque les délais les plus longs pour les XOR sont tpLH (H) et tpLH (L). Pour les autres étages: Si on choisi le tpLH (H), le XOR inverse et nous aurons une séquence LH-HL-LH-HL... Si on choisi le tpLH (L), le XOR n'inverse pas et nous aurons une séquence LH-LH-LH-LH... Dans un cas comme dans l'autre, le délai combiné sera le même (17+15) ou (16+16) Si on prend l'ordre des signaux: C4 A3..A0 B3..B0 (F n'est pas dans le chemin critique) on choisit (P, S, V): 0 xxx1 xxxx, 0 0000 0000, 1 0000 0000 avec C0 fixé à H et on obtient la solution présentée ci-haut.
Page 10: QUESTION 1 {2 points} - Moodle · 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

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

Page 11: QUESTION 1 {2 points} - Moodle · 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

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

Page 12: QUESTION 1 {2 points} - Moodle · 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

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

Page 13: QUESTION 1 {2 points} - Moodle · 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

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

Page 14: QUESTION 1 {2 points} - Moodle · 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

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

Page 15: QUESTION 1 {2 points} - Moodle · 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

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

Page 16: QUESTION 1 {2 points} - Moodle · 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

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

Page 17: QUESTION 1 {2 points} - Moodle · 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

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}

Page 18: QUESTION 1 {2 points} - Moodle · 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

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

Page 19: QUESTION 1 {2 points} - Moodle · 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

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;

Page 20: QUESTION 1 {2 points} - Moodle · 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

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;

Page 21: QUESTION 1 {2 points} - Moodle · 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

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