The SPEF Parser

This document describes the function of the software unit that reads SPEF files and stores the extracted parasitics in the hierarchical database ZDB for later processing.

Introduction

In addition of using the SpiceVision PRO GUI to read SPEF files either the stand alone binary spef2zdb or the Tcl command zspef can be used.

The spef2zdb binary reads the given SPEF file and creates a binfile containing the connectivity and parasitics of the input file:

spef2zdb -o binfile.zdb <OPTIONS> <FILE.SPEF>

The zspef Tcl command reads the given SPEF file and returns the created in-memory database:

set db [zspef <OPTIONS> <FILE.SPEF>]

The SPEF parser can also add parasitic information to an already existing database. This can be controlled by the -matchParasitic option.

The Tcl command is available in the Console window of the SpiceVision PRO GUI .

This document describes the usage of this flow.

Options

Option Parameters Description

-analyzeCoupling

on|off

Analyze spf coupling ports.
(The default value for this option is off.)

-argsFromFile

<file>

Read cmdline arguments from file.

-autoExpand

on|off

Remove hierarchy if subckt has one device.
(The default value for this option is off.)

-autoExpand0

on|off

Remove hierarchy if subckt has no device.
(The default value for this option is off.)

-binlib

<file>

Open this binfile as a precompiled library.

-breakOnError | -breakOnErr

on|off

Stop on errors during parsing.
(The default value for this option is off.)

-connectByName

<netnamepattern>

Connect matching net by name, i.e. don’t route it.

-createdTop

<name>

Name of the created top sub-circuit.

-createHier

<sep>

Create hierarchy from flat instance names. Split the instance names at the given hierarchy separator. If the given hierarchy separator character is an empty string then the hierarchy separator character is guessed.

-debugFlag

<flag>

Enable a specific debug flag.

-definedevice

<subckt> <type> <portmappings>

Define a subckt to be used as a device. In contrast to -subckt2dev here the port mapping defines the function of the ports.The port mappings consist of a comma separated list of pairs with the primitive port name and the function separated with an equal sign. E.g. -definedevice "nmos_macro" "NMOS" "s=SOURCE,b=BULK,d=DRAIN,g=GATE".

-dontCut

Don’t cut long filenames in messages.

-expand

<circuit>

Expand subckt after parser has finished.

-fillParasitic

<pat>

Fill content of parasitic net.

-forceSymlib

Overwrite existing symbols with the symbols from the given symbol library files (option -symlib).

-ground

<node>

Define global ground node (this option can be repeated multiple times).

-groupMultiFinger

<sep>

Group instances with same basename before given separator.

-guessBus

<open> <close>

Guess buses based on net and port names with a bit subscript enclosed in the given 'open' and 'close' characters.

-guessInstArray

<open> <close>

Guess instance arrays based on instance names with a bit subscript enclosed in the given 'open' and 'close' characters.

-guessMacroModels

on|off

Guess macro model devices.
(The default value for this option is off.)

-guessPower

on|off

Guess power/ground nets connected to bulks.
(The default value for this option is off.)

-headerOnly

Read only spf header

-help | -h

Print a help text with a short description of each option.

-icomment

on|off

Add comments to instances.
(The default value for this option is off.)

-ignoreCase

on|off

Case-insensitive parser.
(The default value for this option is on.)

-info

None|Error|Warning|Verbose|Debug

Level of verbosity for issued messages.
(The default value for this option is Error.)
(This option is only available for the spef2zdb executable.)

-inlineParasitic

on|off

Merge the content of parasitic modules into the design.
(The default value for this option is off.)

-into

<dbname>

Compile the given files into an already existing database.
(This option is only available for the zspef command.)

-layoutcomment

on|off

Add attributes for layout coordinates.
(The default value for this option is off.)

-logAppend

Append to logfile.

-logfile

<file>

Generate log file.
(This option is only available for the spef2zdb executable.)

-matchParasitic

on|off

Match to an existing design.
(The default value for this option is off.)

-mergeParallel

on|off

Merge parallel transistors into one.
(The default value for this option is off.)

