在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 610|回复: 6

[求助] 为什么DC不收敛,这么简单的电路

[复制链接]
发表于 2025-1-2 10:05:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
求助大家,我刚刚装了TSMC的N65 pdk,想实验一下安装成果,结果这么简单的电路DC仿真都不收敛,提示,V=0,A=0.到底是怎么回事啊,完全摸不到头脑
Screenshot 2025-01-02 at 02.59.25.png
发表于 2025-1-2 11:21:01 | 显示全部楼层
是不是电流太大了,超过了仿真器设置的最大值,再在电路里串联一个1k电阻试一下呢
 楼主| 发表于 2025-1-2 21:33:04 | 显示全部楼层


哈皮小小怪 发表于 2025-1-2 11:21
是不是电流太大了,超过了仿真器设置的最大值,再在电路里串联一个1k电阻试一下呢
...


你看仿真报告,那个节点的电压电流都是0,很诡异
 楼主| 发表于 2025-1-2 22:45:36 | 显示全部楼层
用spectre不行,用spectre X或者FX就可以,好奇怪。。。


Spectre (R) Circuit Simulator
Version 23.1.0.242.isr1 64bit -- 7 Sep 2023
Copyright (C) 1989-2023 Cadence Design Systems, Inc. All rights reserved worldwide. Cadence and Spectre are registered trademarks of Cadence Design Systems, Inc. All others are the property of their respective holders.

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

User: root   Host: e16b38247a77   HostID: 11AC0200   PID: 15719
Memory  available: 2.0106 GB  physical: 4.0914 GB
Linux   : CentOS Linux release 7 (Core)
        Socket: Processors
        
System load averages (1min, 5min, 15min) : 38.0 %, 19.0 %, 14.0 %


Simulating `input.scs' on e16b38247a77 at 9:45:06 AM, Thur Jan 2, 2025 (process id: 15719).
Current working directory: /root/simulation/workLib2/test/maestro/results/maestro/ExplorerRun.0/1/workLib2_test_1/netlist
Command line:
    /opt/cadence/SPECTRE231/tools.lnx86/bin/spectre -64 input.scs  \
        +escchars +log ../psf/spectre.out -format psfxl -raw ../psf  \
        +errpreset=conservative +lqtimeout 900 -maxw 5 -maxn 5 -env ade  \
        +diagnose -ahdllibdir  \
        /root/simulation/workLib2/test/maestro/results/maestro/ExplorerRun.0/sharedData/CDS/ahdl/input.ahdlSimDB  \
        +logstatus

Licensing Information:
[09:45:06.406977] Configured Lic search path (22.01-s002): /opt/cadence/IC618/share/license/license.dat

Licensing Information:
[09:45:06.062464] Periodic Lic check successful

Loading /opt/cadence/SPECTRE231/tools.lnx86/cmi/lib/64bit/5.0/libinfineon_sh.so ...
Loading /opt/cadence/SPECTRE231/tools.lnx86/cmi/lib/64bit/5.0/libphilips_I_sh.so ...
Loading /opt/cadence/SPECTRE231/tools.lnx86/cmi/lib/64bit/5.0/libphilips_sh.so ...
Loading /opt/cadence/SPECTRE231/tools.lnx86/cmi/lib/64bit/5.0/libsparam_sh.so ...
Loading /opt/cadence/SPECTRE231/tools.lnx86/cmi/lib/64bit/5.0/libstmodels_sh.so ...
Reading file:  /root/simulation/workLib2/test/maestro/results/maestro/ExplorerRun.0/1/workLib2_test_1/netlist/input.scs
Reading file:  /opt/cadence/SPECTRE231/tools.lnx86/spectre/etc/configs/spectre.cfg
Reading file:  /home/cadence/PDK/tsmcN65/models/spectre/crn65gplus_2d5_lk_v1d0.scs
Time for NDB Parsing: CPU = 954.552 ms, elapsed = 813.682 ms.
Time accumulated: CPU = 1.34741 s, elapsed = 813.719 ms.
Peak resident memory used = 171 Mbytes.

Time for Elaboration: CPU = 186.773 ms, elapsed = 106.763 ms.
Time accumulated: CPU = 1.53443 s, elapsed = 920.721 ms.
Peak resident memory used = 183 Mbytes.


Notice from spectre during hierarchy flattening.
    The value 'psf' specified for the 'checklimitdest' option will no longer be supported in future releases. Use 'spectre -h' to see other recommended values for the 'checklimitdest' option.


Time for EDB Visiting: CPU = 42.318 ms, elapsed = 22.4369 ms.
Time accumulated: CPU = 1.577 s, elapsed = 943.378 ms.
Peak resident memory used = 185 Mbytes.


Warning from spectre during initial setup.
    WARNING (SPECTRE-4150): An arithmetic exception occurred during device initializing.


Global user options:
         psfversion = 1.4.0
            vabstol = 1e-06
            iabstol = 1e-12
               temp = 27
               gmin = 1e-12
             rforce = 1
           maxnotes = 5
           maxwarns = 5
             digits = 5
               cols = 80
             pivrel = 0.001
           sensfile = ../psf/sens.output
     checklimitdest = psf
               save = allpub
             reltol = 0.001
               tnom = 27
             scalem = 1
              scale = 1

Scoped user options:

Circuit inventory:
              nodes 1
              bsim4 1     
            vsource 1     

Analysis and control statement inventory:
                 dc 1     
               info 7     

Output statements:
             .probe 0     
           .measure 0     
               save 0     


Warning from spectre during initial setup.
    WARNING (SPECTRE-4150): An arithmetic exception occurred during device initializing.

Time for parsing: CPU = 140.567 ms, elapsed = 90.322 ms.
Time accumulated: CPU = 1.71781 s, elapsed = 1.03394 s.
Peak resident memory used = 192 Mbytes.

~~~~~~~~~~~~~~~~~~~~~~
Pre-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~

******************
DC Analysis `dcOp'
******************

