• 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. Why doesn't a non repeating sequence "simple" voltage source...

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 125
  • Views 3309
  • 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

Why doesn't a non repeating sequence "simple" voltage source exist?

kenc184
kenc184 over 2 years ago

Vpulse, Vbit and Vpwl are ok, if a bit painful to setup for short repeating signals, but why doesn't Cadence implement a more simple Voltage source which would allow truly non regular pulsital signals?

For example, I wish to generate a signal which pulses high for 10ns at 1us, 20us 1ms 17ms  25ms and 600ms.

Doing this with pulse is not possible, would be a hundred pages long with Vbit and painful in Vpwl.

Why not have a signal whereby the rise and fall times are specified as with pulse, but where each change time only has to be specified, so the above example would be (assume the two voltages are 0 and 1and tr, tf =1ns)

@1u, 1 @1u+10ns 0, @20u 1, @20u+10ns 0, @1m 1, @1m+10n 0 etc etc

versus Vpwl.... @0 0, @1u,0, @1u+1n 1 @1u+1n+10n 1, @1u+1n+10n+1n 0, @ etc etc.....painful.

I'd love to hear that there is a source like this buried somewhere, but if there is I've never found it.

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    This can easily be done with a vector file (specified via Setup→Simulation Files->Vector FIles(tab) and then the Vector Files field. If (say) you have an input signal in your circuit called vin then you could do the above with the following vector file:

    radix 1
    io i
    vname vin
    tunit s
    trise 1n
    tfall 1n
    vih 1.2
    vil 0.0
    ; now the actual vector
    0 0
    1u 1
    1.01u 0
    20u 1
    20.01u 0
    1m 1
    1.00001m 0

    This can be extended to multiple input signals in the same file, and different radices. See the Spectre documentation for more details.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • kenc184
    kenc184 over 2 years ago in reply to Andrew Beckett

    Hmm, I tried a trivial example, and failed.  I assumed that there's no actual voltage source, just a pin to which the vectors are assigned. I copied your VEC list and got a syntax error for column 1?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to kenc184

    Not a good idea to keep editing your response - if I'd not have looked, I'd have assumed all was OK because the email notifier is only sent on the initial post (i.e. not including any edits).

    You don't need a source - just a wire (or a pin) and a name to reference. It's covered in the Spectre User Guide here: https://support.cadence.com/apex/techpubDocViewerPage?path=spectreuser/spectreuser21.1/appD.html#pgfId-52472

    How did you reference the file? Please post a screen shot of the Simulation Files form showing the reference.

    Also, the full error message rather than just the last part of the line - ideally as text rather than a screenshot.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • kenc184
    kenc184 over 2 years ago in reply to Andrew Beckett

    Oops, sorry about that.  Requested info, plus netlist below.

    Error found by spectre during circuit read-in.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 2: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 3, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 3: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 4, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 4: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 5, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 5: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 6, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 6: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 7, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 7: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 8, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 8: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 9, column 1. Correct the syntax error and rerun the simulation.
        ERROR (SFE-874): "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test" 10: Cannot run the simulation because syntax error `Unexpected end of line' was encountered at line 11, column 1. Correct the syntax error and rerun the simulation.


    And the netlist:

    // Point Netlist Generated on: Nov 14 13:16:17 2022
    // Generated for: spectre
    // Design Netlist Generated on: Nov 14 13:16:17 2022
    // Design library name: fundamental
    // Design cell name: arb_voltage_source
    // Design view name: schematic
    simulator lang=spectre
    global 0
    include "$ONC18_PDK_PATH/models/spectre/base.scs"
    include "$ONC18_PDK_PATH/models/spectre/mos_and_para.scs" section=typ
    include "$ONC18_PDK_PATH/models/spectre/res.scs" section=typ
    include "$ONC18_PDK_PATH/models/spectre/cap.scs" section=typ
    include "$ONC18_PDK_PATH/models/spectre/vertical.scs" section=typ
    include "$ONC18_PDK_PATH/models/spectre/zener.scs" section=typ
    include "$ONC18_PDK_PATH/models/spectre/mos_irrad.scs" section=disabled
    include "$CDS_WORKAREA/userSetup_$USER/onc18/device_models.scs" section=advanced_SOA
    include "$CDS_WORKAREA/userSetup_$USER/onc18/custom_model_libraries.spectre"

    // Library name: fundamental
    // Cell name: arb_voltage_source
    // View name: schematic
    R0 (vin 0) resistor r=1K
    include "/home/kenc/simulation/fundamental/arb_voltage_source/maestro/results/maestro/ExplorerRun.0/1/fundamental_arb_voltage_source_1/netlist/stimuli/vec_test"
    simulatorOptions options psfversion="1.4.0" reltol=1e-3 vabstol=1e-6 \
        iabstol=1e-12 temp=27 tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 \
        maxnotes=5 maxwarns=5 digits=5 cols=80 pivrel=1e-3 \
        sensfile="../psf/sens.output" checklimitdest=psf \
        inlinesubcktcurrent=subckt
    tran tran stop=1.1m write="spectre.ic" writefinal="spectre.fc" \
        annotate=status maxiters=5
    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

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to kenc184

    It was flagged as spam because of the repeated text (obviously is not spam in this case, but it’s a common trait). You didn’t appeal the other attempts so I only approved this one. 

    Anyway, the problem is that you’ve specified it as a stimulus file, which is not the right place. As I mentioned before, you need to use the Vector Files tab and specify it as a vector file on that page (not VCD - it’s a vector file).

    By including it as a stimulus file it would be expected to be in spectre netlist syntax, which is a different language. 

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • kenc184
    kenc184 over 2 years ago in reply to Andrew Beckett

    Thanks again Andrew, it works perfectly.

    I wish I had asked this question 10 years ago, it would've saved me a lot of Vbit and vpwl grief.

    • 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