• 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. 'spectremdl' not showing any results...

Stats

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

'spectremdl' not showing any results...

Yuntao
Yuntao over 6 years ago

Hello folks!

I am trying to use Spectre MDL to measure the delay of an inverter under different NMOS and PMOS width combinations. I am very new to MDL -- indeed it took me a lot of effort to find that MDL is the right tool to do it. However, the 'spectremdl' command did not seem to work for me.

Below are my MDL script and Spectre netlist.

File 1: inverter.mdl

alias measurement propDelay {
input real prop_thresh
run tran( stop=3n, autostop='yes )

export real risedelay=deltax(sig1=V(in), sig2=V(out),
dir1='fall, n1=1, start1=0, thresh1=prop_thresh,
dir2='rise, n2=2, start2=0, thresh2=prop_thresh)

export real falldelay=deltax(sig1=V(in), sig2=V(out),
dir1='rise, n1=1, start1=0, thresh1=prop_thresh,
dir2='fall, n2=2, start2=0, thresh2=prop_thresh)
}

run propDelay(prop_thresh=1.5)
/*
mvasearch {
parameter {
{pw, 300n, 600n, 900n, 1.2u}
{nw, 100n, 200n, 300n, 400n}
}

exec {
run propDelay
}

zero{
tmp1 = propDelay->rise-25p
tmp2 = propDelay->fall-25p
}
}

run mvasearch
*/

File 2: inverter.scs

simulator lang=spectre
global 0

include "tsmc20N.m"
include "tsmc20P.m"
parameters pw=900n nw=300n

// Library name: Tutorial
// Cell name: INV1
// View name: schematic
N2 (out in 0 0) tsmc20N w=nw l=200n as=1.5e-13 ad=1.5e-13 ps=1.6u \
pd=1.6u m=1 region=sat
P0 (out in net11 net11) tsmc20P w=pw l=200n as=1.5e-13 ad=1.5e-13 \
ps=1.6u pd=1.6u m=1 region=sat
V1 (in 0) vsource type=pulse val0=0 val1=3 period=2n delay=0 rise=50.00p \
fall=50p width=1n
V0 (net11 0) vsource type=dc dc=3
C0 (out 0) capacitor c=100.0f m=1

// Spectre Source Statements

// Spectre Analyses and Output Options Statements

// Output Options
simOptions options
//+ reltol = 1.00000000E-03
//+ vabstol = 1.00000000E-06
//+ iabstol = 1.00000000E-12
//+ temp = 27
//+ save = allpub
//+ currents = selected

// Analyses

// End of Netlist

My university provides 3 versions of Cadence. For each version, I seemed to get a different problem. The Cadence versions I tried were 'tap cadenceIC5', 'tap cadenceIC6', and 'tap cadenceIC617'.

If I do tap cadenceIC5 then do spectremdl inverter.mdl, Cadence seems not happy with the TSMC technology files and I got a bunch of errors of the same form like 
"tsmc20N.m" 6: Syntax error in .model statement.

If I do tap cadenceIC6 then do spectremdl inverter.mdl, the MDL just throws 2 lines and I see no result files in the folder: 
Defaulting ./inverter.scs as the -design argument.
Running /dept/enee/software/cadenceIC616/inst/INCISIV/tools/bin/spectre =mdl inverter.mdl ./inverter.scs

If I do tap cadenceIC617 then do spectremdl inverter.mdl, I was given an error: spectremdl: command not found.

I checked the MDL reference for both IC6 and IC617 but cound not find what was wrong. Any idea on what I should do will be greatly appreciated.

Best regards,

Yuntao

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    Hi Yuntao,

    You need to be using a release with spectre, and spectre is not in the IC releases after IC5141 (which came out in 2004). In late 2004, spectre was separated into a separate release stream called MMSIM. There were numerous releases of this - MMSIM60, MMSIM61, MMSIM62, MMSIM70, MMSIM71, MMSIM72, MMSIM101, MMSIM111, MMSIM121, MMSIM131, MMSIM141, MMSIM151. Then the release stream got renamed and we've then had SPECTRE161, SPECTRE171 and SPECTRE181. So using IC5141 doesn't make any sense because there have been 15 major releases of the simulator since then. 

    Something is a bit odd with  your "cadenceIC6" release because it has "INCISIV" in the path. I see in old INCISIV/INCISIVE (which is our digital/mixed-signal simulator release) spectremdl was accidentally shipped but it doesn't work - it fails because there's no spectre in the INCISIV stream.

    So you need to find an MMSIM or better still SPECTRE release.

    You'll also probably need to add line continuation characters in your export statements:

    export real risedelay=deltax(sig1=V(in), sig2=V(out), \
    dir1='fall, n1=1, start1=0, thresh1=prop_thresh, \
    dir2='rise, n2=2, start2=0, thresh2=prop_thresh)

    export real falldelay=deltax(sig1=V(in), sig2=V(out), \
    dir1='rise, n1=1, start1=0, thresh1=prop_thresh, \
    dir2='fall, n2=2, start2=0, thresh2=prop_thresh)
    }

    Regards,

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Yuntao
    Yuntao over 6 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thank you a lot for the response! I looked into my cadenceIC616 installation folder and found both INCISIV and MMSIM and MMSIM141. Like this:
    w:/<3>enee/software/cadenceIC616/inst: ls
    ARM EDI ETS EXT142 IC616 INCISIVE142 MMSIM PDK PVS RC142 SPB166 iscape.04.23-s012 smCdsReg
    ASSURA EDI142 ETS131 EXT151 IC617 INCISIVE151 MMSIM141 PVE PVS141 RC1428 data libManager.log smLocal
    ASSURA41 EDI1428 EXT IC INCISIV INNOVUS171 NCSU PVE121 RC SPB iscape ncsu-cdk-1.6.0.beta smTool03.00-s008

    What's more, I found both spectre and spectremdl in both w:/<6>inst/MMSIM141/tools/bin and w:/<6>inst/MMSIM141/tools/bin.  However, the spectremdl command was directed to the INCISIV folder. So I did it the dumb way (to include the whole directory):
     <install_directory>/cadenceIC616/inst/MMSIM/tools/bin/spectremdl inverter.mdl
    And it worked.

    So thank you again for the help! And please let me know if there is a smarter way to do this.

    Best regards,
    Yuntao

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Yuntao

    Hi Yuntao,

    For a smarter way you probably need to talk to whoever sets up these "tap" things you talked about - to sort out how the paths are set up, so that it puts the paths in the right order.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Yuntao

    Hi Yuntao,

    For a smarter way you probably need to talk to whoever sets up these "tap" things you talked about - to sort out how the paths are set up, so that it puts the paths in the right order.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Yuntao
    Yuntao over 6 years ago in reply to Andrew Beckett

    Got it. Thanks, Andrew! - Yuntao

    • 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