作者pow (体脂肪35%)
看板Electronics
标题Re: [问题] 请问关於hspice出现的错误
时间Fri Mar 31 13:13:17 2006
※ 引述《[email protected] (仰望天空~~(m))》之铭言:
: ※ 引述《[email protected] (断了思念)》之铭言:
: : 谢谢大家帮忙
: : 但又有错误
: : **error** internal timestep too small in transient analysis
: : 模拟时出现这个错误的讯息
: : 但 怎麽改指令都不能跑
: : 是电路的问题吗 频率2.4G的电路所以 timestep太小吗?
: : 还是?...
: : 要下什麽指令吗
: : 我下的输入va1 a 0 pulse(0 2.2 0 0.1p 0.1p 0.015u 0.030u)
: : tran 1n 5u
: : 之前跑别的电路可以跑
: : 这次的电路却没办法跑
: : 想请问大家该如何解决
: : 谢谢
: 有时候,会有可能这样的,有些可能因为收敛的问题,你不妨可以从收敛的问题和
: timestep下手喔,timestep可能太小噜,对这个电路而言。只要你确定你输入的信号
: val写的没有错误就好了,剩下就可以慢慢解决低....^^
解决方法:使用Spectre
还不行的话
在Spectre选Transient analysis那边有一个Advanced设定 进去里面有一个Gear2
选了再跑一次
再不行的话....
再波出来讨论看看
SPICE跑模拟的方法简述如下:
1. 想像你有一个曲线f(t)
从这一个时间点 f(t0) 然後去猜f(t1)的值
假设t1-t0很小
你可以用f'(t0)或f'(t1)的斜率去投影(有点向牛顿法)
2. 投影之後得到的f*(t1)一定不是真正的f(t1)
还要再固定时间点做iteration
然後才会得到真正的f(t1)
4.可是如果f*(t1)跟f(t1)差太多了
或者没有办法收敛(例如你的电路刚好在那时候有一个很大的变化)
那他就会自动把time step切一半
取消一开始的投影 变成只投影到f*((t0+t1)/2)
然後再固定时间点做iteration
5.如果又不行
就再把时间点切一半
直到达到系统极限...
所以你会得到讯息说「time step太小,模拟失败」
这跟你设定的time step应该是不一样的东西
解决的方法第一个是改善那个投影的方法
要不然的话换个版本的SPICE也有可能会收敛得比较好
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 24.211.186.84
1F:推 kkooff:推荐这篇 ^^ 03/31 22:27
2F:推 NovemberRain:原来不收敛原因是这样,又上了一课。多谢~ 04/01 03:49