Home > Community > Forums > Custom IC Design > .altergroup usage question

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: *

 .altergroup usage question 

Last post Thu, Nov 15 2012 6:15 AM by GaneshShamnur. 1 replies.
Started by GaneshShamnur 05 Nov 2012 05:11 AM. Topic has 1 replies and 861 views
Page 1 of 1 (2 items)
Sort Posts:
  • Mon, Nov 5 2012 5:11 AM

    • GaneshShamnur
    • Not Ranked
    • Joined on Mon, Oct 10 2011
    • BANGALORE, Karnataka
    • Posts 12
    • Points 150
    .altergroup usage question Reply

    Hi All,

    I want to use altergroup in the below scenario of a spectre netlist.

    ------------------------------------------------------------

    <netlist_section>

    ...

    I1 (a1) MyCell1
    I0 (a1 0 0 0 0 0) MyCell2

    tran1 tran stop=10n write="spectre.ic" writefinal="spectre.fc" \
        annotate=status maxiters=5

    ...

    altTest altergroup {

    // I0 (a1 0 0 0 0 0) MyCell2 ( Works well simulating 2nd analysis tran2!)
     I0 (0 a1 0 0 0 0) MyCell2  //(This fails !)
    }

    tran2 tran stop=10n write="spectre.ic" writefinal="spectre.fc" \
        annotate=status maxiters=5

    ------------------------------------------------------------

    My intension in trying the above scenario is to change the netlist connection for I0 from 1st-pin[i.e I0(a1 0 0 0 0)] to 2nd-pin[i.e I0( 0 a1  0 0 0)] 

    Spectre errors out complaining about a connection happening to different node in comparison to earlier definition !

     

    I have also tried another option where the whole subcircuit for I1 instance was redefined in altergroup. This failed too !

    Any ideas on how to achieve my objective ?

    Thanks,
    Ganesh
     

    • Post Points: 5
  • Thu, Nov 15 2012 6:15 AM

    • GaneshShamnur
    • Not Ranked
    • Joined on Mon, Oct 10 2011
    • BANGALORE, Karnataka
    • Posts 12
    • Points 150
    Re: .altergroup usage question Reply

    Hi All,

    I figured out solution to my problem although, it wasn't achievable via altergroup since Spectre-Altergroup( current latest revision as of this writing) doesn't natively support netlist topology modifications.

    Below were two solutions:

    1)  Refer to the link to replicate the suggested method:http://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;solutionNumber=11002322

    2) Include some parameterized components ( e.g: switch/resistor) and control their parameter values in altergroup. Thereby select an appropriate connection.

    e.g: The above problem was solved for first two pins with below netlist, assuming the other 3 pins were grounded. If we were select amongst the other three pins aswell, we need additional 3 pins.

     ------------------------------------------------------------

    <netlist_section>

    parameters sw1=1 sw2=0

    ...

    I1 (a1) MyCell1

    I2 (a1,out1) MySwitch1 // This switch is ON only when sw1=1 and OFF when sw1=0

    I3 (a1,out2) MySwitch2 // This switch is ON only when sw2=1 and OFF when sw2=0

     

    I0 (out1 out2 0 0 0) MyCell2

    tran1 tran stop=10n write="spectre.ic" writefinal="spectre.fc" \

        annotate=status maxiters=5

    ...

    altTest altergroup {

    parameters sw1 = 0 sw2 = 1

    I0 (out1 out2 0 0 0) MyCell2 

    }

    tran2 tran stop=10n write="spectre.ic" writefinal="spectre.fc" \

        annotate=status maxiters=5

    ------------------------------------------------------------

     Both have pros and cons to each method.

    1st method would need netlist-modification and oceanscript creation. But the flow can be automated.

    2nd method is additional components insertion into design. But this flow has cleaner netlisting mechanism.

     

    Regards,

    Ganesh 

    • Post Points: 5
Page 1 of 1 (2 items)
Sort Posts:
Started by GaneshShamnur at 05 Nov 2012 05:11 AM. Topic has 1 replies.