电路仿真初步尝试
本来想用virtuoso的,安装完之后实在觉得虚拟机太麻烦+操作图形界面太麻烦,于是就转win下的hspice+编写netlist,初步尝试了一下
不过virtuoso以后大概也要用,并且可以先用gui画几个简单原理图,仿真的时候看一下它生成的netlist来稍微学习一下
一些安装教程之类的链接放在文末(在文中用中括号索引)
我当前用的版本:virtuoso: IC06.17.700 [2];hspice: Version J-2014.09-SP2-2 64-BIT [3];工艺库:smie18ee_2P6M_20100810 [4](需挂vpn(如无vpn但想下载欢迎留言,我分享一下))
win下编代码我就也把环境搞了一下,就当是提升以后效率了:TotalCommander, Listary, AutoHotkey, emacs, vim。都写教程的话有点写不动。。。
大概学了学,利用doc_help里的手册,把demo里的behave都差不多摸了一下
编写了一下inverter, nand, nor,感觉还好
仿真在上升沿、下降沿处out会跳变一下,看着难受,以后改进再说(包括仿真本身缺陷,不要陷入仿真)
想写nand的时候写错了。。。然后把两个inverter的out直接接一起了,之后就有了个算是简易的DAC吧。。。原理不难理解
附”DAC”的hspice代码(代码中mos等参数设置除了w,l之外,大多是仿照spectre生成的netlist的参数,尚未仔细看手册,之后改进)(w,l未仔细计算):
nand circuir
.options post
.tran 0.1u 100u
.probe v(in1) v(in2) v(out1)
.macro inverter vcc gnd in out
.param w0=2u
M0 out in vcc vcc p33e2r
+ w=w0 l=1u as=1.12p ad=1.12p ps=5.12u
+ pd=5.12u m=1*1
M1 out in gnd gnd n33e2r
+ w=1u l=1u as=510f ad=510f ps=3.02u
+ pd=3.02u m=1*1
.eom
.subckt nmos d g s b
M0 d g s b n33e2r
+ w=1u l=1u as=510f ad=510f ps=3.02u
+ pd=3.02u m=1*1
.ends
.subckt pmos d g s b
M0 d g s b p33e2r
+ w=2u l=1u as=1.12p ad=1.12p ps=5.12u
+ pd=5.12u m=1*1
.ends
.subckt rndifckt MINUS PLUS
.param segL=66.425u segW=420n mult=1
R0 (PLUS MINUS) rndif m=mult l=segL w=segW scale=10
.ends
.param vcc=3.3 rft=0.1u
x1 vcc 0 in1 out1 inverter w0=1.5u
x2 vcc 0 in2 out1 inverter w0=2.5u
*xp1 out in1 vcc vcc pmos
*xp2 out in2 vcc vcc pmos
*xn1 out in2 net1 0 nmos
*xn2 net1 in1 0 0 nmos
v1 vcc 0 vcc
vin1 in1 0 pulse(0 vcc 0n rft rft 5u 10u)
vin2 in2 0 pulse(0 vcc 0n rft rft 10u 20u)
xr0 out out1 rndifckt
c0 out1 0 pipe2r w=22.06u l=22.06u m=1
.print r0=lv2(xr0.R0)
.end
仿真结果(with hspice+avanwaves):

hspice.ini代码:
.lib 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8.lib' TT
.lib 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8.lib' BJT_TT
.lib 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8.lib' RES_TT
.lib 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8.lib' PIP_TT
*.include 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8.mdl'
*.include 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8_bjt.mdl'
*.include 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8_res.mdl'
.include 'C:\Users\mrazer\Desktop\spec\trans\models\hspice\e2r018_v1p8_res.ckt'
Reference
(链接挂了欢迎留言,我试着补写一下)
[1]R-九尾.Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)(新手教程)[EB/OL].(2020-03-07) [2020-10-07].https://blog.csdn.net/qq_40987215/article/details/104722352
[2]propagator.ubuntu18.04安装cadence virtuoso[EB/OL].(2020-02-14) [2020-10-07].https://my.oschina.net/propagator/blog/3166272
[3]无名.windows下hspice仿真环境安装[EB/OL].(2017-10-09) [2020-10-07].https://zhuanlan.zhihu.com/p/29962737
[4]ccbirds.集成电路学习笔记(一)IC617工艺库安装[EB/OL].(2020-05-02) [2020-10-07].http://ccbirds.cn/ICnotes1/
[5]Synopsys.AvanWaves User Guide[EB/OL].(2005-03) [2020-10-07].http://www2.ece.rochester.edu/courses/ECE222/hspice/avanwaves.pdf
Leave a comment