【模拟CMOS集成电路】HSPICE入门仿真分析实例

news2024/12/27 17:07:23

【模拟CMOS集成电路】HSPICE入门仿真分析实例

  • 一、采用HSPICE的MOS器件仿真
  • 二、INV倒相器HSPICE仿真
  • 附录
    • 程序源码(一)
    • 程序源码(二)

一、采用HSPICE的MOS器件仿真

一、采用HSPICE的MOS器件仿真, 并回答以下问题。
  1) 固定器件 W / L = 10 m m / 2 m m W/L=10mm/2mm W/L=10mm/2mm尺寸,通过仿真给出NMOS管的输出特性曲线和转移特性曲线,简要说明仿真方法;
在这里插入图片描述
  仿真电路图如图所示,对于MN0对VDS进行扫描,扫描范围 0 − 5 V 0-5V 05V,随后使 V G S V_{GS} VGS 0 − 5 V 0-5V 05V范围内变化,变化步长为1V。得到MOS管输出特性曲线如图所示。

在这里插入图片描述
  固定 V D S = 5 V VDS=5V VDS=5V,对 V G S VGS VGS 0 − 5 V 0-5V 05V进行扫描,扫描步长 0.001 V 0.001V 0.001V,绘制出转移特性曲线。
在这里插入图片描述
2)通过仿真测试给出NMOS管的阈值电压 V T H VTH VTH、工艺因子 k ′ k^{'} k, 说明相关参数的测试方法,并与工艺文件提供的对应参数值比较。 (k=μC_ox)
  答:由图1-2的转移特性曲线,得到VTH=0.735mV(工艺库VTH=0.723100mV)
首先将MOS管取最小沟道长度 L = 0.5 u m , W = 1 u m L=0.5um,W=1um L=0.5umW=1um通过仿真输出特性曲线,

在这里插入图片描述
  得到饱和区的两个点 I A = 144 u A , I B = 154 u A I_{A}=144uA,I_{B}=154uA IA=144uAIB=154uA,通过几何关系,得到线段AB与X轴相交与 V = 12.4 V = 0.5 ∗ λ V=12.4V=0.5*\lambda V=12.4V=0.5λ ,进而得到 λ = 24.8 V − 1 \lambda =24.8 V^{-1} λ=24.8V1 然后在输出特性曲线上任取一点,通过式(1.1)
在这里插入图片描述
  得 工艺因子 k 2 = 83.27 u A / V 2 k^{2}=83.27uA/V^2 k2=83.27uA/V2

二、INV倒相器HSPICE仿真

二、采用HSPICE仿真INV倒相器,设 a 2 = k n / k p a^{2}=kn/kp a2=kn/kp,回答以下问题
  1) 给出 INV 转折电平 V i n ∗ Vin^{*} Vin a a a的变化关系;
在这里插入图片描述
  固定NMOS的尺寸为 W N = 2 u , L N = 1 u WN=2u,LN=1u WN=2u,LN=1u ,PMOS的尺寸 L P = 1 u LP=1u LP=1u,将器件参数WP从2u~8u进行扫描,扫描步长1u,随后进行仿真,仿真结果如图2-1,通过仿真可以得出结论:“INV的转折电平 V i n ∗ Vin^{*} Vin a a a 的增大而减小”。
  2) 给出INV正常工作下最小电源电压与N、P两管VTN和VTP的关系;
通过工艺库文件可以得到:
在这里插入图片描述
  为了得到 I N V INV INV的输出特性曲线,对V_{GS}进行 0 − 3 V 0-3V 03V扫描,同时改变电源电压,将VDD从 0 − 3 V 0-3V 03V扫描,扫描步长 0.1 V 0.1V 0.1V,通过Hspice进行仿真
