Changes between Version 4 and Version 5 of MethoCourseTp3


Ignore:
Timestamp:
Apr 6, 2007, 1:24:45 PM (18 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MethoCourseTp3

    v4 v5  
    77= Objectifs =
    88
    9 Le principal objectif de ce TP3 est d'utiliser le langage VHDL pour écrire une description
    10 structurelle hiérarchique multi-niveaux utilisant une bibliothèque de cellules
     9Le principal objectif de ce TP est d'utiliser le langage VHDL pour écrire une description
     10structurelle hiérarchique multi-niveauxdu composant ''addaccu'', en utilisant une bibliothèque de cellules
    1111précaractérisées.
    1212
    1313Pour 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 finalement décrire chacun des sous-blocs
    15 comme une interconnexion de portes de bases, fournies par une bibliothèque de cellules
    16 pré-caractérisées (en anglais "standard cells library").
     14définis dans le TP2, en sous blocs, et nous allons décrire chacun des sous-blocs
     15comme une interconnexion de portes de bases, fournies par la bibliothèque de cellules
     16pré-caractérisées SXLIB.
    1717
    18 Une cellule pré-caractérisée est une fonction élémentaire pour laquelle on dispose
     18Une cellule pré-caractérisée (en anglais "standard cell") est une fonction élémentaire pour laquelle on dispose
    1919des différentes "vues" permettant son utilisation par des outils CAO:
    2020 * vue ''physique'' : dessin des masques
     
    2727 * temps de propagation
    2828
    29 = A) bibliothèque SxLib =
     29= A) La bibliothèque SXLIB =
    3030
    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 cCAO ''ALLIANCE''. La particularité de cette bibliothèque est d'être "portable" : le dessin des
    33 masques de fabrication (vue ''physique'') 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 au moins trois niveaux
    35 de métallisation.
     31La bibliothèque de cellules utilisée dans ce TP est la bibliothèque SXLIB, développée par le laboratoire LIP6,
     32pour la chaîne de CAO ''ALLIANCE''. La particularité de cette bibliothèque est d'être "portable" : le dessin des
     33masques de fabrication utilise une technique de dessin ''symbolique'', qui permet d'utiliser
     34cette bibliothèque de cellules pour n'importe quel procédé de fabrication CMOS possédant
     35au moins trois niveaux de métallisation.
    3636
    3737Evidemment les caractéristiques physiques (surface occupée, temps de propagation) dépendent du procédé de
     
    3939CMOS 0.35micron.
    4040
    41 La liste des cellules disponibles dans la bibliothèque SxLib peut être obtenue en consultant la page man :
     41La liste des cellules disponibles dans la bibliothèque SXLIB peut être obtenue en consultant la page man :
    4242{{{
    4343>man sxlib
     
    5454== B1) schéma SxLib du bloc adder ==
    5555
    56 Un additionneur 4 bits peut être réalisé en interconnectant 4 additionneurs 1 bit suivant le schéma ci-dessous.
     56Un 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)]]
    5759
    5860Un additionneur 1 bit (encore appelé ''Full Adder'') possède 3 entrées a,b,c, et deux sorties s et r.
     
    7476
    7577Il 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).
     78Nous 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):
    7779
    78 Les étudiants curieux peuvent visualiser le dessin de ces deux cellules en utilisant l'éditeur
     80[[Image(schema_half_adder.png, nolink)]]
     81
     82Les étudiants curieux peuvent visualiser le dessin de la cellule na2_x1 en utilisant l'éditeur
    7983graphique de la chaîne alliance :
    8084{{{
     
    8791== B2) schéma SxLib du bloc accu ==
    8892
    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
     93Un registre 4 bits peut être réalisé en interconnectant 4 cellules sff1_x4 suivant le schéma ci-dessous:
    9294
    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
     97La cellule sff1_x4 réalise une bascule D à échantillonnage sur front montant.
     98Les étudiants curieux peuvent visualiser le dessin de la cellule sff1_x4 en utilisant l'éditeur
     99graphique de la chaîne alliance :
     100{{{
     101> graal -l sff1_x4
     102}}}
     103
     104Il faut donc écrire explicitement, en langage VHDL structurel, le fichier accu.vst,
     105correspondant à ce schéma.
    95106
    96107== B3) schéma SxLib du bloc mux ==
    97108
    98109Il existe plusieurs façons de réaliser un multiplexeur.
    99 Un multiplexeur 4 bits peut être réalisé en interconnectant 4 cellules mx2_x2.
     110Un multiplexeur 4 bits peut être réalisé en interconnectant 4 cellules mx2_x2 suivant le schéma ci-dessous:
    100111
     112[[Image(schema_mux.png, nolink)]]
    101113
     114Les étudiants curieux peuvent visualiser le dessin de la cellule mx2_x2 en utilisant l'éditeur
     115graphique de la chaîne alliance :
     116{{{
     117> graal -l mx2_x2
     118}}}
    102119
     120Il faut donc écrire explicitement, en langage VHDL structurel, le fichier accu.vst,
     121correspondant à ce schéma.
    103122
    104123= C) simulation zero-delay =
    105124
     125On peut maintenant valider fonctionnellement ce schéma
     126en applicant sur cette description structurelle  hiérarchique multi-niveaux les mêmes
     127stimuli que ceux qui on été définis dans le TP2 (fichier new_stimuli.pat).
     128On utilise pour cela le simulateur '''asimut''' en mode zero-delay, puisque la validation
     129fonctionnelle ne s'intéresse pas aux temps de propagation.
     130
     131Pour valider fonctionnellement chacun des blocs '''adder''', '''accu''' et '''mux''', il faut remplacer
     132progressivement la description comportementale d'un bloc (fichier ''.vbe'') par sa description
     133structurelle (fichier '.vst''), en modifiant progressivement le fichier CATAL.
     134Il 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
     139On 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
     144Lorsque le fichier CATAL est vide, cela signifie que le circuit est simulé comme un schéma
     145hiérarchique multi-niveaux entièrement décrit avec des cellules de la bibliothèque SXLIB.
     146 
    106147= D) simulation temporelle =
    107148