inf3500 : conception et implémentation de systèmes numériques pierre langlois cours #10...

58
INF3500 : Conception et implémentation de systèmes numériques http://creativecommons.org/licenses/by-nc- sa/2.5/ca/ Pierre Langlois Cours #10 Performance de circuits numériques Partie 1: le facteur temps

Upload: magali-huguet

Post on 03-Apr-2015

108 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

http://creativecommons.org/licenses/by-nc-sa/2.5/ca/

Pierre Langlois

Cours #10Performance de circuits numériques

Partie 1: le facteur temps

Page 2: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Implémentation des systèmes numériquesQuatre considérations d’implémentation

2

Précision des calculs

Puissance consommée

Taille du système

Taux de traitement

Aujourd’hui

(notes, section 1.3)

Page 3: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 3

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 4: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Un exemple pour commencerDésentrelacement vidéo pour télévision HD

• Un téléviseur HD peut afficher une image de 1920 pixels de large par 1080 pixels de haut, à un taux d’au moins 60 images par seconde.

• Plusieurs sources fournissent une vidéo de qualité inférieure.• Par exemple, la norme ATSC « 1080i » de télévision au Canada spécifie la

transmission d’images de 1920 × 1080 pixels entrelacées à un taux de 60 trames par seconde. Ces trames sont de dimensions 1920 × 540 pixels. Chaque trame contient soit les lignes paires soit les lignes impaires de l’image originale.

4

Page 5: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement vidéoDésentrelacement intra-trame

• Le désentrelacement intra-trame consiste à reconstituer une image complète à partir de l’information reçue d’une seule trame.

5

Page 6: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement vidéoDésentrelacement inter-trame

• Le désentrelacement inter-trame consiste à reconstituer une image complète à partir de l’information reçue de plusieurs trames.

6

Page 7: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement vidéoAnalyse du taux de traitement

• Le traitement nécessaire pour effectuer le désentrelacement peut être très simple, par exemple doubler chaque ligne reçue.

• Il peut être très complexe, par exemple effectuer le suivi d’objets d’une trame à l’autre pour n’utiliser que des pixels originaux dans chaque image produite.

• Pour une image HD, le nombre de pixels à calculer est:1920 × 540 = 1 036 800 pixels

• Le taux de traitement nécessaire est:1 036 800 pixels/image × 60 images/s ≈ 62.2 Mpixels/s.

où chaque pixel est composé de trois octets (R, G, B).

7

Page 8: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement intra-trameAlgorithme ELA

• Le doublage de lignes produit de mauvais résultats.• Calculer la moyenne des lignes est relativement simple, mais mène à des arêtes

qui ne sont pas claires.• L’algorithme ELA (Edge-based Line Average) est préférable et relativement

simple.

8

Pour chaque pixel à calculer (en jaune), on calcule la similarité entre trois paires de pixels, selon les trois directions montrées ici.La paire avec la plus grande similarité (différence absolue des intensités) est choisie, et sa moyenne donne le pixel manquant.Pour chaque pixel, il faut donc:• calculer trois différences absolues;• faire trois comparaisons; et• calculer une moyenne.Le total est donc, pour chaque pixel, de:(3 diff + 3 abs + 3 comparaisons + 1 moyenne) × 3 couleurs = 30 opérationsLe taux de traitement est donc 30 × 62.2M = 1.87 Gops/s (sans tenir compte des branchements, chargements, etc. …).

Page 9: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement inter-trameCompensation de mouvement

• La compensation de mouvement est très complexe.• Dans une trame adjacente, on cherche le bloc le plus similaire au boc présent.• On remplace les lignes manquantes du bloc présent par celles du bloc similaire.

9

Page 10: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Désentrelacement inter-trameCompensation de mouvement

• Supposons des blocs de 16 × 16 pixels.• Supposons un espace de recherche de 64 × 64 pixels, donc il y a 4096 blocs à

inspecter.• Pour trouver un seul bloc, il faut faire 16 × 16 × 4096 ≈ 1 M comparaisons de

pixels.• Dans une image HD entrelacée, il y a 4080 blocs de 16 × 16 pixels.• Le taux de traitement pour la recherche de blocs seulement pour une vidéo HD

