关于eFuse模块解析、一次可编程的非易失性存储器(OTP NVM)解析
Author: Nirvana Of Phoenixl
Proverbs for you:There is no doubt that good things will always come, and when it comes late, it can be a surprise.
本文主要用于通过分析eFuse工作原理及其模式 |
---|
1 基本概况及介绍
不同于大多数FPGA使用的SRAM阵列,eFuse一次只有一根熔丝能够被编程,这是该方法的配置能力存在限制范围的原因。但当与日益成熟的内置自测试(BIST)引擎组合使用时,这些熔丝就变成了强大的工具,能减少测试和自修复的成本,而这正是复杂芯片设计所面临的重大挑战。
eFuse就好像在硅片上建立了无数个交通岗哨,控制信号的传输或停止,据悉这将把芯片中的电路运行效率提高上千倍。比如您购买了一个新的控制器,最开始的时候控制器的功能是空的,不过在把它带回家后,它重新识别了您家中的所有系统,电视、音响、DVD,并且自动对自身进行改造,来控制这些电器。
1.1 相关简介
(1)非易失性存储器(NVM,Non-Volatile Memory)
所谓非易失性存储器NVM 的特点是存储的数据不会因为电源关闭而消失。比如Mask ROM、PROM、EPROM、EEPROM、NAND / NOR 闪存 (Flash Memory) 等传统 NVM,以及目前许多正在研发的新型态存储器,如磁性存储器 (MRAM)、阻变存储器 (RRAM)、相变存储器 (PRAM)、铁电存储器 (FeRAM) 等等都属于 NVM。因此,非易失性存储器NVM的概念设计的范围很广。 <font color= >
从可编程次数来看,NVM可以分为3类:
MTP:Multiple-Time Programmable,可以多次编程
FTP:Few-Time Programmable,可编程的次数有限
OTP:One-Time Programmable,只允许编程一次,一旦被编程,数据永久有效。
实际上我们常说的OTP(One-Time Programmable)指的是可编程的次数,代表一次可编程存储器此类特性的存储单元,并不特指某一种存储器。
(2)关于一些存储器(Mask ROM, PROM, EPROM, EEPROM)
Mask ROM是掩模只读存储器,Mask也称为光罩,所以也称为光罩只读存储器。其通过掩模工艺,一次性制造,其中的代码与数据将永久保存(除非坏掉),不能进行修改,属于不可编程ROM.PROM(Programmable Read Only Memory)是可编程只读存储器,相对于传统的ROM,其数据不是在制造过程中写入的,而是在制造完成之后通过PROM programmer写入的。PROM 中的每个bit 由熔丝 ( fuse ) 或反熔丝 ( antifuse ) 锁定,根据采用的技术不同,可以在晶圆、测试或系统级进行编程。典型的PROM的所有位都为“ 1”。在编程过程中烧断熔丝位(Burning a fuse bit)会使该位读为“ 0”。存储器在制造后可以通过熔断保险丝(blowing the fuses)进行一次编程,这是不可逆的过程。典型的PROM是“双极性熔丝结构”,如果想改写某些单元,可以给这些单元通以足够大的电流,并维持一定的时间,原先的熔丝(fuse)即可熔断,这样就达到了改写某些位的效果。另外一类经典的PROM是使用“肖特基二极管”的PROM,出厂时,其中的二极管处于反向截止状态,采用大电流的方法将反相电压加在“肖特基二极管”,造成其永久性击穿即可。EPROM(Erasable Programmable Read-Only Memory)是可擦写可编程只读存储器。它的特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。EEPROM(Electrically Erasable Programmable Read-Only Memory)是电可擦除可编程只读存储器。它的最大特点是可直接用电信号擦除,也可用电信号写入。
(3)一次可编程的非易失性存储器(OTP NVM)
针对OTP NVM存储器主要有两种eFuse 和Anti-Fuse。fuse是保险丝·、熔丝的意思,在计算机技术中,eFuse(electric-fuse,电子保险丝)是置于计算机芯片中的微观保险丝。该技术是IBM在2004年发明的,可以对芯片进行动态实时重新编程。概括地说,计算机逻辑通常被“蚀刻”或“硬连线”(“etched” or “hard-wired”)到芯片上,在芯片制造完成后不能更改,但使用eFuse,芯片制造商可以在芯片上的电路运行时进行更改。具体下文详解。
1.2 关于eFuse工作原理
OTP,One time programmable,是一种特殊类型的非易失性存储器 ( non-volatile memory ), 只允许『编程』一次,一旦被编程,数据『永久』有效。相较于MTP (multi-time programmable ) 如EEPROM, OTP 的面积更小而且不需要额外的制造步骤,因此广泛应用于low-cost 芯片中,OTP 常用于存储可靠且可重复读取的数据。
eFuse电子保险丝可以用硅或金属制成,它们都是通过电迁移来工作的,即电流导致导体材料移动的现象。随着时间的流逝,编程期间产生的“熔丝碎屑”会反向生长,导致金属线断开的相同电迁移也会导致金属线无意中再次连接,从而改变原本要存储的数据,导致了错误的行为。此特性限制了eFuse 的可读次数。
Anti-Fuse(反熔丝)是一种电气装置,其功能与保险丝相反。保险丝从低电阻开始,默认是导通状态,当灌以较大的电流时切断电路。而反熔丝从高电阻开始,默认是不导通状态,当灌以较大的电压时,可将其转换为永久性导电路径。
Anti-fuse 比eFuse 的安全性更好,eFuse的编程位可以通过电子显微镜看到,因此其存储的内容可以被轻易破解,但Anti-fuse在显微镜下无法区分编程位和未编程位,因此无法读取数据。
传统eFuse的熔丝由多晶硅栅极层制成,随着工艺几何尺寸的缩小和High-K 材料的使用,现在eFuse的熔丝改由金属制成,随着时间的流逝,编程期间产生的『熔丝碎屑』会反向生长,这限制了eFuse的可读次数。eFuse的形状类似于领结,中心是一条窄金属条,较大的端头用作通孔和散热器的连接,受限于该形状,随着晶体管尺寸的减小,eFuse 的尺寸不能按比例减小,因此随着Macro 尺寸变大,eFuse 的密度并不能同比例增加,很少会超过4KB。
计算机逻辑通常是“蚀刻”或“硬编码”到芯片上,在芯片完成后不能改变。通过使用eFuse技术,芯片制造商可以允许芯片上的电路在运行时发生变化。该技术的主要应用还主要是为了芯片的性能调优。如果芯片局部发生问题,例如存储器发生问题,或者需要花费太长的时间来响应,或者消耗了太多的电力,那么芯片就可以通过“blowing”一个eFUSE来立即改变它的行为,已保证其他功能不受影响。
2 应用功能总结
eFuse应用范围很广,从模拟器件的调整、校准、修复到系统软件的现场更新,且被广泛应用于安全领域,但由于eFuse的『编程结点』可以通过电子显微镜看到,因此其存储的内容可以被轻易破解。efuse类似于EEPROM,是一次性可编程存储器,在芯片出场之前会被写入信息,在一个芯片中,efuse的容量通常很小,可EFuse支持反复写入,但写到总的空间就不可以再写。
简单就 eFuse功能 作以总结介绍,具体如下文:
(1)Efuse被广泛利用最重要的一个原因就是能够对有缺陷的芯片进行修复,而且在修复的过程当中不需要外界的干预。对于芯片的生产以及考虑到生产的成本,最重要的一点就是芯片生产的良率,若生产出有缺陷的芯片,而又不能修复那处理的结果就只能是报废,这样的处理方式在很大程度上增加芯片的成本。Efuse技术的出现,即通过改变电路的某些电压,或者特意去关闭一些功能模块,这样即使芯片出现缺陷,但是依旧能去实现芯片要实现的某些功能。这样即使有生产出来的芯片有缺陷,通过Efuse技术去发现错误,并且对错误进行修复,这样一来芯片还是可以正常使用,所以Efuse技术在提高芯片的良率以及降低芯片的成本上有很大的贡献。另一方面,通过找到芯片易出错的地方,有助于以后芯片的改进,以前的熔丝都是单排的,只能进行一次的编程,而随着工艺的改进,现在Efuse采用的都是多排阵列,这就实现了Efuse的自我修复。
(2)利用Efuse可以降低芯片的功耗以及增加芯片的可控性,由于Efuse可以进行编程,从而可以实现芯片关闭某些工作模块,当我们不需要某些模块时可以利用Efuse的编程来限制或者是屏蔽某些功能,从而可以降低芯片的功耗,也能进一步增加芯片的可控性。
(3)可提高芯片的安全性,利用Efuse技术,密码随时都可以进行修改,能有效的降低黑客的入侵。
(4)Efuse技术还可以降低制造的成本。在第一个功能应用中我们通过对芯片的修复,能减小芯片的报废而降低一部分成本,另外一个降低成本是通过芯片的集成多种不同的应用功能模块,当客户选择不同的功能时,不需要重新设计与制造,只需要通过Efuse技术来选择功能模块。这就在另一个层面来达到降低成本的效果。
(5)随着工艺的更微小化,Efuse利用电位迁移的技术,不仅不会对周边的电路造成破坏,而且还能对在封装后的芯片进行编程,这使得Efuse在芯片中的应用更为广泛。
(6)类似启动程序、加密密钥、模拟器件配置参数等。可通过efuse 控制着系统启动方式。模拟电路受工艺制造等误差的影响,流片回来的芯片往往需要对作参数校准,调试完成后将确定的值烧写到OTP中,芯片上电后OTP的值被装载到寄存器中,模拟电路参数完成校准。通过运用eFuse技术,允许计算机芯片的动态实时重新编程。Efuse可用于存储MEM repair的存储修复数据,也可用于保存芯片量产信息,以便后续追踪,如芯片可使用电源电压,芯片的版本号,生产日期。
Efuse对于芯片而言就像一个指挥官,它能够控制芯片中很多信号的的传输或者将其停止,这样就使得芯片中的其他电路能够更快的运转,Efuse不仅再一次的拯救芯片,还能提高芯片的效率。
3 关于eFuse解析
3.1 基本介绍
S14NSFPEFUSE_PIPO4KB_A模块是并行输入/并行输出电熔丝宏IP,具有4K内部非易失性一次性可编程EFUSE存储器。对于串行接口,在编程模式下每次可编程1位,在读取模式下每次可读取8位。举例说明(不代表该IP支持)
写模式如下
读模式如下
eFuse功能特点如下参考涉及:
存储单元组织形式:组织成512×8位的一次性可编程非易失性电熔丝存储单元。
典型电压:0.8V典型内核电压(DVDD)。
熔断燃烧时间:累计燃烧时间不得超过1s。
工作:工作结温范围
燃烧(熔断)要求如下:
1.8V典型燃烧电压,在编程模式下AVDD必须为高电平。在读取模式和非活动模式下,PGMEN必须为低电平。
3.2 相关信号
输入/输出类型 | 功能描述 |
---|---|
EN-input | 地址信号使能 |
RD-input | 读使能 |
A-input | 地址输出 |
D-output | 数据输出 |
input | 数字电源、模拟电源 |
具体信号不同因厂商而异
3.3 eFuse操作模式
eFuse宏有三种操作模式,具体如下:
(1)编程模式(Program mode)、
(2)读取模式(Read mode)、
(3)非活动模式(Inactive mode)。
eFuse模块三种模式选择由其读选择信息(RDEN)和程序选择(PGMEN)的逻辑电平共同决定。
工作模式:
Mode 编程使能
PGMEN 读取使能
RDEN 模拟电源
注意事项:
(1) 编程使能和读使能不允许同时为H。
(2) 除了在编程模式或读取模式下,不允许地址输入高电平,也就是说只有在编程或读取模式下才允许AEN为高电平。
(3) 在编程模式或读取模式下,当AEN为高电平时,不允许端口(地址)切换。
(4) 既不允许读取模式直接转换到编程模式,也不允许PGM模式直接转换到读取模式。
3.3.1 编程模式(Program Mode)
在燃烧前,初始Fuse输出为“0”,燃烧后写入“1”。当编程模式(读使能RDEN=L,编程使能PGMEN=H)时,由地址A[11:0](地址输入位)指定的EFUSE位将被AEN(地址使能位)的高脉冲烧毁。程序模式的详细时序见详解。D[7:0]在程序模式下未定义。
注意:一根Fuse只能烧一次。
3.3.2 读取模式(Read Mode)
如果RDEN=H,PGMEN=L,则EFUSE进入读取模式。读取模式的详细时序间详解。地址信号A[11]~A[9]为“无效”。4K = (4*1024) byte = 4096byte
2^9 = 512 组织成512×8位的一次性可编程非易失性电熔丝存储单元。其中A[11:0]为地址输入,A[0]A[8]是有效单元,D[0]D[7]是读取模式下的并行数据输出。
【重点分析】 对于上图所示的efuse阵列,为了精准控制每一个efuse,显然需要进行行列控制。A[8:0]的高3位可产生8(23)个列信号,低6位可产生64(26)个行信号,这样就可以对64*8的矩阵实现地址控制。需要编程时,令PGEN=1,RD=0,对指定地址位的熔丝进行熔烧操作。当需要读取熔丝数据时,令PGEN=0,RD=1,数据以每次8bit的形式并行输出,实际是一次读出一行数据(512bit),全部读出需要64(512/8=64)次。
3.3.3 非活动模式(Inactivate Mode)
如果编程模式和读取模式都不活动,则EFUSE进入非活动模式。非活动模式下的首选待机条件为AEN = L,RDEN = L,PGMEN=L,D[7:0]在非活动模式下未定义。