• 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. ERROR [SFE-874]:'Unexpected end of line' while running a...

Stats

  • Locked Locked
  • Replies 18
  • Subscribers 125
  • Views 21959
  • 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

ERROR [SFE-874]:'Unexpected end of line' while running a .scs file generated using ADE L, cadence Virtuoso v6.1.4 with spectre

Chandu D
Chandu D over 6 years ago

Hi, 

I am trying to simulate a basic inverter circuit using spectre. I have generated a netlist file. when I run it, I am getting the following error

ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 2: Unexpected end of line. Expected equals sign, numeric value or string value.

For your referrence, I am posting the files 'cds.lib', 'input.scs' and 'spectre.out' here. Can someone help me out. Thanks in advance

*************cds.lib********************

#Following defined by Chandrasekhar DVS
DEFINE analogLib /usr/local/IC614/tools/dfII/etc/cdslib/artist/analogLib
DEFINE US_8ths /usr/local/IC614/tools/dfII/etc/cdslib/sheets/US_8ths
DEFINE basic /usr/local/IC614/tools/dfII/etc/cdslib/basic
DEFINE cdsDefTechLib /usr/local/IC614/tools/dfII/etc/cdsDefTechLib
DEFINE NCSU_TechLib_FreePDK15 $PDK_DIR/cdslib/NCSU_TechLib_FreePDK15
DEFINE ADETutorial /home/eslam/ADETutorial_1/ADETutorial
DEFINE SPECTRE_TUTORIAL /home/eslam/ADETutorial_1/SPECTRE_TUTORIAL
#DEFINE analogLib $CDS/IC/tools/dfII/etc/cdslib/artist/analogLib
#DEFINE US_8ths $CDS/IC/tools/dfII/etc/cdslib/sheets/US_8ths
#DEFINE basic $CDS/IC/tools/dfII/etc/cdslib/basic
#DEFINE cdsDefTechLib $CDS/IC/tools/dfII/etc/cdsDefTechLib

*****************************************

************* input.scs****************

// Generated for: spectre
// Generated on: Apr 21 11:31:37 2019
// Design library name: SPECTRE_TUTORIAL
// Design cell name: myInverterTB
// Design view name: schematic
simulator lang=spectre
global 0 vdd!
parameters VDD_VAL=0.8
include "/home/eslam/ADETutorial_1/cds.lib"

// Library name: SPECTRE_TUTORIAL
// Cell name: myInverter
// View name: schematic
subckt myInverter I O inh_bulk_n inh_bulk_p
I2 (O I inh_bulk_p inh_bulk_p) pmos
I6 (O I inh_bulk_n inh_bulk_n) nmos
ends myInverter
// End of subcircuit definition.

// Library name: SPECTRE_TUTORIAL
// Cell name: myInverterTB
// View name: schematic
I5 (IN OUT 0 vdd!) myInverter
V0 (vdd! 0) vsource dc=VDD_VAL type=dc
V1 (IN 0) vsource type=pulse val0=0 val1=VDD_VAL period=20p delay=0 \
rise=1p fall=1p width=9p
C0 (OUT 0) capacitor c=1f
simulatorOptions options 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
tran tran stop=40p 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
save IN OUT
saveOptions options save=allpub

**********************************************************

***************spectre.out************


Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
Version 7.1.1.187.isr11 32bit -- 18 Aug 2009
Copyright (C) 1989-2009 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence, Virtuoso and Spectre are registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective holders.

Protected by U.S. Patents:
5,610,847; 5,790,436; 5,812,431; 5,859,785; 5,949,992; 5,987,238;
6,088,523; 6,101,323; 6,151,698; 6,181,754; 6,260,176; 6,278,964;
6,349,272; 6,374,390; 6,493,849; 6,504,885; 6,618,837; 6,636,839;
6,778,025; 6,832,358; 6,851,097; 6,928,626; 7,024,652; 7,035,782;
7,085,700; 7,143,021; 7,493,240.

Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA Security, Inc.

User: root Host: localhost.localdomain HostID: 7F0100 PID: 5290
Memory available: 1.0215 GB physical: 1.9854 GB
CPU(1 of 2): CPU 0 Intel(R) Core(TM)2 Duo CPU T6600 @ 2.20GHz 2200.000MHz

