La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Cours #10 Performance."— Transcription de la présentation:

1 INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Cours #10 Performance de circuits numériques Partie 1: le facteur temps

2 INF3500 : Conception et implémentation de systèmes numériques Implémentation des systèmes numériques Quatre considérations dimplémentation 2 Précision des calculs Puissance consommée Taille du système Taux de traitement Aujourdhui (notes, section 1.3)

3 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 3 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

4 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Dé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 dau 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 dimages 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 limage originale. 4

5 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement vidéo Désentrelacement intra-trame Le désentrelacement intra-trame consiste à reconstituer une image complète à partir de linformation reçue dune seule trame. 5

6 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement vidéo Désentrelacement inter-trame Le désentrelacement inter-trame consiste à reconstituer une image complète à partir de linformation reçue de plusieurs trames. 6

7 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement vidéo Analyse 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 dobjets dune trame à lautre pour nutiliser que des pixels originaux dans chaque image produite. Pour une image HD, le nombre de pixels à calculer est: 1920 × 540 = pixels Le taux de traitement nécessaire est: pixels/image × 60 images/s 62.2 Mpixels/s. où chaque pixel est composé de trois octets (R, G, B). 7

8 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement intra-trame Algorithme 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. Lalgorithme 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érations Le taux de traitement est donc 30 × 62.2M = 1.87 Gops/s (sans tenir compte des branchements, chargements, etc. …).

9 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement inter-trame Compensation 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

10 INF3500 : Conception et implémentation de systèmes numériques Désentrelacement inter-trame Compensation 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 × 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 lordre de 4.3 Gops/s. Une fois un bloc trouvé, il faudrait faire des opérations dinterpolation 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 laffectent.

11 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 11 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

12 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 dhorloge. Dans cette présentation on considère uniquement les systèmes synchrones, cest-à-dire qui comportent une horloge de référence. On discute aussi le problème de linterface asynchrone entre des systèmes qui ne partagent pas dhorloge commune et entre un système synchrone et un système asynchrone. 12 (notes, section 8.1)

13 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 13 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

14 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 dentrée changent. Par exemple, pour un inverseur, quand lentré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 – t f ) Temps de montée (rise time – t r ) Délai de descente (propagation delay, High to Low – t PHL ) Délai de montée (propagation delay, Low to High – t PLH ) En général, t PHL t PLH. Délai de propagation t d = max( t PHL,t PLH )

15 INF3500 : Conception et implémentation de systèmes numériques Transitions sur les signaux Les paramètres de synchronisation t r, t f, t PHL et t PLH 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 (t PLH ) et décharger (t PHL ) la charge capacitive. 15 (notes, section 8.2.1)

16 INF3500 : Conception et implémentation de systèmes numériques Délai causé par la charge et décharge dun condensateur 16 (notes, section 8.2.1) La charge capacitive à mener. La résistance des conducteurs et la taille des transistors.

17 INF3500 : Conception et implémentation de systèmes numériques Délai de propagation dune composante Le délai de propagation dune composante est le temps nécessaire pour que la sortie de la composante se stabilise suite à un changement à lune de ses entrées. Pour les bascules, on mesure le délai de propagation à partir de la transition active de lhorloge. 17 (notes, section 8.2.2)

18 INF3500 : Conception et implémentation de systèmes numériques Délai de propagation dune composante Nous adoptons les symboles suivants: – t d pour les bascules et loquets; – t comb pour la logique combinatoire. La valeur du délai est en général calculée par le maximum des temps de montée (t r ) et de descente (t f ), 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 dune transition. Le délai de propagation maximal dune composante est en général spécifié par le manufacturier pour des conditions dopération données. Ces conditions dopération peuvent inclure : – la tension dalimentation; – la température; et, – la charge menée par la composante. 18 (notes, section 8.2.2)

19 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 dhorloge. 19 (notes, section 8.3)

