07.10.2013 Views

Grundlegendes zur CADENCE Software - Lehrstuhl für ...

Grundlegendes zur CADENCE Software - Lehrstuhl für ...

Grundlegendes zur CADENCE Software - Lehrstuhl für ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

§£¦£ §<br />

¢¡¤£¦¥¨§©¡§<br />

£¦¥¥§§§<br />

§©<br />

M. Harter<br />

<strong>Lehrstuhl</strong> <strong>für</strong> Schaltungstechnik und Simulation<br />

Institut <strong>für</strong> Technische Informatik<br />

Universität Mannheim<br />

25. November 2004<br />

<br />

<br />

<br />

¢ <br />

<br />

<br />

<br />

<br />

¤ <br />

¤<br />

¤ ¤ <br />

1


¤ <br />

Für den softwareunterstützten Entwurf von full-custom layouts stehen die Entwurfswerkzeuge von Cadence<br />

Design Systems <strong>zur</strong> Verfügung. Die am <strong>Lehrstuhl</strong> installierten Versionen sind:<br />

• Cadence IC 5.0.33<br />

Dieses Paket stellt eine <strong>Software</strong>-Sammlung dar, die eine Reihe von Entwicklungswerkzeugen <strong>für</strong> das<br />

Full-Custom Design von analogen und mixed-signal Schaltungen beinhaltet. Die wichtigsten Tools<br />

sind dabei der Schaltplan- und Layout-Editor VIRTUOSO , der Simulator SPECTRE und das Design-<br />

Framework DFII .<br />

• Cadence IC 5.0.33<br />

In diesem Paket sind der VIRTUOSO CUSTOM PLACER und der CHIP ASSEMBLY ROUTER . Beides<br />

sind eigenständige Programme, die vom Design-Framework aus aufgerufen werden. Sie erweitern die<br />

Full-Custom Tools des IC-Pakets um “Place and Route”-Funktionen aus der Semi-Custom Welt auf<br />

Transistor-Ebene.<br />

¤ <br />

Als Zieltechnologie stehen die folgenden Prozesse von Austria Microsystems (AMS) <strong>zur</strong> Verfügung (siehe<br />

auch: CMOS Technology Selection Guide):<br />

• C35B4: Mixed-signal CMOS 0.35 µm, 4 Metallagen, 2 Lagen Poly.<br />

In der Regel ist dieser Prozess <strong>für</strong> die Arbeit am <strong>Lehrstuhl</strong> zu verwenden.<br />

• C35B3: Mixed-signal CMOS 0.35 µm, 3 Metallagen, 2 Lagen Poly. Dieser Prozess sei nur der Vollständigkeit<br />

halber erwähnt, er wird am <strong>Lehrstuhl</strong> kaum benutzt werden.<br />

• CXQ: Mixed-signal CMOS 0.8 µm, 2 Metallagen, 2 Lagen Poly. In der Vergangenheit bereits benutzter<br />

Prozesses (im Rahmen von Kooperationen, u.A. mit der Univ. Bonn). Wird am <strong>Lehrstuhl</strong> kaum<br />

noch benutzt werden, da veraltet.<br />

Die prozessspezifischen Technologie-Daten wie die Design-Rules, Simulations-Parameter (Transistormodelle),<br />

Daten <strong>zur</strong> Extraktion von parasitären Widerständen und Kapazitäten, sowie Zellbibliotheken werden<br />

durch die sog. Hit-Kits von AMS bereitgestellt. Die aktuelle Version 3.51 <strong>für</strong> Linux ist am <strong>Lehrstuhl</strong> installiert.<br />

<br />

In der folgenden Tabelle sind die Skripte aufgelistet, die zum Einrichten der Umgebungsvariablen und Suchpfade<br />

<strong>für</strong> die jeweiligen Tools bzw. Design-Kits nötig sind. Das Suffix ‘.bash’ kennzeichnet Skripte <strong>für</strong> den<br />

Kommandozeilen-Interpreter (shell) ‘bash’.<br />

2


Alle Skripte befinden sich im Verzeichnis ¤¤ . Der Aufruf geschieht durch das Kommando<br />

‘ ’ an der Eingabeaufforderung, gefolgt vom jeweiligen Skript.<br />

Tool bzw. Kit Bash Skript C-Shell Skript<br />

Hit-Kit ¤¤ ¤<br />

3.51<br />

IC ¤¤ ¤<br />

5.0.33<br />

ICC ¤¤ ¤<br />

11.1.33<br />

Tabelle 1: Skripte <strong>zur</strong> Einrichtung der Umgebungsvariablen und Pfade<br />

Werden die entsprechenden Pfade und Variablen dem Kommandozeilen-Interpreter auf diese Weise bekannt<br />

gemacht, können die aufgelisteten Werkzeuge bereits eingesetzt werden (dies gilt nicht <strong>für</strong> die erstmalige<br />

Benutzung des Hit-Kits!). Diese werden mit ihrem jeweiligen Namen direkt am Shell-Prompt aufgerufen<br />

(z.B. oder ).<br />

Man beachte, dass man <strong>für</strong> jedes Tool und jedes größere Projekt ein eigenes Verzeichnis anlegen sollte, aus<br />

welchem man die <strong>Software</strong> dann aufruft. Auf diese Weise werden temporäre Dateien und Konfigurationsdateien<br />

des Benutzers, die beim Aufruf des Tools oder während der Arbeit automatisch angelegt werden, nach<br />

<strong>Software</strong> und Projekten geordnet.<br />

<br />