Opening the PSF file ../psf/dcOp.dc ...
Important parameter values:
    reltol = 1e-03
    abstol(V) = 1 uV
    abstol(I) = 1 pA
    temp = 27 C
    tnom = 27 C
    tempeffects = all
    gmindc = 1 pS

Warning from spectre during DC analysis `dcOp'.
    WARNING (SPECTRE-16941): A floating-point exception occurred during device loading. This might result in convergence problems during simulation. Check the device model for any possible illegal mathematical operations, such as divided by 0 or data overflow, and rerun the simulation.

Trying `homotopy = gmin'.

Warning from spectre during DC analysis `dcOp'.
    WARNING (SPECTRE-16941): A floating-point exception occurred during device loading. This might result in convergence problems during simulation. Check the device model for any possible illegal mathematical operations, such as divided by 0 or data overflow, and rerun the simulation.
    WARNING (SPECTRE-16941): A floating-point exception occurred during device loading. This might result in convergence problems during simulation. Check the device model for any possible illegal mathematical operations, such as divided by 0 or data overflow, and rerun the simulation.
    WARNING (SPECTRE-16941): A floating-point exception occurred during device loading. This might result in convergence problems during simulation. Check the device model for any possible illegal mathematical operations, such as divided by 0 or data overflow, and rerun the simulation.
    WARNING (SPECTRE-16941): A floating-point exception occurred during device loading. This might result in convergence problems during simulation. Check the device model for any possible illegal mathematical operations, such as divided by 0 or data overflow, and rerun the simulation.
        Further occurrences of this warning will be suppressed.

Trying `homotopy = source'.
Trying `homotopy = dptran'...
Trying `homotopy = ptran'..
Trying `homotopy = arclength'.
None of the instantiated devices support arclength homotopy. Skipping.

Arclength failed after a total of 0 iterations.
Attempting Newton loop with latest solution.

Perform DC simulation with solver optimization
Trying `homotopy = gmin'.
Trying `homotopy = source'.
Trying `homotopy = dptran'...
Trying `homotopy = ptran'..
Trying `homotopy = arclength'.
None of the instantiated devices support arclength homotopy. Skipping.

Arclength failed after a total of 0 iterations.
Attempting Newton loop with latest solution.

Error found by spectre during DC analysis `dcOp'.
    ERROR (SPECTRE-16080): Cannot print DC solution because DC did not converge. Resolve the convergence issue and rerun the simulation.
         

The values for every node on the last Newton iteration are given below.  For those nodes that did not converge, the manner in which the convergence criteria were not satisfied is also given.
            Failed test: | Value | > RelTol*Ref + AbsTol

Top 4 Residue too large Convergence failure:
    V(M1:int_d) = 0 V
        residue too large: | 17.881 nA | > 89.4052 pA + 1 pA
    V(net3) = 0 V
        residue too large: | -17.881 nA | > 89.4052 pA + 1 pA


The following set of suggestions might help you avoid convergence difficulties.  After you have a solution, write it to a nodeset file by using the `write' parameter, and read it back in on subsequent simulations by using the `readns' parameter.