20 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) ρ: résistivité du conducteur L: longueur du conducteur Ai: surface présentée au courant ε : paramètre diélectrique de lisolant Am: surface de lisolant d: épaisseur de lisolant

21 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 interconnexions sur le temps de propagation dans un FPGA 21 (pas dans les notes)

22 INF3500 : Conception et implémentation de systèmes numériques Bascules: temps de préparation et de maintien Pour quune bascule ou un loquet fonctionne correctement, il faut que le signal dentrée soit stable pendant une période définie avant et après la transition active de lhorloge. Le temps de préparation (setup time – t su ) est le temps minimal pendant lequel le signal dentrée de la bascule ou du loquet ne doit pas changer avant la transition active de lhorloge. Le temps de maintien (hold time – t h ) est le temps minimal pendant lequel le signal dentrée de la bascule ou du loquet ne doit pas changer après la transition active de lhorloge. 22 (notes, section 8.2.4)

23 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 nest pas respecté, alors la bascule risque dentrer 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)

24 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, ~0.09 ns ~0.22 ns ~0.35 ns ~0.40 ns ~0.41/0.21 ns

25 INF3500 : Conception et implémentation de systèmes numériques Parenthèse: quelques paramètres du Virtex-5 (2) 25 (pas dans les notes) Xilinx, Virtex-5 FPGA Data Sheet: DC and Switching Characteristics, DS202 (v5.3) May 5, 2010.

26 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 26 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

27 INF3500 : Conception et implémentation de systèmes numériques Fréquence maximale dhorloge et chemin critique La fréquence maximale dopération dun circuit séquentiel est la fréquence dhorloge la plus élevée à laquelle le circuit continue de fournir des résultats corrects. La réciproque de la fréquence maximale dhorloge est la période minimale du circuit. Pour déterminer la période minimale dun 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)

28 INF3500 : Conception et implémentation de systèmes numériques Fréquence maximale dhorloge et chemin critique Exemple 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 dhorloge est = 9 ns. 28 (notes, section 8.3)

29 INF3500 : Conception et implémentation de systèmes numériques Fréquence maximale dhorloge et chemin critique 29 (notes, section 8.3)

30 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 dhorloge est égale à 10 ns. Énumérer les chemins bascule-bascule et donnez la marge libre sur chacun. 30 (notes, section 8.3, 8.4)

31 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 dhorloge – 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 quon peut négliger les délais des interconnexions. 31 (notes, section 8.3, 8.4)

32 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 32 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

33 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge (clock skew) On a supposé à date que toutes les bascules du circuit recevaient un signal dhorloge idéal et cela simultanément, c'est-à-dire que les fronts de lhorloge arrivaient à chaque bascule sans aucun déphasage. En pratique, ce nest jamais le cas et il y a toujours un certain déphasage dhorloge. 33 (notes, section 8.4)

34 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: causes Il y a trois façons par lesquelles un déphasage dhorloge peut être introduit entre les bascules. – signal dhorloge avec des chemins de longueur différente; – signal dhorloge avec un débalancement de la charge du signal; et, – contrôle du signal dhorloge avec de la logique combinatoire (clock gating). 34 (notes, section 8.4)

35 INF3500 : Conception et implémentation de systèmes numériques Il y a trois façons par lesquelles un déphasage dhorloge peut être introduit entre les bascules. – signal dhorloge avec des chemins de longueur différente; – signal dhorloge avec un débalancement de la charge du signal; et, – contrôle du signal dhorloge avec de la logique combinatoire (clock gating). Le déphasage dhorloge: causes 35 (notes, section 8.4)

36 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: causes Il y a trois façons par lesquelles un déphasage dhorloge peut être introduit entre les bascules. – signal dhorloge avec des chemins de longueur différente; – signal dhorloge avec un débalancement de la charge du signal; et, – contrôle du signal dhorloge avec de la logique combinatoire (clock gating). 36 (notes, section 8.4)