Nach dieser Umgebungsvariablen- und Pfad-Einrichtung muss noch das Hit-Kit in das Cadence IC Framework<br />

integriert werden. Dies geschieht i.d.R. durch Eintragen der Bibliothek mit den Designs in die<br />

Datei ‘¤ ’, die sich in dem Verzeichnis befindet, aus welchem Cadence IC aufgerufen wird. Desweiteren<br />

müssen sogenannte Skill-Skripte (Skript-Sprache in Cadence IC) ausgeführt werden, über welche<br />

zusätzliche Funktionalität in das Tool integriert wird (z.B. aktivierbar über neue Schalter und Knöpfe) und<br />

schließlich die prozessabhängigen Technologie-Daten <strong>für</strong> die Extraktion und den DRC und LVS Check dem<br />

Tool bekannt gemacht werden.<br />

Zu diesem Zweck gibt es in Cadence IC mehrere Dateien, die beim Start des Tools automatisch ausgeführt<br />

werden, neben der bereits erwähnten ‘¤ ’, die Dateien ‘¤ ’ und ‘¤ ’. In ‘¤ ’<br />

können Skill-Skripte eingetragen werden, und in ‘¤ ’ können interne Variablen des Tools neu definiert<br />

werden.<br />

Um nun diese Dateien in einem Verzeichnis <strong>für</strong> das Hit-Kit zu erzeugen, stellt AMS das Shell-Skript<br />

‘¤ ’ <strong>zur</strong> Verfügung, welches das Design-Kit dann lokal in diesem Ordner auf der oben skizzierten<br />

Weise installiert.<br />

<br />

Annahme: Das aktuelle Design-Kit von AMS, Hit-Kit 3.51, soll in Kombination mit Cadence IC 5.0.33 eingesetzt<br />

werden. Zum Einrichten der Pfade und Umgebungsvariablen <strong>für</strong> den Kommandozeilen-Interpreter<br />

‘bash’ genügen da<strong>für</strong> die folgenden beiden Befehle:<br />

3


¦¤¤¤¤¤<br />

¦¤¤¤¤¤<br />

Diese beiden Befehle lassen sich auch bequem in das Start-up Skript ‘.bashrc’ (oder ggf. ’.cshrc’) einfügen,<br />

so dass diese automatisch bei jedem Neustart der Shell ausgeführt werden.<br />

Um das Hit-Kit <strong>für</strong> den C35B4 Prozess im aktuellen Verzeichnis zu “installieren” (d.h. in IC integrieren),<br />

muss da<strong>für</strong> das Skript ‘¤ ’ auf die folgende Weise aufgerufen werden:<br />

¤¤¤<br />

’ steht dabei <strong>für</strong> die ‘front-to-back’-Version von Cadence IC. Sie wird von ‘¤ ’ nach erfolg-<br />

‘<br />

reicher Installation automatisch aufgerufen. Bei allen zukünftigen Sitzung genügt der Aufruf der ‘front-toback’-Version<br />

über das ‘¤¤ Kommando ’.<br />

Der einfachste Weg, mit einem Design zu beginnen, ist über die Benutzung des Library-Browsers. Ist er<br />

noch nicht bereits geöffnet, so aktiviert man ihn über den Menüpunkt “Tools” in der Kommandozeilenfenster<br />

CIW.<br />

<br />

• Die Standard SPICE - Elemente (Masse und Versorgungspins, Quellen, ideale Widerstände und Kondensatoren)<br />

sind in der analogLib. Benutzen Sie als Masse das Symbol ’gnd’ und als Versorgungsspannung<br />

das Symbol ’vdd’. WICHTIG: Die zugehörigen Netze heissen ’gnd!’ und ’vdd!’. Das sieht<br />

man, nachdem man ein schematic abgespeichert hat. Die pins im Layout müssen später so genannt<br />

werden.<br />

• Die AMS-Transistoren, Widerstände etc. befinden sich in PRIMLIB. Benutzen Sie den nmos4 und<br />

den pmos4.<br />

• Beim Erzeugen von Pins in Symbolen sollten Sie den Pin-Typ auf ’square’ umschalten. Diese sind<br />

besser zu sehen als die Standard-Pins.<br />

<br />

4<br />

• Für das Layout befinden sich die P-cells <strong>für</strong> die Transistoren ebenfalls in PRIMLIB. Dort gibt es<br />

auch fertige Substratkontakte PSUB-CON und Wannenkontakte NSUB-CON.<br />

• Kontakte von Poly nach Metal oder Vias erzeugt man am einfachsten mit der Taste ’o’.<br />

• In diesem Designkit gibt es <strong>für</strong> (fast) alle Lagen drei Typen im LSW: ’dg’ (drawing) zum Zeichnen,<br />

’pn’ <strong>für</strong> Pins und ’nt’ <strong>für</strong> Netze im extacted view. Benutzen Sie <strong>für</strong> Pins nur ’shape-pins’ in einer<br />

’pn’-Lage !


• Beim DRC sollten Sie zunächst den Schalter ’no_coverage’ einschalten. Damit wird das Überprüfen<br />

auf Verletzung der Bedeckungsregeln abgeschaltet.<br />

• Bei der Extraktion sind keine Schalter nötig. (Probieren Sie aber einmal aus, wie der Extracted View<br />

einer einfachen Zelle aussieht, wenn sie ’capall’ anschalten..)<br />

<br />

• Die Simulation wir vom Schematic aus mit Tools→Analog Environment gestartet.<br />

• Das automatische Erzeugen und Öffnen des Simulations-Logfiles kann man mit einem Schalter unter<br />

Setup→Environment abstellen.<br />