在这里插入图片描述

  通过图2-2可以观察到,VDD>min⁡{vthp,|vthp|} 时,反相器总会在1/2VDD处反转,且过渡反转正常,当VDD<min⁡{vthp,|vthp|} 时,反相器输出曲线出现问题,转折点过程明显不理想,因此INV的最小工作电平为V_(DD,min) min⁡{vthp,|vthp|}。
  3) 分析INV静态电流与转折电平 V i n ∗ Vin^{*} Vin之间的变化关系;(条件:PMOS和NMOS管匹配设计,尺寸往相反方向变,例如:一个MOS管尺寸增大两倍另一个减小两倍)(匹配设计:转折电平为1/2VDD)。
将NMOS与PMOS分别按照对称变化进行扫描,进行DC仿真。
在这里插入图片描述
  通过仿真结果可以看出,当对称设计时,当切换时有最大漏电流,转折电平Vin*越接近1/2V_DD,漏电流越大,且随着不匹配程度的加重,漏电流减小。

  4) 分析INV上升、下降延迟以及传输延迟与两管尺寸(W/L)n和(W/L)p 的变化关系。
  在输入端加上一个脉冲信号,周期为100ns 上升和下降时间均为10ns,首先,固定(W/L)p,逐步增大(W/L)n,进行tran仿真,观察输出随时间变化曲线。
在这里插入图片描述
在这里插入图片描述

  通过图2-4和图2-5可以看出,
  1)随着(W/L)n的增大,当输出从低电平切换为高电平的时间t_LH增大。
  2)随着(W/L)n的增大,当输出从高电平切换到低电平的时间t_HL减小。
  3)传输延迟为〖t_p=(t〗_LH+t_HL)/2,变小。
  原因如下:
  对于输出上升沿,随着NMOS尺寸增大,输出电容C_OUT增大,上升时间主要与PMOS对C_OUT的充电有关,(W/L)p不变,则PMOS以同样的电流对输出端电容C_OUT充电,需要更多的时间才能使输出端电平切换。
  对于输出下降升沿,随着NMOS尺寸增大,尽管输出电容C_OUT增大,在输出端存储了更多的电荷,但是下降时间主要与NMOS对C_OUT的放电电有关,(W/L)n增大,则NMOS以更大的电流对输出端电容C_OUT放电,输出端需要更短的时间就能使输出端发生电平切换。
在这里插入图片描述
在这里插入图片描述
  通过图2-6和图2-7可以看出,
  1)随着(W/L)p的增大,当输出从低电平切换为高电平的时间t_LH减小。
  2)随着(W/L)p的增大,当输出从高电平切换到低电平的时间t_HL增大。
  3)传输延迟为〖t_p=(t〗_LH+t_HL)/2,变小。
  原因如下:
  对于输出上升沿,随着PMOS尺寸增大,输出电容C_OUT增大,上升时间主要与PMOS对C_OUT的充电有关,(W/L)p变大,尽管输出端电容C_OUT变大,但是PMOS以更大的电流对输出端电容C_OUT充电,需要更短的时间就能使输出端电平切换。
  对于输出下降升沿,随着PMOS尺寸增大,输出电容C_OUT存储了更多的电荷,下降时间主要与NMOS对C_OUT的放电电有关,(W/L)p增大,则NMOS以同样的电流对输出端电容C_OUT放电,输出端需要更长的时间才能使输出端电平切换。
最后,同时增大(W/L)p和(W/L)n进行tran仿真,观察输出曲线

在这里插入图片描述
  可以观察到,等比例增大NMOS和PMOS,输出端点评切换时间几乎不变,因为输出端增大的寄生电容与因尺寸变化而产生的电流变化,等比例变化,两种效应相互抵消(也可以看成两个同样的反相器并联)

附录

程序源码(一)

*绘制NMOS输出特性曲线
*文件名称 mostest(1)
.title A MOSTEST DC RUN  IDS=f(VDS,VGS)
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 5V

*Circuit
MN0 NodeD NodeG 0 0 nvn L=2u W=10u

