1、Efuse是什么
eFuse的全称是“电子熔断器”(electronic fuse),是一种可编程电子保险丝,是一种用于存储信息和保护芯片的非易失性存储器件。它的原理是基于电子注入和热效应。在eFuse中,短电流脉冲被应用于热致电子发射,这会使电流通过一个非常小的导线。该电流会引起电线中的材料熔断,形成一个永久性的开路。这个过程是不可逆的,一旦eFuse被熔断,就不能再次编程。(初版说明:后续补充详细说明和原理图)
2、efuse的作用
eFuse可以被用于多个应用场景,例如芯片保护、电源管理、电路校准等。在芯片保护方面,eFuse可以用于防止电路被过电压或过电流损坏,也可用于防篡改、防破解等。在电源管理方面,eFuse可以用于控制电流和电压,确保电路正常工作。在电路校准方面,eFuse可以用于校准电路参数,例如时钟频率和电流偏置等。总的来说eFuse的优点是体积小、功耗低、可编程性强、可靠性高、不易被擦除等,因此在集成电路中得到了广泛应用。
3、Efuse是如何使用的
在芯片出厂之前Efuse会被写入信息,efuse的容量通常不会很大,一些芯片efuse只有128bit,也存在部分芯片efuse容量超过1Kbit的,主要看芯片需求。
Efuse可用于存储MEM repair的存储修复数据,也可用于存储芯片的关键信息:如芯片可使用电源电压,关键时钟频率,芯片的版本号,生产日期。在厂家生产好die后,会进行测试,将芯片的信息写到efuse中去。
芯片在初次上电过程中会读取efuse中的电压字段数值,送到芯片外部的电源管理器,电源管理器在芯片初始上电前会提供一个标准的电压(假设为1.0v),在接受到efuse中的电压字段数值后会调节电压大小。如果芯片质量较好,电源管理器会将电源电压调节到较低值(0.8v),假设芯片质量一般,电压管理器将电源电压调节到稍高值(0.85v)。
完成电源电压调整后,芯片会重新进行上电复位操作。
4、Efuse的应用场景
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不仅再一次的拯救芯片,还能提高芯片的效率。
5、Efuse的工作模式
5.1、 相关信号
5.2、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模式直接转换到读取模式。
5.3、 编程模式(Program Mode)
在燃烧前,初始Fuse输出为“0”,燃烧后写入“1”。当编程模式(读使能RDEN=L,编程使能PGMEN=H)时,由地址A[11:0](地址输入位)指定的EFUSE位将被AEN(地址使能位)的高脉冲烧毁。程序模式的详细时序见详解。D[7:0]在程序模式下未定义。
注意:一根Fuse只能烧一次。
5.4、 读取模式(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]是读取模式下的并行数据输出。
5.5、非活动模式(Inactivate Mode)
如果编程模式和读取模式都不活动,则EFUSE进入非活动模式。非活动模式下的首选待机条件为AEN = L,RDEN = L,PGMEN=L,D[7:0]在非活动模式下未定义。
6、Efuse设计思路
以烧录模式为例,时序图如下:
pgm模式
我们一般会在机台进行烧录,使用的接口可以是JTAG转APB,也可能是不太常用的SPI转APB或UARTM转APB,这三种接口都有一个缺点,就是配置delay比较长,所以说就堵死了我们只靠软件来进行配置的路。
包括中兴,华为等大公司采用的都是软硬件结合的方法来进行烧录,时序如下图:
gpm软硬结合时序
burn_start进入烧录状态,PGMIN中包含对PD,PS,CSB,PGENB等信号的控制,以满足efuse接口时序的setup和hold时间,进入真正的PGM状态后,配置一次ADDR,发起一次triger,来保证ADDR和strobe的时序关系。最后烧录完成,发起burn_end进入退出时序,以便进行二次烧录。
当然还有更快的设计方法,就是ADDR提前写入软件寄存器,bit[x]=1代表这个地址需要被熔断,然后只需要一次triger就可以完成所有烧录,两者区别不大,因为机台对这点时间无感。
同样的read时序也可以参考pgm时序,软硬件结合(利用counter)来满足模块的setup和hold时序要求。