• Mit Analysis→Choose wählt man den Typ der Simulation aus (’Enabled’-Box aktivieren!)<br />

• Mit Outputs→To Be Plotted→Select On Schematic wählt man im Schematic mit der Maus aus,<br />

was nach der Simulation geplottet wird.<br />

• Vergessen Sie eine vdc-Versorgungsspannungsquelle und das Massesymbol nicht!<br />

• Die Simulation wird mit der gelben Ampel gestartet. Die grüne erzeugt zusätzlich noch die Netzliste<br />

neu <strong>für</strong> den Fall dass sich das Design geändert hat.<br />

• Im Waveform-Fenster können mit dem zweit-untersten Knopf in der linken Leiste die Signale getrennt<br />

dargestellt werden. Sie können mit der Maus im Fenster verschoben werden.<br />

• Um eine Schaltung mit den parasitären Kapazitäten zu simulieren müssen Sie zunächst im Layout<br />

eine Extraktion mit der Option capall durchführen. Im Simulationsfenster tragen Sie dann unter<br />

Setup→Environment im Feld ’Switch View List’ den view extracted ein, und zwar vor ’cmos_sch’<br />

und ’schematic’. Beim Erstellen der Netzliste <strong>für</strong> die Simulation benutzt <strong>CADENCE</strong> dann die Netzliste<br />

des extracted views, die (nach korrekter Extraktion) ja die parasitären Elemente enthält.<br />

• Wenn im Layout z.B. mehrere nicht zusammenhängende Leitungen zum gleichen Netz gehören sollen,<br />

diese aber erst in einer höheren Hierarchie-Ebene verbunden werden, so kann man mehrere identische<br />

Labels vergeben. In der Extraktion und beim DRC muß dann der Schalter ’join nets with same<br />

name’ aktiviert werden, um Warnungen zu verhindern.<br />

<br />

• Zum Drucken wählen Sie bei Layout und Schematic Design→Plot→Submit und im Waveform Fenster<br />

Window→Hardcopy aus. Schalten Sie die Ausgabe eines Headers (Seite mit Name des Designs<br />

etc.) aus. Öffnen Sie dann das ’Plot Options’-Fenster (nur bei Schematic/Layout). Wählen Sie als<br />

Drucker brahms (B/W) oder mahler (Color) aus, Größe z.B. A4. Der Drucker designjet Color sollte<br />

nur <strong>für</strong> großformatige DIN A0 Plots benutzt werden. Er steht am <strong>Lehrstuhl</strong> Informatik V, Prof.<br />

Männer. Schalten Sie Fit to page und Center Plot an und Mail Log To aus.<br />

5


6<br />

• Zum Drucken in eine Datei wählen Sie bei Layout und Schematic Design→Plot→ Submit und im<br />

Waveform Fenster Window→Hardcopy aus. Schalten Sie die Ausgabe eines Headers (Seite mit Name<br />

des Designs etc.) aus. Öffnen Sie dann das ’Plot Options’-Fenster (nur bei Schematic/Layout). Aktivieren<br />

Sie ’Send Plot Only To File’ und wählen Sie einen Filenamen (mit.ps-Erweiterung). Wählen<br />

Sie als Drucker File_Postscript_Level2_300dpi aus, Größe z.B. 10 cm × 10 cm. Schalten Sie Fit to<br />

page und Center Plot an und Mail Log To aus.<br />

• Sollte es nicht klappen (Meldung im CIW-Fenster beachten!), probieren Sie es einfach nochmal.<br />

Manchmal versteht <strong>CADENCE</strong> das ’fit to page’ nicht, der Plot erscheint dann u.U. zu groß und das<br />

Drucken wird verweigert.<br />

• Das .ps file können Sie mit lpr file.ps ausdrucken. Die Drucker stehen in Raum 551.


Contents<br />

8.1 Some of the net names in the Spectre netlist do not match the names given<br />

in the schematic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

8.2 I am unable to convert a spice netlist to spectre. What is the syntax for conversion?<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

8.3 Is it possible to convert a spectre netlist to spice? . . . . . . . . . . . . . . . . 9<br />

8.4 Can Spectre be used to plot poles and zeros? . . . . . . . . . . . . . . . . . . 9<br />

8.5 Where can I find sample Spectre model files? . . . . . . . . . . . . . . . . . . 9<br />

8.6 How do I instantiate netlists in schematics? . . . . . . . . . . . . . . . . . . . 9<br />

8.7 How do I simulate a Spice netlist in Spectre? . . . . . . . . . . . . . . . . . . 9<br />

8.8 How do I set the time-out limit for slow or stuck simulations in Spectre Direct? 11<br />

8.9 Does Spectre support BSIM4 models? . . . . . . . . . . . . . . . . . . . . . . 11<br />

8.10 How do I change the process priority in Spectre? . . . . . . . . . . . . . . . . 11<br />

8.11 How do I continue a transient analysis from where I left it? . . . . . . . . . . 12<br />

8.12 Where can I find information on bsim3v3 models? . . . . . . . . . . . . . . . 12<br />

8.13 Is a 64-bit version of Spectre available? . . . . . . . . . . . . . . . . . . . . . 13<br />

8.14 Is there a way to recover my simulation if my system crashes during a Spectre<br />

simulation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

8.15 When running Spectre standalone and saving data to ASCII format, can I<br />

save each analysis to a separate file? . . . . . . . . . . . . . . . . . . . . . . . 13<br />

8.16 What is the number of digits of precision of a double in Spectre? . . . . . . . 13<br />

