Changes between Version 4 and Version 5 of MethoCourseTp3
- Timestamp:
- Apr 6, 2007, 1:24:45 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
MethoCourseTp3
v4 v5 7 7 = Objectifs = 8 8 9 Le principal objectif de ce TP 3est d'utiliser le langage VHDL pour écrire une description10 structurelle hiérarchique multi-niveaux utilisant une bibliothèque de cellules9 Le principal objectif de ce TP est d'utiliser le langage VHDL pour écrire une description 10 structurelle hiérarchique multi-niveauxdu composant ''addaccu'', en utilisant une bibliothèque de cellules 11 11 précaractérisées. 12 12 13 13 Pour cela, nous allons continuer à décomposer les trois blocs '''adder''', '''mux''' et '''accu''', 14 définis dans le TP2, en sous blocs, et nous allons finalementdécrire chacun des sous-blocs15 comme une interconnexion de portes de bases, fournies par unebibliothèque de cellules16 pré-caractérisées (en anglais "standard cells library").14 définis dans le TP2, en sous blocs, et nous allons décrire chacun des sous-blocs 15 comme une interconnexion de portes de bases, fournies par la bibliothèque de cellules 16 pré-caractérisées SXLIB. 17 17 18 Une cellule pré-caractérisée est une fonction élémentaire pour laquelle on dispose18 Une cellule pré-caractérisée (en anglais "standard cell") est une fonction élémentaire pour laquelle on dispose 19 19 des différentes "vues" permettant son utilisation par des outils CAO: 20 20 * vue ''physique'' : dessin des masques … … 27 27 * temps de propagation 28 28 29 = A) bibliothèque SxLib=29 = A) La bibliothèque SXLIB = 30 30 31 La bibliothèque de cellules utilisée dans ce TP est la bibliothèque S xLib, développée par le laboratoire LIP6,32 pour la chaîne de cCAO ''ALLIANCE''. La particularité de cette bibliothèque est d'être "portable" : le dessin des33 masques de fabrication (vue ''physique'')utilise une technique de dessin ''symbolique'', qui permet d'utiliser34 cette bibliothèque de cellules pour n'importe quel procédé de fabrication CMOS possédant au moins trois niveaux35 de métallisation.31 La bibliothèque de cellules utilisée dans ce TP est la bibliothèque SXLIB, développée par le laboratoire LIP6, 32 pour la chaîne de CAO ''ALLIANCE''. La particularité de cette bibliothèque est d'être "portable" : le dessin des 33 masques de fabrication utilise une technique de dessin ''symbolique'', qui permet d'utiliser 34 cette bibliothèque de cellules pour n'importe quel procédé de fabrication CMOS possédant 35 au moins trois niveaux de métallisation. 36 36 37 37 Evidemment les caractéristiques physiques (surface occupée, temps de propagation) dépendent du procédé de … … 39 39 CMOS 0.35micron. 40 40 41 La liste des cellules disponibles dans la bibliothèque S xLibpeut être obtenue en consultant la page man :41 La liste des cellules disponibles dans la bibliothèque SXLIB peut être obtenue en consultant la page man : 42 42 {{{ 43 43 >man sxlib … … 54 54 == B1) schéma SxLib du bloc adder == 55 55 56 Un additionneur 4 bits peut être réalisé en interconnectant 4 additionneurs 1 bit suivant le schéma ci-dessous. 56 Un additionneur 4 bits peut être réalisé en interconnectant 4 additionneurs 1 bit suivant le schéma ci-dessous: 57 58 [[Image(schema_adder.png, nolink)]] 57 59 58 60 Un additionneur 1 bit (encore appelé ''Full Adder'') possède 3 entrées a,b,c, et deux sorties s et r. … … 74 76 75 77 Il existe plusieurs schémas possibles pour réaliser un Full Adder. 76 Nous vous proposons d'utiliser le schéma ci-dessous, qui utilise les deux cellules na2_x1 (NAND 2 entrées), et nxr2_x1 (XOR 2 entrées) .78 Nous vous proposons d'utiliser le schéma ci-dessous, qui utilise les deux cellules na2_x1 (NAND 2 entrées), et nxr2_x1 (XOR 2 entrées): 77 79 78 Les étudiants curieux peuvent visualiser le dessin de ces deux cellules en utilisant l'éditeur 80 [[Image(schema_half_adder.png, nolink)]] 81 82 Les étudiants curieux peuvent visualiser le dessin de la cellule na2_x1 en utilisant l'éditeur 79 83 graphique de la chaîne alliance : 80 84 {{{ … … 87 91 == B2) schéma SxLib du bloc accu == 88 92 89 Un registre 4 bits peut être réalisé en interconnectant 4 cellules sff1_x4 suivant le schéma ci-dessous. 90 La cellule sff1_x4 réalise une bascule D à échantillonnage sur front montant. Ceux qui sont curieux 91 peuvent 93 Un registre 4 bits peut être réalisé en interconnectant 4 cellules sff1_x4 suivant le schéma ci-dessous: 92 94 93 Il faut donc écrire explicitement, en langage VHDL structurel, les deux fichiers adder.vst, et half_adder.vst, 94 correspondant aux deux schémas ci-dessus. 95 [[Image(schema_accu.png, nolink)]] 96 97 La cellule sff1_x4 réalise une bascule D à échantillonnage sur front montant. 98 Les étudiants curieux peuvent visualiser le dessin de la cellule sff1_x4 en utilisant l'éditeur 99 graphique de la chaîne alliance : 100 {{{ 101 > graal -l sff1_x4 102 }}} 103 104 Il faut donc écrire explicitement, en langage VHDL structurel, le fichier accu.vst, 105 correspondant à ce schéma. 95 106 96 107 == B3) schéma SxLib du bloc mux == 97 108 98 109 Il existe plusieurs façons de réaliser un multiplexeur. 99 Un multiplexeur 4 bits peut être réalisé en interconnectant 4 cellules mx2_x2 .110 Un multiplexeur 4 bits peut être réalisé en interconnectant 4 cellules mx2_x2 suivant le schéma ci-dessous: 100 111 112 [[Image(schema_mux.png, nolink)]] 101 113 114 Les étudiants curieux peuvent visualiser le dessin de la cellule mx2_x2 en utilisant l'éditeur 115 graphique de la chaîne alliance : 116 {{{ 117 > graal -l mx2_x2 118 }}} 102 119 120 Il faut donc écrire explicitement, en langage VHDL structurel, le fichier accu.vst, 121 correspondant à ce schéma. 103 122 104 123 = C) simulation zero-delay = 105 124 125 On peut maintenant valider fonctionnellement ce schéma 126 en applicant sur cette description structurelle hiérarchique multi-niveaux les mêmes 127 stimuli que ceux qui on été définis dans le TP2 (fichier new_stimuli.pat). 128 On utilise pour cela le simulateur '''asimut''' en mode zero-delay, puisque la validation 129 fonctionnelle ne s'intéresse pas aux temps de propagation. 130 131 Pour valider fonctionnellement chacun des blocs '''adder''', '''accu''' et '''mux''', il faut remplacer 132 progressivement la description comportementale d'un bloc (fichier ''.vbe'') par sa description 133 structurelle (fichier '.vst''), en modifiant progressivement le fichier CATAL. 134 Il faut relancer la simulation à chaque étape, en vérifiant qu'on conserve le même comportement. 135 {{{ 136 >asimut -zd addaccu new_stimuli new_result_zd 137 }}} 138 139 On passera par les étapes suivantes: 140 * validation du bloc '''mux''' : on supprime le nom du composant '''mux''' du fichier CATAL. 141 * validation du bloc '''accu''' : on supprime le nom du composant '''accu''' du fichier CATAL. 142 * validation du bloc '''adder''' : on supprime le nom du composant '''adder''' du fichier CATAL. 143 144 Lorsque le fichier CATAL est vide, cela signifie que le circuit est simulé comme un schéma 145 hiérarchique multi-niveaux entièrement décrit avec des cellules de la bibliothèque SXLIB. 146 106 147 = D) simulation temporelle = 107 148