前言
LTspice®是一款高性能SPICE仿真软件、原理图采集和波形查看器,集成增强功能和模型,简化了模拟电路的仿真。宏模型也包括在LTspice下载中,适用于大多数ADI开关稳压器、放大器以及用于通用电路仿真的器件库。
提示:以下是本篇文章正文内容,以6T SRAM为例开启寄存器模拟之旅。
一、下载LTspice
在官网ANALOG DEVICES选择【设计资源】-【高级选型设计工具】-【LTspice】进入相应页面,并选择对应系统的型号。(安装不区分32与64位)
下载完成后点击安装包,接受协议后点击install now即可。
二、模拟开始
1. 6T SRAM
6T 的全称是6 transistors,即此SRAM由六个晶体管构成基本结构。
其中,M1、M3、M5、M6四者为NMOS,M2、M4为PMOS。
M1、M2,M3、M4两两构成一个反相器,将信号反转后作为输入到另一反相器中。
这两个反相器通过输入输出接入,共同构成一个锁存器,存储需要的信息。
M5、M6为两个开关,与Word Line相连接,Drain端分别与BL和BLB相连。
BL为Bit Line,为1时BLB为0,代表的是写入信息。
写入:给BL和BLB赋电压值,使存储资料的Q和QB完成使能状态转变。
写入1时,BL = Vdd,BLB = 0;
写入0时,BL = 0,BLB = Vdd。
e.g. bit-cell此时存储为1,将要写入0:初始状态Q = Vdd,QB = 0。令WL = Vdd,bit-cell进入读写状态。BL = 0,BLB = Vdd,通过M5将QB的电压值上拉,通过M6将Q的电压值下拉。通过M1~M4组成的反相器,最终使得bit-cell进入另一个稳态,Q = 0,QB = Vdd。
读出:首先将BL与BLB的压点拉至等电位状态,即 V(BL) = V(BLB)。两者电压稳定并且相等后,可以将其浮接或通过阻抗接入至预充电电压源。此电压为预先充电的电压值,一般情况下为(Vdd)或(Vdd-Vt)大小。随后令WL = Vdd,打开bit-cell读写状态,Q与QB两端分别通过寄生电容与M6、M5分压,BL与BLB接收此不同的电压,产生电压差。随后通过外部的感应放大器(SA)放大二者之间的差异:BL电压下降BLB不降 = 0,BL不降BLB下降 = 1。
总结:
- 读写操作都需要将WL赋值为Vdd;
- 写操作为外部电压源作用改变bit-cell内容;
- 读操作为先将外部BL和BLB电压平衡后,通过bit-cell预先存储的内容改变BL和BLB电压值。bit-cell内部电压变化较小,需要通过感应放大器来将信号放大。
2. LTspice模拟
打开LTspice,根据原理图完成基本结构的绘制:
Arizona State University团队设计了一个PTM模型(Predictive Technology Model),可以为晶体管和互连提供可定制、可预测的模型文件,与标准电路仿真器兼容,并且有多种工艺。
以“45nm PTM LP model: V2.1”为例,仿真“PTM Low Power 45nm Metal Gate / High-K / Strained-Si”。
将网页的选型数据复制,以“.txt”为后缀存储为文本文档。
(将此文档与设计的原理图放在同一目录之下)
点击“Spice Directive”按键,在指定位置键入(具体以存储命名为准):
.include PTM_Low_Power_45nm_MetalGate.txt
定义完成器件选型之后,右键各个器件完成器件自身参数定义。以电压源为例:
可通过“Advanced”选项完成不同电压波形的定义。
其中,使用较多的为PULSE脉冲波形、SINE正弦波形以及PWL分段线性波形。
PULSE:
Vinitial[V]:初始时刻电压值 | Von[V]:开启时刻电压值 |
---|---|
Tdelay[s]:开始到第一个波形的延时时间 | Trise[s]:波形上升时间 |
Tfall[s]:波形下降时间 | Ton[s]:电压保持时间 |
Tperiod[s]:波形周期 | Ncycles:周期循环次数 |
PWL:绘制横轴为时间,纵轴为电压值的分段线性波形图。其中,可以通过“Additional PWL Points”选项卡完成设置多组点值,完成各个分段线性波形。
点击“Run”弹出仿真指令窗,定义停止时间、何时开始存储数据以及最大步长。
三、仿真结果查看
点击各个节点即可探测各节点的电压波形,点击各个元器件即可探测该器件所在支路的电流值。