• 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. PSpice
  3. Wrong JFET parameters when using nested param .DC sweep

Stats

  • State Not Answered
  • Replies 2
  • Subscribers 30
  • Views 180
  • Members are here 0
More Content

Wrong JFET parameters when using nested param .DC sweep

MK202608101044
MK202608101044 14 days ago

Hello, I didn't find a bug reporting feature, so I will try here.

When simulating a TEMP sweep I stumbled across a bug with njf model. Its parameters get calculated differently based on the chosen sweep type. I created a minimal example here:

Input:

.param vd_p=0

vd d 0 {vd_p}

j1 d 0 0 myjfet

.model myjfet njf t_measured=25

.dc TEMP LIST -50 -25 0 25 50 75 100 125 150 175 200 ; param vd_p 0 1 1

Output:

...
myjfet (T_Current -50 T_Measured 25)
PB 1.064E+00
...
myjfet (T_Current -25 T_Measured 25)
PB 1.044E+00
...
myjfet (T_Current 0 T_Measured 25)
PB 1.022E+00
...
myjfet (T_Current 25 T_Measured 25)
PB 1.000E+00
...
myjfet (T_Current 50 T_Measured 25)
PB 9.767E-01
...
myjfet (T_Current 75 T_Measured 25)
PB 9.526E-01
...
myjfet (T_Current 100 T_Measured 25)
PB 9.277E-01
...
myjfet (T_Current 125 T_Measured 25)
PB 9.019E-01
...
myjfet (T_Current 150 T_Measured 25)
PB 8.755E-01
...
myjfet (T_Current 175 T_Measured 25)
PB 8.484E-01
...
myjfet (T_Current 200 T_Measured 25)
PB 8.206E-01
...
myjfet (T_Current 27 T_Measured 25)
PB 9.982E-01
...

This example produces normal results. However, if I add a nested parameter sweep, the calculated JFET parameters are wrong, resulting even in an error.

Input:

.param vd_p=0

vd d 0 {vd_p}

j1 d 0 0 myjfet

.model myjfet njf t_measured=25

.dc TEMP LIST -50 -25 0 25 50 75 100 125 150 175 200 param vd_p 0 1 1

Output:

...
myjfet (T_Current -50 T_Measured 25)
PB 1.064E+00
...
myjfet (T_Current -25 T_Measured 25)
PB 1.097E+00
...
myjfet (T_Current 0 T_Measured 25)
PB 1.111E+00
...
myjfet (T_Current 25 T_Measured 25)
PB 1.111E+00
...
myjfet (T_Current 50 T_Measured 25)
PB 1.097E+00
...
myjfet (T_Current 75 T_Measured 25)
PB 1.066E+00
...
myjfet (T_Current 100 T_Measured 25)
PB 1.010E+00
...
myjfet (T_Current 125 T_Measured 25)
PB 9.157E-01
...
myjfet (T_Current 150 T_Measured 25)
PB 7.558E-01
...
myjfet (T_Current 175 T_Measured 25)
PB 4.814E-01
...
ERROR(ORPSIM-15007): Model myjfet has negative PB.
...
myjfet (T_Current 200 T_Measured 25)
PB -2.389E-03
...
myjfet (T_Current 27 T_Measured 25)
PB 9.982E-01
...

When using .step instead of the nested sweep, it works normally. It also works normally using nested sweep, when sweeping a source and not a param.

Tested on version PSpice 25.1.0, PSpice 24.1.0 and PSpice 17.4.0

Best regards,