8.17 Does Spectre have memory limitations when running large simulations? . . . 13<br />

8.18 How do I save operating points at a time other than the end time of the<br />

simulation? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

8.19 How do I save the Spectre log file for different simulation runs? . . . . . . . 14<br />

8.20 How do I save simulation results into an ASCII file? . . . . . . . . . . . . . . 14<br />

8.21 How do I run a simulation using the last simulation result as an initial condition<br />

file? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />

8.22 Can a model use passed parameters or variables? . . . . . . . . . . . . . . . 16<br />

8.23 How do I find the equivalent Hspice commands in Spectre? . . . . . . . . . . 16<br />

8.24 Can I run Spectre in distributed processing mode from the command line? . 17<br />

7


¢ ¤£ ¦¥¨§¤©£ ¨§ ¢ ¨¤¦£ §¨§©£ <br />

¡<br />

©£ ©¤£ ¤©£ ¤¦¤ ¨§¦<br />

¨§§¦£<br />

§¦§¦£ ¤©£ £ §¦¨§<br />

Spectre has a single namespace for instances, nets, models, parameters, etc. The Spectre Netlister will map<br />

names as necessary to avoid name clashes and to avoid using illegal name sequences in the Spectre netlist.<br />

To minimize name mapping during netlisting, it would help to follow the naming convention provided below.<br />

• Names must begin with a letter or an underscore.<br />

• Names can contain a mixture of underscores and alphanumeric characters.<br />

• Net names can also begin with a number or be completely numeric.<br />

• Avoid reserved names. For example: analysis names or primitive component names.<br />

• Do not use the following special characters in net names:<br />

¤¦<br />

¤<br />

¤¤<br />

¤<br />

<br />

¤¤<br />

<br />

<br />

¤<br />

<br />

¤¤¤<br />

¤ <br />

©£© ¤¦¤ ¨ §¨§¥<br />

<br />

¦<br />

The syntax to convert a spice netlist to spectre is as follows:<br />

¤¤¤<br />

Important: Please note the use of angled brackets when providing the name of the spice file. Example: To<br />

convert the spice netlist test.sp to a spectre netlist called myNetlist, the command would be:<br />

¤¤¤¤<br />

8


¦¨¤ <br />

No. There is no automatic conversion utility available to do this.<br />

¢ ¨© ¦<br />

No, Spectre cannot be used to plot poles and zeros. You can, however, run your simulation in Spectre and<br />

then plot pole-zero information using Wavescan and the new pzbode and pzfilter functions in IC 5.0.<br />

§¦ ©£ ¢ ¨£ © <br />

You can find sample Spectre model files in the<br />

¤¤¤¤¤¤¤¤<br />

directory.<br />

©¤§¦£ <br />

or<br />

©£ ¢ ¤ ¢ ¨<br />

You can instantiate a spice subcircuit using one of the following procedures.<br />

Procedure 1<br />

1. Convert the SPICE block using spp.<br />

¤<br />

¤¤<br />

Note: It is imperative that you enclose the name of the spice file in angled brackets.<br />

2. Open any schematic.<br />

3. Select Design - Create Cellview - From Pin List, specify the destination symbol and pin list and click<br />

OK.<br />

4. From the symbol view, select Design - Save As, and save it as a spectre view. Alternatively, you can<br />

use the Library Manager to copy the symbol view to the spectre view.<br />

5. Invoke Analog Artist.<br />

9


6. Select Setup - Model Libraries, and specify the path to the converted text.<br />

7. Set the model property on the block to be the same as the top-level subcircuit name in the converted<br />

text. You might also need to add the model property. To specify the model property,<br />

• Select the block<br />

• Select Edit - Properties - Objects.<br />

• Click Add in the User Property section.<br />

• Specify the name as model, and type as string. You can leave the other two fields blank.<br />

• In the Edit Object Properties form, specify the name of the top-level subcircuit against Local<br />

Value and click OK.<br />

What you have in the netlist is an instance statement for the block representing the converted netlist that<br />

looks something like this:<br />

¤<br />

And a converted netlist that has a top-level subcircuit name that corresponds to this.<br />

Note: Using a version older than 4.4.3, might be complicated because of name mapping/ subcircuit unfolding<br />

issues.<br />

Procedure 2:<br />

1. Create a schematic and add the pins required.<br />

2. Create a symbol from the schematic to automatically add the CDF parameters. Alternatively, you can<br />

open the schematic and then select Design - Create Cellview - >From Pinlist....<br />

3. Check if the terminal list provided in the CDF is correct and in the right order. You can do this using<br />

(CIW) Tools - CDF - Edit... and enter the library/cellname in the form.<br />

4. In the CDF form, change the CDF Type from Effective to Base. This will save the changes to disk.<br />

5. Select Simulation Information and click Edit.<br />

6. In the Edit Simulation Information form, choose spectre.<br />

7. In the new form, you will find componentName=subcircuit. Change subcircuit to the exact name of<br />

your subcircuit netlist. Your spice netlist must be a subcircuit. Then OK both forms.<br />

8. In the Library Manager, copy the symbol to a view called spectre. This is very important.<br />

9. Put the symbol in the schematic you want.<br />

10. In Artist, select Setup - Environment... The Environment Options form comes up.<br />

11. Select Y against Use SPICE Netlist Reader(spp). This ensures your spice subcircuit will be translated<br />

to Spectre during simulation.<br />

Note: Make sure your subcircuit file is added to the model library.<br />

10


©¤ ¨§£ ¤£ ¥ ¨¦£ ¢ ¨<br />

<br />

<br />

To limit the CPU time taken by each simulation, add the following lines to your<br />

