Spectre problems with PWL in stimulus files

S

ShamShoon

Guest
I think I came across what I believe is a bug in Cadence icfb. I am
using version 5.0.33 and I need to simulate in Spectre a large number
of automatically generated patterns. I hence opted for using pwl and
stimuli files. Now the funny thing is that when I create a file with
this line in it :

V1 (N1 0) vsource type=pwl wave=[0 0 1n 3.3 4n 0]

and then enter the file name in Setup/Simulation Files/Stimulus file in
the Analog Design Environment and I try creating the netlist I get this
error:

Invalid command character following '[' in: '[ 0 0 1n 3.3 4n 0]'.

si: simin did not complete successfully

now if I go to the graphical interface, create a pwl stimulus and then
create the netlist, then the netlist is created successfully and it
includes a file name _graphical_stimuli.scs.

Looking at the contents of this file, it is identical to what I've
already tried to feed to the simulator.

Even copying that same exact file to a different directory and trying
including it produces an error. So after many trials and errors it
looks like including the file in the "Stimulus file" dialog box, runs
the file through a parser that produces that error. The only solution I
figured out to this problem is :

Creating my stimulus files
Creating the netlist without any stimulus
Manually adding an include to the netlist to include my stimulus file
Run the Simulation

I don't think I'm doing anything wrong since I'm doing the exact same
steps and syntax described in the documentation and automatically
created by the graphical stimulus interface.

Any help appreciated and I wonder if anybody can reproduce this
problem.

Regards,
 
On 6 Dec 2005 18:42:31 -0800, "ShamShoon" <mhs000@gmail.com> wrote:

I think I came across what I believe is a bug in Cadence icfb. I am
using version 5.0.33 and I need to simulate in Spectre a large number
of automatically generated patterns. I hence opted for using pwl and
stimuli files. Now the funny thing is that when I create a file with
this line in it :

V1 (N1 0) vsource type=pwl wave=[0 0 1n 3.3 4n 0]

and then enter the file name in Setup/Simulation Files/Stimulus file in
the Analog Design Environment and I try creating the netlist I get this
error:

Invalid command character following '[' in: '[ 0 0 1n 3.3 4n 0]'.

si: simin did not complete successfully

now if I go to the graphical interface, create a pwl stimulus and then
create the netlist, then the netlist is created successfully and it
includes a file name _graphical_stimuli.scs.

Looking at the contents of this file, it is identical to what I've
already tried to feed to the simulator.

Even copying that same exact file to a different directory and trying
including it produces an error. So after many trials and errors it
looks like including the file in the "Stimulus file" dialog box, runs
the file through a parser that produces that error. The only solution I
figured out to this problem is :

Creating my stimulus files
Creating the netlist without any stimulus
Manually adding an include to the netlist to include my stimulus file
Run the Simulation

I don't think I'm doing anything wrong since I'm doing the exact same
steps and syntax described in the documentation and automatically
created by the graphical stimulus interface.

Any help appreciated and I wonder if anybody can reproduce this
problem.

Regards,
It's not a bug so much as a "feature" ;-)

It's caused by the fact that the stimulus file is processed by OSS to allow
substitution of schematic names. For example, if you do something like:

I0 ([#/myNode] 0) resistor r=1k

it will substitute the [#/myNode] with whatever the schematic name myNode
ended up in the netlist. In this case it was probably myNode, but because of
various mapping, potentially any name could get mapped (especially because of
the fact that in IC5141 clashing net, instance, param names get mapped - see
previous posts). To be honest, this mapping capability was more important with
flat netlisters, but it's still useful now and again.

There are other mappings that can be done - all are surrounded with []. So
you're hitting the fact that this syntax is used both by the substitution
process (which is simulator independent) and spectre.

The solution is to do:

V1 (N1 0) vsource type=pwl wave=\[ 0 0 1n 3.3 4n 0]

(I think - I've not tested this - but I did find it in solution 11062046 which
gave the solution without the above explanation for why this happens).
Also, escaping the vector is what I would have expected to work.

Regards,

Andrew.
 
Thanks! It works! I think it's a bug in the documentation then! :)
 

Welcome to EDABoard.com

Sponsor

Back
Top