EFUSE中redundancy program/read的理解

现在有空,整理下前段时间关于efuse中redundancy program/read模式的理解,下面以TEF22ULP128X32HD18_PURM这款芯片为例,进行笔记整理,如有侵权或不妥之处,请时告知并及时处理。

1 redundancy的作用

efuse中存放的是芯片初始化的参数配置,也是出厂前需要把最优的配置参数烧写到efuse中,这样用户在使用过程中才会用到最优的芯片性能,但是这个efuse不对用户开放。efuse的好坏决定了一颗芯片的性能好坏,甚至决定了一颗芯片的成败。在电路的生产和制造过程中,总是存在着一些不好的概率事件,一旦这个概率发生,则意味着产品成本的增加。对于efuse来说,则可能是某bit不能烧写,或者某些bit不能烧写,甚至在烧写过程中某些bit烧写错误,则会导致一颗芯片的失败。

但redundancy的存在,则减少了芯片无效的事情发生。比如此笔记中的这款efuse就存在8bit的冗余(redundancy),也就意味着有8bit的容错率,也就减少了芯片失败的风险,但是一旦超过8bit的错误,则只能宣告efuse烧写失败。

2 redundancy read模式

进入redundancy read模式需要一次性读取四次,对应[A6,A5]为2’b00、2'b01、2'b10、2'b11的情况,每次读取都会得到一个32bit的数据,对应如下图:

其中FB0_disable到FB7_disable代表了对应冗余bit是否有效,FB0_data到FB7_data对应了具体冗余bit的值,而RF0-RF7指示对应冗余bit是否已被使用,FB0_A[11:0]到FB7_A[11:0]为冗余bit实际对应的efuse的bit。

一次性读取四次,因为每一次读取会获得两个冗余bit的信息。一次性读全,可以知道整个efuse的bit状况,方便后续处理。

3 redundancy program模式

由于冗余bit的单bit信息需要32bit来表示,即Q_{31}\rightarrow Q_{0},所以需要用5bit来表示,即A_{11}\rightarrow A_{7},又因为8bit冗余位分成了4组,需要2bit来表示具体的分组,即A_{6}\rightarrow A_{5},如下图所示。A_{4}\rightarrow A_{0}为dont care的bit。

4 实际应用中的思考

在efuse control的设计中,至少需要考虑一下几点: 

(1)如果efuse出厂就存在bit位的失效,则在烧写前需要确认efuse的bit情况;

(2)如果在烧写过程中出现某bit烧写错误,需考虑对冗余bit的烧写;

(3)如果冗余bit在烧写时出现烧写错误,应该对出错的冗余bit进行处理并烧写新的冗余bit;

(4)如果错误bit大于了芯片能接受的最大冗余bit数,需给出相应的指示;

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值