Vous êtes sur la page 1sur 6

Nom : _______________________________________ Matricule : ____________________________

INF3500 : Conception et réalisation de systèmes numériques


Examen intra #3 – jeudi 29 novembre décembre 2018
Durée: 1 heure. Documentation: Une feuille recto verso 8.5”×11” ou A4 permise.
Pondération: 0% (formatif). Calculatrice: Programmable permise.
Directives particulières:
 Ordinateurs interdits. Appareils mobiles interdits.
 Répondre à toutes les questions, la valeur de chaque question est indiquée.
 Répondre sur le questionnaire.
 Ne posez pas de questions. En cas de doute sur le sens d’une question, énoncez clairement toute
supposition que vous faites.

Question 1. (1 point)
Réponses brèves.

a. Expliquez dans quels cas la division et le calcul du modulo sont supportés par les outils de synthèse
présentement sur le marché, et pourquoi ces opérations ne le sont pas dans les autres cas.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

b. Qu’est-ce qui est produit par un outil de synthèse à partir d’un code VHDL valide?
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

c. Dans quelles conditions une boucle en VHDL est-elle synthétisable ? Expliquez pourquoi.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

d. Donnez deux métriques pour comparer différentes solutions de placement d’un circuit numérique sur
un FPGA.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

Polytechnique Montréal page 1/6 Département de génie informatique et génie logiciel


INF3500 – contrôle périodique #3 – 29 novembre 2018

Question 2. (3 points)
Considérez le diagramme suivant du processeur PolyRISC.
Op_UAL:
0: F <= A Bloc des registres UAL
1: F <= B
2: F <= A + B
3: F <= A – B Z
donnéeBR A A
4: F <= A ET B N
5: F <= A OU B
6: F <= NON A F

choixCharge
7: F <= A OUX B
chargeBR Mémoire des données
B B

choixA
choixB
Sélection des muxes:
op_UAL adresse M[adresse]
0: signal du haut
1: signal du bas