serait de l’ordre de 4.3 Gops/s.• Une fois un bloc trouvé, il faudrait faire des opérations d’interpolation pour

calculer les pixels manquants.

10

La morale:La plupart des systèmes numériques doivent rencontrer des contraintes importantes concernant le taux de traitement.Il est nécessaire de bien comprendre les facteurs qui l’affectent.

Page 11: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 11

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 12: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Introduction: le facteur temps

• Pour être acceptable, un circuit numérique doit rencontrer ses spécifications fonctionnelles: il doit produire les bons résultats.

• Il doit aussi rencontrer ses spécifications temporelles: il doit produire les résultats à temps.

• Le taux de traitement est directement proportionnel à la fréquence d’horloge.• Dans cette présentation on considère uniquement les systèmes synchrones,

c’est-à-dire qui comportent une horloge de référence.• On discute aussi le problème de l’interface asynchrone entre des systèmes qui

ne partagent pas d’horloge commune et entre un système synchrone et un système asynchrone.

12

(notes, section 8.1)

Page 13: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 13

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 14: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Transitions sur les signaux

• Dans les circuits logiques, les signaux intermédiaires et de sortie peuvent subir une transition quand les signaux d’entrée changent. Par exemple, pour un inverseur, quand l’entrée passe de 1 à 0, la sortie doit passer de 0 à 1. Ces transitions ne se font pas instantanément.

14

(notes, section 8.2.1)

On définit:

Temps de descente (fall time – tf)

Temps de montée (rise time – tr)

Délai de descente(propagation delay, High to Low – tPHL)

Délai de montée(propagation delay, Low to High – tPLH)

En général, tPHL ≠ tPLH.

Délai de propagation td = max(tPHL,tPLH)

Page 15: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Transitions sur les signaux

• Les paramètres de synchronisation tr, tf, tPHL et tPLH sont influencés principalement par trois critères :– la charge capacitive à mener (dépend du nombre de composantes menées par le

circuit ainsi que la longueur des interconnexions);– la résistance des conducteurs (dépend surtout de la longueur des interconnexions);

et,– la dimension des transistors par lesquels le courant passe pour charger (tPLH) et

décharger (tPHL) la charge capacitive.

15

(notes, section 8.2.1)

Page 16: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Délai causé par la charge et décharge d’un condensateur

16

(notes, section 8.2.1)

La charge capacitive à mener.

La résistance des conducteurs et la taille des transistors.

Page 17: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Délai de propagation d’une composante

• Le délai de propagation d’une composante est le temps nécessaire pour que la sortie de la composante se stabilise suite à un changement à l’une de ses entrées.

• Pour les bascules, on mesure le délai de propagation à partir de la transition active de l’horloge.

17

(notes, section 8.2.2)

Page 18: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Délai de propagation d’une composante

• Nous adoptons les symboles suivants:– td pour les bascules et loquets;

– tcomb pour la logique combinatoire.

• La valeur du délai est en général calculée par le maximum des temps de montée (tr) et de descente (tf), qui sont souvent différents.

• La mesure du délai de propagation suppose que les transitions sur les entrées respectent certaines contraintes dans le temps, par exemple que la pente du signal est infinie lors d’une transition.

• Le délai de propagation maximal d’une composante est en général spécifié par le manufacturier pour des conditions d’opération données. Ces conditions d’opération peuvent inclure :– la tension d’alimentation;– la température; et,– la charge menée par la composante.

18

(notes, section 8.2.2)

Page 19: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Temps de propagation - exemple

• Les bascules et les portes logiques INV, ET, OU et OUX ont des délais de propagation de 2, 1, 2, 2 et 3 ns, respectivement.

• Montrer sur un chronogramme la progression des signaux dans le circuit après une transition du signal d’horloge.

19

(notes, section 8.3)

A

D

CLK

Q

F

D

CLK

QB

D

CLK

Q

C

D

CLK

Q

Page 20: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

• Le délai de propagation dû aux interconnexions dépend surtout de leur longueur et du matériau dans lequel elles sont fabriquées.

