• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Cadence ADE Simulating .spi of Standard Lib using Spect...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 125
  • Views 18052
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Cadence ADE Simulating .spi of Standard Lib using Spectre

tstoll
tstoll over 13 years ago

 Hi -

I have a PDK in which I have all standard cells (inverters, nands,etc.) defned in one common .spi file.
I have standardlib symbols and used them within my analogic schematic for simulation.

I defined on the toplevel global vdd!, gnd!, and also used CDF (VDD netSet vdd!, and VSS netSet gnd!) to be sure that the instantiated inverter has its correct supply and ground voltage.

The .spi standard Lib file I included via the Simulation Files Setup menue (Stimulus File).

It is netlisting and simulating.. but the inverter is not inverting.. the output follows exactly the input.

Any hint on that?

I do not know if that has something to do with it, but at the beginning, I see in the simulation log file following message:

" Unable to compile ahdlcmi library, see input.ahdlSimDB..
" Could not open ahdlcmi module library input.ahdlSimDB.."

I appreciate every comment !!

Cheers,
tOM

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    Bit hard to tell without seeing it, but are the pins connected in the right order? In other words, check the instantiation in the netlist produced by ADE against the order in the .SPI definition.

    The ahdlcmi messages are unlikely to be anything to do with this.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tstoll
    tstoll over 13 years ago

     Hi Andrew -

     There are just 2 pins in the .spi file:

      .SUBCKT INV1 Y A

    *|GROUND_NET VSS

    *|NET Y 0.000582552PF
    Cg1 Y VSS 5.82552e-16

    *|NET A 0.000545819PF
    Cg2 A VSS 5.45819e-16

    *
    * Instance Section
    *
    MM2 Y A VSS VSS NCH_TN ad=0.294p as=0.608p l=0.18u pd=2.18u ps=4.53u w=0.6u
    MM1 Y A VDD VDD PCH_TN ad=0.445p as=0.83p l=0.18u pd=2.79u ps=5.59u w=0.9u

    .ENDS

     

     In the netlist of ADE it looks like:

     I37 (net026 net023) INVX1

     

    --> if I give it a CDF parameter for VDD and VSS.. where does that info stand in the netlist?

     

    tOM

     

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago

    So effectively VDD and VSS are global connections into the subckt in the included file. However, they would not be global in the resulting netlist from ADE. You might need to have an include file with:

    global VDD VSS
    vddcon (VDD vdd!) vsource dc=0
    vsscon (VSS vss!) vsource dc=0

    to ensure everything gets connected together?

    Andrew.

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tstoll
    tstoll over 13 years ago

     Hi Andrew - thx a lot for the fast response - even on a Sunday !!

    Would that mean I have to add this file by hand? 

     

    tOM

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago
    Yes, and reference it via Setup->Model Libraries in ADE.

    Alternatively change the included .spi file to substitute VDD to be vdd! etc (ie match the global names used in the netlist produced by ADE)

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tstoll
    tstoll over 13 years ago

     Hi Andrew -

    could that be saved in the .cdsinit somehow? 

    Like: 

    envSetVal("spectre.outputs" "currents" 'string "all")

     Only drawback I see.. now I cannot give different parts of the digital part different VDDs, or? 

     (I am going to try that out now and let you know asap)

    tOM

     

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tstoll
    tstoll over 13 years ago

     Hi Andrew -

    I created now a file:

     globals.scs 

    with following lines:

    global VDD VSS
    vddcon (VDD vdd!) vsource dc=0
    vsscon (VSS vss!) vsource dc=0

     

    I still have a vdd! symbol and a vss! and gnd! definition in the toplevel..

    When trying to simulate I get the fatal error :

    "The following branches from a loop of rigid branches (shorts) when added to the circuit:

      vddcon:p (from 0 to vdd!)!

     

    Any idea?

     

    tOM

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 13 years ago
    You must have another source in parallel somehow. Hard to know since I can't see precisely what you've done.

    Coming back to your earlier point - if the included netlist relies on global connections, you can't make it non-global later. If the supply connections to the standard cells were via pins, you could use the netSet approach so that your symbols still only have the signal pins, but the stopping view has the additional pins with netExpr on them. You'd have to edit the .SPI to have power supply pins on every standard cell, and not make them global.

    You might be better off contacting customer support about this then we can take a look at precisely what you've done without you needing to share potentially confidential information in a public forum.

    Regards,

    Andrew
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • tstoll
    tstoll over 13 years ago

    I got it to work!! There have been a parallel source!

    Thanks so much, at least I can simulate now with one global supply voltage! That helps quite alot!

     Best greetings, tOM

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information