37 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #1: amélioration de la marge libre de préparation 37 (notes, section 8.4)

38 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #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 dhorloge augmente la marge libre de préparation. Comme le front dhorloge arrive en retard, ce retard vient compenser les délais de propagation le long du chemin entre les deux bascules. La période dhorloge pourrait donc être diminuée. On a alors : où t CS est le déphasage dhorloge. On suppose ici que le déphasage dhorloge 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)

39 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #2: non respect du temps de maintien 39 (notes, section 8.4)

40 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #2: non respect du temps de maintien Dans le cas où les délais de propagation sont très courts, le déphasage dhorloge peut mener à un non respect du temps de maintien. En effet, il faut que le signal à lentrée de la bascule de destination reste stable suffisamment longtemps par rapport au front dhorloge qui lalimente. Linéquation suivante doit en fait être respectée : 40 (notes, section 8.4)

41 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #3: non respect de t su ou de t h 41 (notes, section 8.4)

42 INF3500 : Conception et implémentation de systèmes numériques Le déphasage dhorloge: conséquences Cas #3: non respect de t su ou de t h Un déphasage dhorloge 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 lanalyse en considérant un déphasage dhorloge positif égal à la somme de la période de lhorloge et du déphasage (négatif) constaté. 42 (notes, section 8.4)

43 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 dhorloge est égale à 10 ns. Pour chaque chemin, déterminer les valeurs acceptables de déphasage dhorloge. 43 (notes, section 8.3, 8.4)

44 INF3500 : Conception et implémentation de systèmes numériques Parenthèse: spécifier la fréquence dhorloge désirée dans 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: # horloge NET "clk" LOC = "AJ15"; # 100 MHz System Clock NET "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.

45 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 45 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

46 INF3500 : Conception et implémentation de systèmes numériques Synchronisation entre domaines dhorloge différents Beaucoup de systèmes numériques synchrones doivent traiter de linformation asynchrone: – Entrées du monde extérieur, par exemple linterface avec les humains, comme les boutons dun ascenseur. – Linterface 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 dun clavier ou dune souris. Ces dispositifs sont dotés de leur propre générateur dhorloge. – Sur un même FPGA, linterface entre deux modules menés par des horloges différentes (GALS: Globally Asynchronous, Locally Synchronous). Le problème dinterfaçage dans ces cas est le suivant : comment sassurer que les transitions sur les signaux provenant de lautre système ou du monde extérieur ne se produisent pas à lintérieur de la période définie par les paramètres t su et t h autour des fronts actifs dhorloge? 46 (notes, section 8.5)

47 INF3500 : Conception et implémentation de systèmes numériques Synchronisation entre domaines dhorloge 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, S meta, peut être métastable (une valeur variable entre 0 et 1). – En supposant que la source asynchrone et lhorloge du système nont aucune corrélation, la probabilité que la première bascule soit métastable est égale à (t su + t h ) / T, où T est la période dhorloge 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 daccorder le plus long temps possible à la première pour se stabiliser, soit une période dhorloge. 47 (notes, section 8.5) On veut éviter que le système synchrone reçoive une entrée métastable. En supposant que Smeta se stabilise à lintérieur dune période dhorloge, dans le pire des cas le système synchrone reçoit une entrée incorrecte mais stable.

48 INF3500 : Conception et implémentation de systèmes numériques Synchronisation entre domaines dhorloge différents Il est possible daugmenter 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 dhorloge qui doit ensuite être compensé. Dans le circuit du double tampon, on suppose que la fréquence dhorloge du système synchrone est beaucoup plus grande que la fréquence avec laquelle varie la sortie de la source asynchrone, et donc quon léchantillonne suffisamment souvent. 48 (notes, section 8.5)

