Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parMagali Huguet Modifié depuis plus de 10 années
1
Cours #10 Performance de circuits numériques Partie 1: le facteur temps
2
(notes, section 1.3) Implémentation des systèmes numériques Quatre considérations d’implémentation Taille du système Précision des calculs Taux de traitement Puissance consommée Aujourd’hui
3
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
4
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 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.
5
Désentrelacement vidéo Désentrelacement intra-trame
Le désentrelacement intra-trame consiste à reconstituer une image complète à partir de l’information reçue d’une seule trame.
6
Désentrelacement vidéo Désentrelacement inter-trame
Le désentrelacement inter-trame consiste à reconstituer une image complète à partir de l’information reçue de plusieurs trames.
7
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 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 = 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).
8
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. L’algorithme ELA (Edge-based Line Average) est préférable et relativement simple. 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
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.
10
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 × 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. 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.
11
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
12
Introduction: le facteur temps
(notes, section 8.1) 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.
13
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
14
Transitions sur les signaux
(notes, section 8.2.1) 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. 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)
15
Transitions sur les signaux
(notes, section 8.2.1) 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.
16
Délai causé par la charge et décharge d’un condensateur
(notes, section 8.2.1) Délai causé par la charge et décharge d’un condensateur La résistance des conducteurs et la taille des transistors. La charge capacitive à mener.
17
Délai de propagation d’une composante
(notes, section 8.2.2) 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.
18
Délai de propagation d’une composante
(notes, section 8.2.2) 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.
19
Temps de propagation - exemple
(notes, section 8.3) 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.
20
Délai de propagation des interconnexions
(notes, section 8.2.3) Délai de propagation des interconnexions 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. ρ: résistivité du conducteur L: longueur du conducteur Ai: surface présentée au courant ε: paramètre diélectrique de l’isolant Am: surface de l’isolant d: épaisseur de l’isolant
21
(pas dans les notes) Exemple – effet de la charge et des interconnexions sur le temps de propagation dans un FPGA Facteurs: sortance (fanout) et distance due au placement
22
Bascules: temps de préparation et de maintien
(notes, section 8.2.4) 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.
23
Bascules: temps de préparation et de maintien
(notes, section 8.2.4) 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.
24
Parenthèse: quelques paramètres du Virtex-5
(pas dans les notes) Parenthèse: quelques paramètres du Virtex-5 ~0.09 ns ~0.22 ns ~0.35 ns ~0.40 ns ~0.41/0.21 ns Xilinx, Virtex-5 User Guide, UG190 (v5.4) March 16, 2012.
25
Parenthèse: quelques paramètres du Virtex-5 (2)
(pas dans les notes) Parenthèse: quelques paramètres du Virtex-5 (2) Xilinx, Virtex-5 FPGA Data Sheet: DC and Switching Characteristics, DS202 (v5.3) May 5, 2010.
26
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
27
Fréquence maximale d’horloge et chemin critique
(notes, section 8.3) 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 :
28
Fréquence maximale d’horloge et chemin critique Exemple
(notes, section 8.3) Fréquence maximale d’horloge 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 d’horloge est = 9 ns.
29
Fréquence maximale d’horloge et chemin critique
(notes, section 8.3) Fréquence maximale d’horloge et chemin critique
30
Exercice Considérez le circuit suivant.
(notes, section 8.3, 8.4) 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.
31
Exercice Pour le circuit suivant:
(notes, section 8.3, 8.4) 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.
32
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
33
Le déphasage d’horloge (clock skew)
(notes, section 8.4) 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.
34
Le déphasage d’horloge: causes
(notes, section 8.4) 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).
35
Le déphasage d’horloge: causes
(notes, section 8.4) 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
Le déphasage d’horloge: causes
(notes, section 8.4) 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).
37
(notes, section 8.4) Le déphasage d’horloge: conséquences Cas #1: amélioration de la marge libre de préparation
38
(notes, section 8.4) Le déphasage d’horloge: 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 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.
39
(notes, section 8.4) Le déphasage d’horloge: conséquences Cas #2: non respect du temps de maintien
40
(notes, section 8.4) Le déphasage d’horloge: 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 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 :
41
(notes, section 8.4) Le déphasage d’horloge: conséquences Cas #3: non respect de tsu ou de th
42
(notes, section 8.4) Le déphasage d’horloge: conséquences Cas #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é.
43
(notes, section 8.3, 8.4) 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.
44
(pas dans les notes) Parenthèse: spécifier la fréquence d’horloge désirée dans le flot de conception Dans le fichier UCF 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
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
46
Synchronisation entre domaines d’horloge différents
(notes, section 8.5) 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?
47
Synchronisation entre domaines d’horloge différents
(notes, section 8.5) 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. 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.
48
Synchronisation entre domaines d’horloge différents
(notes, section 8.5) 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.
49
Plan pour aujourd’hui 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) + Des précisions sur les notes de cours, des exemples, des exercices et des parenthèses sur VHDL!
50
Génération de signaux d’horloge Sources d’oscillations
(notes, section 8.7.1) Génération de signaux d’horloge Sources 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.
51
(notes, section 8.7.2) Génération de signaux d’horloge Gé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.
52
Génération de signaux d’horloge Synthétiseur numérique d’horloge
(notes, section 8.7.2) Génération de signaux d’horloge Synthétiseur numérique d’horloge 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 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.
53
Génération de signaux d’horloge Synthétiseur numérique d’horloge
(notes, section 8.7.2) Génération de signaux d’horloge Synthétiseur numérique d’horloge 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) if rising_edge(clkRef) then compteur <= compteur + k; end if; end process; clkout <= compteur(compteur'left); 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.
54
Parenthèse: l’énoncé assert et la synthèse
(pas dans les notes) 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.
55
Parenthèse: Quatre niveaux de severity pour une assertion
(notes, section 7.6) 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. assert (estPremier(k) = (F = '1')) report "erreur pour l'entrée " & integer'image(k) severity error; report "simulation terminée” severity failure;
56
Résumé: performance – facteur temps
Notions à retenir et maîtriser Importance relative Temps de propagation des signaux dans un circuit: Définir à l’aide d’un chronogramme les quantités tf, tr, tPHL, tPLH et td, et expliquer les facteurs qui les affectent. Expliquer le délai de propagation des bascules, des modules combinatoires et des interconnexions, et nommez les facteurs qui les affectent. Expliquer le principe du temps de préparation (tsu) et de maintien (th) d’une bascule. Appliquer ces principes à la réalité des FPGAs et proposer des mesures d’atténuation. 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. 3. 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
57
Exercice #1b Pour le circuit suivant:
(notes, section 8.3, 8.4) 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).
58
Parenthèse: l’outil Static Timing Analyzer
(pas dans les notes) Parenthèse: l’outil Static Timing Analyzer Démo
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.