TUTORIAL CADENCE 97 et interface SYNOPSYS-CADENCE
6. Synthèse logique à partir de VHDL (Synopsys)
6.1 Utilisation de Synopsys
Nous allons maintenant expliquer comment configurer
Synopsys.Vous
devez placer trois fichiers nécessaires au lancement du logiciel
dans le répertoire (
~/cao/synopsys ).Tout d'abord, il faut
définir quelques variables dans le fichier
.synopsys_dc.setup pour
pouvoir ensuite récupérer les fichiers au format EDIF.
Ensuite, le fichier
.synopsys_vss.setup
permet de définir le répertoire de travail contenant
les fichiers créer pour la simulation lors de la compilation. Enfin,
le fichier script
"techno".script doit
indiquer les librairies utilisées pour la synthèse et
l'optimisation.
Les librairies nécessaire à l'utilisation de Synopsys dont
les déclarations sont faites dans le fichier "techno".script sont
les suivantes:
csx.db
(/usr/local/cadence-97A/DesignKit/AMS-3.11/synopsys/csx/csx.db)
technologie utilisée
generic.sdb
(/usr/local/cadence-97A/DesignKit/AMS-3.11/synopsys/generics/generic.sdb)
ripper.sdb
(/usr/local/cadence-97A/IC-4.43/tools/dfII/etc/dci/synlibs/ripper.sdb)
basic.sdb
(/usr/local/cadence-97A/IC-4.43/tools/dfII/etc/dci/synlibs/basic.sdb)
US_8ths.sdb
(/usr/local/cadence-97A/IC-4.43/tools/dfII/etc/dci/synlibs/US_8ths.sdb)
HRDLIB.sdb et
IOLIB_3M.sdb : ces librairies,
disponibles sous cadence, ont été compilées à
l'aide de CSI (Cadence to Synopsys Interface), ces fichiers doivent
être présents sous votre répertoire de travail
synopsys.
librairies des symboles utilisés
Une fois que les trois fichiers sont présents sous
~/cao/synopsys, vous devez créer un répertoire
ma_lib, ensuite, vous pouvez lancer synopsys en utilisant la
commande design_analyzer&. Vous obtenez alors l'interface
graphique.
Il faut maintenant lancer la fenêtre Command Windows, qui vous
permettra de saisir directement des commandes au clavier. Elle est
obtenue par Setup->Command Window....
Un fois que la fenêtre Command Windows est apparue, vous pouvez
alors lire votre fichier VHDL
File->Read.... L'exemple
donné correspond au fichier
compteur.vhd.
Pour l'utilisations des bons packages, il faut déclarer
dans les fichiers VHDL les lignes suivantes :
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
library SYNOPSYS;
use SYNOPSYS.ATTRIBUTES.ALL;
library CSX;
use CSX.COMPONENTS.ALL;
les deux dernières lignes correspondent à la technologie
utilisée.
Après lecture, vous obtenez alors l'icône ci-dessous.
Il suffit maintenant de double-cliquez sur le circuit pour obtenir
la vue symbol du circuit.
Si vous double-cliquez à nouveau sur la vue symbol du
circuit, vous obtenez le schéma au niveau porte. Il est maintenant
possible d'optimiser ce circuit. Pour cela, vous pouvez définir des
contraintes Attributes->Optimization Constraints->Design Constraints
, pour les contraintes sur la surface et la puissance, et
Attributes->Optimization Constraints->Timing Constraints, pour des
contraintes sur les temps de monter et les temps de descentes.
Vous pouvez maintenant lancer l'optimisation par Tools->Design
Optimization, puis sélectionner l'option High pour
Map Effort et appuyer sur OK. Vous obtenez alors le
schéma optimisé au niveau porte.
Il existe deux moyens de transférer ce schéma sous cadence:
créer un fichier EDIF ou un fichier Verilog.
La première solution permet uniquement d'importer ce schéma
sous l'environnement icfb, tandis que la deuxième solution
permet d'importer ce schéma à la fois sous icfb et
sous Silicon Ensemble.
Pour le format EDIF, si vous souhaitez changer le nom de la librairie
dans laquelle votre schéma sera sauvegardé sous cadence,
il faut changer la variable edifout_designs_library_name qui est
par défaut : "DESIGNS".
Ensuite, il faut utiliser l'alias cadence_schematic_out
dans la fenêtre Command Window, puis aller à
File->Save As..., entrer le File Name : "Nom_Fichier".edif
et dans la section File Format, choisir EDIF.
Pour transférer les fichiers au format Verilog, il est
nécessaire de positionner la variable Verilogout_no_tri
à true ( par Setup->Variables ).
Ensuite, il faut taper : change_names -rules verilog
-hier dans la fenêtre Command Window. Et enfin,
aller à File->Save As..., entrer le File Name :
"Nom_Fichier".v et dans la section File Format, choisir Verilog.
Pour imprimer le résultat de l'optimisation, il suffit de faire
File->Plot, puis de taper s"nom de l'imprimante" car c'est un
format postscript (ex: s021g)
6.2 Importation sous cadence du schéma au format EDIF
Pour importer un schéma, il suffit de copier le fichier EDIF dans
votre répertoire cadence. Vous devez alors vérufier que
la librairie ripper est bien déclarée, faire
Tools->Library Path Editor, et ajouter si nécessaire
:
ripper
$CDSDIR/tools/dfII/etc/dci/ripper
Ensuite vous devez faire File->Import->EDIF 200, et taper le nom
du fichier EDIF à importer dans la section Input File(s).
Une fois que le fichier a été importé(par défaut
dans la librairie DESIGNS), il faut l'attacher à une
technologie (ici CSD). Pour cela, il faut suivre
Technology File->Attach to, puis sélectionner votre
librairie ainsi que la librairie de la technologie que vous souhaitez
utiliser TECH_CSD.
Il est alors possible d'ouvrir ce schéma par File->Open...,
puis vous choisissez votre librairie, votre design et la vue schematic.
Pour obtenir une vue symbol correcte, dans la fenêtre
schematic faites Design->Create Cellview->From Cellview...,
choisissez les vues From View Name schematic To View Name
symbol. Une vue symbol est créer lors de l'imporation mais il faut
la rectifier, vous pouvez donc placer vos entrées/sorties comme vous
le souhaitez.
6.3 Importation sous cadence du schéma au format Verilog
Pour importer un fichier Verilog, il faut tout d'abord créer la
librairie dans laquelle les vue schematic et symbol vont
être créées. Pour cela, vous devez faire
File->New->Library..., saisir le nom de cette librairie, puis
OK. Ensuite, vous confirmerez l'attachement de cette librairie
à la technologie.
Ensuite, vous ouvrez la fenêtre Verilog In par
File->Import->Verilog. Choisissez comme Target Library Name
le nom de la librairie que vous venez de créer, les librairies de
référence sont HRDLIB et IOLIB_3M, saisir le nom
du fichier à importer. Enfin, dans l'option -f, donner le fichier
d'option :
/usr/local/cadence-97A/DesignKit/AMS-3.11/artist/HK_0.35/veritools/VERILOGIN.inc
Cliquez sur Schematic Generation Options et positionner l'option
Component Density à 100.
Il est alors possible d'ouvrir ce schéma par File->Open...,
puis vous choisissez votre librairie, votre design et la vue schematic.
6.4 Ajout des PADs sous cadence
Avant de transmettre le fichier au format DEF dans Silicon Ensemble, il faut
placer les PADs d'entrée/sortie. Les PADs que vous devez utiliser sont
disponibles dans la librairie IOLIB_3M :
ICP pour les entrées standards
BU4P pour les sorties standards
BBC4P pour les entrées/sorties standards
VDD3ALLP et GND3ALLP sont les PADs d'alimentation, mais ils seront
importés à part dans Silicon Ensemble.
Vous devez relier le "pin" PI des PADs à une cellule LOGIC0 que
vous pouvez trouver dans la librairie HRDLIB.
Une fois que ce schéma est réalisé, vous devez créer
la vue autoLayout pour cela dans la fenêtre schematic faire
Tools->Floorplan/Schematics puis Floorplan->Hierarchy Browser...,
une nouvelle fenêtre apparait.
Vous devez alors cliquer dans l'icone représentant votre schéma puis
choisir Utilities->Environnement puis en bas de la fenêtre, cliquer sur
Change Default Global Signal Names. La fenêtre suivante apparait,
déselectionner l'option Use Existing Globals Names et remplir avec le
nom de votre librairie Library To Store New Globals Names, puis indiquer le
nom de vos alimentations (vdd! et gnd!).
Dans la fenêtre Hierarchy Browser, faire
Hierarchy->Properties->Set Master... puis cliquer OK dans la nouvelle
fenêtre.
Vous pouvez maintenant générer la vue autoLayout en faisant
Hierarchy->Generate Physical Hierarchy.
Vous devez maintenant ouvrir la vue autoLayout. L'outil utilisé pour
le placement/routage est Silicon Ensemble, il faut donc le sélectionner en
faisant Floorplan/P&R->Silicon Ensemble. Vous obtenez alors la fenêtre
suivante.
Il est nécessaire d'indiquer quels sont les Nets d'alimentation. Dans la
fenêtre autoLayout faire Place&Route->Special Route->Set Nets Special...
et dans la Net Name List indiquer vdd! gnd! vdd3r! vdd3o! gnd3r! gnd3o! et
sélectionner l'option Force Special.
Il ne reste plus qu'à exporter le fichier au format DEF. Dans la fenêtre
CDS.log faire File->Export->DEF..., choisir la vue autoLayout, le nom du
fichier DEF que vous souhaitez et pour l'option Target P&R Engine, choisir
Silicon Ensemble.
Une fois que le fichier est généré, il faut le copier dans le
répertoire ~/cao/se.
Cadence est une marque déposé de Cadence Design Systems,
Inc., 555 River Oaks Parkway, San Jose, CA 95134.