hspice简明使用手册.doc_第1页
hspice简明使用手册.doc_第2页
hspice简明使用手册.doc_第3页
hspice简明使用手册.doc_第4页
hspice简明使用手册.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HSPICE简明使用手册水平有限,如有错误请予以改正。还有很多的功能不太了解,希望大家都来补充完善。谢谢!大家也可以把一些自己在调试过程中的bug汇总到一起,给大家作参考。方便以后少犯这种错误,最好加上为什么错了,如何改正。我会建立一个名字为 our_bugs_go_away的文件夹来放大家调试过程中的bug。如果你认真看了正文中的红字部分,应该就可以使用hspice的基本功能来实现电路模拟。附录中会有基本的语法,供大家查阅,不一定很全。1. 常用文件类型.sp 网表文件 输入文件该文件是hspice唯一的输入文件,用网表形式描述电路。下面会专门讲解该文件的几个基本构成。.mt0 中存放测试数据 输出文件.lis 中存放仿真的过程以及仿真时的错误 输出文件2. hspui按钮的作用Open 打开 .sp文件Simulate 仿真开始Edit LL 观察.lis文件,debugEdit NL 修改.sp 文件Avanwaves 观察模拟波形Explore 找到模拟中所用文件的文件夹3.AvanWaves 使用用来观察模拟得到的波形3.1 results brower 对话框用来选择要看的是那种分析(tran,dc,ac)的那种波形,双击你要看的波形就可以了。3.2主面板 3.2.1窗口panel# 用来看波形wave list 观察波形的列表3.2.2按钮panels 观察窗口个数控制window 观察窗口显示控制measure 测量控制,有对某点的测量和点到点的测量configuration 不明tools 不明3.3快捷按钮3.3.1 results brower 的开关按钮3.3.2 变量运算函数编辑器3.3.3 打印3.3.4测量某点坐标3.3.5两点间坐标检测3.3.6窗口显示控制4.sp 文件介绍对于一个用hspice模拟的电路,一般可以分为两个部分来描述:1 电路单元的.sp文件。名字多为:unit.sp 比如:nand2g.sp它一种子电路的形式,就像我们电路中的一些小单元或者Verilog中的module,用来调用,。可以参考程军老师给的.sp文件。2 电路整体.sp文件。名字多为:sim_unit.sp 比如:sim_nand2g.sp一般为电路的顶层部分,用来调用单元电路,用网表来描述整个电路,并声明激励源来模拟。可以控制模拟的类型,是直流模拟.dc ,交流模拟(频域分析).ac ,瞬态模拟.tran。这个文件就像是Verilog中的top + testbench。当然编写网表文件的风格多种多样,这只是其中一种。在流程后面会有一个.sp文件的讲解,告诉大家.sp文件有哪些基本部分,如何写.sp文件。.sp文件的构成以程序为例5. 完整的模拟流程:直接用记事本建立.sp文件,只要改一下文件扩展名即可。或者直接复制一个.sp文件改个名字。(下面的内容不用细看,只要知道有哪些步骤)1 建立模型(一般采用现成模型,直接利用.lib 命令调用。采用何种模型由工艺来定) NMOS 和 PMOS的模型2 子电路建立(例子:nand2g.sp) 描述该子电路的晶体管连接和长宽等即可。3 编写模拟程序(例子:sim_nand2g.sp) 详见下面对模拟程序的说明。4 利用hspice软件模拟步骤 下面的红色英文为hspui的按钮(hspui 为 hspice的用户界面)01 open hspui.exe(一般在开始菜单中,有点多余) 02 Open .sp file(sim_nand2.sp,the simulating netlist) 03 Simulate(点击面板中的按钮) 04 open.lis(Edit LL) find the syntax errors or measurement result note: use Ctrl-F to locate the target 05 if there are errors, modify the .sp files(Edit NL) then go to step 3 06 open Avanwaves(可以跳转到上面看) to see the waves().sp文件的编写(文件中的大小写没关系)1 单元子电路网表的编写(例子:nand2g.sp)简言之:起名字,连节点,分类别,写参数例子:mp out in vdd vdd pmos w=wp l=0.25u(到底器件有哪些节点,参见附录中的语法)起名字(mp):就是给每个晶体管(也可以是电阻电容)起个名字连节点(out in vdd vdd):说明每个晶体管的节点分类别(pmos):写出这个晶体管是什么类型的,P,N写参数(w=wp l=0.25u):给出晶体管参数,就看模型是怎么建的,需要哪些参数。晶体管W,L ;电阻阻止 ;电容电容值当你把每个晶体管都的节点都说明清楚后,一个子电路也就诞生了。2 模拟程序电路网表的编写包含部分:后面为对应的指令0) 标题 - .title (可有可无)1) 器件模型 - .lib2) 全局变量声明 - .global3) 参量声明 - .param3.5) .data c_tab .enddata(可能有)参量表,扫描参数时用到4) 直流工作点分析 - .op (这个东西不一定要有,与.UIC文件有关,可以自己看,但是一般要写) 5) 模拟类型(可以用多种或一种,在看波形时就知道区别了),有瞬态分析 .tran ,有直流特性分析 .dc ,有交流特性(频域分析)分析 .ac 。6) 电路网表 ,利用已经建立的子电路搭建一个测试电路,并且声明好电路的激励。实际就是将节点连接正确。7) 测量语句,利用 .measure 来测量一些参数,比如延迟,上升延时,下降延时等。8) .end 结束语句。 子电路的开始结束: .subckt - .ends 参量网表: .data c_tab - .enddata 顶层电路: - .end (不用开头)以程序为例来分析如何写.sp 文件:说明文字用括号括起来* simulation file for nand2 gate *(* 用来注释, 和C中的/ 作用相同).lib ./spice_model/cmos25_level49.lib TT (器件模型声明,这是个cmos模型).global vdd (全局变量声明,全局变量是vdd).param vsupply=2.5 (参量声明,就像C中参量,参量是vsupply,大小为2.5V) (hspice 中的单位多可以省略,只有表示数量级即可。).param cload=0.5p.param trantime=0.1n.data c_tab (扫描参量表,扫描的参量是trantime,cload,一共16组数据,在 .mt0中会有16组测量数据,看图时也会有16条曲线。)trantime cload0.1n 0.1p0.1n 0.2p0.1n 0.3p0.1n 0.4p0.1n 0.5p0.2n 0.1p0.2n 0.2p0.2n 0.3p0.2n 0.4p0.2n 0.5p0.3n 0.1p0.3n 0.2p0.3n 0.3p0.3n 0.4p0.3n 0.5p0.4n 0.1p0.4n 0.2p0.4n 0.3p0.4n 0.4p0.4n 0.5p.enddata.op (直流工作点计算).tran 0.1ns 200ns sweep data=c_tab(瞬态分析,从0-200ns,步长为0.02ns。并且上面声明的trantime 和 cload两个的扫描参数).dc vsim1 0 2.5 0.02 (直流分析,从0-2.5V,步长0.02vsim1 相当于产生一个电压值线性增加的电压源).dc vsim2 0 2.5 0.02.option post nomod (控制选项,主要控制输出结果,可以见附录)(下面是网表声明)vdd vdd 0 vsupplyvsim1 in1 0 dc=vsupply pulse 0 vsupply 0 trantime trantime 10ns 20nsvsim2 in2 0 dc=vsupply pulse 0 vsupply 0 trantime trantime 23ns 46ns.include ./nand2g.spc0 outp 0 cloadx1 in1 in2 outp nand2g wp=2u wn=2u(测量语句声明).measure tran tdlay1f trig V(in1) val=0.75 td=55n rise=1 targ V(outp) val=0.75 fall=1.measure tran tdlay1r trig V(in1) val=1.75 td=35n fall=1 targ V(outp) val=1.75 rise=1.measure tran tdlay2f trig V(in2) val=0.75 td=41n rise=1 targ V(outp) val=0.75 fall=1.measure tran tdlay2r trig V(in2) val=1.75 td=21n fall=1 targ V(outp) val=1.75 rise=1.end常用命令:关键字前都有一个 “.”1) .lib 调用模型,以及时TT还是FS或者FF之类的。一般用TT 2) .global vdd 全局变量声明,一般是vdd 3) .param 参量声明,可以是个扫描用的可变参量,也可是像宏一样的声明 比如 .param vsupply=2.5 3.5) 参量表 .data c_tab trantime cload 0.1n 0.1p 0.1n 0.2p 0.1n 0.3p . .enddata 4) .op 直流工作点分析 5) .tran 0.1ns 200ns sweep data=c_tab 瞬态模拟,并且扫描c_table,从0ns到200ns,步长为0.1ns 6) .dc vsim1 0 2.5 0.02 直流扫描分析,变量名为vsim1,从0-2.5V,步长为0.02 7) .option post nomod post说明数据可以用Avanwaves看,nomod不输出模型信息 8) . measure 测量语句 .measure tran tdlay1f trig V(in1) val=0.75 td=55n rise=1 targ V(outp) val=0.75 fall=1 常用器件、激励、VDD声明方法,电容电阻都用C和R开头命名。晶体管用M开头命名,子电路用X开头命名, vdd vdd 0 vsupply /vdd vsim1 in1 0 dc=vsupply pulse 0 vsupply 0 trantime trantime 10ns 20ns /两个输入用脉冲 .include ./nand2g.sp /引用自电路文件 c0 outp 0 cload /电容 x1 in1 in2 outp nand2g wp=2u wn=2u /子电路 附录: 我的一些经验: 经验1 编写子电路时,一般不考虑负载,只描述晶体管。模拟时加入别的。模型已经考虑了寄生参数。经验2 晶体管模型一般使用标准模型,利用.lib调用即可。经验3 使用哪种工艺,晶体管的L一般就是多大。经验4 晶体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论