¤ file.<br />

¤¤¤¤¤¤¤¤¤¤¨¦¨<br />

¤¤¤¤¤¦¨<br />

The first statement sets a different executable for spectre. This statement should point to spectrelimit, a script<br />

that calls spectre with a time limit. The new ¤¨ script is given below.<br />

¤¤¨ script:<br />

¤ <br />

¦¤¤¤ <br />

<br />

©<br />

¤¤<br />

Note: In this script, the limit is set to 100 seconds. Replace this with a value that allows most simulations to<br />

complete, but stop those that get stuck. Tip: To decide on the time-out limit, you can refer to the spectre.out<br />

file, usually located in the psf directory. The spectre.out file has information about the CPU time taken by a<br />

simulation. If the simulation is terminated by this method you will see a message similar to the following:<br />

¤¦¤¦©¤¤ ¤¦¤©¤¤<br />

<br />

<br />

¤¨<br />

¢ ¨ ¢ £ <br />

Yes, Spectre does support BSIM4 models. Support for BSIM4 models was first provided in version 4.4.6.070201<br />

(DFII version 4.4.6.100.29) of Spectre.<br />

For more information on BSIM4 models, refer to the Berkeley BSIM4 home page at<br />

¤¤¤¤ .<br />

¡ ©§¨§¦¤¦ ¢ ¨<br />

By default, spectre runs with a job priority of 10. To increase this priority to say 4, add the following lines<br />

to your ¤ file.<br />

¤¤¤¤¤¦¨<br />

¤¤¤¤<br />

¤¤¤¦¤¦<br />

11


To check the new priority, use:<br />

¤¤¤¤¦¤¦<br />

Because the first statement turns off the Spectre Interactive mode, you might see a small increase in the<br />

startup time before each simulation. This is because a new Spectre process is called for each run as opposed<br />

to Spectre Interactive which uses the same Spectre process.<br />

¡ ©©¨ ¥¤£§¦¦ ¥ <br />

You can use a combination of the writefinal and readic statements in the Transient Options form to run a<br />

transient analysis from where you left it.<br />

Consider a situation where you need to run a transient analysis from 0-200n and then from 200n-400n.<br />

Given that the final transient timepoint will be written to a file called ¤¤ and that the same<br />

file would be used as the initial condition for the transient analysis 200n-400n, the steps are as follows:<br />

1. In the Analog Artist window, select Analyses-Choose.<br />

2. In the Choosing Analyses form, select tran and set the stop time to 200n.<br />

3. Click on Options at the bottom of the form. The transient Options form will appear.<br />

4. In the writefinal field, enter ¤¤ and click OK.<br />

5. Run the simulation. The final transient timepoint at 200n is saved to the file ¤¤ . You<br />

can use this file as the initial conditions for the transient analysis 200n-400n.<br />

To run the analysis from 200n-400n, the steps are as follows:<br />

1. In the Transient Analysis form set the stop time to 400n.<br />

2. In the Transient Options form, set start to 200n; readic to ¤¤ and writefinal to ¤¤ .<br />

3. OK the forms and run the simulation. The simulation will run from 200n-400n ¤¤<br />

using<br />

as the initial condition file.<br />

¡ §¦¥£ £ £ <br />

For information on bsim3v3 models, refer to the Spectre Circuit Simulator Device Model Equations manual<br />

or the Berkeley web page at<br />

¤¤¤¤ .<br />

12


¡ ¦¦¥ ¢ ¨ © <br />

There is currently no 64-bit version of Spectre available.<br />

¨§¦¦££ ¥£¦£§©<br />

¡<br />

¨£ <br />

¢<br />

You can use the checkpoint-recovery feature to recover your simulation. Spectre has the ability to save<br />

checkpoint files while the analyses are running and to restart an analysis from its checkpoint file. See the<br />

Spectre Circuit Simulation Reference or the Cadence Analog Design Environment User Guide for information<br />

on how to use this feature.<br />

§ ¢ ¨ ¦ ¢ ¥£ <br />

¡<br />

¦ <br />

¦§<br />

No. Spectre will only create one output file for each simulation run. If you want to save different analysis<br />

data to different files, you need to have a separate Spectre run for each analysis.<br />

¡ §¨§©©£¦¦¥ ¦¥¦¦¥¤© ¢ ¨<br />

The number of digits of precision of a double in Spectre is 15.<br />

¡ ¢ ¨§£ ¦£ ¦£ § ¦£ <br />

Spectre has no built-in memory limit, but there are limits imposed by the operating system. The maximum<br />

file size that can be stored is 2 Gb with a 31-bit address (the 32nd bit is reserved for system memory), so<br />

you will not be able to exceed 2 Gb until 64-bit systems are available and the software is updated for use on<br />

64-bit systems.<br />

As of versions IC 4.4.3.100.91 and IC 4.4.5.100.26, Spectre creates a new file for saving more simulation<br />

data when the transient simulation data file reaches 2 Gb. Spectre will create as many new files as necessary<br />

for the data.<br />

©¦£ ¨§¦¨§¨§¦£ ¦¥¨§<br />

¡<br />

£<br />

You can save transient operating points at any time during the simulation using the infoname and infotimes<br />

transient options.<br />

13


See the Spectre Circuit Simulator User Guide and SourceLink Solution 1834641 for more information. To<br />

access this solution, type 1834641 in the Search field at the top of the main SourceLink window, select<br />

Solutions from the Select Document Type(s) scroll box, and click the Search button.<br />

¡ ©¨§ ¢ ¨¦ ¥ ¦£ <br />

