ADS是支持调用spice/spectre等网表文件进行仿真的,可以用NetlistInclude控件来进行调用。其中,spectre的网表可以直接读取,并不需要执行Import-->Design-->Netlist流程来进行导入。
01
简单示例
参考ADS的help文档,调用netlist非常简单。
比如有一个PEX生成的spectre网表:pex_spectre.netlist,里面有一只MOS管,有三个端口D/G/S。只需要添加一个NetlistInclude控件,然后浏览并添加该网表,对应放三个端口D/G/S,再生成一个Symbol就可以当一个元件在ADS中来调用了。
02
薛定谔的NetlistInclude
然而作者在仿真过程中发现事情不没有那么简单,由于工艺PDK限制,该PDK仅支持原理图仿真和Layout绘制,但因为GDS Layer Number和Layer Purpose存在重复,跟ADS不兼容,导致无法进行EM仿真,EM仿真用的Substrate文件也没有也没有集成进PDK中,因此无法像GaAs那样全ADS搞定所有设计。
但是该工艺又单独提供了一个用于ADS进行EM仿真的Library(包含了Substrate文件,本文用EM_library代称),它大致思路就是抛弃了大量EM无关的GDS Layer,例如DRC/LVS等验证用的辅助识别图层,而仅保留了EM仿真相关的几个工艺图层,例如金属和过孔图层,这样就不存在图层重复的问题了,要想进行EM仿真,还需要从Cadence中导出GDS,然后导入进ADS工程的EM_library中,再添加端口进行EM仿真。
最后就导致了我为了进行一个完整的芯片设计,需要在多个软件环境、多个Library中来回折腾:
在Cadence中建立一个Library(本文用LVS_library代称),attach到Cadence专用的PDK,进行Schematic和Layout、DRC、LVS;
在ADS中建立一个EM仿真用的Library(本文用EM_library代称),不需要attach到任何工艺包,这是厂家定义好的;
在ADS中建立一个联合仿真用的Library(本文用Cosim_library代称),attach到ADS专用的PDK,将PDK中的晶体管等元件与EM_library得到的emModel联合起来进行完整的仿真。
以上全部流程都没有问题了,虽然繁琐到令人反感、恶心、头痛,但终归是都能跑通,得到正常的仿真结果。
但当我需要更进一步,把晶体管等原理图模型换成PEX提取的spectre网表进行后仿时幽灵就出现了,我把它称为薛定谔的NetlistInclude:
一开始,我参考前文示例中描述的那样用NetlistInclude,生成symbol,再调用cell,OK没问题;这个symbol我是放在Cosim_library中的;
后来,不知道什么时候由于什么原因,在调用这个Cosim_library中的cell仿真死活就不对了,表现出来的现象就等于这个cell是完全的、理想的开路状态,就是压根没接入电路中;
这时候,再把这个cell复制到一个新建的Library中,或者file-->import-->design-->netlist导入时选择自动新建Library(本文用PEX_library代称),最后再调用这个PEX_library中的cell,联合仿真结果就正常了;
然后,把前面这个正常的PEX_library中的cell复制到Cosim_library中,重新调用,结果还是完全的、理想的开路状态,就是压根没接入电路中;
最后,用emCosim模式时,对应器件partitioning选择circuit/schematic调用ADS的PDK元件模型是正常的,但是调用PEX_library中的cell结果还是完全的、理想的开路状态,就是压根没接入电路中;
总之,这个NetlistInlude去调用PEX生成的spectre netlist仿真完全就是一个让人琢磨不透的幽灵状态。
审核编辑:刘清
-
MOS管
+关注
关注
108文章
2412浏览量
66795 -
芯片设计
+关注
关注
15文章
1019浏览量
54891 -
晶体管
+关注
关注
77文章
9687浏览量
138139 -
Layout
+关注
关注
14文章
404浏览量
61757 -
GaAs
+关注
关注
2文章
510浏览量
22987
原文标题:作者求助:ADS调用spectre网表仿真异常——薛定谔的NetlistInclude
文章出处:【微信号:芯片设计之路,微信公众号:芯片设计之路】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论