在上一篇中,一起了解了片上SRAM的基本构造和结构,在本篇中,通过一些具体的Memory Compiler,一起深入的了解SRAM的具体特点和不同构成,闲话少说,Let’s go! 对于设计一个SRAM,除过最基本的核心部件(memory array )意外,在对SRAM进行的构件中还有多个部件需要添加,有了这些必要的封装,SRAM才可以提供一个友好的使用环境,提供给用户使用。
两种结构:Register File vs. memory array
常规的时序逻辑确实也具备了memory的存储方法,如果使用一种特殊的布局方式,可以模拟类似于register的高速的pipe级别的访问,同一个周期可以完成两次读和一次写操作(这里需要内部的读写冲突控制,产生先读后写操作) 这样的结构体和通常的memory array的bit cell结构体略有不同,带来的好处是在bitline的cap值和同样大小的memory array会有减小,可以有效降低访问memory cell时间,提升memory 速度。但是相应的当RF的容量逐步扩大,这种通过结构体降低cap的方法,会变得越来越不明显,所以RF的速度优势只限制在小容量的memory 上。 在近现代的工艺上(60nm 以及以下),RF也是使用bitcell进行构建,所以从bitcell上来看,RF和常规的memory array的基础期间是一样大的,这个从T家的SRAM 文档中可已看出来。
SRAM的结构框图
一个可操作控制的SRAM通常具有丰富的接口控制,这里呈现出一个简单T家的SRAM框图
可以看到这里的接口控制管脚,远远多于简单的memory array的控制需求,具体每一个管脚的配置用途详见下表
管脚 | 方向 | 描述 | 分类 |
---|
VDD | 输入 | 外围控制器件供电 | 电源地 | VDDM | 输入 | memory array供电 | 电源地 | VSS | 输入 | memory array和外围器件接地 | 电源地 | A[*] | 输入 | 地址输入 | 功能 | D[*] | 输入 | 数据输入 | 功能 | BWEB[*] | 输入 | 位写控制 | 功能 | CEB | 输入 | 片选 | 功能 | WEB | 输入 | 写控制 | 功能 | REDENIO | 输入 | 列修复冗余控制 | 功能 | Q[*] | 输出 | memory array 数据输出 | 功能 | FADIO[*] | 输入 | 失效位地址控制 | BIST测试 | DM[*] | 输入 | BIST数据输入 | BIST测试 | AM[*] | 输入 | BIST地址输入 | BIST测试 | BWEBM[*] | 输入 | BIST位写控制 | BIST测试 | CEBM | 输入 | BIST片选 | BIST测试 | WEBM | 输入 | BIST写控制 | BIST测试 | BIST | 输入 | BIST控制 | BIST测试 | DSLP | 输入 | deep sleep模式:memory array访问禁止,但是memory数据会被保存 | 低功耗控制 | SD | 输入 | shut down:关断全部memory array和绝大部分外设逻辑 | 低功耗控制 | PUDELAY_SD | 输出 | shutdown 输出标记,用于指引低功耗策略 | 低功耗 | PUDELAY_DSLP | 输出 | deepsleep 输出标记,用于指引低功耗策略 | 低功耗 | DSLPLV | 输入 | deepsleep模式下retention diode的bypass控制 | 低功耗 | TSEL pin : WTSEL[]/RTSEL[] | 输入 | 时序微调 | 测试 | TSEL pin : WTSEL[]/RTSEL[] | 输入 | 时序微调 | 测试 | TSEL pin : WASEN | 输入 | 写辅助使能 | 测试 | TSEL pin : WASSEL[*] | 输入 | 写辅助微调 | 测试 |
除去常见的地址、数据、读写等功能类别,还可以根据场景分为以下几类
-
电源地:毋庸置疑的必选项,但是由于通常的memory cell都很大,通常都在100um * 100um的区域范围,所以电源的连接要比这的两三句描述更为复杂。主要是供电需求。此外VDDM和VDD 也无需完全一样,可以分布来自不同的power source,这样可以构建dual rail的memory,提供更多的低功耗控制可能。 可以看到memory的PG pin 非常密集,主要分布早中间部分,这也是功耗大户memory array分布集中的地方 -
BIST测试: Built-in self-test,,顾名思义,这个是对memory 的物理存储特性进行的自测和错误标记,在遇到错误数据的时候,可以使用内部bypass/mux的方式,将正确地数据读取、写入到其他的地方。这里的BIST是给memory使用,通常也叫做MBIST。所有和BIST测试相关的管脚,都是可以MBIST逻辑,对memory进行强制管控。 -
测试:TSEL pin主要用于良率微调的时候进行使用,在每一批wafer回片以后,进行机台测试,对于不同批次的产品可能在性能上会有些许不同,通过测试项目提取出来合理的调整值,储存到芯片的efuse之中,在芯片上电后,efuse的内容可以被相应逻辑读取并对memory 进行微操作,确保芯片使用正常。PS:这个微调很小,不建议在功能模式下进行调整和使用 -
低功耗:基于memory的使用场景,memory 可以分为shut-down、deep-sleep和normal模式。譬如本级模块是一个可关断domain,在关断std-cell逻辑之前,需要对于memory的SD/DSLP进行拉高(使能),让memory进入到不同的工作模式以节省功耗。PS:如果在DSLP模式下,VDDM掉电,memory的内容会丢失
SRAM 冗余修复(redundancy repair)
在正常的SARM上,可能会有一定的bitcell的失效比率,基于不同的情形,可以分为column和row类型的bitcell损坏,譬如下图 这里的bit_i (第i列)的bitcell有损坏,这个时候,所有写入到bit_i的数据依次右移,直至bit_n-1移动到redun_1列,这个时候,可以通过redun_1避免整块memory的失效。 对应的,row and column redundancy 可以使用下图进行描述,
MBIST
MBIST是使用BIST逻辑对memory进行测试的一种方式,可以定位出SRAM的坏点,并且通过调用column/row的redundancy来进行修复(通常也称为MBISR:SRAM自修复功能)。MBIST的测试方法高效,和带有redundancy bit的memory联动使用可以有效提升芯片的良率。基本原理图如下 step_1: 在ATE测试环境下,使用MBIST逻辑对SRAM的每个bit进行测试 step_2: 发现问题进行上报,同时对问题进行归类(可修复,不可修复,是否可修复通常是根据错误数量和redundancy bit位来决断) step_3:如果可修复,在ATE模式下,通过利用redundancy bit,对memory 进行修复,如果此时MBIST的测试可以通过,则相关信息烧录进在EFUSE里边。 step_4:进入用户模式,芯片启动,从EFUSE里边读取对应的出错的memory ID以及修复的方式。在使用SRAM的时候,FADIO[*] 输入控制会被钳位到对应的位置,确保SRAM使用中可以正确无误。
对于大部分的memory,其实都提供了MBIST的通路,如下图所示: 但是,考虑到后端实现的便利性,通常不会这么应用,在使用的时候,并不去产生MBIST pin,或者直接tie0掉。简单连接方法如下:
DFT可测性
由于SRAM的由外围逻辑和memory array构成。这里的外围逻辑本质上就是一些std-cell搭建的译码逻辑。从数字电路的角度来看,也是会有生成风险的可能,所以,使用scan-chain的DFT策略,可以很好的对这部分逻辑进行可测性分析。
当SRAM处于,DFT管控模式的时候,测试步骤如下 step1:使用shift mode,将memory 的输入端口信号配置成指定值 step2:使用capture mode,将这些端口信号捕捉到SRAM里内建得scan-FF 中 step3:再次使用shift mode,此时memory array处于bypass 模式下,scan-FF得值被依次shift out step4:在SOC等DFT 输出管脚观察结果,和step1得输入信息进行比对,完成对SRAM 外围逻辑得DFT测试
本章词汇
词汇 | 解释 |
---|
MBIST | 存储器内建自测(Memory Built-In Self Test) | MBISR | 存储器内建自修复 (Memory Built-In Self-Repair) | Column Redundancy | SRAM 列冗余 | Row Redundancy | SRAM 行冗余 | DFT | Design For Test | ATE | 集成电路自动测试 (Automatic Test Equipment) |
【敲黑板划重点】
SRAM是由数字逻辑电路(外围电路)和存储单元(memory array)组成,所以会呈现出数字电路的特性(multi-VT legalize ,扫描链等)和存储单元的特点(MBIST)
参考资料
TSMC TSMC N7 SRAM Compiler Databook TSMC TSMC N7 Design Rule
|