• Ces deux facteurs influent sur leur charge capacitive et sur leur résistance.

Délai de propagation des interconnexions

20

(notes, section 8.2.3)

iA

LR

d

AC m

ρ: résistivité du conducteurL: longueur du conducteurAi: surface présentée au courantε: paramètre diélectrique de l’isolantAm: surface de l’isolantd: épaisseur de l’isolant

Page 21: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

• Facteurs: sortance (fanout) et distance due au placement

Exemple – effet de la charge et des interconnexionssur le temps de propagation dans un FPGA

21

(pas dans les notes)

Page 22: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Bascules: temps de préparation et de maintien

• Pour qu’une bascule ou un loquet fonctionne correctement, il faut que le signal d’entrée soit stable pendant une période définie avant et après la transition active de l’horloge.

• Le temps de préparation (setup time – tsu) est le temps minimal pendant lequel le signal d’entrée de la bascule ou du loquet ne doit pas changer avant la transition active de l’horloge.

• Le temps de maintien (hold time – th) est le temps minimal pendant lequel le signal d’entrée de la bascule ou du loquet ne doit pas changer après la transition active de l’horloge.

22

(notes, section 8.2.4)

Page 23: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Bascules: temps de préparation et de maintien

• Si le temps de préparation ou le temps de maintien n’est pas respecté, alors la bascule risque d’entrer dans un état métastable, c'est-à-dire que sa sortie aura un niveau imprévisible entre 0 et 1.

• En théorie, l’élément à mémoire pourrait rester dans l’état métastable indéfiniment.

• En pratique, il finit par se stabiliser sur un des deux états après un certain temps, et cet état est inconnu.

23

(notes, section 8.2.4)

Page 24: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse: quelques paramètres du Virtex-5

24

(pas dans les notes)

Xilinx, Virtex-5 User Guide, UG190 (v5.4) March 16, 2012.

~0.09 ns

~0.22 ns

~0.35 ns

~0.40 ns

~0.41/0.21 ns

Page 25: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse: quelques paramètres du Virtex-5 (2)

25

(pas dans les notes)

Xili

nx, V

irtex

-5 F

PG

A D

ata

She

et: D

C a

nd S

witc

hing

Cha

ract

eris

tics,

DS

202

(v5.

3) M

ay 5

, 201

0.

Page 26: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 26

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 27: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Fréquence maximale d’horloge et chemin critique

• La fréquence maximale d’opération d’un circuit séquentiel est la fréquence d’horloge la plus élevée à laquelle le circuit continue de fournir des résultats corrects.

• La réciproque de la fréquence maximale d’horloge est la période minimale du circuit.

• Pour déterminer la période minimale d’un circuit séquentiel:– On énumère tous les chemins possibles entre des paires de bascules.– On mesure le délai sur chacun de ces chemins en tenant compte des délais des

composantes, des délais de propagation et du temps de préparation de la bascule qui reçoit le signal.

– Le chemin critique est le chemin ayant le plus long délai.• La période minimale du circuit est égale à la somme du délai sur le chemin

critique et du temps de préparation de la bascule qui reçoit le signal. Cette relation est indiquée par l’équation suivante :

27

(notes, section 8.3)

supropcombd ttttT min

Page 28: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Fréquence maximale d’horloge et chemin critiqueExemple

• Considérons le circuit suivant. Supposons:– les bascules ont un temps de préparation de 1 ns et un délai de propagation de 2 ns;– les portes logiques INV, ET, OU et OUX ont des délais de propagation de 1, 2, 2 et 3

ns, respectivement.– on peut négliger les délais de propagation des interconnexions.

• Dans ce cas, le chemin critique est B – INV – OUX – OU – F et la période minimale d’horloge est 2 + 1 + 3 + 2 + 1 = 9 ns.

28

(notes, section 8.3)

A

D

CLK

Q

F

D

CLK

QB

D

CLK

Q

C

D

CLK

Q

supropcombd ttttT min

Page 29: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Fréquence maximale d’horloge et chemin critique

29

(notes, section 8.3)

A

D

CLK

Q

F

D

CLK

QB

D

CLK

Q

C

D

CLK