49 INF3500 : Conception et implémentation de systèmes numériques Un exemple pour commencer Introduction (section 8.1) Paramètres de synchronisation (section 8.2) – définitions – délai – interconnexions – tsu, th Fréquence maximale dopération et chemin critique (section 8.3) Le problème du déphasage dhorloge (8.4) Synchronisation entre domaines dhorloge différents (8.5) Génération de signaux dhorloge (8.7) Plan pour aujourdhui 49 + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!

50 INF3500 : Conception et implémentation de systèmes numériques Génération de signaux dhorloge Sources doscillations Un générateur dhorloge a comme base un oscillateur. Afin dobtenir une fréquence de résonnance précise, on utilise en général un cristal résonnant. Cela rend loscillateur moins sensible aux variations de température. Afin de générer une onde carrée comme signal dhorloge, on utilise un circuit spécial appelé multivibrateur astable. En général, il est difficile ou impossible dajuster la fréquence dune source doscillations directement. 50 (notes, section 8.7.1)

51 INF3500 : Conception et implémentation de systèmes numériques Génération de signaux dhorloge Génération à partir dune horloge de référence Un synthétiseur numérique dhorloge permet de générer des oscillations à une fréquence déterminée à partir dune source doscillations 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 dhorloge. Pour les cas où le rapport des fréquences nest pas égal à une puissance de 2, lhorloge 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)

52 INF3500 : Conception et implémentation de systèmes numériques Génération de signaux dhorloge Synthétiseur numérique dhorloge 52 (notes, section 8.7.2) Cas N=3, k = 1 fout = fo / 8 Cas N=3, k = 2 fout = fo / 4 Cas N=3, k = 3 fout = 3 × fo / 8 Dans le 3 e cas, on observe que la période de lhorloge de sortie vacille, mais sa période moyenne est 3/8 de la période de lhorloge de référence, cest-à-dire quelle a 3 fronts montants pour 8 fronts montants de lhorloge de référence.

53 INF3500 : Conception et implémentation de systèmes numériques Génération de signaux dhorloge Synthétiseur numérique dhorloge 53 entity clockgen is generic ( N : positive := 4; -- nombre de bits de l'accumulateur fClkRef : real := 100.0; -- la fréquence de l'horloge de référence, en Hz fClkOut : real:= 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 := * abs(fClkOut - fClkOutVrai) / fClkOut; signal compteur : unsigned(N - 1 downto 0) := (others => '0'); begin assert erreurRelative < 1.0 report "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) then compteur <= 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 lentité et dafficher un avertissement lors de la simulation ou de la synthèse.

54 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 dessai. 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 lappel dune 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 derreur. La condition associée à lénoncé devrait avoir une valeur statique. 54 (pas dans les notes)

55 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 (section 14.2) 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)

56 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 à laide dun chronogramme les quantités t f, t r, t PHL, t PLH et t d, 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 (t su ) et de maintien (t h ) dune bascule. d.Appliquer ces principes à la réalité des FPGAs et proposer des mesures datténuation. e.Expliquer les délais dans une tranche dun FPGA et en donner des ordres de grandeur Donner le chemin critique et la fréquence maximale dhorloge dun circuit Expliquer les principes et les causes du déphasage dhorloge. Expliquer les trois cas à laide dun chronogramme. Pour un circuit, donner les valeurs acceptables du déphasage dhorloge Expliquer le problème de la synchronisation entre domaines dhorloge différents et expliquer à laide dun diagramme une manière de le minimiser Expliquer, à laide dun diagramme, le fonctionnement dun synthétiseur numérique dhorloge. 5 Total100 Résumé: performance – facteur temps 56

57 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 dhorloge – 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 quon peut négliger les délais des interconnexions. Supposez un déphase dhorloge de 1 ns entre les bascules (A, B, C) et (D, E). 57 (notes, section 8.3, 8.4)

58 INF3500 : Conception et implémentation de systèmes numériques Parenthèse: loutil Static Timing Analyzer Démo 58 (pas dans les notes)


Télécharger ppt "INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Cours #10 Performance."

Présentations similaires


Annonces Google