Matej

  • Sign in to reply
  • Cancel
  • IshaS
    0 IshaS 13 days ago

    Hi,

    Could you share the complete simulation output (.OUT file) for both.
      • Working case (TEMP sweep only)
      • Failing case (TEMP sweep + parameter sweep)
    Also, just to confirm the same simulation circuit was used to perform above, right?
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • MK202608101044
    0 MK202608101044 13 days ago in reply to IshaS

    Hello, the minimal example I provided is the whole circuit. The problem came up during different simulation, but the problem is the same -> JFET parameters get calculated incorrectly causing the JFET to behave incorrectly as well.

    I had trouble uploading the .out files, so I just copied the contents here. (it worked at first, but then after refresh I was not able to upload them)

    • Working:

    **** 08/12/26 09:21:54 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** CIRCUIT DESCRIPTION


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


    .param vd_p=0

    vd d 0 {vd_p}

    j1 d 0 0 myjfet

    .model myjfet njf t_measured=25

    .dc TEMP LIST -50 -25 0 25 50 75 100 125 150 175 200 ; param vd_p 0 1 1


    **** 08/12/26 09:21:54 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** Junction FET MODEL PARAMETERS


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


    myjfet
    NJF
    T_Measured 25
    T_Current 27
    VTO -2
    BETA 100.000000E-06


    Model-Specific Temperatures During Sweep Param value = -50

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.071E-21
    PB 1.064E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = -25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 9.554E-19
    PB 1.044E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 0

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 0 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.474E-16
    PB 1.022E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.000E-14
    PB 1.000E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 50

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 3.602E-13
    PB 9.767E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 75

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 75 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 7.884E-12
    PB 9.526E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 100

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 100 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.158E-10
    PB 9.277E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 125

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 125 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.229E-09
    PB 9.019E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 150

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 150 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 9.976E-09
    PB 8.755E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 175

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 175 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 6.475E-08
    PB 8.484E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 200

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 200 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 3.480E-07
    PB 8.206E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures After Sweep Param value = 27

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 27 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.361E-14
    PB 9.982E-01
    CGS 0.000E+00
    CGD 0.000E+00

    JOB CONCLUDED

    **** 08/12/26 09:21:54 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** JOB STATISTICS SUMMARY


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

    Total job time (using Solver 1) = .02

    • Failing:


    **** 08/12/26 09:19:04 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** CIRCUIT DESCRIPTION


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


    .param vd_p=0

    vd d 0 {vd_p}

    j1 d 0 0 myjfet

    .model myjfet njf t_measured=25

    .dc TEMP LIST -50 -25 0 25 50 75 100 125 150 175 200 param vd_p 0 1 1


    **** 08/12/26 09:19:04 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** Junction FET MODEL PARAMETERS


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


    myjfet
    NJF
    T_Measured 25
    T_Current 27
    VTO -2
    BETA 100.000000E-06


    Model-Specific Temperatures During Sweep Param value = 0

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.071E-21
    PB 1.064E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = -25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.979E-25
    PB 1.097E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 0

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 0 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.917E-27
    PB 1.111E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.917E-27
    PB 1.111E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 50

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.051E-25
    PB 1.097E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 75

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 75 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 8.282E-23
    PB 1.066E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 100

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 100 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 9.589E-19
    PB 1.010E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 125

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 125 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.178E-13
    PB 9.157E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 150

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 150 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.176E-07
    PB 7.558E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 175

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 175 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 7.612E-01
    PB 4.814E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 200

    **** JFET MODEL PARAMETERS


    ERROR(ORPSIM-15007): Model myjfet has negative PB.
    myjfet (T_Current 200 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.649E+07
    PB -2.389E-03
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 1

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.071E-21
    PB 1.064E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = -25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current -25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.979E-25
    PB 1.097E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 0

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 0 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.917E-27
    PB 1.111E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 25

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 25 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.917E-27
    PB 1.111E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 50

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 50 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.051E-25
    PB 1.097E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 75

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 75 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 8.282E-23
    PB 1.066E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 100

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 100 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 9.589E-19
    PB 1.010E+00
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 125

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 125 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.178E-13
    PB 9.157E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 150

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 150 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.176E-07
    PB 7.558E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 175

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 175 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 7.612E-01
    PB 4.814E-01
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures During Sweep Param value = 200

    **** JFET MODEL PARAMETERS


    ERROR(ORPSIM-15007): Model myjfet has negative PB.
    myjfet (T_Current 200 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 2.649E+07
    PB -2.389E-03
    CGS 0.000E+00
    CGD 0.000E+00


    Model-Specific Temperatures After Sweep Param value = 0

    **** JFET MODEL PARAMETERS

    myjfet (T_Current 27 T_Measured 25)

    VTO -2.000E+00
    BETA 1.000E-04
    IS 1.361E-14
    PB 9.982E-01
    CGS 0.000E+00
    CGD 0.000E+00

    JOB CONCLUDED

    **** 08/12/26 09:19:04 *** PSpice 25.1.0 (14 September 2025) ** ID# 0 ********


    **** JOB STATISTICS SUMMARY


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

    Total job time (using Solver 1) = .52

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Cadence Guidelines

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.

© 2026 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information