Qsupropcombd ttttT min

Page 30: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Exercice

• Considérez le circuit suivant.– Les bascules ont des délais de propagation de 2 ns, un temps de préparation de 1 ns,

et un temps de maintien de 1 ns.– Supposez que la période d’horloge est égale à 10 ns.

• Énumérer les chemins bascule-bascule et donnez la marge libre sur chacun.

30

(notes, section 8.3, 8.4)

1

D

CLK

Q

3

D

CLK

Q

3 ns

2

D

CLK

Q

2 ns

4

D

CLK

Q

CLK

Page 31: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Exercice

• Pour le circuit suivant:– identifiez le chemin critique– déterminez la fréquence maximale d’horloge– donnez la marge libre de préparation pour les autres chemins.

• Supposez que les bascules ont un temps de préparation de 1 ns et un délai de propagation de 2 ns et qu’on peut négliger les délais des interconnexions.

31

(notes, section 8.3, 8.4)

A

D

CLK

Q

D

D

CLK

Q

3 ns

4 ns

3 ns

1 nsB

D

CLK

Q

C

D

CLK

Q

2 ns

2 nsE

D

CLK

Q

2 ns

2 ns3 ns

Page 32: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 32

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 33: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge (clock skew)

• On a supposé à date que toutes les bascules du circuit recevaient un signal d’horloge idéal et cela simultanément, c'est-à-dire que les fronts de l’horloge arrivaient à chaque bascule sans aucun déphasage.

• En pratique, ce n’est jamais le cas et il y a toujours un certain déphasage d’horloge.

33

(notes, section 8.4)

Page 34: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: causes

• Il y a trois façons par lesquelles un déphasage d’horloge peut être introduit entre les bascules.– signal d’horloge avec des chemins de longueur différente;– signal d’horloge avec un débalancement de la charge du signal; et,– contrôle du signal d’horloge avec de la logique combinatoire (clock gating).

34

(notes, section 8.4)

Page 35: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

• Il y a trois façons par lesquelles un déphasage d’horloge peut être introduit entre les bascules.– signal d’horloge avec des chemins de longueur différente;– signal d’horloge avec un débalancement de la charge du signal; et,– contrôle du signal d’horloge avec de la logique combinatoire (clock gating).

Le déphasage d’horloge: causes

35

(notes, section 8.4)

Page 36: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: causes

• Il y a trois façons par lesquelles un déphasage d’horloge peut être introduit entre les bascules.– signal d’horloge avec des chemins de longueur différente;– signal d’horloge avec un débalancement de la charge du signal; et,– contrôle du signal d’horloge avec de la logique combinatoire (clock gating).

36

(notes, section 8.4)

Page 37: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #1: amélioration de la marge libre de préparation

37

(notes, section 8.4)

Page 38: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #1: amélioration de la marge libre de préparation

• La bascule qui reçoit le signal a une horloge en retard par rapport à la bascule source: le déphasage d’horloge augmente la marge libre de préparation.

• Comme le front d’horloge arrive en retard, ce retard vient compenser les délais de propagation le long du chemin entre les deux bascules.

• La période d’horloge pourrait donc être diminuée. On a alors :

où tCS est le déphasage d’horloge.• On suppose ici que le déphasage d’horloge est positif, c'est-à-dire que la bascule

qui reçoit le signal a une horloge en retard par rapport à la bascule source.

38

(notes, section 8.4)

CSsupropcombd tttttT

Page 39: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #2: non respect du temps de maintien

39

(notes, section 8.4)

Page 40: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #2: non respect du temps de maintien

• Dans le cas où les délais de propagation sont très courts, le déphasage d’horloge peut mener à un non respect du temps de maintien.

• En effet, il faut que le signal à l’entrée de la bascule de destination reste stable suffisamment longtemps par rapport au front d’horloge qui l’alimente.

• L’inéquation suivante doit en fait être respectée :

40

(notes, section 8.4)

hCSpropcombd ttttt

Page 41: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #3: non respect de tsu ou de th

41

(notes, section 8.4)

Page 42: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Le déphasage d’horloge: conséquencesCas #3: non respect de tsu ou de th

