问题背景:我设计了一个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:

  1. 打开ADEXL,在option下面选择Save,可以看到右边的对话框。
    )Simulation Results: 两个选项都勾上;
    )Results Location:选一个你设置的仿真文件地址。

参考:[ZZ]模拟电路仿真技巧—延长仿真时间(spectre的save和restart feature) …


ADE-Tran-Dynamic parameter相关推荐

  1. oracle dynamic set,ORACLE 数据库管理艺术

    Chapter 0 driectory and structure 查看系统中有哪些权限:select * from system_privilege_map order by name; 第一部 分 ...

  2. Cadence学习:小技巧

    删除cdslck文件: find -name "*.cdslck" find -name \*.cdslck | xargs rm 关于这个cdslck文件,会lock掉文件,目的 ...

  3. 论文阅读:CVPR2016 Paper list

    原文地址:http://blog.csdn.net/xizero00/article/details/51386667 在过几天CVPR2016就要召开了,先放个list. ORAL SESSION ...

  4. CVPR 2016 摘要阅读

    为了说明看过CVPR2016全部文章的摘要,总结一下,摘要只保留了创新点部分. ORAL SESSION Image Captioning and Question Answering Monday, ...

  5. CVPR 2016 全部文章摘要阅读

    为了说明看过CVPR2016全部文章的摘要,总结一下,摘要只保留了创新点部分. ORAL SESSION Image Captioning and Question Answering Monday, ...

  6. Learning-Deep-Learning(学习深度学习)

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai Learning Deep Learning(学习深度学习) There are lots of awe ...

  7. Learning Deep Learning(学习深度学习)

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 简书地址:https://www.jianshu.com/p/e98c5f61a6f2 Learning ...

  8. hbctraining-05_peak_calling_macs2

    算法,参数,输出. Peak calling ChIP-seq实验,从比对文件中观察到正/负链上以结合位点为中心的非对称reads 密度. For ChIP-seq experiments, what ...

  9. 应用抽象工厂模式自己动手写一个ioc

    本文的作者Danny hui似乎是TTS上的新人,我从Google搜不出一点关于本人的信息.从通过本文可以看出他对模式与IoC有自己独到的见解,本文在TTS上引发很多网友回帖,反响不一.那么我们现在来 ...

最新文章

  1. Vmware 和 Windows 代理设置
  2. 小游戏_猜数_JAVA
  3. python中re模块怎么导入_python如何导入re模块
  4. Linux 随机启动 Mysql​
  5. 从github上克隆hibernate项目
  6. 7-5 日期问题面向对象设计(聚合二) (40 分)
  7. BERT源码分析PART I
  8. 【通信原理 入坑之路】—— 仔细聊聊关于“采样”的那点事儿
  9. redis安装与调优部署文档(Linux)
  10. 删除IBM常见软件进程释放系统资源
  11. 怎么把WORD中插入的图片改为统一尺寸的,看这里,文档中图片怎么改成同样大小
  12. Form表单提交数据的几种方式
  13. 引领创新 服务创业——中关村软件园“双创”新态势
  14. oracle中字段类型为date存储数据精确到时分秒的问题
  15. AES128加密-S盒和逆S盒构造推导及代码实现
  16. 计算机对英语写作的帮助,计算机文字处理与英语写作教学的融合
  17. RN TSX基于react-native-vector-icons和iconfont.cn 的生成自定义Icon组件的工具
  18. Oracle Cloud云端账号的注册过程
  19. php edd,最新评测揭秘戴森v10motorhedd和fluffy配置有什么区别?哪个好?老司机吐露实情曝光...
  20. VUE的creat方法异步执行

热门文章

  1. eyeon项目总结 音频转换 amr-mp3 web项目路径实践经验(血泪史)
  2. 使用Matlab把图片集合生成视频流文件
  3. 框架系列课程-Spring新版本
  4. Apache Log4j 2升级到2.16.0最新版本的解决方案
  5. 沐风:小程序推广高手速成秘笈
  6. VUE 自定义子组件v-bind及v-on指令的大小写问题
  7. 26.看前端视频的感悟,来自碎碎念记录
  8. spark xgboost 特征重要性分析 gain、cover、freq
  9. win10monkey安装教程_详解win10下pytorch-gpu安装以及CUDA详细安装过程
  10. 海康威视错误代码0xf_调用海康威视sdk获取车牌号