1. Evaluate and resolve any notice, warning, or error messages.
2. Perform sanity check on the parameter values by using the parameter range checker (use ``+param param-limits-file'' as a command line argument) and heed any warnings.  Print the minimum and maximum parameter value by using `info' analysis.  Ensure that the bounds given for instance, model, output, temperature-dependent, and operating-point (if possible) parameters are reasonable.

3. Check the direction of both independent and dependent current sources. Convergence problems might result if current sources are connected such that they force current backward through diodes.
4. Small floating resistors connected to high impedance nodes can cause convergence difficulties. Avoid very small floating resistors, particularly small parasitic resistors in semiconductors. Instead, use voltage sources or iprobes to measure current.
5. If you have an estimate of what the solution should be, use nodeset statements or a nodeset file, and set as many nodes as possible.
6. Use realistic device models. Check all component parameters, particularly nonlinear device model parameters, to ensure that they are reasonable.
7. If simulating a bipolar analog circuit, ensure that the region parameter on all transistors and diodes is set correctly.
8. Loosen tolerances, particularly absolute tolerances like `iabstol' (on options statement). If tolerances are set too tight, they might preclude convergence.
9. Increase the value of gmin (on options statement).
10. Use numeric pivoting in the sparse matrix factorization by setting `pivotdc=yes' (on options statement). Sometimes, it is also necessary to increase the pivot threshold to a value in the range of 0.1 to 0.5 by using `pivrel' (on options statement).
11. Try to simplify the nonlinear component models to avoid regions that might contribute to convergence problems in the model.
12. Divide the circuit into smaller pieces and simulate them individually. However, ensure that the results are close to what they would be if you had simulated the whole circuit.  Use the results to generate nodesets for the whole circuit.
13. Check the connections to ground. Convergence problems might result if no connections to ground.
14. If all else fails, replace the DC analysis with a transient analysis and modify all the independent sources to start at zero and ramp to their DC values. Run transient analysis well beyond the time when all the sources have reached their final value (remember that transient analysis is very cheap when none of the signals in the circuit are changing) and write the final point to a nodeset file. To make transient analysis more efficient, set the integration method to backward Euler (`method=euler') and loosen the local truncation error criteria by increasing `lteratio', say to 50. Occasionally, this approach fails or is very slow because the circuit contains an oscillator.  Often, for finding the dc solution, the oscillation can be eliminated for by setting the minimum capacitance from each node to ground (`cmin') to a large value.


Maximum value achieved for any signal of each quantity:
DC simulation time: CPU = 108.005 ms, elapsed = 59.212 ms.
Analysis `dcOp' was terminated prematurely due to an error.

Notice from spectre.
    99 warnings suppressed.

dcOpInfo: writing operating point information to rawfile.

Opening the PSF file ../psf/dcOpInfo.info ...

Error found by spectre during DC analysis, during info `dcOpInfo'.
    ERROR (SPECTRE-16041): The `dcOpInfo' analysis is skipped due to inability to compute operating point. Run 'mmsimpack' (see mmsimpack -h for detailed usage information) to package the netlist and log files as a compressed tar file. Then, contact your Cadence representative or submit a service request via Cadence Online Support, including the tar file and any other information that could help identify the problem.

Analysis `dcOpInfo' was terminated prematurely due to an error.
modelParameter: writing model parameter values to rawfile.

Opening the PSF file ../psf/modelParameter.info ...
element: writing instance parameter values to rawfile.

Opening the PSF file ../psf/element.info ...
outputParameter: writing output parameter values to rawfile.

Opening the PSF file ../psf/outputParameter.info ...
designParamVals: writing netlist parameters to rawfile.

Opening the PSFASCII file ../psf/designParamVals.info ...
primitives: writing primitives to rawfile.

Opening the PSFASCII file ../psf/primitives.info.primitives ...
subckts: writing subcircuits to rawfile.

Opening the PSFASCII file ../psf/subckts.info.subckts ...

~~~~~~~~~~~~~~~~~~~~~~~
Post-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~~
                Analysis        Analysis ID        CPU (s)      Elapsed (s)
         1            dc              dcOp        1.10e-01        6.13e-02
         2          info          dcOpInfo        7.66e-03        5.89e-03
         3          info        modelParameter    3.15e-02        2.02e-02
         4          info           element        7.06e-03        4.04e-03
         5          info        outputParameter   2.90e-03        1.53e-03
         6          info        designParamVals   4.44e-03        3.12e-03
         7          info        primitives        3.38e-03        2.09e-03
         8          info           subckts        3.28e-03        1.91e-03
------------------------------------------------------------------------------------
     Total                                        1.70e-01        1.00e-01
   Average                                        2.13e-02        1.25e-02
Elapsed Min         info        outputParameter   2.90e-03        1.53e-03
Elapsed Max           dc              dcOp        1.10e-01        6.13e-02

~~~~~~~~~~~~~~~~~~~~~~~

Licensing Information:
Lic Summary:
[09:45:07.418513] Cdslmd servers:/opt/cadence/IC618/share/license/license.dat
[09:45:07.418550] Feature usage summary:
[09:45:07.418564] Virtuoso_Spectre


Aggregate audit (9:45:07 AM, Thur Jan 2, 2025):
Time used: CPU = 2 s, elapsed = 2 s, util. = 100%.
Time spent in licensing: elapsed = 299 ms, percentage of total = 14.9%.
Peak memory used = 202 Mbytes.
Simulation started at: 9:45:06 AM, Thur Jan 2, 2025, ended at: 9:45:07 AM, Thur Jan 2, 2025, with elapsed time (wall clock): 2 s.
spectre completes with 2 errors, 7 warnings, and 3 notices.
发表于 2025-1-3 10:07:38 | 显示全部楼层
spectre仿真把温度换成25度试一下,还是不行设置一下仿真精度
 楼主| 发表于 2025-1-4 23:18:54 | 显示全部楼层
顶一下
 楼主| 发表于 2025-1-8 02:48:39 | 显示全部楼层
顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-1-24 05:41 , Processed in 0.033648 second(s), 22 queries , Gzip On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表