*Simulation
.DC  VDS 0 5 0.001 VGS 0 5 0.5
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END

*绘制NMOS转移特性曲线
*文件名称 mostest(2)
.title A MOSTEST DC RUN  IDS=f(GS)
.options list node post

*Load lib
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 2V

*Circuit
MN0 NodeD NodeG 0 0 nvn L=1u W=2u

*Simulation
.DC  VGS 0 5 0.001 
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END

*测量沟长调制系数
*文件名称 mostest(3)
.title A MOSTEST DC RUN  IDS=f(VDS)
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Source
VDS NodeD 0 DC 5V
VGS NodeG 0 DC 2V

*Circuit
MN0 NodeD NodeG 0 0 nvn L=0.5u W=1u

*Simulation
.DC  VDS 0 5 0.001 
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END

程序源码(二)

*仿真转折电平与相对尺寸关系
*文件名称 inv(1)
.title A INV DC RUN  FOR KP/KN
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Parameter
.para WN=2u LN=1u WP=2u LP=1u 

*Source
VDS vdd      0 DC 5V
VGS NodeG 0 DC 2.5V

*Circuit
MP0  Nout NodeG vdd vdd nvp  L=LP  W=WP
MN0 Nout NodeG   0    0    nvn  L=LN W=WN

*Simulation
.DC  VGS 0 5 0.001 SWEEP WP 2u 8u 0.5u
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END


*反相器最小VDD仿真
*文件名称 inv(2)
.title A INV DC RUN  FOR SWEEP VDD
.options list node post
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Parameter
.para WN=2u LN=1u WP=4.5u LP=1u 

*Source
VDS vdd   0 DC 5V
VGS NodeG 0 DC 2.5V

*Circuit
MP0  Nout NodeG vdd vdd nvp  L=LP  W=WP
MN0 Nout NodeG   0    0  nvn  L=LN W=WN

*Simulation
.DC  VGS 0 3 0.0005 VDS 0 3 0.1
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
.END

*扫描MOS相对尺寸
*文件名称 inv(3)
.title A INV DC RUN  FOR W/L
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*sweep W/L
.DATA CV
WP     WN
80u      2u
40u     4u
20u     8u
10u   16u
5u   32u
2.5u  64u
.ENDDATA

*Source
VDS vdd   0 DC 5V
VGS NodeG 0 PULSE 0 5 50n 10n 10n 40n 100n

*Circuit
MP0  Nout NodeG vdd vdd nvp  L=1u  W=WP
MN0 Nout NodeG   0    0    nvn  L=1u W=WN

*Simulation
.DC  VGS 0 5 0.001 SWEEP data=CV 

.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END
*传输延迟仿真
*文件名称 inv(4)
.title A INV TRAN RUN  FOR W/L
.options list node post
*
.protect
.lib "c:\users\hspice\desktop\hspice_prj\h05hvcddtt09v01.lib" tt
.unprotect
.options post=2 list

*Parameter
.para WN=2u LN=1u WP=4.5u LP=1u 
.para MN=1  MP=1 MM=1

*Source
VDS vdd   0 DC 5V
VGS NodeG 0 PULSE 0 5 50n 10n 10n 40n 100n

*Circuit
MP0  Nout NodeG vdd vdd nvp  L=LP  W=WP M=MM
MN0 Nout NodeG   0    0    nvn  L=LN W=WN M=MM

*Simulation
.TRAN 100n 500n SWEEP MM 1 10 2
.PRINT V(NodeD) V(NodeG) I(MN0)
.PLOT V(NodeD) V(NodeG)  I(MN0)
*
.END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/682442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio 2019使用详解

VS2019&#xff08;Visual Studio 2019&#xff09;是由微软开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;用于开发各种应用程序&#xff0c;包括桌面应用程序、Web应用程序、移动应用程序等。 对工具的熟悉程度有助于提升开发效率&#xff0c;磨刀不误砍柴功&am…

