Re: commands in spectre mode.

"a r" <[email protected]>
Newsgroups gmane.comp.gnu.gnucap.devel
Message-ID <[email protected]>
On Dec 1, 2007 6:51 AM, al davis <[email protected]> wrote:
> On Friday 30 November 2007, Dan McMahill wrote:
> > > 1. When a command is prefixed with an instance name, what
> > > to do with the name?
> >
> > Spectre uses it to name the results files.  For example
> >
> > tran1 tran start=0 stop=1u ....
> > tran2 tran start=1u stop=2u
> > mysim ac ....
> >
> > will produce results files called "tran1.tran", "tran2.tran",
> > "mysim.ac".
>
> Equivalent to gnucap:
> tran 0 1u >tran1.tran

It is not only that (see my previous mail). For example transient
analysis may include (out of my head, can be wrong):

my_tran tran ... acnames=[my_ac] actimes=[1e-6] ...
my_alter alter param=>my_param> value=<new_value>
my_ac ac ...

The simulation flow is:
1. my_tran
2. my_ac (interestingly it outputs data not to the my_ac database but
rather to the my_tran_something as a sweep with actimes being a sweep
variable).
3. my_alter

Note that referencing may disturb the order of evaluation (my_alter
was not called before my_ac).

> > commands are in fact instances just like elements (except
> > their order of appearance matters)
>
> Like gnucap.

I am not perfectly sure now but command may be nested in case of sweep analyses.

> > > 2. Are commands sequential, like normal gnucap commands, or
> > > like mixed batch of cards, like spice?
> >
> > sequential but the whole topology of the circuit is read in
> > first.  i.e. you can put your analysis commands before the
> > circuit netlist if you  want.
>
> Good, except for the "but" part.  I regularly use the gnucap
> feature to partly build a circuit, simulate, build more ...
> unbuild some, simulate ...

For now, I would settle for compatibility with netlists produced by
GUI tools. They AFAIK produce sequential netlists.

> What about interactive operation? .. typing in commands and
> components from the keyboard?

I have never used it.

> > > 3. How to set up probes?
> >
> > you'll find stuff like this:
> >
> > finalTimeOP info what=oppoint where=rawfile
> > modelParameter info what=models where=rawfile
> > element info what=inst where=rawfile
> > outputParameter info what=output where=rawfile
> > designParamVals info what=parameters where=rawfile
> > saveOptions options save=allpub
> >
> > These statements control things like what is written out and
> > what signals are saved.
>
> Can you explain?  I don't understand.

AFAIK saveOptions decides which variables should be saved during
analyses that were specified earlier.

Other commands output design information data as key->value pairs to
the output database. This is pretty useful as both simulation data
and, say, model or instance design parameters or DC OP results can be
later accessed using a single API. It means you can write a script for
postprocessing the results and it will have access to the
presimulation settings as well.

The database itself has a hierarchical organisation and stores
key->value pairs. Key can be anything you want, a simulation command
name, an instance name, a net name etc. The values can be:
- Another table. If you access "my_tran-tran" you will get another
table with top level instance and net names.
- Scalars. Can be a waveform, but also a single measurement (like OP
for a IDS current of an instance) or a text string (simulation title
etc).
- Vectors. Just a sequence of scalars.

Additionaly, from the API level there is no difference between
accessing a waveform and accessing a table produced by a sweep
analysis that contains scalar values. They are handled differently in
the database but later unified by the data access library.

> > This will give results files called mysims1.ac1,
> > mysims1.tran1, mysims2.ac1, mysims2.tran1
>
> or is it "mysims1.ac1.ac" ?

Probably mysims1.ac1-ac. Analysis names have the analysis types
encoded in their names.

> > // include a section from a file
> > include "/some/model/file" section=<mysection>
>
> How are sections marked?  By a section do you mean a subckt?

By default, Spectre includes files in Spice format:

include "my_lib.lib" section=lib1
$ cat my_lib.lib
.lib lib1
...
.endl lib1

.lib lib2
...
.endl lib2

I am not sure about spectre library format now. It is only being used
if the library file name has an extension ".scs" or it explicitly
switches to spectre syntax mode.

> Need to finish expression evaluation.  I have code, just need to
> move it.

That would be great. Does it allows constructing expressions form
design variables (like Spectre) or also from the circuit (node voltags
etc) variables (like Hspice)? The latter is a great tool for
behavioural modeling.

-r.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.