View
74
Download
4
Category
Preview:
Citation preview
2ME Page 1
Université Sidi Mohamed Ben Abdallah
Faculté Des Sciences Dhar El Mahraz- Fès-
Département De Physique
Année universitaire 2012-2013
Master Spécialisé Micro-électronique
Préparé par : Karim El khadir
Pr.Hassan Qjidaa
Conception Assistée par Ordinateur
(Cadence)
2ME Page 2
Sommaire I. Logiciel CADENCE ....................................................................................................................... 3
1) Généralités ................................................................................................................................. 3
2) Lancement du logiciel Cadence ................................................................................................ 3
3) Gestionnaire de librairie ........................................................................................................... 4
a) Ouverture ............................................................................................................................... 4
b) Saisie du schéma d’inverseur ............................................................................................... 5
c) Environnement de la simulation .......................................................................................... 8
4) Dessin des masques .................................................................................................................. 14
2ME Page 3
I. Logiciel CADENCE
1) Généralités Le logiciel CADENCE est un outil qui va servir pour la simulation et pour le dessin des
masques. Le passage des données entre le concepteur et le fondeur se fait à l’aide d’un
fichier de type GDSII.
Le concepteur va réaliser toutes les étapes jusqu’au dessin des masques. Le fondeur va
ensuite récupérer les données pour fabriquer le circuit.
Le logiciel Cadence est un environnement unifié pour l’utilisation des outils informatiques
d’origines diverses. Il permet au concepteur d’utiliser ces outils, avec une interface unique
pour saisir, partager, communiquer et afficher des informations.
Le fonctionnement d’un ASIC dépend des caractéristiques physiques du circuit réalisé par le
procédé de fabrication. La première décision de conception est de choisir la technologie de
fabrication de son circuit.
Le fondeur utilise un procédé de fabrication (appelé« technologie ») dont il maîtrise les étapes
technologiques. Ce procédé va donner aux dispositifs des caractéristiques particulières:
comme le ß d’un transistor bipolaire ou le Cox d’un transistor MOS. Il va également imposer
des contraintes comme la longueur minimale de grille d’un transistor MOS.
Le fondeur fournit un fichier technologique (Design Kit) qui fournit à Cadence ces
informations. Il peut aussi fournir des standard cells (cellules élémentaires telles un transistor)
ou des outils spécifiques au concepteur.
Dans notre cas, on va utiliser Cadence avec le Design Kith cmos8d caractérisé par une
longueur minimale de grille de 0.18um.
2) Lancement du logiciel Cadence Avant qu’on puisse lancer Cadence, il y a des fichiers de configuration dont on a besoin dans
notre répertoire de travail. Ces fichiers déterminent l’environnement dans lequel Cadence
travaille et les librairies qu’on doit inclure dans la session courante. A fin de configurer
l’environnement de ce Projet, il faut se référer à la documentation« Préparation des
environnements des Projets en microélectronique » qui se trouve dans le même répertoire que
celui qui contient ce Projet. Une fois l’environnement est mis en place et qu’on est sur le
compte de travail, à partir d’une Console on tapera:
> cd gpdk180/
> icfb &
Après environ une minute, la fenêtre principale de Cadence qui s’appelle CIW (Command
Interpreter Window) est affichée en bas d’écran :
Fig.1 : Command Interpreter Window [CIW]
2ME Page 4
Cette fenêtre est la fenêtre principale de CADENCE. C’est elle qui va donner les informations
en cas de problème. Elle comporte aussi un certain nombre de menus qui sont utiles pour le
fonctionnement général de CADENCE. C’est la fenêtre ICFB-LOG.
Cette fenêtre va afficher tous les commentaires ainsi que les éventuels messages d’erreurs.
Toutes les informations qui s’affichent dans la fenêtre ICFB-LOG sont reportées dans un
fichier dont le nom et le chemin sont donnés dans la partie supérieure. Sur cet exemple, on
retrouve toutes les informations affichées dans le fichier CDS.log.
Il est aussi possible de charger un fichier ou de définir une variable pour CADENCE. Cela se
fait par la ligne de commande. Les commandes s’effectuent en langage SKILL.
3) Gestionnaire de librairie
a) Ouverture Il se peut que la fenêtre ICFB-LOG soit la seule qui ait été ouverte lors du lancement. Pour
pouvoir travailler sur une bibliothèque et ses cellules, il faut pouvoir disposer du Library
Manager. Pour ouvrir cette fenêtre, on utilise le menu suivant dans la fenêtre ICFB-LOG :
Tools ⇒ Library Manger
La fenêtre suivante apparaît :
Fig.2: Gestionnaire de librairies:
Sur ce gestionnaire, on a trois blocs importants : Library −> Cell −> View :
2ME Page 5
Library : elle contient les différentes bibliothèques qui à leur tour (chacune) contiennent
toutes les cellules regroupées par types High Speed (HS) optimisée
pour la rapidité et Low Leakage (LL) optimisée pour la consommation minimale et par types
de technologie 0.18um et 90nm ...
Cell : c’est les cellules qui référent aux différentes portes. Et si on veut les classer par
catégories on a qu’à cocher Show Categories.
View : Pour chaque cellule, on a différentes vues :
Schematic : une vue pour éditer le schéma électrique et pour faire les simulations;
Symbol : une vue sur laquelle on trouve le symbole de notre porte pour une
utilisation comme sous−ensemble dans un circuit;
Layout : c’est une description des masques avec lesquelles notre dessin va être
fabriqué;
Extracted : une vue destinée à la vérification électrique des masques;
Abstract : la vue utilisée par les outils de placement routage automatique.
b) Saisie du schéma d’inverseur Dans la fenêtre Library Manager, sélectionnez la vue schematic de la cellule inv dans la
libraire MyProject. Mais, comme cette cellule est en mode lecture seulement, copiez-la dans
votre propre librairie afin de pouvoir l’éditer.
[schematic] edit ->copy
ensuite pour éditer la vue schématique, Cliquez dessus et appuyez sur le bouton du milieu de
la souris (BM) et choisissez edit.
La fenêtre schematic apparaît :
Fig.3 : La fenêtre montrant le schéma interne de l’inverseur
2ME Page 6
Plusieurs menus sont disponibles :
TOOLS : outils de conception (simulateur, routage)
DESIGN : gestion des vues et options de l’éditeur
WINDOW : gestion de la fenêtre courante (Zoom…)
EDIT : commandes d’édition
ADD : Gestion des composants
CHECK : Gestion des erreurs
SHEET : Gestion des pages.
………………………….
La barre d’outils sur la gauche de la fenêtre permet certains raccourcis. Pour connaître la
fonction de chaque bouton, il suffit de laisser le pointeur de la souris dessus, et la fonction
s’affiche. Il existe aussi des touches de raccourci au clavier.
Pour ajouter les transistors dans la fenêtre schématique, sélectionnez Add ⇒ instance (ou
taper i au clavier pour insert).
La fenêtre suivante apparaît :
Fig.4 : Fenêtre permettant l’insertion de nouveaux composants
A l’aide de la touche Browse, on va pouvoir sélectionner chacun des composants manquant se
trouvant dans Library Browser :
Pour le transistor NMOS :
Dans le library Browser, on sélectionnera :
la librairie gpdk180 −> la cellule nmos −> la vue symbol.
La fenêtre de la fig.5 affiche alors les paramètres relatifs à ce transistor (nmos) et les boutons
pour pouvoir modifier la position du symbole afin de faciliter la lecture du schéma (rotation,
miroir horizontal, miroir vertical). Pour placer le symbole du dispositif sur le schéma, il
suffit de ramener le pointeur de la souris dans la fenêtre d’édition et de cliquer sur le bouton
de gauche, autant de fois qu’on veut utiliser le dispositif dans le schéma. Les paramètres de ce
transistor sont :
2ME Page 7
w= 1um : représente la largeur de la grille du transistor;
L = 0.18um : représente la longueur de la grille du transistor. Son minimum est définit par la
technologie;
Pour le transistor PMOS :
Même chose que NMOS
Création des fils :
A partir du menu Add, on choisit la commande wire (narrow);
On pointe, avec le bouton de gauche de la souris, sur une pin d’un composant;
On tire jusqu’à la pin de l’autre composant;
On clique pour poser le fils;
Et ainsi de suite pour les autres connexions.
Ajout de la pin de sortie :
On sélectionne la commande Pin dans le menu Add. Et on obtient la fenêtre sur la figure.6 :
Fig.6 :
Fig.5 : Fenêtre permettant l’édition des propriétés :
2ME Page 8
Dans le champ « Direction », on va choisir le type de pin (input, output, input/output). Dans
notre cas, c’est le type output.
Dans le champ « Usage », on choisira « schematic ».
Puis, on fait Hide pour placer la pin sur le schéma, on clique sur le bouton gauche de la
souris.
Enfin, il nous reste à relier par un fil la pin de sortie au reste du schéma de l’inverseur.
Vérification du schéma :
Il faut ensuite vérifier et sauver le schéma final fig.7 : Design −> Check and Save
La sauvegarde est nécessaire pour la démonstration. Sans cela, il ne sera pas possible de
manipuler cette cellule par la suite.
Fig .7 :
c) Environnement de la simulation
Le schéma du circuit à réaliser est terminé. Toutefois, il faut s’assurer qu’i n’ya pas eu
d’erreur de saisie de schéma ou de saisie de paramètres. Pour valider le circuit, on utilise la
simulation.
Or le schéma du circuit à réaliser ne suffit pas pour la simulation. D’où la nécessité d’utiliser
les cellules test_DC, test_AC et test_tran. Ces trois cellules sont des vues schematic qui
utilisent la vue symbol de l’amplificateur.
2ME Page 9
Simulation DC :
La simulation DC est un type de simulation qui calcule les points de fonctionnement quand la
tension d’entrée est continue et en fonction d’un paramètre d’un circuit donné.
Pour ce type d’analyse, on sélectionne la cellule test_DC et on ouvre son schématic. La
fenêtre suivante apparaît (fig.8)
Fig.8 :
Cette cellule est constituée d’un inverseur, qui est polarisé par des sources de tension et des
sources de courant. Pour lancer le simulateur: Tools −> AnalogArtist
Cela ouvre la fenêtre ci−après :
Fig.11 :
2ME Page 10
Fig.9 : Fenêtre à partir de laquelle on lance la simulation
Avant de lancer la simulation, il faut définir le type de simulation, sa durée et les variables
électriques que l’on souhaite visualiser :
Type d’analyse :
Les différents types de simulation sont accessibles grâce au menu : Analyses −> Choose
On remarque sur la fenêtre (fig.10) qui apparaît les divers types d’analyse. Et pour activer
l’une d’entre elles, il suffit de la cocher, il apparaît un ou des cadres de configuration propre à
chaque type. Pour la première analyse, on va choisir celle DC.
Paramètres de la session :
Dans la même figure (fig.10), on cochera Component Parameter. Il faut ensuite définir en
fonction de quel paramètre du circuit on désire visualiser l’évolution du point de
fonctionnement statique. Pour cela, il faut cliquer sur Select Component (fig.11),puis
Sélectionner le générateur de tension d’entrée dans la fenêtre schematic.
Le nom du composant s’affiche automatiquement. On fera varier la valeur du Générateur de 0
à 1.8v. Et on choisira comme type de balayage (sweep) celui linéaire et comme nombre de pas
100 (fig.12).
2ME Page 11
Fig.10 : Fig.12 :
Le choix du simulateur ainsi que le choix du directory de stockage des résultats s’effectuent
avec le menu : Setup −> Simulator/Directory/Host
On choisit le simulateur spectre et le répertoire ~/Simulation. Il est à noter que pour certaines
simulations, il est possible de stocker les résultats dans le répertoire ./tmp local de la
machine.
Le menu Setup permet aussi de définir les bases de travail du simulateur. Par exemple, on
sélectionnera le menu Tools dans la fenêtre Analog Artist. Puis, on choisit Setup Corners,
la commande qui permet de choisir le fichier des modèles des transistors MOS et l’éditer.
Ensuite, on clique sur Save Model File pour la sauvegarde.
2ME Page 12
Visualisation des résultats :
Dans le menu Output ,on sélectionne la commande To Be Plotted puis la commande Select
On Schematic pour pouvoir visualiser les signaux voulus. Dans la fenêtre Schematic, il faut
cliquer sur les fils pour visualiser une tension et sur les pins pour un courant.
Dans notre cas, on sélectionnera le signal d’entrée positive et celui de sortie de l’inverseur qui
seront indiqué sur le schéma par deux couleurs différentes.
Une fois les différents paramètres sont définis ainsi que la durée, le pas de simulation et les
signaux à visualiser, l’environnement Analog Artist devient fig.13:
* Dans le champ Outputs, on a :
net7 pour l’entrée
net1 pour la sortie
*Dans le champ Analyses, on a le type d’analyse (dc),à quelles valeurs la simulation va
commencer (0v) et finir (1.8v).
*Dans le champ Design, on a les noms de la librairie, la cellule et la vue où notre application
se trouve.
Fig.13 :
2ME Page 13
Lancement de la simulation:
Dans la fenêtre Analog Artist, on lancera la simulation en cliquant sur le bouton « feu vert».
[AnalogArtist] Outputs -> To be Plotted -> Select On Schematic.
On sélectionnera les deux signaux à visualiser sur le schéma en cliquant sur les nets
correspondant.
Puis, le bouton Plot Outputs dans la fenêtre Analog Artist pour exécuter la simulation.
Et là, affichage des résultats de simulation des tensions d'entrée et de sortie.
Fig.14 :
2ME Page 14
4) Dessin des masques
Le dessin des masques se fait dans une fenêtre de type Layout. Pour cela, il faut éditer une
vue layout sur la cellule inv. L’outil de conception du layout s’appelle Virtuoso.
Il faut ensuite ouvrir cette cellule : dans le library manager, sélectionnez la vue layout de la
cellule inv. Ouvrez en cliquant avec le BM de la souris (edit). L’ouverture de la fenêtre va
provoquer l’apparition d’un autre outil qui est la fenêtre LSW (Layer Status
Windows).
La fenêtre LSW indique l’ensemble des couches utilisables.
Pour chaque couche, on peut voir le symbole graphique ainsi
que le nom de la couleur. Il est important de n’utiliser que les
couches dg pour dessiner les masques.
Cette fenêtre sert à sélectionner la couche physique que l’on
va dessiner. L’outil LSW permet en outre de modifier
l’apparence des différentes couches.
Les boutons AV, NV, AS et NS permettent de rendre visibles
et sélectionnables les couches physiques dans la fenêtre layout.
La définition des différentes couches se trouve dans le DRM
(Design Rules Manual) qui est un document décrivant toute la
technologie gpdk180nm.
2ME Page 15
a) Ajout de composants dans la vue layout
Comme pur la vue schematic, le dessin de l’inverseur est incomplet. Il manque les
transistors NMOS et PMOS par exemple , ainsi que la capacité et la résistance; la pin de
sortie non plus n’est pas sur le dessin. Faites une copie pour pouvoir le compléter.
l arrive que seuls les noms des composants apparaissent. Pour visualiser l’ensemble des
couches : Shift F.
Pour importer l’instance NMOS : Create ⇒ instance (ou taper la touché i).
A l’aide de la touche Browse, aller chercher la vue layout du NMOS dans la librairie
gpdk180 puis le placer dans la fenêtre layout. Esc pour quitter la commande.
De même, placez les instances PMOS , Capacité et Resistance.
La commande : Windows ⇒ fit All ou f permet d’afficher le design sur l’ensemble de la
fenêtre.
Le but va être de réaliser le layout de l’inverseur déjà simulé. Pour cela, il faut connecter le
PMOS, le NMOS et la capacité et la résistance par exemple comme dans le schematic. De
plus, leurs paramètres doivent être identiques à ceux définis dans le schematic. Pour régler les
paramètres de ces composants, sélectionnez en un puis cliquez sur
Edit ⇒ Properties ⇒ parameter
b) Connexion des composants
Comme pour la vue schematic, il faut relier les composants que l’on vient d’ajouter au reste
du circuit, les connexions se font par des fils de métal. Pour créer une connexion en métal,
cliquez sur metal1 dg dans la fenêtre LSW. Puis, dans la fenêtre layout, choisissez : Create
=> Path. Cliquez une première fois (bouton gauche) sur le layout pour indiquer le premier
point de la connexion, puis cliquez une fois (bouton gauche) à chaque fois que vous voulez
que le Path ait un angle. En fin, pour terminer la connexion, appuyez sur Enter.
Pour connecter deux niveaux physiques différents, on utilise des contacts (connexions
Silicium/Métal, Poly/Métal) ou des vias (connexions Métaln/Métaln+1). Pour ajouter un
contact, cliquez sur : Create => Contact. La fenêtre suivante apparaît :
2ME Page 16
Pour sélectionner le type de contact choisissez dans contact type :
• NTAP : connexion métal 1 / substrat N
• PTAP : connexion métal 1 / substrat P
• M1_LIL : connexion métal 1 / LIL (interconnexion locale en Tungstène)
• M1_N : connesion métal 1 / implantation N
• M1_P : connexion métal 1 / implantation P
• M1_POLY : connexion métal 1 / polysilicium
• M2_M1 : connexion métal 2 / métal 1
• M3_M2 : connexion métal 3 / métal 2
• M4_M3 : connexion métal 4 / métal 3
• M5_M4 : connexion métal 5 / métal 4
• M6_M5 : connexion métal 6 / métal 5
Il est possible de placer plusieurs contact en même temps, en remplissant les options de la
fenêtre Create Contact : Rows et Colums.
Finissez de dessiner la vue layout de l’inverseur en plaçant correctement les composants
NMOS et PMOS grâce à la commande : edit => Move de la fenêtre layout, puis en les
reliant grâce à des Paths et des contacts.
c) Placement de la pin de sortie
Il reste à placer la pin de sortie. Pour le dessin, nous avons utilisé les couches DG. Pour le
placement des pins, nous utilisons les couches avec l’extension PN (pin). Dans la fenêtre
LSW, sélectionnez la couche metal1 pn. Puis, dans la fenêtre layout, cliquez sur :
Create ⇒ pin.
Dans la fenêtre qui apparaît, cliquez sur Shape Pin. Cela va permettre de voir le nom donné à
la pin.
2ME Page 17
En plaçant les pins, il est important de bien respecter le type input, output etc….
Placer une pin Out en output. Dessinez un rectangle avec la souris, puis cliquez pour placer
le nom de la pin. Pour quitter la fenêtre Create Pin, cliquez sur Cancel. Relier alors avec
Path en métal1 dg la pin et le fil sur lequel elle doit être reliée physiquement.
d) Fin du layout
Désormais, on a complété le dessin de l’inverseur. Le layout doit se présenter comme suit :
Cependant, la phase de dessin n’est pas encore finie : il reste à vérifier que le circuit défini par
le layout correspond bien au schéma électrique que l’on veut implémenter, et que les règles de
dessins qu’impose la technologie de fabrication gpdk180 ont été respectées.
2ME Page 18
Il va falloir alors utiliser les outils suivants :
• DRC : Design Rule Check pour vérifier les règles de dessins.
• Extract : pour extraire une netlist (représentation électrique) du layout
• LVS : Layout Versus Schematic pour comparer les netlists des vues schematic et layout
Le DRC
Le DRC a pour but de vérifier si toutes les règles de dessin ont été respectées. Pour lancer le
DRC : Verify ⇒ DRC
Il va alors s’afficher sur le design, des marqueurs clignotants indiquant les erreurs. Toutes les
erreurs s’affichent dans la fenêtre ICFB-LOG. Pour connaître la signification d’un marqueur :
Verify ⇒ marker ⇒ explain
D’autres commandes sont disponibles dans le même menu, pour l’effacement, la recherche
etc…
Dès qu’il n’y a plus d’erreurs de DRC, il faut ensuite vérifier si le dessin des masques
correspond bien au schéma électrique.
L’extract
CADENCE va alors générer une vue extracted. Cette vue contient les dessins des masques en
couche NT (Net) ainsi que les composants reconnus.
Après avoir ouvert la vue extracted, faire SHIFT F. On voit alors apparaître les composants
reconnus. Il est aussi possible de cliquez sur net et d’en demander les propriétés.
Edit ⇒ properties
On peut aussi faire apparaître les connexions électriques :
Design ⇒ options ⇒ display puis valider Nets OK
Il existe maintenant une vue de la cellule correspondant aux dessins des masques qui contient
un schéma électrique, nous allons comparer ce schéma avec celui simulé.
Le LVS
Le LVS va se charger de comparer les deux schémas : Verify ⇒ LVS. La fenêtre LVS
apparaît.
Sélectionner les vues appropriées à l’aide de la touche browse de chaque catégorie :
• Pour le schematic :MyLib /inv/ schematic
• Pour la vue extracted : MyLib/inv / extracted.
2ME Page 19
Puis Run.
Monitor : Pour visualiser les taches actives ou déjà effectuées.
Output : Pour voir le résultat du LVS.
En fin de LVS, CADENCE indique si celui-ci a abouti ou s’il y a eu un problème. En cas de
succès, il faut aller voir dans le fichier output si les deux schémas sont bien équivalents :
Dans la fenêtre LVS : Output
Le fichier output doit indiquer « The net-lists match ». Dans le cas contraire, il faut corriger le
layout si le schematic est correct.
Simulation post-layout (optionnel)
Désormais, les vues schematic et layout sont équivalentes électriquement. Il est alors possible
de générer une autre vue extracted qui tiendra compte des résistances et des capacités
parasites du layout. Puis, on pourra relancer une simulation en tenant compte non pas de la
netlist du schematic, mais de celle de la vue extracted. Un mauvais routage peut être fatal
2ME Page 20
pour un circuit.
Sous Analog Artist (ou Analog Environment), ouvrir setup >>Environment. Dans la
Switch View List, placer extracted avant schematic. Ainsi en cours d’analyse de la netlist, la
vue extracted (qui existe) sera considérée avant la vue schematic. La vue schematic n’est prise
en compte qu’en l’absence de la vue extracted, ou bien dans l’état initiale de la Swith View
List.
Travail demandé :
1. Faire le dessin des masques d'un inverseur compatible avec une bibliothèque de cellules
normalisée et donner sous forme d'imprimé la vue Layout réalisée.
2. Vérifier que les règles de dessin sont respectées en lançant le DRC (Design Rules Check)
et imprimer le rapport qui note le nombre d'erreurs.
3. Faire une extraction, noter les composants reconnus et vérifier la connectivité et faire une
impression de la vue Extracted obtenue.
4. Vérifier que les deux vues (schematic et extracted) sont électriquement conformes en
lançant le test LVS et donner comme imprimé le rapport des erreurs trouvées.
Recommended