当前位置: 首页 > article >正文

EE213 Lab virtuoso final project SRAM designlayout

目录

0 前言

1 设计目标

2 Decoder1_2

3 Decoder2_4

4 6TSRAM

5 Precharge

6 Read_bit

7 WR_bit

8 one_bit

9 模块扩展性展示

0 前言

记录一下来到skd上的强度比较大的一门课,数字集成电路2的lab设计还是蛮好的,该帖非详细教程只是单纯的写一些思虑并用作笔记,新手小白欢迎交流,有错勿喷!

1 设计目标

本篇的设计目标就是设计一个SRAM,SRAM主要包括6TSRAM的cell、precharge模块、读写模块以及decoder来进行地址选取,这里展示部分模块设计,同时SRAM的存储单元需要大规模的绘制,所以可复制延申也是设计的重要一环,接下来也会有具体的扩展展示,对1bit的存储单元进行存取仿真。

Decoder1_2

2.1 symbol

2.2 schematic

2.3 layout

3 Decoder2_4

3.1 symbol

3.2 schematic

3.3 layout

4 6TSRAM

4.1 symbol

4.2 schematic

4.3 layout

5 Precharge

5.1 symbol

5.2 schematic

5.3 layout

6 Read_bit

6.1 symbol

6.2 schematic

6.3 layout

7 WR_bit

7.1 symbol

7.2 schematic

7.3 layout

8 one_bit

8.1 symbol

8.2 schematic

8.3 layout

8.4 hspice simulation

*one_bit
.TEMP 25
.OPTIONS ACCURATE
.OPTIONS POST=2

.GLOBAL vdd! net14 net13 write_bit net16 net17 net18

* YOU SHOULD INCLUDE MODLE FILES
*.INCLUDE *'/NMOS_VTL.inc'
*.INCLUDE *'/PMOS_VTL.inc' 

* YOU SHOULD INCLUDE YOUR NELIST
*.INCLUDE halfadder.sp

* YOU SHOULD ADD LOAD CAPACITANCE

* YOU SHOULD GIVE INPUT PATTERNS FOR TEST CASES

* YOU SHOULD GIVE PROPER INPUT PATTERNS FOR MAXIMUM DELAY

.PARAM PERIOD =160US
.PARAM T0= 0.1NS
.PARAM T1= T0+PERIOD
.PARAM T2= T1+0.1NS
.PARAM STEP= 1PS

VDD   VDD! 0 0.7
VGND  GND! 0 0

.TRAN STEP T2

* YOU SHOULD INCLUDE MODEL FILES

.INCLUDE "/home/centos/PDK/FreePDK45/ncsu_basekit/models/hspice/tran_models/models_ff/NMOS_VTL.inc"
.INCLUDE "/home/centos/PDK/FreePDK45/ncsu_basekit/models/hspice/tran_models/models_ff/PMOS_VTL.inc"

** Library name: myprojlab
** Cell name: 6TSRAM
** View name: schematic
.subckt myprojlab_6TSRAM_schematic bl blbar wl
m3 bl wl net10 0 NMOS_VTL L=50e-9 W=180e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m2 net8 wl blbar 0 NMOS_VTL L=50e-9 W=180e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m1 net10 net8 0 0 NMOS_VTL L=50e-9 W=270e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m0 net8 net10 0 0 NMOS_VTL L=50e-9 W=270e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m5 net10 net8 vdd! vdd! PMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m4 net8 net10 vdd! vdd! PMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
.ends myprojlab_6TSRAM_schematic
** End of subcircuit definition.

** Library name: myprojlab
** Cell name: Precharge
** View name: schematic
.subckt Precharge bl blbar precharge
m5 blbar precharge bl vdd! PMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m4 vdd! precharge bl vdd! PMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m3 vdd! precharge blbar vdd! PMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
.ends Precharge
** End of subcircuit definition.

** Library name: myprojlab
** Cell name: INV
** View name: schematic
.subckt INV in out
m0 out in 0 0 NMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m1 out in vdd! vdd! PMOS_VTL L=50e-9 W=180e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
.ends INV
** End of subcircuit definition.

** Library name: myprojlab
** Cell name: Write_bit
** View name: schematic
.subckt Write_bit bl blbar wen write_bit
m1 bl wen net17 0 NMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m0 net16 wen blbar 0 NMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
xi5 write_bit net08 INV
xi0 write_bit net16 INV
xi4 net08 net17 INV
.ends Write_bit
** End of subcircuit definition.

