• 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. Problem in reading-in in Spectre

Stats

  • Locked Locked
  • Replies 5
  • Subscribers 125
  • Views 19142
  • 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

Problem in reading-in in Spectre

SaeedR
SaeedR over 11 years ago

 Hi dear fellows,

 I just upgraded my Cadence from version 5 to 6. In version 5, there was a portAdapter componentwhich was in rfExamples library. After upgrading to version 6 and adding the same library, I can still drag and drop the portAdapter to the schematic but there is a problem while doing the simulation. The error after any simulation is as follows:

 Error found by spectre in `portAdapter', during circuit read-in.
    ERROR (SFE-874): "input.scs" 16: Unexpected comma ",". Expected close parenthesis.
    ERROR (SFE-683): "input.scs" 16: Badly formed parameters statement.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
Warning from spectre in `portAdapter', during circuit read-in.
    WARNING (SFE-702): "input.scs" 16: Use of the comma character in node lists is not supported.
Error found by spectre in `portAdapter', during circuit read-in.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-678): "input.scs" 16: Statement is not in Spectre format. Use `simulator lang=spice' to introduce spice language sections.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-874): "input.scs" 16: Unexpected operator "*". Expected end of file or end of line.
    ERROR (SFE-678): "input.scs" 16: Statement is not in Spectre format. Use `simulator lang=spice' to introduce spice language sections.
Error found by spectre during circuit read-in.
    ERROR (SFE-874): "input.scs" 59: Unexpected comma ",". Expected close parenthesis.

 

Would you please let me know if you had this problem befroe and how you figured it out.

 

Thanks

Saeed

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 11 years ago

    Saeed,

    Without seeing what your input.scs looks like (particularly the instance of the portAdaptor, and ideally the instances either side of it in case it's a consequence of the previous or subsequent instsance), I can't comment. People still use the portAdapter, and generally it works.

    If you can post your entire input.scs that would be best, then I may be able to spot what is wrong.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SaeedR
    SaeedR over 11 years ago

     Hi Andrew,

    I put the input.scs files of both portAdapter in version 5 Cadence and version 6 one. The first one is version 5 input.scs file. As you see, there are three variables cval, rval and lval specifing variables capacitor, resistor and inductor. Everything is alright in the version 5 and the simulation works pretty well.

    -----------------------------------------------------------------------------------------------------------------------------

     // Generated for: spectre
    // Generated on: May 28 15:33:48 2014
    // Design library name: test_p13_2
    // Design cell name: portAdap_test
    // Design view name: schematic
    simulator lang=spectre
    global 0
    parameters mag_gamma=0.2
    include "/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.1DM/Spectre/models/design.scs"
    include "/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.1DM/Spectre/models/allModels.scs" section=tt

    // Library name: rfExamples
    // Cell name: portAdapter
    // View name: schematic
    subckt portAdapter out portPin
    parameters \
            cval=max((-(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))*((1+(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.)))))/(((1-(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))**2))/((50)*(2*3.14159*(1G))),0) \
            rval=((50)*(((1-(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+min(0,(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))**2)/max(1e-6,((1+(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))))))/((1-(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))-(50)) \
            lval=max(((50)*(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))/((1+(hypot((2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.14159/180.)+(0)*cos((0)*3.14159/180.))))))/(2*3.14159*(1G)),0)
        C0 (net11 0) capacitor c=cval
        R1 (net11 portPin) resistor r=rval
        L0 (out net11) inductor l=lval
    ends portAdapter
    // End of subcircuit definition.

    // Library name: test_p13_2
    // Cell name: portAdap_test
    // View name: schematic
    PORT1 (net6 net4) port r=50 type=sine
    PORT0 (net3 net4) port r=50 type=sine
    I0 (net3 net6) portAdapter \
            cval=max((-(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))*((1+(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.)))))/(((1-(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))**2))/((50)*(2*3.14159*(1G))),0) \
            rval=((50)*(((1-(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+min(0,(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))**2)/max(1e-6,((1+(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))))))/((1-(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))-(50)) \
            lval=max(((50)*(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.)))/((1+(hypot((2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))),(2*((mag_gamma)*sin((100)*3.14159/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((mag_gamma)*cos((100)*3.14159/180.)+(0)*cos((0)*3.14159/180.))))))/(2*3.14159*(1G)),0)
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
        tnom=25 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
    sp sp ports=[PORT0 PORT1] start=1G stop=2G step=0.01G annotate=status
    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

     ---------------------------------------------------------------------------------------------------------------------------------------------------

    Now, the input.scs file for the version 6 Cadence is as follows:

     ---------------------------------------------------------------------------------------------------------------------------------------------------

    // Generated for: spectre
    // Generated on: May 28 15:45:17 2014
    // Design library name: test_p13_2
    // Design cell name: T_B2
    // Design view name: schematic
    simulator lang=spectre
    global 0
    parameters i59 C=.2p frf=5.2G prf=-10 R=(995p)/C
    include "/nfs/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.1DM/Spectre/models/design.scs"
    include "/nfs/CMC/kits/cmosp13.V1.8.0.0DM/IBM_PDK/cmrf8sf/V1.8.0.1DM/Spectre/models/allModels.scs" section=tt

    // Library name: rfExamples
    // Cell name: portAdapter
    // View name: schematic
    subckt portAdapter out portPin
    parameters \
            cval=max((-(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.)))*((1+(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.)))))/(((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.)))**2))/((50)*(2*3.14159*(1G))),0) \
            rval=((50)*(((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+min(0,(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))**2)/max(1e-6,((1+(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))))))/((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))-(50)) \
            lval
        C0 (net11 0) capacitor c=cval
        R1 (net11 portPin) resistor r=rval
        L0 (out net11) inductor l=lval
    ends portAdapter
    // End of subcircuit definition.

    // Library name: test_p13_2
    // Cell name: T_B2
    // View name: schematic
    TN1 (net11 net9 net21 net21 net18 0) nfet33tw_rf l=400n w=400.0000u nf=100 \
            m=4 par=4 ngcon=2 ad=8.8e-11 as=9.104e-11 pd=444.000000u \
            ps=453.52u nrd=0.0006 nrs=0.0006 rf_rsub=1 plnest=-1 plorient=-1 \
            pld200=-1 pwd100=-1 lstis=1 lnws=0 rgatemod=3 rbodymod=1 gtab=1 \
            ring=2 cwire=1 panw1=0p panw2=0p panw3=0p panw4=0p panw5=0p \
            panw6=0p panw7=0p panw8=0p panw9=0p panw10=0p sa=6e-07 sb=6e-07 \
            sd=4.4e-07 dtemp=0 t3well=1
    TN0 (net21 In 0 0 net20 0) nfettw_rf l=120.0n w=400.0000u nf=100 m=4 par=4 \
            ngcon=2 ad=7.2e-11 as=7.496e-11 pd=436.000000u ps=445.48u \
            nrd=0.0005 nrs=0.0005 rf_rsub=1 plnest=-1 plorient=-1 pld200=-1 \
            pwd100=-1 lstis=1 lnws=0 rgatemod=3 rbodymod=1 gtab=1 ring=2 \
            cwire=1 panw1=0p panw2=0p panw3=0p panw4=0p panw5=0p panw6=0p \
            panw7=0p panw8=0p panw9=0p panw10=0p sa=5.5e-07 sb=5.5e-07 \
            sd=3.6e-07 dtemp=0 t3well=0
    R3 (net02 In) resistor r=100
    R11 (net7 0) resistor r=205
    R1 (net11 net9) resistor r=R
    R0 (net23 net20) resistor r=6K
    R49 (net22 net18) resistor r=6K
    C1 (out net11) capacitor c=1u
    C0 (In net019) capacitor c=1u
    C41 (net02 net7) capacitor c=65f
    C40 (net7 0) capacitor c=120f
    C38 (net9 0) capacitor c=C
    V3 (net15 0) vsource dc=390.00m type=dc
    V2 (net015 0) vsource dc=3.3 type=dc
    V0 (net22 0) vsource dc=3.3 type=dc
    V1 (net23 0) vsource dc=1.5 type=dc
    L0 (net11 net015) inductor l=1u
    L15 (net02 net15) inductor l=1n
    I15 (out net017) portAdapter \
            cval=max((-(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.)))*((1+(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.)))))/(((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.)))**2))/((50)*(2*3.14159*(1G))),0) \
            rval=((50)*(((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))**2+min(0,(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))**2)/max(1e-6,((1+(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2-(2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))))))/((1-(hypot((2*((0)*cos((0)*3.)+i59/180.)+(0)*cos((0)*3.14159/180.))),(2*((0)*sin((0)*3.)+i59/180.)+(0)*sin((0)*3.14159/180.))))/2)**2))-(50))
    PORT1 (net017 0 ) port r=50 num=2 type=sine
    PORT0 (net019 0 ) port r=50 num=1 type=sine freq=frf dbm=prf fundname="F1"
    simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=27 \
        tnom=25 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
    dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
    dcOpInfo info what=oppoint where=rawfile
    sp sp ports=[PORT0 PORT1] start=0.001G stop=10G step=0.01G annotate=status
    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
     

    ------------------------------------------------------------------------------------------------------------------------------------------------

    When I am comparing these two files together, it is interesting that the conversion looks not to work proporly. First of all, 3.14159 in thefirst input.scs file has been tranlated to 3.)+i59, which is very weird. That is why when I start to run the simulation, the simulator asks me to enter the initial value for i59 which is suddenly poped up. Secondly, in version 5 file, all three variables are defined, but in the new one, as you see, only cval and rval are defined and lval is left empty. 

     

    I am not sure how I can figure this problem out so that the portAdapter can be functional in new version as well. Does it depend on the model library? Should I create a new pcell for this component? ... 

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

    My guess from the symptoms is that you may be using Virtuoso in 64 bit mode on a RHEL6 (or similar kernel level to RHEL6) and too old a version of IC61. We only officially started supporting that in IC6.1.5 ISR 12 (might have been 13, I can't recall).

    Can you type: getVersion(t) in the CIW and also "uname -a" on the UNIX command line and post the results here?

    The issue was that there was an underlying change in the implementation of strcpy() in the C libraries in Linux, which violated assumptions that had been valid on all platforms for the last 20 years or so... We had to go back and fix everywhere which had relied on that assumption.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • SaeedR
    SaeedR over 11 years ago

     Hi dear Andrew

    Sorry for late response. I was in IMS in Tampa last week. 

    Here is the result that I got after executing the commands you posted to me. 

     

    getVersion(t)
    "sub-version  IC6.1.5-64b.72 "

    uname -a
    Linux ict41706.vlsi.enel.ucalgary.ca 2.6.32-431.1.2.el6.x86_64 #1 SMP Thu Dec 12 13:59:19 CST 2013 x86_64 x86_64 x86_64 GNU/Linux

     

    Would you please guide me based on these info to figure this problem out.

    Regards

    Saeed

     

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

    Hi Saeed,

    That version is the base version of IC615. For various reasons that I outlined earlier, we didn't start supporting 64-bit Virtuoso on RHEL6 (which is what you appear to be using, or at least a similar kernel version) until IC615 ISR12 (6.1.5.500.12). So you will need to either run in 32 bit mode (turn off $CDS_AUTO_64BIT or pass -32 on the command line), or move to a more recent hotfix of IC615 or use IC616.

    See solution 11816774 for more details.

    Regards,

    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