To save the Spectre log file for different simulation runs, add the following line to your ¤ file:<br />

¤¤ <br />

where <br />

is the number of log files you want to save. For example, if this is set to 5, the first five simulation<br />

results will be saved in separate directories. If you go to the<br />

¤¤¤¤¤<br />

directory, you will see directories named 1, 2, 3, 4, and schematic. The directory named 1 will store the first<br />

simulation result and the directory named 2 will store the second simulation result, and so on. By using this<br />

option, you can save the spectre.out file for each simulation without overwriting it.<br />

¦ ©£ ¦ ¢ <br />

You can output Spectre data in ASCII format in any one of the following ways:<br />

• Setting an option in standalone Spectre<br />

• Performing a postprocessing job<br />

Setting an option in standalone Spectre<br />

For a specific run of standalone Spectre, edit the runSpectre file in your netlist directory and change the<br />

format option to any one of the following formats:<br />

• psfascii (Cadence parameter storage format (PSF)-ASCII)<br />

• wsfascii (Cadence waveform storage format (WSF)-ASCII)<br />

• nutascii (Nutmeg-ASCII (SPICE3 standard output))<br />

To make this a default option for all your simulations, specify the following in your .cshrc file:<br />

14


• For csh<br />

• For sh or ksh<br />

¤¨¨<br />

<br />

¨¨<br />

<br />

¨¨<br />

<br />

<br />

<br />

Performing a postprocessing job<br />

<br />

¨¨<br />

¨¦¨¨<br />

For postprocessing, you can use one of the following two ways:<br />

• Using the printvs function of the calculator<br />

1. After running the simulation, select the waveform to be converted to ASCII format in the calculator<br />

buffer.<br />

2. Click on the printvs function of the calculator and type the range of values you want to dump in<br />

the file. This will create a table that contains waveform data in ASCII.<br />

• Using OCEAN and the ocnPrint function This will print text data of the waveform from your simulation<br />

results. If you provide a filename, the data will be written into that file. Refer to "Data Access<br />

Commandsïn Chapter 7 of the OCEAN Reference Manual for more details.<br />

Consider the following example:<br />

¤¤¤¨<br />

¤¤<br />

¤¤¤<br />

¤¤¤¨<br />

©£ ¨§ £ <br />

¤<br />

<br />

To run a simulation with the last simulation result as an initial condition file, use the writefinal file as the<br />

readic file on the next simulation. For example, in simulation 1 you have<br />

¦¤©¤¤¤¨¤¤¤¤<br />

In simulation 2 you have<br />

¦¤©¤ ¤¤¤¤¤¤<br />

15


£ ¦©£ ¤¦¦© <br />

You can use a subcircuit to pass parameters to models. The following is an example of passing a parameter<br />

to a resistor model:<br />

¤ <br />

¤¤<br />

¤¤¤<br />

¤¨<br />

¤¨<br />

¨¤¨¨¤¤<br />

¤¦¤¤<br />

¦¤¤¨¨¤¤<br />

©¦<br />

¤¤<br />

The w you assign to the property of the resistor instance in the schematic will override the default value<br />

for w, which is 2u (this will also work for a design variable). If you didn’t assign any value to the resistor<br />

instance, then the model will take the default value of 2u for w. Using the inline subcircuit, each instance<br />

of the resistor component will have a unique model with unique w and etch values. For each instance of the<br />

component, the model name assigned should be the inline subcircuit name ppolyns.<br />

See spectre -h subckt for more information.<br />

©¦¨§ ¤££ ¢ ¨<br />

In IC 4.4.3 and above, you may run a standalone utility called SPP for converting Hspice commands into<br />

Spectre syntax. The syntax is<br />

¤¦¤<br />

Be aware that it will not convert model parameters and you need to check the validity of the models in<br />

Spectre.<br />

The following is a mapping of the command options that are converted:<br />

SPICE/Hspice Spectre<br />

.alter alter, altergroup<br />

.param parameters<br />

.lib library/section<br />

.data paramset<br />

.print/.plot save<br />

.meas using OCEAN functions<br />

Refer to Chapter 3, SSpice Compatibility,öf the Spectre Circuit Simulator User Guide for more information.<br />

16


¢ ¨¨©£ ¥¤£ ¨§¤££ <br />

Spectre cannot be run in distributed processing mode from the command line. However, it is possible to run<br />

distributed processing in OCEAN from UNIX.<br />

You can submit jobs from the command line by using the artbatch command to submit a job and by using<br />

the artmonitor command to monitor a job. Refer to Chapter 4, “Command Line Job Control,” in the Cadence<br />

Analog Distributed Processing Option User Guide for more information.<br />

17


Contents<br />

9.1 Can I highlight a net throughout the design hierarchy? . . . . . . . . . . . . 18<br />

9.2 Why does the Copy command overwrite the library prop.xx file? . . . . . . . 18<br />

9.3 How can I close the LSW? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

9.4 Can I add an additional pull-down menu to the layout window? . . . . . . . 19<br />

9.5 Can I set the grid snap to different values for cells in the same library? . . . 21<br />

9.6 Can I change the color of the layout editor windows or the background color<br />

of the design window? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

¡ §¤§¤§ ¤ ¨§©¤¤§¤¨§§¦¦§<br />

Yes, by using the Mark Net command, which was introduced in IC 4.4.5. It lets you visually trace a net in<br />

a layout design without having to use a schematic. It extracts the metal and via layer information from the<br />

technology file and highlights the net across multiple layers and hierarchy.<br />

To use the Mark Net command, follow these steps:<br />