• Un déphasage d’horloge négatif est aussi possible, c'est-à-dire que la bascule source a une horloge qui est en retard par rapport à la bascule qui reçoit le signal.

• Dans ce cas, la période minimale du circuit doit être augmentée, en conformité avec l’équation:

• Selon le circuit, on peut parfois modifier l’analyse en considérant un déphasage d’horloge positif égal à la somme de la période de l’horloge et du déphasage (négatif) constaté.

42

(notes, section 8.4)

CSsupropcombd tttttT

Page 43: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Exercice

• Considérez le circuit suivant. Les bascules ont des délais de propagation de 2 ns, un temps de préparation de 1 ns, et un temps de maintien de 1 ns.

• Supposez que la période d’horloge est égale à 10 ns.• Pour chaque chemin, déterminer les valeurs acceptables de déphasage

d’horloge.

43

(notes, section 8.3, 8.4)

1

D

CLK

Q

3

D

CLK

Q

3 ns

2

D

CLK

Q

2 ns

4

D

CLK

Q

délaiCLK

Page 44: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse: spécifier la fréquence d’horloge désiréedans le flot de conception

• Dans le fichier UCF

44

(pas dans les notes)

Extrait du labo 5:

Attention! Le processeur à usage général est considérablement plus complexe que les autres circuits que vous avez implémentés à date. Lors de l'implémentation, il devient nécessaire de spécifier une contrainte de performance pour guider les outils de placement et de routage. Modifiez donc légèrement le fichier de contraintes avec les lignes suivantes:

# horlogeNET "clk" LOC = "AJ15"; # 100 MHz System ClockNET "CLK" TNM_NET = "CLK";TIMESPEC "TS_CLK" = PERIOD "CLK" 9 ns HIGH 50 %;

Les 2e et 3e lignes spécifient la période minimale de l'horloge pour le circuit. Avec 9 ns, on obtient une fréquence d'horloge de 111 MHz, qui donne une marge de manoeuvre intéressante par rapport à l'horloge de 100 MHz de la planchette.

Page 45: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 45

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 46: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Synchronisation entre domaines d’horloge différents

• Beaucoup de systèmes numériques synchrones doivent traiter de l’information asynchrone:– Entrées du monde extérieur, par exemple l’interface avec les humains, comme les

boutons d’un ascenseur.– L’interface avec un autre système numérique synchrone avec une horloge différente.

Par exemple, un ordinateur doit pouvoir correctement interpréter des signaux en provenance d’un clavier ou d’une souris. Ces dispositifs sont dotés de leur propre générateur d’horloge.

– Sur un même FPGA, l’interface entre deux modules menés par des horloges différentes (GALS: Globally Asynchronous, Locally Synchronous).

• Le problème d’interfaçage dans ces cas est le suivant : comment s’assurer que les transitions sur les signaux provenant de l’autre système ou du monde extérieur ne se produisent pas à l’intérieur de la période définie par les paramètres tsu et th autour des fronts actifs d’horloge?

46

(notes, section 8.5)

Page 47: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Synchronisation entre domaines d’horloge différents

• Une solution: utiliser deux bascules connectées en cascade.– La première bascule est reliée à la source asynchrone.– Son signal de sortie, Smeta, peut être métastable (une valeur variable entre 0 et 1).– En supposant que la source asynchrone et l’horloge du système n’ont aucune

corrélation, la probabilité que la première bascule soit métastable est égale à (tsu + th) / T, où T est la période d’horloge du système.

– Si la première bascule entre dans un état métastable, elle finira en pratique par se stabiliser sur un 0 ou un 1. La deuxième bascule permet d’accorder le plus long temps possible à la première pour se stabiliser, soit une période d’horloge.

47

(notes, section 8.5)

D

CLK

Q D

CLK

Qsource

asynchronesystème synchrone

CLK

Sasync Smeta Ssync

On veut éviter que le système synchrone reçoive une entrée métastable.En supposant que Smeta se stabilise à l’intérieur d’une période d’horloge, dans le pire des cas le système synchrone reçoit une entrée incorrecte mais stable.

Page 48: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Synchronisation entre domaines d’horloge différents

