ADE-Tran-Dynamic parameter
问题背景:我设计了一个ADC,正在进行联合仿真。其中有一个模块是软复位。该模块的行为是当电源电压低于某个阈值的时候,就会将电路的RST拉低,并在几个ms之后再拉高。为了让电路收敛,我采用电源电压从0开始上升到VDD的仿真方法。然后就出现每次仿真的时候都要等这个模块先把RST拉低,再把RST拉高这样一个过程。由于电路规模较大,仿真很慢,根本不可能仿几个ms这么长的时间。
问题:
我听cadence的员工说spectre通过修改网表可以实现一个瞬态仿真跑两个步进的操作。就是比如说前10ms,我的步进是1ms的。这样就可以先把软复位模块的行为跑完,然后10ms之后,我的步进是10ps,这样就能精确地知道电路的性能。
同理:1.5ms,设置步长750us,200us
请问有人知道这个要怎么操作么?谢谢大家的帮助。
可以试试
transient analysis里的"Dynamic Parameter"。
在"Dynamic Parameter"下,选"errpreset",然后选 vector。
在下面的表格中填入(例如)
0 liberal
10m moderate
11m conservative
…
参考:Dynamic parameter
请问,怎么在verilogA中描述温度啊?需要对一个带隙基准建模,https://wenku.baidu.com/view/059aa8393186bceb18e8bb4b.html
参考了这篇文章,这位竟然把temp做成一个electrical节点,但是这样做之后,仿真时怎么把温度变量temp传送给这个模块?
求助。另外,有没有用verilogAMS的?这里面能不能把数字verilog和模拟verilogA同时描述?
EEPRESET:仿真误差
METHOD :求解方法
Maxstep:最大步长
temp:温度
spice 里面有两个温度tnom和temp,有什么区别,比如我要在110C 下仿真,这两个温度应该怎么设。
tnom是缺省值,一般为25或27度。temp是你要设的器件工作温度。
tnom 应该是model parameter,指的是transistor/device parameters 提取时的温度。 一般是300k。 temp是设定的工作温度, 300k, 400k,都可以的。因为很多model parmeter都是temp dependent的,e.g. 电阻, saturation 电流等等。 所以有2个温度。
请问一下在tran仿真时maxstep设置和不设置有什么区别,我在仿VCO输出曲线时,给个值就输出好的波形,不给值是就是噪声波输出,麻烦大家给些讲解,谢谢!
和精度有关,具体看帮助吧。
应该是软件自动控制的,一般很少人为干预,可能你软件版本太老。
后仿TRAN仿真速度太慢,于是采用加命令的方式使用aps多线程仿真,命令是 +aps +mt=16
加命令后的仿真速度是变快了,但仿真结果很差,和不用aps的TRAN conservative精度仿真结果差很多(如图,图1、2是用aps的,图3、4是不用aps)
同事那边也只是在原本TRAN conservative精度的基础上加了命令跑aps,仿真结果就一样
为什么我同样的操作就差别这么大呢?
(对比两个人的仿真过程发现有一点不一样,他那边有aps跑时TRAN的步长step和不用aps时相差不大,但我这边有aps跑时TRAN步长会变为原来的两三倍,如图2、4)
请大佬们解惑~提前感谢
maxstep
用hspice仿真同一个基准电路时发现,当仿真步长为10ns时,基准输出是稳定的;但是将仿真步长降低到10ps时,仿真发现基准会抖动。
这个值大,可能影响收敛性,且细节不够。这个值小,精度好,跑得慢。没有挂负载吧,加个负载瞧瞧。最终都看正常工作环境对应的trans。PM够,GM保证-10dB,基本没有啥问题的。。
没啥迷惑的点啊。默认设置的精度是根据电路和信号动态调整的,很容易不够智慧。所以conservative和conservative之间的差距极大
初始扰动
最近在仿真振荡器。 做tran simulation, 在VDD上加几个pulse, 比如从1.2V降到1v再升到1.2V, 但是振荡器还是没有起振。 但是如果在振荡器输出设置初始电压, 给个很小的差别(1mV), 就可以震荡起来了。
一般大家都是怎么做振荡器的tran simulation? 在vdd上加pulse还是在输出设置初始电压?
哪一种方法更可靠呢?
在帮助文件里有说明,可以在输出端加一些扰动和设置初始电压,都可以。在电压上加扰动也可以。但是关键还是要看你的振荡器是否满足起振条件。
这是我的三级环形振荡器结构图,首先它的噪声由电源提供,电源信号给的是PWL信号,上升时间为1us,每级的增益为gmr,三级环形振荡器要满足gmr>2,这里是满足的,但是现在出现了一个奇怪的问题,当每级的负载电容取值相同时,电路不能振荡,当负载电容取值不同时,电路能够振荡,而且它的三级差分电路也是这样,所以感到很奇怪,一般来说振荡器的每一级的参数不应该都一样么?而且我以前仿过VCO,当每一级的参数一样时,电路确实能够振荡起来,求助论坛各位大神,小弟不胜感激。
我解决啦!拉扎维振荡器第2节有详细讲解,我是每级反相器的交流增益小于6dB了,没有满足振荡条件。
trap与gear2
在仿真的时候发现,这两种METHOD 解出来的结果差别很大,前者更容易出现尖刺状的震荡,麻烦各位大侠指点一下!
刚刚在spice manual 中找到解释了…
收斂性和穩定性較差時,有幾種處理方法。不同的模擬器其處理方法也不同,下面的方法請理解為其中一個示例。
模擬器的設定項目中,有收斂性和穩定性相關的項目,試著更改這些項目。在本例中,演算法有三個選項,我們將嘗試更改現有的選項。另外,也將嘗試更改精度和誤差等收斂條件。
①嘗試將演算法更改為Gear
・trapezoidal(梯形法):計算速度和精度高,但收斂性方面表現較差。
・modified trap(梯形法改進版):改善了梯形法的收斂性。
・Gear(預測校正法):容易收斂,但在計算速度和精度方面表現較差。
②放寬收斂條件
・Abstol:電流精度。圖例為1pA以內。
・Reltol:相對誤差。圖例為0.1%以內。
・Chgtol:電荷精度。圖例為10fC以內。
・Vlottol:電壓精度。圖例為1uV以內。
當提高精度(降低值)時,計算速度會下降,但收斂性會改善。
=
Hspice仿真电路不收敛,说白了就是就是计算机解矩阵解不出来了。
不收敛的原因可能有三个方面造成:
(1).hspice的计算上面.以上换算法,换options都是根据这一点来的。一般说来,这样的情况占绝大多数
(2).Model的问题。比如产生负的电导,或者模型不连续性造成。
(3).电路本身问题
比如网表不完整,有悬空点;反馈不正确(不一定都不收敛,hspice的parser 部分对这种情况只给warning,不给error message)等等。电路本身的问题属于设计上的了,具体只能自己分析。对于hspice运行通过,功能性能都过的去,一般多运行些corner 情况, worstcase情况或者做 MonteCaro分析,有问题的话应该可以抓出,没问题的话,流片后出问题概率也不大。
解决的办法可以通过以下各种手段:
(1).换个算法
hspice提供两种基本算法,Gear和Trap.学过数值分析的应该明白这两种解方程的方法
。默认值是Trap,遇到不收敛问题一般先换个算法看看,更改为Gear.方法是加一个:.options method=gear
不过这个换算法能解决的情况不是很多。假如画出解方程的那个图形来看,是需要恰好避开那个不收敛的点才能解决。因此有一定凑巧性。
(2.)改变tolerance.
计算机解方程时,都是设定一个容忍度。这个容忍度可以是叠代次数,可以是精确度,可以是计算时间,而且还可能和accuracy配合起来,有大概20个tolerance可以更改。根据不同的需要,看一下需要改哪个。hspice有个附带的options table,非常好用。
(3).改变步长
相信大家看到的最多的是intenal timestep too small这个提示。内部时钟间隔太小。这个timestep不是所设定的分析step,不过那个step也是timestep的一个因子.影响timestep的因此很多,有12个之多。(比如数值变换平缓时,timestep自动取的大些以增快仿真时间)更改timestep的方法也可以查上述options列表.
(4).改变初始条件
用.ic设定。方程解不出来,就改变一下条件。使用得当一般不会影响结果.
(5).在一些节点加很大的电阻(不影响电路性能),来改变节点方程。这种方法不会影响电路的模拟结果。
(6).在.option 语句中加入改善收敛的语句。
比如对收敛精度降低迭代次数加大等。其中的参数有RELVDC,RELH,CONVERGE,DCON等。在hSPICE的手册里有很多改善的措施,可以看DC or AC中CONVERGENCE那部分。HSPICE在模拟的速度,精度,收敛性三方面进行折衷。
其中常用的是: 对每个节点都加一个很大的电阻或电容。
.OPTION GSHUNT=1E-11 CSHUNT=1E-11等。但这会降低模拟精度。
(7). 改变电源的波形。在电路起动时让恒流源缓慢上升。在HSPICE中也有这样的OPTION,不过你可以自己来改。在不影响电路的情况下这种方法对收敛的改善最好。
(8).改变电路
去掉或者替换一些没什么用的部分。可以加个非常小的电阻比如1u欧姆(等于加了个节点,方程维数多了一个)。
节点信息
用Hspice跑tran仿真,最后一步的节点状态如何保存?目的是想用它作为输入文件,继续跑仿真。跑系统的时间比较长,而且很多时候都是浪费在启动过程中。而且有时候仿真时间给的不够还得重跑。如果上面的设想可行,多少能减少点工作量。
先谢谢各位指教,如果有相关资料,也请一并附上!
或者说Hspice没有这个功能,Spectre可以实现吗?记得以前用过这个功能!
还有文件最终大小不能超过2G不然后面的不保存,这时就可以利用saveperiod或者saveclock,因为他们会把文件分成1,2,3…保存、
tran的option的state file parameters里面,选个文件名保存,下次跑的时候读这个文件
不是画框的地方,填在savefile里面写上你要保存到的文件名,下次想继续跑就在recover上面填你这个文件名(注意路径),另外period,clock,time,分别是保存周期(仿真时间),保存周期(真实时间),保存时间点(仿真时间),假设你就保存1ms以内的状态结果,只要在savefile填好文件路径、名字,savetime上填1ms就可以了,另外此时不要enable除tran以外的任何仿真
clock,保存周期(真实时间)
period,保存周期(仿真时间),
time ,保存时间点(仿真时间),
假设你就保存1ms以内的状态结果,只要在savefile填好文件路径、名字,savetime上填1ms就可以了,另外此时不要enable除tran以外的任何仿真
savefile的文件默认是不是应该存在和spectre.ic一个文件夹内呢?我没有找到生成的文件。即使我自己把文件的全路径都写了,simulation完了也没找到相应的文件。求解答,谢谢!
添加链接描述
您好,请问savefile的文件类型是什么?我试了下recover不成功,显示文件类型不对
设计ADC的时候,忽然发现跑了一天的结果拿出来做FFT,之前的取点数量算错了!我晕!怎么办?也就再多一点点的时间就行了,难道要重新跑一天?生无可恋……
设计PLL的时候,我也不知道loop啥时候能settle,然后随便写了个截止时间,结果……果然不够……-_-
或者做其他电路设计的时候,反正我就想再多跑一段时间吧!
作者君最近学到了一个可以在之前仿真基础上接着跑仿真的办法,拿来跟大家分享一下,希望大家也能提供一些建议!
PS:作者君试过ADEXL和ADE Explore,都是可以的。ADE似乎不行。
嗯,又是熟悉的配方,来自ADEXL:
- 打开ADEXL,在option下面选择Save,可以看到右边的对话框。
)Simulation Results: 两个选项都勾上;
)Results Location:选一个你设置的仿真文件地址。
参考:[ZZ]模拟电路仿真技巧—延长仿真时间(spectre的save和restart feature) …
ADE-Tran-Dynamic parameter相关推荐
- oracle dynamic set,ORACLE 数据库管理艺术
Chapter 0 driectory and structure 查看系统中有哪些权限:select * from system_privilege_map order by name; 第一部 分 ...
- Cadence学习:小技巧
删除cdslck文件: find -name "*.cdslck" find -name \*.cdslck | xargs rm 关于这个cdslck文件,会lock掉文件,目的 ...
- 论文阅读:CVPR2016 Paper list
原文地址:http://blog.csdn.net/xizero00/article/details/51386667 在过几天CVPR2016就要召开了,先放个list. ORAL SESSION ...
- CVPR 2016 摘要阅读
为了说明看过CVPR2016全部文章的摘要,总结一下,摘要只保留了创新点部分. ORAL SESSION Image Captioning and Question Answering Monday, ...
- CVPR 2016 全部文章摘要阅读
为了说明看过CVPR2016全部文章的摘要,总结一下,摘要只保留了创新点部分. ORAL SESSION Image Captioning and Question Answering Monday, ...
- Learning-Deep-Learning(学习深度学习)
作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai Learning Deep Learning(学习深度学习) There are lots of awe ...
- Learning Deep Learning(学习深度学习)
作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:https://www.jianshu.com/p/e98c5f61a6f2 Learning ...
- hbctraining-05_peak_calling_macs2
算法,参数,输出. Peak calling ChIP-seq实验,从比对文件中观察到正/负链上以结合位点为中心的非对称reads 密度. For ChIP-seq experiments, what ...
- 应用抽象工厂模式自己动手写一个ioc
本文的作者Danny hui似乎是TTS上的新人,我从Google搜不出一点关于本人的信息.从通过本文可以看出他对模式与IoC有自己独到的见解,本文在TTS上引发很多网友回帖,反响不一.那么我们现在来 ...
最新文章
- Vmware 和 Windows 代理设置
- 小游戏_猜数_JAVA
- python中re模块怎么导入_python如何导入re模块
- Linux 随机启动 Mysql​
- 从github上克隆hibernate项目
- 7-5 日期问题面向对象设计(聚合二) (40 分)
- BERT源码分析PART I
- 【通信原理 入坑之路】—— 仔细聊聊关于“采样”的那点事儿
- redis安装与调优部署文档(Linux)
- 删除IBM常见软件进程释放系统资源
- 怎么把WORD中插入的图片改为统一尺寸的,看这里,文档中图片怎么改成同样大小
- Form表单提交数据的几种方式
- 引领创新 服务创业——中关村软件园“双创”新态势
- oracle中字段类型为date存储数据精确到时分秒的问题
- AES128加密-S盒和逆S盒构造推导及代码实现
- 计算机对英语写作的帮助,计算机文字处理与英语写作教学的融合
- RN TSX基于react-native-vector-icons和iconfont.cn 的生成自定义Icon组件的工具
- Oracle Cloud云端账号的注册过程
- php edd,最新评测揭秘戴森v10motorhedd和fluffy配置有什么区别?哪个好?老司机吐露实情曝光...
- VUE的creat方法异步执行
热门文章
- eyeon项目总结 音频转换 amr-mp3 web项目路径实践经验(血泪史)
- 使用Matlab把图片集合生成视频流文件
- 框架系列课程-Spring新版本
- Apache Log4j 2升级到2.16.0最新版本的解决方案
- 沐风:小程序推广高手速成秘笈
- VUE 自定义子组件v-bind及v-on指令的大小写问题
- 26.看前端视频的感悟,来自碎碎念记录
- spark xgboost 特征重要性分析 gain、cover、freq
- win10monkey安装教程_详解win10下pytorch-gpu安装以及CUDA详细安装过程
- 海康威视错误代码0xf_调用海康威视sdk获取车牌号