-mergeParallelCap

on|off

Merge parallel capacitors into one.
(The default value for this option is off.)

-mergeParallelDiode

on|off

Merge parallel diodes into one.
(The default value for this option is off.)

-mergeParallelEquality

<variation>

Variation to treat device values as equal for the merge parallel options (enter a value between 0.0 and 1.0).
(The default value for this option is 0.10.)

-mergeParallelInst

<cell> <attrs> <eqfunc> <grpfunc>

Merge parallel instances of matching cells. Details are described here.

-mergeParallelRes

on|off

Merge parallel resistors into one.
(The default value for this option is off.)

-mergeSerial

on|off

Merge serial transistors into one.
(The default value for this option is off.)

-mergeSerialCap

on|off

Merge serial capacitors into one.
(The default value for this option is off.)

-mergeSerialRes

on|off

Merge serial resistors into one.
(The default value for this option is off.)

-model

<model> <type>

Define a model.

-multi

<M>

Name of the multiplier attribute for parallel devices (default is "M").

-nologo

Print no greeting message.

-o | -out

<file>

Name of the zdb output binfile.
(This option is only available for the spef2zdb executable.)

-parasiticPrefixPath

<path>

Prepend given path while matching design.

-power

<node>

Define global power node (this option can be repeated multiple times).

-prog

Print progress information.
(This option is only available for the spef2zdb executable.)

-range

<begin> <end>

Define a range in the file to read.

-recognize

on|off

Recognize transistors that form a gate.
(The default value for this option is off.)

-recognizeBox

on|off

Create box for non recognized groups.
(The default value for this option is off.)

-recognizeCreateSupply

on|off

Create supply ports on recognized gates.
(The default value for this option is off.)

-recognizeFold

nofold|fold|autofold|noflat

Fold recognized gates using one of the following methods: Use 'nofold' to disable folding, use 'fold' to fold all recognized gates, use 'autofold' to fold only recognized gates with equal attribute values and use 'noflat' to fold all recognized gates but do not create flat attributes.
(The default value for this option is autofold.)

-recognizeNoPar

on|off

Do not recognize gates with transistors in parallel paths.
(The default value for this option is off.)

-recognizeNoTran

on|off

Do not recognize transfer gates.
(The default value for this option is off.)

-removeCap

on|off

Remove capacitors connected to only one net.
(The default value for this option is off.)

-removeEmptyModule

on|off

Remove empty modules.
(The default value for this option is off.)

-removeLead

chars

Remove leading chars from inst names.

-removeMos

off|on|useless

Remove spurious MOS transistors (e.g. if the gate pin is connected to power/ground, if all pins are dangling or shortened, etc.). on mode is more aggressive, while the useless mode is more conservative and produces warning messages instead of removing transistors in some cases.
(The default value for this option is off.)

-removeRes

on|off

Remove resistors connected to only one net.
(The default value for this option is off.)

-renameSuffix

<suffix>

Suffix for renaming duplicate cells.

-resolveDuplicates

on|off

Resolve duplicate cells. If "off" all duplicate cells are renamed.
(The default value for this option is on.)

-spos

on|off

Create source code references.
(The default value for this option is on.)

-subckt2dev

<subckt> <type>

Define a subckt to be used as a device. Ports must match the sequence defined for the function. E.g. -subckt2dev "nmos_macro" "NMOS".

-suppress

<type> <pattern>

Suppress messages which match pattern.
(This option is only available for the spef2zdb executable.)

-sym2zdb

Preload symbol library file(s) given with the -symlib option.

-symlib

<symlib>

Specify a symbol library file.

-time

Print CPU time consumption (requires enabled progress updates).
(This option is only available for the spef2zdb executable.)

-validate

Validate DB before creating the zdb output file.

-wait_for_license | -waitForLicense

<sec>

Wait 'sec' seconds for a license. If the value is -1 then the started tool will not wait for the next free license. Use a value of 0 to wait forever.
(The default value for this option is -1.)
(This option is only available for the spef2zdb executable.)