电子说
在大型系统的仿真过程中,有时可以很快达到稳态解。然而,当节点开始振荡时,仿真器可能会放慢速度以求解所有振荡中的采样点。
探测设计中的每个节点以识别振荡节点是耗时且不可行的,尤其是在具有100以上个节点的系统中。
振荡信号包括模拟信号、数字信号和事件信号等,如何识别并提取振荡信号呢?本文以一个转换器电路为例,展示了如何在SaberRD中使用自动化脚本提取这些振荡节点的信号。这个电路是一种混合信号设计,具有振荡的模拟、数字和事件节点或信号。
电路原理图见随附的例子converter.ai_dsn,随附的例子中还提供了脚本程序filter_all.aim,它可以处理模拟、数字和事件信号,并生成一个包含所有信号(恒定信号和振荡信号)的单个绘图文件,并对所有恒定信号进行过滤,仅保留振荡信号以供你查看。
详细步骤如下:
1、 下载示例design_script.zip,并解压;
2、 启动SaberRD并打开设计converter.ai_dsn;(请使用SaberRD2015.03或以上版本)
3、 运行瞬态仿真,参数:End Time = 1m 和 Step = 1u,在results窗口tr中查看波形,可以看到恒定信号有:模拟信号v0,数字信号digital_flat,时间信号fall、off、on和rise;
4、 打开 SaberRD 脚本窗口并使用以下命令执行脚本:source filter_all.aim
5、 运行该程序以提取只包含振荡的模拟、数字和事件信号并生成绘图文件filtered .ai_awd:
PF:DetectOscillation converter.tr.ai_awd filtered 500u
6、 点击Analyze > Open Results 打开过滤后的绘图文件filtered.ai_awd,可以看到振荡信号被保留,而恒定信号被过滤出去。
注意,以下情形不能提取振荡节点:
1、如果设计有切换模型
2、如果设计突然失败而没有预先振荡
3、如果设计有非常小的截断误差
全部0条评论
快来发表一下你的评论吧 !