首先声明最简单的方式:
电流信号:电路中直接将想要观测的节点pin引出,方便顶层测试,不过需要提前规划并且要版图工程师的配合0.0;
电压信号:deepprobe的使用
下面是通过编写脚本在psf中保存相关节点的方式,供参考。
在对提取寄生参数的模块进行仿真时,发现前仿可以获得数据,但是在后仿报错,提示的是该节点找不到。
举个栗子,我在更换了子电路I56的电路类型(也就是换为寄生文件),原有的表达式无法获取该电路中任何电压电流了,报错eval error nil。

查阅eetop后,发现有大佬说明(链接在文章最后),该现象是因为寄生产生的网表已经与前仿不再相同,各处节点的名称也相应的改变。
1. 编写代码
”save I1.I56*:all“
将其写入scs文件后,引入到include define file中(或者直接在ade xl中的output->save all勾选all,使用完成记得还原或者勾选为selected,否则占用空间并影响仿真速度),然后进行仿真,在history的本次仿真结果右键 result browser,可以在相关层次下找到保存的信号,比如在这里可以找到带有XI0_XM0的各种后缀数据。

2.也可以仿真结果处右键点击view netlist,查看电路生成的网表
利用ctrl+F,搜索可找到相关信息

由上面的图片可以在网表或者仿真结果处看到寄生引入仿真后,节点名称的变化,如下图。

对电流来说,通过上面的方式可以找某个mos的s端数据。当前我想看到寄生参数电路中I0.M0的电流大小,那么我可以编写代码:
“save I1.I56.XI0_XM0*:s” ;保存I1.I56.I0中M0的s端电流
将其保存为XXX.scs文件,在simulation files->definition files添加该文件,仿真即可,结果会在result brower中展示,如下图。

Tips:需要注意的是后仿结果或者网表保存的信号名称的比较奇怪,同时@数字通常表示的为多fringer或M的数据,这时候需要将第一个前缀的电流波形* M个数或者finger数(因为版图抽寄生存在的误差,finger间存在误差,不同序号的结果可能不同),也可以将相同前缀电流相加(需要注意正负,这一块没有太想明白怎么相加,没有对照验证,如有合适的方法,麻烦指教下~)。
可根据参考网址查看并保存电压信号(与本文的电流类似,找到对应标签即可),或者在原理图顶层添加deepprobe+noconn,选中连接线,deepprobe填写层次即可实现。
https://bbs.eetop.cn/forum.php?mod=redirect&goto=findpost&ptid=875498&pid=10323884
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删