virtuoso使用hspice仿真器进行前后仿真、PEX

对于大多数模拟工艺库PDK而言,是会提供spectre仿真的相关仿真模型的,但是有一部分工艺库只提供了hspice类型的模型文件。对于这类工艺库,如果只使用hspice来进行仿真,用virtuoso画版图,会非常麻烦,毕竟hspice没有gui界面,仿真得敲.sp文件的代码,对于复杂电路而言太容易出错。当然也有用virtuoso搭完电路,然后导出sp网表送给hspice仿真的方法,但是也非常繁琐。这里介绍只使用virtuoso仿真的方法,使用Cadence virtuoso软件对hspice支持的仿真器HspiceD进行仿真,并且可以打通模拟设计全流程(电路搭建——前仿真——版图绘制——drc——lvs——pex——后仿真)。

首先肯定需要安装virtuoso和hspice,安装和破解教程按网上的步骤来就好。virtuoso的安装破解教程比较多,这里就不提供了,至于hspice的linux版本和相应的crack,大家需要的可以私信我。

至于如何将hspice集成到virtuoso当中?解决办法是,不用集成。因为在virtuoso会直接调用hspice这个命令生成仿真结果,只要你的linux上装了hspice并且许可证对,virtuoso就能识别到并且调用它。

virtuoso的仿真界面:

一般来说virtuoso仿真时会默认调用自家的spectre仿真器,如果大家用的PDK里有提供spectre的仿真模型,就不用hspice来仿真啦。至于我为什么要用?当然是因为我的工艺库里没有这个模型,只有hspice的模型。换仿真器在上面这个界面的setup-->Simulator/Directory/Host选项里,选中HspiceD这个仿真器,然后OK,virtuoso会重新加载这个仿真窗口。

接下来,选择自己要用的工艺库模型,在Setup--> Model libraries里选,可以一次性选多个,要用的时候把左边的勾打上就行。模型文件一般在PDK的models文件下,选中后如果右边的Section里有东西,就说明这是一个模型文件。

 接下来的操作就和正常用spectre仿真器一样啦,选好参数、激励源、仿真方式、输出波形之后,进行仿真,看下日志文件:

可以看到,virtuoso在进行仿真的过程中先调用了hspice,并且check license通过,然后调用hspice得到了仿真结果,最后把结果拿来用自己的波形查看器输出,没有用到synopsys家的custom wavewiew。

这里我以一个与非门电路的仿真为例,可以看到仿真结果的输出还是很精确的,和spectre仿真结果没有什么太大差别。

另外,还可以在Simulation-Netlist这边查看virtuoso为你的电路生成的相应网表,既然仿真器是HspiceD,那网表的格式当然也是相应的格式,你把网表导出后再用hspice仿真也是可以的,这也是大多数人最常使用的方法,不过还是太麻烦,不是吗?

对于一个模拟电路的设计,前仿真只是第一步而已,重头戏还在于电路版图的绘制。只要PDK中提供了DRC、LVS和PEX的规则文件以及display.drf文件,画版图这一块都是没有问题的。需要用到Hspice的只有PEX这一步,毕竟提取的寄生参数还要和后仿真挂钩。

还是以与非门电路为例,在进行PEX提取时,有些地方还是需要注意的,否则仿真很可能得不到你想要的结果。

首先要特别注意的是,电源和地不要用analoglib里的vdd和gnd。这两个玩意在后仿真中是识别不到的。为电源和地创建两个pin,如下图所示,一定要让电路图中只包含晶体管、电阻电容和pin脚。

然后在版图的pin中也要改掉。当然电路图改了之后版图不改也是过不了lvs的。

注意要点开版图的pin,看一下Net name和I/O type是否一致。这个不一样的话是不行的。

在完成了drc和lvs之后,就可以进行版图的寄生参数提取PEX,注意一下PEX的设置:

首先是Rules file要选对,这个是大前提。然后注意一下REX Run Directory的设置,最好建立一个专门的PEX文件夹来保存,不然workspace里一大堆文件,PEX生成的网表都找不到。然后在Outputs选项,把Format这里改成hspice。

接下来是很关键的一步,也是很多人最容易忽视的地方。首先在Setup里选中PEX options选项,打开PEX的设置。然后在Misc选项栏下,选中“Create top level pin order”选项,然后把右边改为SOURCE。不选中这一项的话,生成的PEX网表,pin脚是乱的,导致后仿真错误。

接下来就可以Run PEX,在经过几分钟等待后,会弹出一个PEX.netlist的文件,表示PEX提取完成。同时,在工作目录下会生成3个文件(重要的是这3个,还会生成一些其他文件):

其中,netlist结尾的第一个文件,是生成的电路描述文件,这里是hspice格式的。直接在这个文件基础上加上激励,然后用hspice软件仿真也是可以的,这里我们还是采用virtuoso仿真的方法。

pxi结尾的文件,会告诉仿真器提取出来的每个电容、电阻都在电路的哪个位置。而pex结尾的文件,则是提供了每个电容电阻的具体数值。

接下来的后仿真,主要用到的是netlist这个网表文件。和spectre提取的PEX不同,我们要用virtuoso的Hierarchy Editor这个工具来进行。这是一个层次化仿真的工具,可以把上一层的电路做成一个网表给下一层进行仿真。

首先,必须为电路创建symbol视图,后仿真中需要用到。为电路创建symbol在这个选项:

点击From Cellview,然后一路默认,就可以进入symbol视图的绘制界面。最好在做完PEX之后再画symbol,如果已经画好了,再创建一个新的symbol,把旧的覆盖掉。

创建好之后,新建一个新的工程,作为testbench,也就是测试工程。hierarchy editor工具的实际运作方式,就是在最上层的电路图中调用symbol,然后工具可以把这个symbol用网表文件代替,然后再仿真这个最上层的电路,就可以实现后仿真的效果。不过这种方法是测试不到symbol内部的电压和电流的。

在testbench下新建一个cell,这里我就取名nand_test。

然后画好电路图(忽略我画的有点丑):

把symbol的管脚都引出来连到pin上即可。

接下来创建一个config视图:

可以看到,选中config视图后,“Open with”那一栏变成了Hierarchy Editor,也就是我们要用到的工具。

点击OK,会弹出一个界面。view那里选择schematic,然后点击下面的use Template这里,在弹出的界面选中hspiceD,然后OK下一步。

接下来的界面如下,右击project2(就是你要进行后仿真的那个cell所在的工程),默认是用原理图输入进行层次化仿真的,也就是和前仿真一样的效果。

找到这个选项,然后选择PEX提取出来的网表:xxx.PEX.netlist

选中之后还要更新一下工具,在views-updated选项,不更新直接仿真是不行的。更新后会变成这个样子:

然后就可以进行后仿真了。注意要在这个工具界面的ADE L这里打开。

接下来的步骤就和前仿真一致了。注意仿真模型那里默认是AMS,改成HspiceD。在进行仿真前,可以先看一下网表确认一下,在Simulation-netlist-create,点击查看生成的网表文件:

注意看这两行,看第一行是否包括了所有的pin,以及是否有第二行,将pex提取的网表include在里面,不然还是前仿真。然后就可以跑后仿真了。对于简单的电路而言,后仿真的结果和前仿真区别不大,但是复杂起来就差比较多了。有时候后仿真波形比较差,就是画的版图不够好,导致寄生电容太大了,这个一般是你金属层的间距太小、长度太长导致的,把低金属层用通孔打到高层金属,把太长条的金属切碎开,一般可以减小寄生电容带来的问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值