• Il est possible d’augmenter la performance du circuit de synchronisation en augmentant le nombre de bascules dans la chaîne, ou encore en alimentant la deuxième bascule avec une horloge plus lente. Cependant, dans ce cas on introduit habituellement un déphasage d’horloge qui doit ensuite être compensé.

• Dans le circuit du double tampon, on suppose que la fréquence d’horloge du système synchrone est beaucoup plus grande que la fréquence avec laquelle varie la sortie de la source asynchrone, et donc qu’on l’échantillonne suffisamment souvent.

48

(notes, section 8.5)

Page 49: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques 49

• Un exemple pour commencer• Introduction (section 8.1)• Paramètres de synchronisation (section 8.2)

– définitions 8.2.1– délai 8.2.2– interconnexions 8.2.3– tsu, th 8.2.4

• Fréquence maximale d’opération et chemin critique (section 8.3)• Le problème du déphasage d’horloge (8.4)• Synchronisation entre domaines d’horloge différents (8.5)• Génération de signaux d’horloge (8.7)

Plan pour aujourd’hui

+ Des précisions sur les notes de cours, des

exemples, des exercices et des parenthèses sur

VHDL!

Page 50: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Génération de signaux d’horlogeSources d’oscillations

• Un générateur d’horloge a comme base un oscillateur. Afin d’obtenir une fréquence de résonnance précise, on utilise en général un cristal résonnant. Cela rend l’oscillateur moins sensible aux variations de température.

• Afin de générer une onde carrée comme signal d’horloge, on utilise un circuit spécial appelé multivibrateur astable.

• En général, il est difficile ou impossible d’ajuster la fréquence d’une source d’oscillations directement.

50

(notes, section 8.7.1)

Page 51: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Génération de signaux d’horlogeGénération à partir d’une horloge de référence

• Un synthétiseur numérique d’horloge permet de générer des oscillations à une fréquence déterminée à partir d’une source d’oscillations de fréquence fixe.

• Dans le cas extrême, le mot de contrôle est fixé à 1 et le circuit se résume à un compteur dont le bit le plus significatif sert de signal d’horloge.

• Pour les cas où le rapport des fréquences n’est pas égal à une puissance de 2, l’horloge de sortie souffre de vacillement. La période entre les oscillations varie légèrement, mais en moyenne elle est égale à la période désirée.

51

(notes, section 8.7.2)

mot de contrôle k

accumulateur

horloge de référence fo

/N

add

ition

neu

r

regi

stre

bit le plus significatif:signal d’horloge synthétisé

No

outclk

kff

2_

Page 52: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Génération de signaux d’horlogeSynthétiseur numérique d’horloge

52

(notes, section 8.7.2)

No

outclk

kff

2_

Cas N=3, k = 1fout = fo / 8

Cas N=3, k = 2fout = fo / 4

Cas N=3, k = 3fout = 3 × fo / 8

Dans le 3e cas, on observe que la période de l’horloge de sortie vacille, mais sa période moyenne est 3/8 de la période de l’horloge de référence, c’est-à-dire qu’elle a 3 fronts montants pour 8 fronts montants de l’horloge de référence.

Page 53: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Génération de signaux d’horlogeSynthétiseur numérique d’horloge

53

entity clockgen isgeneric (

N : positive := 4; -- nombre de bits de l'accumulateurfClkRef : real := 100.0; -- la fréquence de l'horloge de référence, en HzfClkOut : real:= 6.25 -- la fréquence d'horloge désirée, en Hz

);port(

clkRef : in STD_LOGIC;clkOut : out STD_LOGIC

);end clockgen;

architecture clockgen of clockgen is

constant k : integer := integer(round(2.0 ** real(N) * fClkOut / fClkRef));constant fClkOutVrai : real := fClkRef * real(k) / 2.0 ** N;constant erreurRelative : real := 100.0 * abs(fClkOut - fClkOutVrai) / fClkOut;

signal compteur : unsigned(N - 1 downto 0) := (others => '0');begin

assert erreurRelative < 1.0report "Avertissement - imprécision de la fréquence de sortie"