solr快速上手:整合spring-data-solr实现客户端操作(十)

0. 引言 前一章介绍了官方的solr客户端SolrJ&#xff0c;但是solrJ的使用相对来说并不方便&#xff0c;仍然需要做一些负责的客户端操作以及语句的书写&#xff0c;有没有更加方便的ORM框架呢&#xff0c;这就提到了spring-data-solr了 1. 简介 首先如果你还不知道spring-da…

面试题:深拷贝和浅拷贝(+内存图)

深拷贝和浅拷贝主要是针对对象的属性是对象&#xff08;引用类型&#xff09; 一、基本类型和引用类型的区别 1&#xff09;、基本类型&#xff1a;就是值类型&#xff0c;即在变量所对应的内存区域存储的是值。 2&#xff09;、引用类型&#xff1a;就是地址类型。 何为地…

Kubeadm 部署k8s实现并且演示滚动不停服务更新

1. 环境准备 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 一台或多台机器&#xff0c;操作系统 CentOS7.x-86_x64&#xff1b;硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘30GB或更多&#xff1b;集群中…

【Activiti】原理

一、核心类 RepositoryService&#xff1a;部署管理流程资源&#xff0c;如bpmn文件、附件等等&#xff1b;RuntimeService&#xff1a;操作运行时的流程&#xff1b;TaskService&#xff1a;流程中任务的信息&#xff1b;HistoryService&#xff1a;流程的历史信息&#xff1…

ZYNQ——按键和LED关联实验

ZYNQ 7020黑金开发板的PL端有四个LED&#xff0c;如下图所示。 PL端也有四个KEY&#xff0c;如下图所示。 本文将把这四个按键和四个LED一一对应起来&#xff0c;在按键按下或松开时&#xff0c;对应的LED产生亮或灭的信号。 在原理图中找到PL端的LED和KEY如下图所示。 通过…

成为python爬虫工程师需要哪些知识?

爬虫&#xff08;Web crawler&#xff09;是一种自动化程序&#xff0c;用于从互联网上抓取、解析和提取网页数据。它模拟浏览器行为&#xff0c;通过发送HTTP请求获取网页内容&#xff0c;并通过解析网页源代码或DOM结构&#xff0c;提取所需的信息。以python爬虫为例&#xf…

优思学院|作业标准和标准化作业有何区别?傻傻搞不清?

作业标准和标准作业是两个在生产和制造环境中具有重要意义的概念。尽管它们看似相似&#xff0c;但实际上它们在定义、目的和实施方法上存在显著差异。本文将探讨作业标准和标准作业的区别&#xff0c;以及它们在工作场所中的作用和重要性。 1. 引言 在制造领域中&#xff0c…

JDBC小记——SQL注入及预编译操作对象、批处理

目录 SQL注入 预编译操作对象 自定义JDBC工具类 1.创建配置文件 2.配置 3.在工具类中使用配置文件 批处理 注意事项 SQL注入 SQL注入是黑客对数据库进行攻击的常用手段之一&#xff0c;他们拼接一些恶意的sql语句&#xff0c;来获取他们想要的数据。 例&#xff1a; s…

Bpmn.js流程建模结合业务整合工作流(一)

bmpn.js是什么? 先上图 初步认识bpmn.js 相关文档直接上链接 全网最详bpmn.js教材-基础篇 - 掘金bpmn.js是一个BPMN2.0渲染工具包和web建模器, 使得画流程图的功能在前端来完成. 因为公司业务的需要因而要在项目中使用到bpmn.js,但是由于bpmn.js的开发者是国外友人, 因此国…

【2023年中总结】是的,我从一家世界前百强企业毕业了,进入了一家只有20人的小企业。。。