1. From the design window, choose Connectivity – Mark Net.<br />

2. Click on a net.<br />

The entire net will be highlighted.<br />

Pressing the Esc key ends Mark Net and removes the highlight from the layout. The Mark Net command<br />

requires that the technology file have a layer connections definition similar to the following. (Im Hit-Kit<br />

sind diese Layer bereits definiert.)<br />

¨¤¤<br />

¤¨¤¤<br />

<br />

<br />

<br />

¤¦¤<br />

¤¤<br />

¨¤¤ <br />

§¨§ ¤££¦¦¦ ¨§¦¦ <br />

The prop.xx is the file containing library, cell, or view properties. The data inside the prop.xx file provides<br />

functionality to the cellview.<br />

18


Typically, when you copy a cellview, you would want the properties contained in the cellview’s parent or<br />

library cell to point to the new copies of the cellview. The problem is that only the designer and/or specific<br />

tool applications can truly decide if any of the library or cell properties actually need to point to the new<br />

copies of the cellview. By default, the parent properties are included with a view and the Copy Problems<br />

window appears when overwriting pre-existing property files is a possibility.<br />

To turn off the Copy Problems window and disable the copying of the library prop.xx file, set the environment<br />

variable addPropFiles in the .cdsenv file with the following line:<br />

¤¤¨¤ ¤ <br />

Because the Library Manager reads only from the .cdsenv file, this value has to be changed on disk and the<br />

Library Manager must be restarted each time you want the change to be effective. This option is available<br />

only in subversions IC 4.4.3.100.43, IC 4.4.5.100.1 (for Solaris), IC 4.4.5.100.3 (for HPUX), IC 4.4.5.100.6<br />

(for AIX) and beyond.<br />

Note: addPropFiles set to nil will also turn off copying of cell prop.xx when copying hierarchically (when<br />

copying a single cell, the cell’s prop.xx will get copied). If you want to copy cell prop.xx, turn on the update<br />

instances when you copy hierarchically.<br />

¨§ ¢ <br />

You can close the LSW by typing the following SKILL command in the CIW:<br />

<br />

To reopen it, type<br />

¤<br />

Cadence recommends that you close the LSW only if there is a specifc requirement. Once you have explicitly<br />

“unmapped” the LSW, it will not automatically open in your current session. You will have to explicitly<br />

remap it.<br />

¦ © £ ©¦¨§¦ ¤<br />

Yes. The following SKILL procedure adds and additional pull-down menu to the design window. In this<br />

example, when you invoke the Virtuoso layout editor, a menu named myMenu will be available as a pulldown<br />

menu.<br />

19


1. Create a directory called menus in your home directory.<br />

Note: The layout menu files are read in the following order:<br />

¤¤¤¤¤<br />

¤¤¤¤¨<br />

¤¤¤¤<br />

<br />

2. Create a file called based on the following sample code and place it in the <br />

directory.<br />

¤¤¤¨¤¤¤<br />

¤¤¤<br />

¤¦¤<br />

<br />

¤¤¨¤¤<br />

¤¤<br />

¤¤ ¦¤¤¤¦<br />

¦<br />

¤¤<br />

<br />

<br />

¤<br />

¤¤¤<br />

¤¤<br />

¤¤¤<br />

¤¤¤¤¤<br />

¤¤¤¤<br />

<br />

¤<br />

¤¤¤<br />

¤¤<br />

¤¤<br />

<br />

<br />

¤¤¤<br />

¤¤¤<br />

¤¤¨¤<br />

<br />

<br />

¤¤ <br />

¤¤¤¤¤<br />

¤¤¤<br />

¤<br />

<br />

¤¤ <br />

¤¤¨¤¤¤<br />

¤¤¤¤<br />

¤¨¨¤¦ ¤<br />

The above example registers the trigger deRegUserTriggers to create a menu of the viewtype maskLayout.<br />

This menu will not be available in the Virtuoso XL environment. To create a menu for Virtuoso XL, register<br />

the same trigger for maskLayoutXL:<br />

20


¤<br />

¤¨¨¤<br />

Caution<br />

Do not change the menu files in ¤¤¤¤¤<br />

¤§¤ ¦¥ ¨§©£ ¦¦<br />

Yes. The grid snap is a display setting that can be set to a number of places. The display settings ordered by<br />

precedence, are<br />

• Cellview<br />

• Library<br />

• Tech Library<br />

• File (default is ¤ )<br />

Settings which have been saved to the cellview take precedence over all others.<br />

To change the value of the grid snap,<br />

1. In the design window, choose Options – Display. The Display Options window appears.<br />

2. Under Grid Controls, specify the desired values for Minor Spacing, Major Spacing, X Snap Spacing,<br />

and Y Snap Spacing.<br />

3. Click Cellview.<br />

4. Click Save To and OK.<br />

This saves your settings to that speci.c cellview. Note: Additional cells in your library can be set to different<br />

values by using the same steps. To change the value of all other cellviews in the library, save the display<br />

setting to the ¤ file.<br />

§¨§ ¦¥¨§ ¤ ¨§¦¤¤ <br />

<br />

¦¥¨§<br />

Yes, specifying the appropriate X resource variables value can change the color of DFII windows, menus,<br />

layout editor, and the drag box color for DFII. Following is the list of resources that need to be defined in<br />

the ¤ file in your home directory:<br />

<br />

Color of the background for everything except graphics windows<br />

21


Color of the selection box you draw around objects; the zoom box you draw to zoom in<br />

or out; the outlines of objects you move, copy, or reshape; and the outlines of edges you stretch. ¤¨<br />

