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