Home > Community > Forums > Custom IC Design > spectre - saving by specific subcircuit

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 spectre - saving by specific subcircuit 

Last post Mon, Feb 25 2013 8:48 AM by Andrew Beckett. 10 replies.
Started by swdesigner 28 Jul 2011 12:12 AM. Topic has 10 replies and 5713 views
Page 1 of 1 (11 items)
Sort Posts:
  • Thu, Jul 28 2011 12:12 AM

    spectre - saving by specific subcircuit Reply

    Is it possible to tell spectre to save all nodes or terminal currents within a certain subckt? It's trivial in Hspice, you could do

     

    save all Xtop.Xsub.*

     

    I believe there's even a way to use the wildcards to get it to only do the top-level within that subcircuit, but I don't recall it..

     

    Any ideas? How would it be done through the ADE, without messing with the netlist?

    • Post Points: 35
  • Thu, Jul 28 2011 1:07 AM

    • Marc Heise
    • Top 100 Contributor
    • Joined on Mon, May 4 2009
    • Feldkirchen, Bavaria
    • Posts 77
    • Points 1,310
    Re: spectre - saving by specific subcircuit Reply

     Hi,

    a quick 

    >spectre -h save

    will reveal that it is trivial in spectre as well:

    Examples of pattern matching:

    save x*.*1 depth=3
    saves the voltages of all nodes from level 2 to level 3 whose name starts with
    `x' and ends in `1', eg x1.n1, x1.x2.x3 but not x1.x2.x3.x4

    save x*.*1 sigtype=subckt
    saves all terminal currents of subcircuits from level 2 and above whose name
    starts with `x' and ends in `1', eg x1.x21:2, x1.x2.x31:3

    save *:c devtype=bjt
    saves all collector currents

    save * subckt=inv
    saves the voltages of all nodes in the instances of the subcircuit `inv', eg
    X1.n1 for an instance X1 of inv but not net091 at the top-level

    save * exclude=[X1* X2*]
    saves the voltages of all nodes excluding the ones whose names start with `X1'
    or `X2', eg net091, X0.res3.n2 but not X21.res3.n2.

     

    Regards,

    Marc

    • Post Points: 5
  • Thu, Jul 28 2011 1:10 AM

    Re: spectre - saving by specific subcircuit Reply

    Spectre has similar syntax - see "spectre -h save". So it's trivial in spectre too. You have to do it via an include file though in ADE. The reason is that the wildcards are based on the netlist names, rather than the schematic names - although I believe there's an enhancement request to add support for this on the UI.

    You can (on the Options->Save All) choose to save voltages using "lvlpub" and then specify nestlvl - which means that it will save the top N levels of hierarchy. But if you only want to save lower levels, the best approach would be to have an include (included via Setup->Model Libraries, say) with a save statement in.

    Best Regards,

    Andrew

     

    • Post Points: 35
  • Thu, Jul 28 2011 1:17 AM

    Re: spectre - saving by specific subcircuit Reply

    Thanks Gentlemen,

             That's what I was hoping to hear.. this will help me a lot.

     

    Thanks!

    • Post Points: 5
  • Wed, Aug 17 2011 11:46 PM

    Re: spectre - saving by specific subcircuit Reply

    How about AMS?

    I find that the best way with spectre and the ADE is to put the full pathname of the include file in the Defintion files field under Simulation Files. (Model Libraries was suggested, but I think this is more meaningful).

    Could someone post an example of save commands for AMS and the best location to specify the file for inclusion (which field in ADE to use)?

    Thanks!

    • Post Points: 5
  • Thu, Aug 23 2012 10:45 AM

    • slim5
    • Not Ranked
    • Joined on Thu, Sep 23 2010
    • Posts 16
    • Points 305
    Re: spectre - saving by specific subcircuit Reply

    Hi,

      Referring to the use save-statement to save operating points for specify transistors located within a hierarchy. I had been using the include statement method (e.g., create a file and add the file via Setup->Model Libraries in Analog Design Environment window) but ran into problem with the use of wildcard.

      In my test bench, I have a circuit block that is used five times within a hierarchy and they are name IDBA. I want to save the operating condition for a transition (P18) within the circuit block and I included this statement "save DUT.ILNA.IDBA\.P18:oppoint" hoping with the intention of having spectre save the operating points for the transistos P18 in all the five copies.

      Unfortunately, the operating points for all five transistors were not saved and executing the command "OP("/IDUT.ILNA.IDBA.P18" "gm") returned nil. If I changed the save-statement to "save DUT.ILNA.IDBA\.P18:oppoint" then the OP command would return a number. Do I have to have a separate save-statement for each instance of IDBA? Or I have to use another symbol as a wild card?

      Thanks!

     

    Regards,

    Su

     

    • Post Points: 20
  • Wed, Jan 2 2013 5:16 AM

    Re: spectre - saving by specific subcircuit Reply

    If the subckt (cell) name containing P18 is (say) "DBA" then you could do:

    save P18:oppoint subckt=DBA sigtype=dev

    then this would save P18 in all instances of DBA (i don't know what your cell is called)..

    Alternatively:

    save *.IDBA.P18:oppoint sigtype=dev

    Would do it.

    Andrew

    • Post Points: 20
  • Mon, Feb 25 2013 6:44 AM

    • P K
    • Not Ranked
    • Joined on Mon, Jun 11 2012
    • Posts 2
    • Points 40
    Re: spectre - saving by specific subcircuit Reply

     Hi Andrew,

    How can we make spectre to save all the supply currents of all the blocks upto a certail depth of hierarchy?

    The below save fail(I have useterms=name option set)

    save I*.*:VDD* sigtype=all

    save VDD*:currents sigtype=subckt

    • Post Points: 20
  • Mon, Feb 25 2013 6:55 AM

    Re: spectre - saving by specific subcircuit Reply

    save *:VDD sigtype=subckt depth=2

    Regards,

    Andrew.

    • Post Points: 20
  • Mon, Feb 25 2013 8:09 AM

    • P K
    • Not Ranked
    • Joined on Mon, Jun 11 2012
    • Posts 2
    • Points 40
    Re: spectre - saving by specific subcircuit Reply

     Thanks it works for all terminals named VDD.

    However, if i specify the following to match all my VDD terminals of the subckt(VDDA, VDDD,VDD_1P2V, and so on), the simulator exits with a segmentation fault(SPECTRE-18)

    save *:VDD* sigtype=subckt depth=2

     

    • Post Points: 20
  • Mon, Feb 25 2013 8:48 AM

    Re: spectre - saving by specific subcircuit Reply

    I'm not sure that having wildcards on the terminal name is supported, but it shouldn't crash regardless. I've filed CCR 1109175 to address this (and hopefully to support wildcards on the terminal name side since there's a clear need for this in this case).

    Regards,

    Andrew.

    • Post Points: 5
Page 1 of 1 (11 items)
Sort Posts:
Started by swdesigner at 28 Jul 2011 12:12 AM. Topic has 10 replies.