Simulating `input.scs' on localhost.localdomain at 11:40:05 AM, Sun Apr 21, 2019 (process id: 5290).
Environment variable:
SPECTRE_DEFAULTS=-E
Command line:
/usr/local/IC614/MMSIM/tools.lnx86/spectre/bin/32bit/spectre \
input.scs +escchars +log ../psf/spectre.out +inter=mpsc \
+mpssession=spectre0_3079_6 -format sst2 -raw ../psf +lqtimeout \
900 -maxw 5 -maxn 5
spectre pid = 5290

Loading /usr/local/IC614/MMSIM/tools.lnx86/cmi/lib/5.0/libinfineon_sh.so ...
Loading /usr/local/IC614/MMSIM/tools.lnx86/cmi/lib/5.0/libphilips_sh.so ...
Loading /usr/local/IC614/MMSIM/tools.lnx86/cmi/lib/5.0/libsparam_sh.so ...
Loading /usr/local/IC614/MMSIM/tools.lnx86/cmi/lib/5.0/libstmodels_sh.so ...

Error found by spectre during circuit read-in.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 2: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 3: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 4: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 5: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 6: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 7: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 8: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 9: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 10: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 11: Unexpected end of line. Expected equals sign, numeric value or string value.
ERROR (SFE-874): "/home/eslam/ADETutorial_1/cds.lib" 13: Unexpected end of file. Expected equals sign, numeric value or string value.

Time for parsing: CPU = 195.97 ms, elapsed = 347.244 ms.
Time accumulated: CPU = 243.962 ms, elapsed = 348.989 ms.
Peak virtual memory used = 552 Mbytes.


Aggregate audit (11:40:06 AM, Sun Apr 21, 2019):
Time used: CPU = 245 ms, elapsed = 350 ms, util. = 69.9%.
Time spent in licensing: elapsed = 177 ms, percentage of total = 50.5%.
Virtual memory used = 552 Mbytes.
spectre completes with 11 errors, 0 warnings, and 0 notices.
spectre terminated prematurely due to fatal error.

*********************************************************

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

    By the way, your post went into moderation because it contained lots of repeated text, which is often a sign of spam. As soon as I'd reviewed it (after your feedback) I let it through.

    Two things here:

    1. You appear to be referencing the cds.lib in the Setup->Model Libraries in ADE. That makes no sense, because the cds.lib does not contain the definitions of the Spectre models, but instead is the definition of the library names used by Virtuoso for schematics, layouts etc. You need instead to reference the transistor models (which define the models for nmos, pmos etc). These probably will be in the PDK setup somewhere and have a .scs suffix, and if you look in the file will contain either "model nmos" or "subckt nmos" lines.
    2. You're using very old versions of the tools. Spectre 7.1 is from 10 years ago, and Virtuoso IC614 is probably a similar age (I can't remember off the top of my head, but we've had 4 major IC versions since then, and 10 major versions of Spectre). Why are you using such ancient versions? That's a little bizarre - even for a university. 

    Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    Thank you Andrew. The input.scs files correspoding to models nmos and pmos are not present in the NCSU_TechLib_FreePDK15 folder I downloaded from the site. is there anyway to generate one by myself? The following are the pictures that show the files present in the pmos and nmos directories.

    Also about the software version, our institute does not have one. We had to go out of state and are working via VMware, accessing cadence virtuoso.

    Thanks in advance.

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

    Ok Andrew Thanks.

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

    You posted earlier today about having found a new version, but that post seems to have vanished (did you delete it?).

    Anyway, to answer your question about how to sort out the UNIX path. First of all in the terminal window type:

    echo $0

    This will tell you the name of the shell you're running - it might be csh, bash, sh or ksh.

    If you know the full directory path to the SPECTRE or MMSIM installation, you can do:

    If csh:

    set path = (/path/to/MMSIM111/tools.lnx86/bin $path)

    or if sh/bash/ksh

    PATH=/path/to/MMSIM111/tools.lnx86/bin:$PATH

    You should then have spectre in your path - try typing "spectre -W" to check the subversion. Having done that, you can then run virtuoso and it would pick up the version of spectre you have.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    Hello Andrew. I did delete it (sorry for that) but it was because we found a way to install it. After doing so, we again tried the simulation of inverter with NCSU pmos and nmos instances. However, the following happened.

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

    The warnings about ad, as etc are to be expected as the symbol doesn't really match up with the model (you'd have to take that up with the NCSU FreePDK group, if there is a group maintaining it...)

    I presume you edited the model file to change the names from nfet/pfet to nmos/pmos - but other than that, did you make any other changes? I'm presuming you did that because the error message is referring to instances of nmos.

    Please post your input.scs (it must be different from the one you posted originally, because that has the transistor instance lines not correctly defined). My simple inverter simulated fine with no convergence issues.

    Regards,

    Andrew

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

    We did not make any changes other than changing nfet/pfet to nmos/pmos. The following is the input.scs

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

    Sending a screenshot of the netlist isn't terribly helpful - I'm not going to type it in again to test it!

    That said, it's not dissimilar to what I'd tried before except I used a supply voltage of 1.2V rather than 2V. If I change to 2V I get the blowup you do - I suspect the models are not terribly tolerant of such high voltages (2V would be quite high for a FinFET device).

    I think this is a consequence of the models (which are probably very basic). Can you use a lower supply voltage? You should probably take this up with NCSU.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    ohk sorry. Here is the input.scs

    ******************************************

    // Generated for: spectre
    // Generated on: Apr 28 01:14:04 2019
    // Design library name: inv_tut
    // Design cell name: myInverter
    // Design view name: schematic
    simulator lang=spectre
    global 0 vdd!
    include "/root/Desktop/Manusai/Tech_Lib/NCSU-FreePDK15/FreePDK15/hspice/models/fet.inc" section=CMG

    // Library name: inv_tut
    // Cell name: myInverter
    // View name: schematic
    M0 (_net0 _net1 0 0) nmos w=100n l=15n as=6.08e-16 ad=6.08e-16 ps=168n \
    pd=168n m=2 degradation=no
    M1 (_net0 _net1 vdd! vdd!) pmos w=100n l=15n as=6.08e-16 ad=6.08e-16 \
    ps=168n pd=168n m=2 degradation=no
    V0 (vdd! 0) vsource dc=2 type=dc
    V1 (_net1 0) vsource type=pulse val0=0 val1=2 period=20p delay=0 rise=1p \
    fall=1p width=9p
    simulatorOptions options 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
    tran tran stop=40p 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

    ****************************************************

    We tried with smaller voltages of vdc (1.2V and 800mV) but are still getting blowup. can you tell me what did you set your values for vpulse?

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

    I'm guessing that you set the DC supply to 1.2V but left the pulse source at 2V. That's not a good idea... you don't want your pulse source exceeding the supply voltage. Set the high voltage of the pulse to match your DC supply (in ADE probably a good idea to create a design variable and set both sources to use the same variable.

    If you have a supply of 1.2V and a pulse peak of 2V, the blowup occurs during the transient when the pulse source goes high.

    Blowups are fairly rare in spectre and is usually an indication of poorly characterised models (I suspect they have non-physical behaviour outside a certain voltage range).

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    Thanks Andrew! we finally were able to simulate the inverter circuit. The only thing bothering me is the following (1st picture from my above reply which is third last excluding this one)

    ********************************************

    Notice from spectre during circuit read-in.
    "/root/Desktop/Manusai/Tech_Lib/NCSU-FreePDK15/FreePDK15/hspice/models/fet.inc" 41: Version message is not given, map to bsimmg.
    "/root/Desktop/Manusai/Tech_Lib/NCSU-FreePDK15/FreePDK15/hspice/models/fet.inc" 70: Version message is not given, map to bsimmg.

    ********************************************

    would simulating the circuit still mean we are working with FinFET or other variants of MGFETs?

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

    It's a typo in the warning message. It should be telling you that it mapped to bsimcmg (not bsimmg) which is the model used for FinFET. I was going to ask R&D to fix it, but I think it's a waste of their time given that this would only occur in old hspice models that don't have the version specified - which is likely to be a rare occurrence these days (except in these academic models).

    If you look in the circuit inventory portion of the spectre log, it will say you have bsimcmg devices.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Chandu D

    It's a typo in the warning message. It should be telling you that it mapped to bsimcmg (not bsimmg) which is the model used for FinFET. I was going to ask R&D to fix it, but I think it's a waste of their time given that this would only occur in old hspice models that don't have the version specified - which is likely to be a rare occurrence these days (except in these academic models).

    If you look in the circuit inventory portion of the spectre log, it will say you have bsimcmg devices.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    Thanks Andrew. One last question...can you tell me where is the spectre log file generally located? I tried searching in some log files just now but in vain...

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

    If running from ADE L (which I assume you are), then using Simulation->Output Log will display it. If  you enlarge the window, you'll see the full path to the file in the banner of the window - which shows you that it's in the psf directory parallel to the netlist directory that contains the input.scs

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Chandu D
    Chandu D over 6 years ago in reply to Andrew Beckett

    Thank you very much 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