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.

fenêtre design_analyzer

       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....

fenêtre Command Windows

       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.

Lecture du fichier VHDL

       Il suffit maintenant de double-cliquez sur le circuit pour obtenir la vue symbol du circuit.

Symbol du ciruit

       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.

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)

       Si vous souhaitez avoir plus d'informations sur l'utilisation de Synopsys, un tutorial est disponible sur le site de l'ENSSAT à l'adresse : http://wwwext.enssat.fr/RECHERCHE/ARCHI/Enseignement/Cao/TutorialSynopsys/fenetre.html


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).

fenêtre EDIF In

       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.

fenêtre Attach To

       Il est alors possible d'ouvrir ce schéma par File->Open..., puis vous choisissez votre librairie, votre design et la vue schematic.

Résultat de l'importation EDIF

       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.

Créer la vue symbol

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.

Création d'une librairie

       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

fenêtre Verilog In

       Cliquez sur Schematic Generation Options et positionner l'option Component Density à 100.

fenêtre des options schématiques

       Il est alors possible d'ouvrir ce schéma par File->Open..., puis vous choisissez votre librairie, votre design et la vue schematic.

Résultat de l'importation Verilog

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.

Schéma avec PADs

       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.

Fenêtre Hierarchy Browser

       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!).

Fenêtre des signaux d'alimentation

       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.

autoLayout généré

       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.

Définition des 'Special Net'

       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.

Exportation du fichier au format DEF

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.


Synopsys Cadence Design Systems, Inc.