** Library name: myprojlab
** Cell name: Read_bit
** View name: schematic
.subckt Read_bit bl blbar ren read_bit
m1 bl ren net06 0 NMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
m2 blbar ren net07 0 NMOS_VTL L=50e-9 W=90e-9 AD=9.45e-15 AS=9.45e-15 PD=300e-9 PS=300e-9 M=1
xi6 net07 net06 INV
xi5 net06 net10 INV
xi1 net10 read_bit INV
.ends Read_bit
** End of subcircuit definition.

** Library name: myprojlab
** Cell name: one_bit
** View name: schematic
.subckt one_bit rbit ren wbit wen wl precharge
xi0 net14 net13 wl myprojlab_6TSRAM_schematic
xi1 net14 net13 precharge Precharge
xi2 net14 net13 wen wbit Write_bit
xi3 net14 net13 ren rbit Read_bit
.ends one_bit
** End of subcircuit definition.











xi0 rbit ren wbit wen wl precharge one_bit

*Vin1 en gnd PULSE 0v 0.7v 159.9n 0.1n 0.1n 159.9n 320n
*Vin2 in4 gnd PULSE 0v 0.7v 79.9n 0.1n 0.1n 79.9n 160n 
*Vin3 in3 gnd PULSE 0v 0.7v 39.9n 0.1n 0.1n 39.9n 80n
*Vin4 in2 gnd PULSE 0v 0.7v 19.9n 0.1n 0.1n 19.9n 40n
*Vin5 in1 gnd PULSE 0v 0.7v 9.9n 0.1n 0.1n 9.9n 20n 
*Vin6 in0 gnd PULSE 0v 0.7v 4.9n 0.1n 0.1n 4.9n 10n

Vin2 precharge gnd PULSE 0v 0.7v 5u 0 0 35u 40u 

Vin1 wl gnd PULSE 0v 0.7v 4u 0 0 36u 40u


Vin4 wen gnd PWL 2.999u 0v,3u 0.7v,40u 0.7v,40.001u 0v,80u 0v,82.999u 0v,83u 0.7v,120u 0.7v,120.001u 0v,160u 0v
Vin5 ren gnd PWL 42.999u 0v,43u 0.7v,80u 0.7v,80.001u 0v,122.999u 0v,123u 0.7v,160u 0.7v,160.001u 0v,
Vin3 wbit gnd PULSE 0v 0.7v 80u 0 0 80u 160u



.probe v(precharge) v(wl) v(wen) v(ren) v(wbit) v(rbit) 
.probe v(net13) v(net14) 
.probe v(write_bit) v(net16)
.probe v(write_bit) v(net16)

.END

8.5 sim wave

9 模块扩展性展示

通过设计尺寸,SRAM阵列部分可以不通过连接其他的金属线实现彼此之间的连接,拓展性非常好


http://www.kler.cn/a/506302.html

相关文章:

  • 《探索烟雾目标检测开源项目:技术与应用的深度剖析》
  • 大文件上传的解决办法~文件切片、秒传、限制文件并发请求。。。
  • 关于jwt和security
  • 从代码层面熟悉UniAD,开始学习了解端到端整体架构
  • Sprint Boot教程之五十八:动态启动/停止 Kafka 监听器
  • Unity中实现倒计时结束后干一些事情
  • SEO优化与版权保护:提升WordPress网站内容安全和价值
  • 朝天椒USB服务器在万家基金的前置机应用案例
  • 屏幕共享——局域网多个电脑信息分发屏幕分组-直播分享
  • 全面掌握WRF气象模拟与Python数据处理的集成应用与实践
  • C# 运算符和类型强制转换(用户定义的数据类型转换)
  • 如何查看特定版本的Spring源码
  • 深度剖析:NLP 领域基于 TF-IDF 和 Text-Rank 的关键字提取原理
  • Spring Boot集成Sharding-JDBC实现分库分表
  • 解密AIGC三大核心算法:GAN、Transformer、Diffusion Models原理与应用
  • Ubuntu打开文件夹不显示文件
  • 如何选择正确的电源 IC
  • 原神5.0单机版【完全无脑搭建】纯单机*稳定版*
  • 语法
  • leetcode 面试经典 150 题:汇总区间
  • 深度神经网络的校准问题研究:从架构差异到温度缩放优化
  • 【编程语言】C/C++语言常见标准和规范
  • Ubuntu18.04 解决 libc.so.6: version `GLIBC_2.28‘ not found
  • 台达、汇川伺服
  • 指针的进阶
  • 从漏洞管理到暴露管理:网络安全的新方向