我的2023-上 &#x1f550; 一、引言&#x1f55c; 二、新年&#x1f559; 三、措手不及&#x1f565; 四、抉择&#x1f55a; 五、适应&#x1f389;测试驱动开发&#x1f389;角色的转变&#x1f389;工作环境和生活环境的转变&#x1f389;工作态度 &#x1f566; 六、挑战&…

【裸机开发】定时器中断(EPIT)

EPIT 是周期性中断定时器&#xff0c;会定期调用指定的中断服务函数&#xff0c;其实可以看做是一种IRQ的外设中断&#xff0c;对应的中断ID是88&#xff08;5632&#xff09;或者 89&#xff08;5732&#xff09;。 目录 一、定时器计数流程 二、寄存器解析 1、EPIT1_CR 2…

骨传导耳机、运动耳机推荐:南卡OE开放式TWS耳机值得买吗?南卡OE测评

目前&#xff0c;如果说到骨传导耳机、蓝牙耳机想必大家都很熟悉&#xff0c;那你了解TWS耳机么&#xff1f; 如果说iPhone“重新定义”了智能手机&#xff0c;那么AirPods就重新定义了耳机——它“断”了耳机与手机/播放器间的连线&#xff0c;还将左右耳彼此间的连线彻底摒弃…

SimpleDateFormat显示24小时和12小时时间格式

public static void main(String[] args) throws Exception {MainTest1 mainTest1 new MainTest1();mainTest1.dateFormat();} yyyy-MM-dd HH:mm:ss格式显示的时间为:2017-06-12 18:01:06 yyyy-MM-dd hh:mm:ss格式显示的时间为:2017-06-12 06:01:06

二章:VMvare虚拟机的安装+VMvare安装winServer2008

目录 一、Vmware软件安装 二、Vmware软件注册 三、Vmware配置虚拟机-1 四、Vmware配置虚拟机-2 五、Vmware配置虚拟机-3 六、Vmware安装windows server 2008 一、Vmware软件安装 第一步 双击安装程序&#xff0c;点击下一步。 第二、三步 勾选接受许可&#xff0c;点击下一步。…

SAM【1】:Segment Anything

文章目录 前言1. Abstraction & Introduction1.1. Abstraction1.2. Introduction 2. Segment Anything Model2.1. Segment Anything Task2.1.1. Task2.1.2. Pre-training2.1.3. Zero-shot transfer 2.2. Segment Anything Model Methods2.2.1. Image Encoder2.2.2. Prompt …

python:并发编程(二十三)

前言 本文将和大家一起探讨python并发编程的实际项目&#xff1a;win图形界面应用&#xff08;篇五&#xff0c;共八篇&#xff09;&#xff0c;系列文章将会从零开始构建项目&#xff0c;并逐渐完善项目&#xff0c;最终将项目打造成适用于高并发场景的应用。 本文为python并…

微信小程序快速入门【二】

微信小程序快速入门【二】 文章目录 微信小程序快速入门【二】&#x1f468;‍&#x1f3eb;内容1&#xff1a;背景&#x1f468;‍⚖️内容2&#xff1a;项目结构&#x1f468;‍&#x1f4bb;内容3&#xff1a;项目配置文件app.json&#x1f468;‍&#x1f680;内容4&#x…

SpringBoot使用入门和案例实现

目录 1. 在pom.xml中添加依赖2. 编辑resources/application.properties3. 编写springboot的主程序4. 编写Controller程序5. IDEA本地测试6. 打包上传到服务器运行 1. 在pom.xml中添加依赖 步骤如下&#xff1a; 添加springboot的parent依赖添加springboot的starter-web依赖。…

osip开源库在windows平台上编译

背景 之前写过一篇关于sip协议栈选型的文章&#xff0c;最终采用了osip 2.3.6版本&#xff0c;文章中说明了为什么采用osip协议栈&#xff0c;以及为什么采用2.3.6版本。现在Linux上的产品已经基本满足需求了&#xff0c;接下来我们打算开发一套客户端和服务端对接&#xff0c…