& ", fClkOut demandée: " & real'image(fClkOut) & ", fClkOut obtenue: " & real'image(fClkOutVrai)& ", erreur relative: " & integer'image(integer(erreurRelative)) & "%"& ", il faut augmenter la largeur de l'accumulateur." severity warning;

process (clkRef)begin

if rising_edge(clkRef) thencompteur <= compteur + k;

end if;end process;

clkout <= compteur(compteur'left);

end clockgen;

(notes, section 8.7.2)

L’énoncé assert permet ici de valider la valeur des paramètres de l’entité et d’afficher un avertissement lors de la simulation ou de la synthèse.

Page 54: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse: l’énoncé assert et la synthèse

• L’énoncé assert est souvent utilisé dans les bancs d’essai.• L’énoncé assert permet aussi de détecter des conditions indésirables dans un

modèle VHDL:– mauvaises valeurs pour un paramètre (generic);– mauvaise valeur pour une constante, ou une valeur dérivée; ou,– mauvaise valeur comme paramètre lors de l’appel d’une fonction.

• Un synthétiseur peut évaluer l’énoncé, et, selon le niveau de sévérité associé, donner un avertissement ou cesser la synthèse et donner un message d’erreur.

• La condition associée à l’énoncé devrait avoir une valeur statique.

54

(pas dans les notes)

Page 55: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse:Quatre niveaux de severity pour une assertion

• Définis dans le package standard, disponible dans le manuel de référence du langage VHDL, norme 1076-2002 (section 14.2) http://www.ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1003477

• type SEVERITY_LEVEL is (NOTE, WARNING, ERROR, FAILURE);

• On peut spécifier au simulateur à quel niveau terminer la simulation.

55

assert (estPremier(k) = (F = '1'))report "erreur pour l'entrée " & integer'image(k) severity error;

report "simulation terminée”severity failure;

(notes, section 7.6)

Page 56: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Notions à retenir et maîtriser Importance relative

1. Temps de propagation des signaux dans un circuit:a. Définir à l’aide d’un chronogramme les quantités tf, tr, tPHL, tPLH et td, et expliquer les

facteurs qui les affectent.b. Expliquer le délai de propagation des bascules, des modules combinatoires et des

interconnexions, et nommez les facteurs qui les affectent.c. Expliquer le principe du temps de préparation (tsu) et de maintien (th) d’une bascule.d. Appliquer ces principes à la réalité des FPGAs et proposer des mesures d’atténuation.e. Expliquer les délais dans une tranche d’un FPGA et en donner des ordres de grandeur.

35

2. Donner le chemin critique et la fréquence maximale d’horloge d’un circuit. 353. Expliquer les principes et les causes du déphasage d’horloge. Expliquer les trois cas à l’aide d’un chronogramme. Pour un circuit, donner les valeurs acceptables du déphasage d’horloge.

15

4. Expliquer le problème de la synchronisation entre domaines d’horloge différents et expliquer à l’aide d’un diagramme une manière de le minimiser. 10

5. Expliquer, à l’aide d’un diagramme, le fonctionnement d’un synthétiseur numérique d’horloge. 5

Total 100

Résumé: performance – facteur temps

56

Page 57: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Exercice #1b

• Pour le circuit suivant:– identifiez le chemin critique– déterminez la fréquence maximale d’horloge– donnez la marge libre de préparation pour les autres chemins.

• Supposez que les bascules ont un temps de préparation de 1 ns et un délai de propagation de 2 ns et qu’on peut négliger les délais des interconnexions. Supposez un déphase d’horloge de 1 ns entre les bascules (A, B, C) et (D, E).

57

(notes, section 8.3, 8.4)

A

D

CLK

Q

D

D

CLK

Q

3 ns

4 ns

3 ns

1 nsB

D

CLK

Q

C

D

CLK

Q

2 ns

2 nsE

D

CLK

Q

2 ns

2 ns3 ns

Page 58: INF3500 : Conception et implémentation de systèmes numériques  Pierre Langlois Cours #10 Performance

INF3500 : Conception et implémentation de systèmes numériques

Parenthèse: l’outil Static Timing Analyzer

• Démo

58

(pas dans les notes)