choixDonnee_BR
donnee_MD
`

choixB_UAL
charge_MD

valeur

a. (1 point) Donnez la valeur du mot de contrôle pour effectuer les opérations suivantes en complétant le
tableau.

choixB_UAL
choixCharge

charge_MD

choixDon-
chargeBR

op_UAL

nee_BR
choixA

choixB

valeur
opération

R2 := R7 OUX R4
R6 := NON(R6)
M[50 + R5] := R1
R3 := M[100]
b. (2 points) Le bloc des registres a un délai tD de 6.5 ns et un temps de préparation tsu de 1 ns. L’UAL a
un délai de 10 ns. En mode écriture, la mémoire des données a un délai tD de 7.5 ns et un temps de prépa-
ration tsu de 3 ns à cause du décodage d’adresses. En mode lecture, la mémoire des données a un délai de
7.5 ns. Les multiplexeurs ont un délai de 2 ns. On estime que chaque fil d’interconnexion ajoute un délai
de 0.5 ns. On suppose que les signaux de contrôle sont sans délais. Il n’y a pas de déphasage d’horloge.
Identifiez le chemin critique et calculez la fréquence maximale d’horloge.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
___________________________________________________________(Utilisez le verso si nécessaire)

Polytechnique Montréal page 2/6 Département de génie informatique et génie logiciel


INF3500 – contrôle périodique #3 – 29 novembre 2018

Question 3. (3 points)

Considérez le bloc des registres choixA


suivant, et supposez que les ports
donneeBR, A et B ont 16 bits de donnéeBR D Q

large. chargeBR
R0
A

charge

Estimez combien de ressources


seraient nécessaires pour implé- D Q choixB
menter ce bloc des registres sur 2:4
R1
un FPGA de la famille Virtex-7 0
charge
choixCharge
1
que vous avez utilisé au labora- 2 B
3
toire. Énoncez clairement toutes
vos suppositions et justifiez D Q
complètement votre réponse. R2
Donnez votre réponse en termes charge

de LUT, de bascules, de tranches


DSP48 et de bits de mémoire
Block RAM. D Q

Montrez tous vos calculs et justi- R3


charge
fiez complètement votre réponse.
Utilisez le verso si nécessaire.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________

Polytechnique Montréal page 3/6 Département de génie informatique et génie logiciel


INF3500 – contrôle périodique #3 – 29 novembre 2018

Question 4. (3 points)
Considérez le diagramme suivant montrant un circuit implémenté sur un FPGA simplifié. Les entrées du
circuit sont les signaux A, B, C, D et E. Il y a deux sorties S et T. Le FPGA est composé de tranches ayant
chacune une table de correspondance (LUT) et une bascule pouvant être utilisée ou non, et de blocs
d’entrée/sortie (IOB) dans lesquels les bascules sont toujours utilisées.
Pour ce FPGA, les LUT ont un délai de 0.3 ns. Les bascules ont un délai de 0.4 ns, un temps de prépara-
tion tsu de 0.2 ns, et un temps de maintien th de 0.1 ns. Chaque fil d’interconnexion ajoute un délai de 0.25
ns pour chaque rangée et chaque colonne de distance. Bien que des lignes diagonales soient tracées sur le
diagramme, tous les signaux sont routés en lignes horizontales et/ou verticales.
Colonne 0 Colonne 1 Colonne 2 Colonne 3

Rangée 0
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
A Bloc entrée/ conversion conversion conversion conversion Bloc entrée/ S
sortie (LUT) (LUT) (LUT) (LUT) sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 1
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
B Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 2
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
C Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 3
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
D Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 4
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
E Bloc entrée/ conversion conversion conversion conversion Bloc entrée/ T
sortie (LUT) (LUT) (LUT) (LUT) sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

a. (1 point) Identifiez le chemin critique du circuit et donnez la fréquence maximale d’horloge.


_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
b. (2 points) On veut maximiser le débit de ce circuit par la technique du pipeline. Montrez clairement sur
le diagramme quelles bascules utiliser. Quel est le débit maximal qui peut être atteint par ce circuit?
Énoncez clairement toutes vos suppositions et justifiez complètement votre réponse.
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
____________________________________________________________________________________
Polytechnique Montréal page 4/6 Département de génie informatique et génie logiciel
INF3500 – contrôle périodique #3 – 29 novembre 2018

Solutions
Q1.
a. Réponse. La division et le modulo sont supportés quand le deuxième argument est une puissance de
deux. Le résultat s’obtient alors par un décalage ou une sélection de bits, respectivement. La division
générale et le modulo général ne sont pas présentement synthétisables parce qu’il n’y a pas de bloc dédié
à cette opération dans la plupart des technologies, dont les FPGA. Ces opérations peuvent être réalisées de
différentes façons, par exemple par la multiplication par la réciproque du diviseur et par des circuits itéra-
tifs. Dans les deux cas, il y a beaucoup de choix de design à faire, incluant la complexité matérielle et la
latence du circuit résultant. Les concepteurs de synthétiseurs préfèrent laisser ces choix à celles et ceux
qui écrivent du code VHDL.
b. Le produit de la synthèse est une liste de composantes de base et des interconnexions entre elles qui
correspond à l’interprétation matérielle du code VHDL. Dans leur plus simple expression, les compo-
santes peuvent être des portes logiques. Les composantes peuvent correspondre à des blocs plus com-
plexes disponibles sur la technologie visée. Par exemple, pour un FPGA, une composante peut être un
multiplieur ou un bloc de mémoire RAM.
c. Pour être synthétisable, une boucle logicielle doit pouvoir être déroulée complètement, et à chaque
itération correspond un bloc matériel distinct. Cela correspond à échanger du temps pour de l’espace. Il
faut donc que les bornes de la boucle soient connues de façon statique au moment de la synthèse, par
exemple en étant des constantes ou des valeurs spécifiées par des énoncés generic.
d. Longueur totale des interconnexions, chemin le plus long, congestion des interconnexions.

Q2.
a.

ChoixB_UAL
choixCharge

Charge_MD

choixDon-
chargeBR

Op_UAL

nee_BR
choixA

choixB

valeur

opération

R2 := R7 OUX R4 1 2 7 4 - 0 7 0 0
R6 := NON(R6) 1 6 6 - - - 6 0 0
M[50 + R5] := R1 0 - 5 1 50 1 2 1 -
R3 := M[100] 1 3 - - 100 1 1 0 1

b. Quelques chemins critiques possibles sont :

Instruction R2 := R7 oux R4 :
bloc des registres, mux, UAL, mux, bloc des registres :
6.5 + 2 + 10 + 2 + 1 + 4 × 0.5 = 23.5 ns

Instruction M[50 + R5] := R1 :


bloc des registres, UAL, mémoire des données (port ‘adresse’, mémoire en mode écriture) :
6.5 + 10 + 3 + 2 × 0.5 = 20.5 ns

Instruction R3 := M[R1 + R4] :


bloc des registres, mux, UAL, mémoire des données (port ‘adresse’, mémoire en mode lecture), mux, bloc
des registres 6.5 + 2 + 10 + 7.5 + 2 + 1 + 5 × 0.5 = 31.5 ns

Donc fmax = 1/31.5 ns = 31.7 MHz


Polytechnique Montréal page 5/6 Département de génie informatique et génie logiciel
INF3500 – contrôle périodique #3 – 29 novembre 2018

Q3
Il faut 4 × 16 = 64 bascules.
Les deux multiplexeurs de sortie ont chacun 6 entrées : un bit par registre et deux bits pour le choix de la
sortie. Donc il faut 1 LUT par bit pour chacun des multiplexeurs, donc 16 LUT chacun, donc 32 LUT.
Il faut 4 LUT pour les 4 portes ET.
Le décodeur a deux entrées et 4 sorties, il faut 4 LUT.
Total BR : 64 bascules, 40 LUT environ.

Q4.
a. Le chemin critique va de l’entrée B, à la LUTR3C0, à la LUTR0C1, à la LUT R0C3, à la sortie S.
Le délai total est td + 3 × tLUT + 10 × tfils = 0.4 + 3 × 0.3 + 10 × 0.25 = 3.8 ns.
La fréquence maximale d’horloge est 1/(3.8 + tsu) = 1 / 4 ns = 250 MHz.

b. Il faudrait tout d’abord insérer des registres de pipeline dans le chemin critique, bascules R3C0, R0C1
et R0C3. Ensuite il faudrait balancer les autres chemins. En y allant colonne par colonne, il faut utiliser
toutes les bascules sur des chemins dans la colonne 0. Pour la colonne 1, on doit utiliser la bascule R4C1.
Il faut aussi insérer une bascule dans le chemin du milieu, par exemple avec la LUT et la bascule R3C1.
La LUT R3C1 ferait la fonction identité. On ajouterait aussi une LUT identité et une bascule à R4C3 sur
le chemin du bas.
Le chemin critique serait alors de R3C1 à R0C3 : td + 5 × tfil + tlut + tsu = 0.4 + 5 × 0.25 + 0.3 + 0.2 =
2.15 ns, et la fréquence maximale d’horloge correspondante serait 465 MHz.
Colonne 0 Colonne 1 Colonne 2 Colonne 3

Rangée 0
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
A Bloc entrée/ conversion conversion conversion conversion Bloc entrée/ S
sortie (LUT) (LUT) (LUT) (LUT) sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 1
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
B Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 2
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
C Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 3
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
D Bloc entrée/
sortie
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
conversion
(LUT)
Bloc entrée/
sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Rangée 4
D Q Table de Table de Table de Table de D Q
D Q D Q D Q D Q
E Bloc entrée/ conversion conversion conversion conversion Bloc entrée/ T
sortie (LUT) (LUT) (LUT) (LUT) sortie
(IOB) CLK (IOB) CLK
CLK CLK CLK CLK

Polytechnique Montréal page 6/6 Département de génie informatique et génie logiciel

Vous aimerez peut-être aussi