• 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. spectre: Parameters in .Alter Statement Not effecting Digital...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 17358
  • 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

spectre: Parameters in .Alter Statement Not effecting Digital Vector File Stimuli

Eberhard2010
Eberhard2010 over 13 years ago

Hallo guys,

i've a common netlist (see below). It uses .ALTER (spice) statement and digital vector file input (stimuli). This is because alter or altergroup in spectre syntax does not work anyway.

 <<<<<<<<<<<<<

simulator lang=spectre
  finalTimeOP info what=oppoint where=rawfile
  modelParameter info what=models where=rawfile
  element info what=inst where=rawfile
  outputParameter info what=output where=rawfile
  designParamVals info what=parameters where=rawfile
  primitives info what=primitives where=rawfile
  subckts info what=subckts where=rawfile
  saveOptions options save=allpub

vec_include "../circuit_stimuli/Stimuli_102.vec" hlcheck=0

*Input Stimuli-File
parameters Supply_vec=5 \
            slope_vec=0.05 \
             zero_vec=0 \
              vth_vec=2.5

 *Main Netlist
X1 (vecIN1 vecIN2 QN VDD GND) NAND2X1
Cload (QN0 0) capacitor c=1e-12

GND_source (GND 0) vsource dc=0 type=dc
VDD_source (VDD 0) vsource dc=5 type=dc

*Analysis
tran0 tran stop=1us

simulator lang=spice

.ALTER myalt
  .param slope_vec=0.01
.END

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

The parameters below "Input Stimuli File" are used in the *.vec file. The first (initial ones) are working fine. Now, the alter Statement changes these design variables correctly. However it seems to have no effect on the generated stimuli for the next run. Is there a way to tell spectre to "regenerate stimuli" after design Variables are changed? Or how should I rewrite it?

I got one situation in which it runs correctly, so there is a solution out there. Now i try to reveal it again.

Thanks for your help in advance.

 Regards Eberhard

  • Cancel
  • Eberhard2010
    Eberhard2010 over 13 years ago

    Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
    Version 10.1.1.200.isr13 64bit -- 15 Aug 2011


    Dear Cadence-Users,

    i just want to give you an update of the recent tries I ve done so far:

    1) The sweep analysis in Spectre gives me an Error:

     /Software/cadence/MMSIM/10.11/tools/bin/spectre[528]: wait: 5110: Abort(coredump)

    Regardsless of which parameter I vary :-) To get this error, replace all below *Analysis with the following

     <<<<<<<<<<<<<<<<<

    *Analysis

    sweep0 sweep parameter=slope_vec values=[0.001 0.005] {

    tran0 tran stop=1us

    }

    >>>>>>>>>>>>>>>>>

     Can somebody please tell me, how to get spectre to respect parameter sweeps on VEC-Files?

    Thanks for reading and your help.

     

    Regards Eberhard

     

     

     

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

    Eberhard,

    You'll need to contact customer support. I just tried this, and I don't get the crash (I'm using a newer version than you either  10.1.1.428.isr24 or 11.1.0.467.isr12) - note I changed the parameter=slope_vec to param=slope_vec (or similar) - the keyword for the sweep statement is param not parameter.

    Regardless of this, it doesn't work - the change in the parameter (either via alter or sweep) doesn't affect the vector read. I'd expect that if it worked for alter, it would also work for sweep (and also if it doesn't work for alter, it also wouldn't work for sweep).

    So you need to log a service request so that we can get this fixed.

    Kind Regards,

    Andrew.

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

     Dear Andrew,

    thx for your reply. Sure it's param :-). I'll report to customer support; tell them that parameters in VEC Files are not working. Thanks for your help. 

    Meanwhile I've done something like this with OCEAN: 

    <<<<<<<<<<<<<<<<<<<<<<<<<

    ;============SIM SETUP ====================
    simulator( 'spectre)
    design("./netlist/netlist")
    resultsDir("./results00")

    ;==========DESIGN SETUP ====================
    ;Take Stimuli
    vecFile("../../circuit_stimuli/Stimuli_102.vec")
    hlcheck( "0" )

    ;Input Stimuli-File
    desVar("Supply_vec" 5)
    desVar("slope_vec" 0.05)
    desVar("zero_vec" 0)
    desVar("vth_vec" 2.5)

    ;Circuit Dimensions
    desVar("C_load" 1e-12)
    desVar("unit_vec" 1e-9)
    desVar("tran_tend" 1e-06)

    ;Save statements
    ;save('all)

    ;=========== ANALYSIS setup ==============

    analysis('tran ?start 0 ?stop "tran_tend")

    ;Creates input.scs
    createNetlist()


    ;1st Run
    run()

    ;2nd Run
    resultsDir("./results01")
    desVar("slope_vec" 0.01)
    run()

    exit()
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

    But it does not. Leaving out "2nd Run", it's working perfectly. Maybe I can dig out why :-)
    OcnXL-Mode would be an other option for sweeping parameters, however it relies on ocnxlTargetCellView to create an OceanXL Session Object. I ve my cells just as netlist.scs and my circuits as circuit.scs, no stuff in OA Database :-)

    Once the above sample is working, I think about hacking the stuff to OA Database in order to use OCEANXL :-)

    Regards Eberhard

     

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

     Add envOption('controlMode "batch") into your script (after the simulator('spectre) line).

    The default is for spectre to run in "interactive" mode - and a parameter change will be passed to spectre in memory without it exiting and restarting - and hence the behaviour is dependent upon spectre honouring a parameter change in memory (so like  an alter or a sweep). In "batch" mode, spectre exits between each run - so that should work.

    Andrew.

    • 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