Spectre problems with PWL in stimulus files

Discussion in 'Cadence' started by ShamShoon, Dec 7, 2005.

  1. ShamShoon

    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,
     
    ShamShoon, Dec 7, 2005
    #1
  2. 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.
     
    Andrew Beckett, Dec 7, 2005
    #2
  3. ShamShoon

    ShamShoon Guest

    Thanks! It works! I think it's a bug in the documentation then! :)
     
    ShamShoon, Dec 12, 2005
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.