RRAM流片调试心得

news/2024/9/19 22:03:51/文章来源:https://www.cnblogs.com/sasasatori/p/18395536

RRAM流片调试心得

去年进行了一次RRAM的流片工作,也是人生第一次流片,一些工作细节不便涉及,但是可以谈谈这次流片以及后续测试中碰到的问题,以便后续查阅。

芯片于UMC完成180nm的CMOS前道工艺,共生长5层金属(到V5),随后出Fab,送到所里生长RRAM和M6完成后道工艺,版图需要遵守工艺需求,另外需要添加光学标记方便所里设备做对准。工艺图如下所示:

image

需要长RRAM的部分:先在V5上长一层RRAM(版名称为RRAM-RAM),即RRAM的下电极连接在V5上,然后在RRAM上再长一层金属通孔(版名称为RRAM-TV,这边也叫做V5')连接RRAM上电极与M6。

不需要长RRAM的部分:直接在V5上再长一层金属通孔V5'(对应版名称RRAM-TV)。

此处的要点在于需要按照与工艺约定的层次和尺寸来绘制图形(因为工艺那边并没有给一个DRC Rule,这些都要自己去人工检查完成),并且按照要求在版图里绘制好RRAM和V5'的图形,对于非RRAM的电路,必须在每个V5的通孔图案上再盖一个V5'的图案,否则会直接导致V5到M6之间断路,芯片废掉(尤其注意IO上的这个问题)。

随后谈到设计上,这次的RRAM Macro参考了一个以前流片过的设计,根据需求做了少量设计迭代,提供了一个做片内操作用的操作电压和参考电压产生电路,同时也提供了用Mux把RRAM Cell直接连到外部的测试模式,因为Form电压较高,片内不做Charge Pump的话到不了,所以选择了用片外Form,片内做Set/Reset/Read。

流片时碰到的第一个坑就是工艺那边并没有给一个很肯定的操作电压范围,也没有给RRAM的行为模型,只能自己根据过往资料猜测操作电压,当然最后回片时发现猜得还是准的。但这里干得不太聪明的事情是,这种情况其实应该给片内操作电压做成可调,但是当初偷懒没有,甚至干了个直接用3.3V和1.8V电源来供操作电压的操作,真是想给自己两耳光,偷懒偷出花来了,只有读出的比较参考电压做了可调。其实操作电压做成可调的话一点也不难,内部操作电压用LDO出,运放的输入端电压设计成可以片外给就行,片外接个变阻器或者电源之类的,扭一扭就能调电压,也不麻烦。

踩得第二个坑是测试引脚设计的不够全,进入SA的电压其实可以引出来,但是当时还是偷懒没引,所以调SA的时候一开始发现读不到东西的时候很诧异,但是里面的情况一点都不知道。整个大芯片也是犯了一样的错误,有个重要的引脚也没引出,引以为戒。做设计时不能预想到测试时的问题归根结底是个经验问题,只能说该交的学费还是得交。(好在最后还是测出来了,bug在哪愣是被我一通分析给分析出来了)

然后聊聊测试的问题。第一次自己做RRAM和CMOS的异质集成,多少有点纸上谈兵,做的时候就有点想当然。幸运的是所里的RRAM做的还挺好,刚上手测就观察到了明显的阻变现象,On/Off Ratio在10左右,很明显的阻变现象,Form之前电流非常微小,Form后开始出电流,Reset后电流变小,Set后电流变大。

但是一个难绷的问题是比预期阻值窗口小了10倍,哈哈。

读出电流比预期大了10倍,SA读个der,怎么读都是1。

之后个把月的时间都在努力解决这个问题,尝试过的方法包括调WL电压,控脉冲宽度,结果效果都不好。最后终于试出来的方法是直接在电源上限流,Form和Set时做一个100uA左右的限流,就好了,阻值窗口一下子爬到预期了,Reset限500uA,防止把Cell给弄坏。

原理上很好理解,Form和Set都是生长导电细丝通道,没限流那就长猛了,一旦太粗的话阻值肯定掉的小了,而且救不回来。Reset的话不怎么会影响导电细丝形状问题,所以限流给大点就行。之前不限流我们能跑到几百mA去,直接给Cell干的挺挺的 😦

电路上可以给片内操作电压源就弄个限流电路,不过更多是出于保护目的,我觉得最关键的是写入电路应该在Driver上对BL和SL整限流。

关于器件Variation,评价是建立了一下新的认识,LRS基本上稳如老狗,HRS容易飘到🐎都认不出来(这里就是开环做Set/Reset,没搞Write-Verify,搞一下的话肯定不会这么难看)。只读0/1的话其实够用,On/Off Ratio最小也有5,读电压给的大一点,SA很容易分辨出来,但是做多值的话,我不敢想,哈哈。编程上做做优化的话或许会更好。

image

关于RRAM实用化的问题,我觉得这事没啥好疑虑了吧,这次实测后我对这器件更看好了(之前就挺看好)。我们所里草台班子工艺线做的RRAM,测下来也是能用的,良率不错,Variation也能接受(就做二值的话),尤其在我这电路一点没考虑可靠性,做的各种毛糙的情况下,居然还能用,挺开心的。TSMC之类的Foundry再发发力,这玩意我觉得前景不小(就看多层能做到啥样,能不能成本上把Flash给赢了)。

可靠性上的问题值得研究的东西还是挺多的,编程上的限流,怎么高效的闭环编程(开环编程还是有点极端了)之类的,这次做完后就有了不少思考,现在做的这个也就是个学术产物,真要想用的话得考虑的东西不少。

最后感谢流片时帮忙的师弟师妹,感谢合作单位做测试的学弟,这事上我就负责出点子,出力的大头在其他人,幸而结果不错,希望后面Paper也顺利。

最后吐槽一句,这玩意下次再做的话,流程上真的得先找人去把器件扫完,建个Verilog-A模型再拿来仿真(拿开源的模型改参数拟合一下都行),我们这次拿理想电阻在那折腾,得亏做出来的东西能使。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#自定义控件—文本显示、文本设值

C#用户控件之文本显示、设定组件 如何绘制一个便捷的文本显示组件、文本设值组件(TextShow,TextSet)?绘制此控件的目的就是方便一键搞定标签显示(可自定义方法显示文本颜色等),方便自定义方法又省略了挨个拖拽的过程纯定义属性 【文本设定】:字体、标签、值、单位;事件…

搜索组件优化 - Command ⌘K

今天心血来潮想在 `blog` 上找一篇文章,用搜素的功能发现搜不出来😂,搜索挂了?然后突然想起来之前由于想着在 `blog` 中可能加一些私有的配置或者尝鲜的功能,所有 `fork` 了一份变成 私有项目了,这样就不符合 `DocSearch` 的 网站必须是公开的这个限制了。前言: DevNow…

项目协同开发 or 拷贝项目

项目协同开发 or 拷贝项目 给另人项目时一般需要给代码 requiremenets.txtpip freeze > requiremenets.txt #requiremenets.txt 生成方式获得别人代码 pip install -r requiremenets.txt # 自动将:requiremenets.txt 对应的版本进行安装无网络问题-解决安装第三方模块…

深入浅出Stream流

Java 8的新特性之一就是流stream,配合同版本出现的 Lambda ,使得操作集合(Collection)提供了极大的便利。 案例引入 在JAVA中,涉及到对数组、Collection等集合类中的元素进行操作的时候,通常会通过循环的方式进行逐个处理,或者使用Stream的方式进行处理。 假设遇到了这么…

决策树之——ID3算法及示例

0 前言本文主要介绍决策树ID3算法,并举出构建示例帮助理解。 读者需要具备的知识:信息熵、条件熵、信息增益。 本文使用数据集为:游玩数据集 1.1节。1 ID3算法简述 ID3(Iterative Dichotomiser 3)算法是一种经典的决策树学习算法,由Ross Quinlan于1986年提出。该算法的主…

AtCoder ABC 369题解

题解前言 本题解部分思路来源于网络,仅供参考 ! A - 369 题目大意 给定 \(A\) , \(B\) 两个整数,求有多少个整数 \(x\) 使得可以通过某种排列使得 \(A\) ,\(B\) ,\(x\) 为等差数列。解题思路 稍加分析即可得到:如果 \(A = B\) 则结果为 \(1\) 。如果 \(A = B\) 但 \((A …

三路快速排序

// 快速排序 function quickSort(arr) {if (arr.length <= 1) {return arr;}const pivot = arr[0];const left = [];const right = [];for (let i = 1; i < arr.length; i++) {if (arr[i] < pivot) {left.push(arr[i]);} else {right.push(arr[i]);}}return quickSort…

三路排序

// 快速排序 function quickSort(arr) {if (arr.length <= 1) {return arr;}const pivot = arr[0];const left = [];const right = [];for (let i = 1; i < arr.length; i++) {if (arr[i] < pivot) {left.push(arr[i]);} else {right.push(arr[i]);}}return quickSort…

8.30 ~ 9.8

文化课奥赛8.30 返校日。 又回到了原来的班(和化奥一个班),一个班有 69 个人; 然后我坐在最角上 🙃 第二天还要开学考试,还有 60% 的原题,这我拿头靠考啊; 遂摆。 发现了坐最后面的好处:离得远老师看不到。 8.31 开学考试。 考试顺序:语 \(\to\) 物 \(\to\) 数 \(\t…

【Spring Boot】整合MyBatis

**整合MyBatis**前言 Spring Boot和MyBatis都是非常流行的Java框架。Spring Boot简化了Spring应用的开发,而MyBatis则是一个优秀的持久层框架,支持自定义SQL、存储过程以及高级映射。 mybatis官方文档:http://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconf…

C#设计模式入门实战教程

什么是设计模式 设计模式是对面向对象设计中反复出现的问题的解决方案。它们提供了被反复使用、多数人知晓的、经过分类编目的代码设计经验总结。 设计模式的作用提高代码的可重用性:通过定义一套标准的解决方案,设计模式使得相同或类似的问题可以在不同的项目中复用相同的代…

ES安装

1.初识elasticsearch Elasticsearch的官方网站如下: https://www.elastic.co/cn/elasticsearch/ 1.1.认识和安装 Elasticsearch是由elastic公司开发的一套搜索引擎技术,它是elastic技术栈中的一部分。完整的技术栈包括:Elasticsearch:用于数据存储、计算和搜索 Logstash/Be…