电路仿真初步尝试

本来想用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):

DAC_inverter仿真结果

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