Changes between Version 6 and Version 7 of ToolsTp3-2010
- Timestamp:
- Jan 10, 2011, 1:26:20 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
ToolsTp3-2010
v6 v7 31 31 bibliothèque de cellules pré-caractérisées SXLIB. 32 32 33 Le bloc '''add''', également décrit dans le langage '''Stratus''', instancie un bloc 34 '''full_adder''', lui même étant une interconnexion de porte '''sxlib''', décrit en 35 '''Stratus'''. 36 37 Le circuit '''addaccu''' a donc trois niveaux de hiérarchie. 33 Le circuit '''addaccu''' a deux niveaux de hiérarchie. 38 34 39 35 … … 166 162 * soit en exécutant la commande suivante : 167 163 {{{ 168 > python gen _mux.py -n 2164 > python generate_mux.py -n 2 169 165 }}} 170 166 * soit en modifiant les droits du fichier : 171 167 {{{ 172 > chmod u+x gen _mux.py173 > ./gen _mux.py -n 2168 > chmod u+x generate_mux.py 169 > ./generate_mux.py -n 2 174 170 }}} 175 171 … … 190 186 == 2.4 Bloc additionneur == 191 187 192 * Ecrire le bloc '''full_adder''' en utilisant exclusivement les cellules de la 188 * Le bloc additionneur de {{{N}}} bits est composé de {{{N}}} '''full adder'''. 189 Pour éviter une recopie fastidieuse de code, nous allons écrire, dans la description 190 du modèle '''adder'' une fonction dédiée chargée d'instancier les cellules composant 191 un '''full adder'''. 192 {{{ 193 #!python 194 class adder ( Model ) : 195 196 def fulladder ( self, bit, sig_a, sig_b, sig_cin, sig_s, sig_cout, sig_vdd, sig_vss ): 197 # Ici on instancie les cellules du full adder. 198 return 199 200 def Interface ( self ): 201 # [...] 202 return 203 204 def Netlist ( self ): 205 # Ici on utilise notre fonction fulladder. 206 return 207 }}} 208 Attention, la '''fonction''' ''fulladder()'' ne crée pas de niveau de hierarchie 209 supplémentaire. C'est simplement une fonction utilitaire permettant de factoriser 210 la création d'un bit de l'additionneur. 211 212 * Ecrire la fonction '''fulladder''' en utilisant exclusivement les cellules de la 193 213 bibliothèque '''sxlib'''. 194 * Ecrire le script python permettant de créer l'instance du '''full_adder'''. 195 * Ecrire le bloc '''adder''' instanciant le '''full_adder''' créé. Ce bloc prend lui 214 * Ecrire le bloc '''adder''' appelant la fonction '''fulladder'''. Ce bloc prend lui 196 215 aussi comme paramètre le nombre de bits et vérifie que son paramètre est compris entre 197 216 2 et 64 (ce n’est pas fait dans mux).