controls the highlight that appears before you select objects. Objects and edges are highlighted as you move<br />

the cursor over them.<br />

<br />

<br />

Color of the design window background<br />

Color of the menu and listbox text and selected radio and toggle buttons<br />

Use the existing ¤ in your home directory to change the colors in the DFII environment or<br />

use the sample ¤ file in<br />

¤¤¤¤¤<br />

to create a ¤ home file.<br />

To modify your ¤ file,<br />

1. In the ¤ file in your home directory, add the variable name and the variable setting. For<br />

example:<br />

¤¤¤¤<br />

2. Save ¤ the file.<br />

3. Restart xserver settings as follows.<br />

¤¤<br />

4. Start the DFII software by typing the executable you want to run. For example:<br />

¤<br />

Note: These changes will affect all DFII graphical windows, both the composer and the layout editor.<br />

Currently, you cannot have a different color background for two editors. Also, a color other than black can<br />

make data difficult to read. Refer to “Setting Up the .Xdefaults File” in Chapter 4 of the Virtuoso Layout<br />

Editor User Guide for more details.<br />

22


Hot-Key Funktion<br />

ˆa Alles selektieren<br />

F4 Objekt ganz/an der Kante selektieren (Full/Partial)<br />

F3 Command Options zeigen<br />

c Kopieren<br />

C Objekt beschneiden (Chop)<br />

d Einzelnes Objekt de-selektieren<br />

D Rechteckiger Bereich de-selektieren<br />

ˆd Alles de-selektieren<br />

v Polygone gruppieren/Gruppierung aufheben<br />

i Instanz (Bauteil aus Bibliothek) erzeugen<br />

l Label oder Leitungsname vergeben und plazieren<br />

m Objekt verschieben<br />

M Polygone verbinden<br />

q Objekteigenschaften editieren<br />

Q Eigenschaften der Zelle editieren<br />

r Rechteck erzeugen<br />

R Ein Rechteck umformen<br />

s Objekt strecken<br />

u Undo<br />

U Redo<br />

x Untergeordnete Instanz “In-Place” editieren! Vorsicht!<br />

o Durchkontaktierung erzeugen und plazieren<br />

p Pfad erzeugen<br />

P Polygon erzeugen<br />

ˆp Pin setzen<br />

Del Löschen<br />

Tabelle 2: Editieren in Virtuoso<br />

23


24<br />

Hot-Key Funktion<br />

b Hochsteigen in der Hierarchie<br />

B Eine Ebene hochsteigen in der Hierarchie<br />

X Eine Ebene absteigen in der Hierarchie, Edit-Mode<br />

ˆr Fensterinhalt neu zeichnen<br />

T Hierarchie als Baum anzeigen lassen<br />

ˆt An selektierte Polygone heranzoomen<br />

g Gravity ein- oder ausschalten<br />

f Fit<br />

ˆg Ans Grid heranzoomen<br />

Maus R Rechteckiger Bereich vergrößern oder selektiertes Objekt drehen<br />

Z Zoom out by 2<br />

ˆz Zoom in by 2<br />

n Snap-Modus diagonal<br />

N Snap-Modus orthogonal<br />

ˆn Snap-Modus L90XFirst<br />

Tabelle 3: Navigation in Virtuoso<br />

Hot-Key Funktion<br />

k Lineal plazieren<br />

K Alle Lineale löschen<br />

e Anzeige-Optionen editieren<br />

E Editor-Optionen editieren<br />

Esc Aktiviertes Kommando abbrechen<br />

ˆv Eingabe-Focus auf CIW setzen<br />

ˆw Fenster schließen<br />

F2 Save<br />

F4 Dialogfenster nach vorne holen<br />

F6 Fensterinhalt neu zeichnen<br />

Tabelle 4: Sonstige Funktionen in Virtuoso


Hot-Key Schematics Symbol Funktion<br />

ˆa Alles selektieren<br />

B Eine Ebene hochsteigen in der Hierarchie<br />

c Kopieren<br />

d Einzelnes Objekt de-selektieren<br />

D Rechteckiger Bereich de-selektieren<br />

ˆd Alles de-selektieren<br />

ˆx Eine Ebene absteigen in der Hierarchie, view-only<br />

X Eine Ebene absteigen in der Hierarchie, Edit-Mode<br />

x Untergeordnete Instanz “In-Place” editieren! Vorsicht!<br />

f Fit<br />

ˆf Selektions-Filter einstellen<br />

g Marker finden<br />

G Marker finden<br />

ˆg Marker löschen<br />

i Instanz aus Bibliothek holen und plazieren<br />

j Objekt drehen<br />

J Zu plazierende Instanz vertikal spiegeln<br />

ˆj Zu plazierende Instanz horizontal spiegeln<br />

l Label oder Leitungsname vergeben und plazieren<br />

L Notiz erstellen und plazieren<br />

ˆp Pin setzen<br />

q Objekteigenschaften editieren<br />

Q Eigenschaften der Zelle editieren<br />

s Objekt strecken<br />

S Save<br />

u Undo<br />

U Redo<br />

ˆv Eingabe-Focus auf CIW setzen<br />

w Einzelne Leitung verlegen<br />

W Bus verlegen<br />

ˆw Fenster schließen<br />

z Rechteckiger Bereich vergrößern<br />

Esc Aktiviertes Kommando abbrechen<br />

Del Löschen<br />

F6 Fensterinhalt neu zeichnen<br />

F3 Command Options zeigen<br />

Tabelle 5: Hot-Keys im Schaltplan- und Symbol-Editor<br />

25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!