掌桥专利:专业的专利平台
掌桥专利
首页

一种使用IIC进行FUSE修调的控制方法及控制电路

文献发布时间:2024-04-18 20:02:40


一种使用IIC进行FUSE修调的控制方法及控制电路

技术领域

本发明涉及集成电路设计领域,特别地,涉及一种使用IIC进行FUSE修调的控制方法及控制电路。

背景技术

在芯片的整个研发设计过程中,为了让芯片在制造后达到设计的性能,并且有很高的生产良率,通常会在芯片内部加入FUSE(熔丝),在芯片完成CP(中测)测试后,通过选择性的烧断FUSE,使得芯片的关键参数更精准且分布更集中。

传统的修调方法是通过探针插到FUSE对应的PAD(焊盘),施加电压可以将其烧断,芯片内部的电路判断FUSE是否烧断,就可以实现对关键参数的修调,让其测试值更集中在设计值附近并且满足分布要求。

这种传统的CP修调方法需要在芯片里面加入修调用的PAD,这会占据芯片的部分面积;在修调位数比较多的时候,会使得芯片面积利用率偏低;并且传统的CP修调方法只能在CP测试过程中进行,在后续封装完成后,修调好的参数分布会再次分散,也会造成一定的良率损失。

此外,部分工艺厂提供eFUSE(电熔丝)的IP模块,在芯片设计过程中,可以加入eFUSE模块,另外加入满足其控制电路时序的外围电路,也可以实现在CP或者FT(终测)阶段对芯片进行修调。

采用工艺厂的eFUSE的IP模块,模块内部的修调位数是工艺厂预先设定的,只有有限的选择项,因此可能会与实际的修调位数不一致,造成浪费。此外,有些工艺厂没有eFUSE模块,这也会造成芯片设计时的麻烦。

发明内容

为了解决上述问题,本发明公开了一种使用IIC(Inter Integrated Circuit)进行FUSE修调的控制方法,通过该控制方法,直接在FT测试后修调,可以免除CP测试的修调步骤,并且解决CP修调后再封装使得芯片的关键参数分布再次分散的问题,能够有效提高芯片的良率。

一种使用IIC进行FUSE修调的控制方法,包括以下步骤:步骤STEP3:开启FUSE修调使能:通过IIC对芯片的“REG20H寄存器组”写入pw_code2进入修调状态,当且仅当对“REG20H寄存器组”正确写入pw_code2才能进入修调状态,否则无法修调状态;步骤STEP4:选择修调位:通过对“REG21H寄存器组”地址写入数据tr_bit_codex,每一个tri_bit_codex对应于一个修调位;步骤STEP5:开始烧写FUSE:在选择修调位后,通过IIC对“REG22H寄存器组”写数据8’hFF,就开始FUSE烧写,烧写过程中,FUSE电阻两端会瞬间加入电压,产生的大电流将FUSE电阻烧断;步骤STEP6:停止烧写FUSE:通过IIC对“REG22H寄存器组”写入数据8’h00,就停止FUSE,将FUSE电阻两端加载的电压去除;步骤STEP7:锁定修调:通过循环步骤STEP4至步骤STEP6,完成所有修调组的修调,使所有组对应的参数满足设计要求;步骤STEP8:退出修调:在步骤STEP3至步骤STEP7的任何步骤中,只要对“REG20H寄存器组”写入非pw_code2的值,就会退出修调。

优选地,在步骤STEP3之前,还包括步骤:芯片测试完成一组可修调的参数后,根据测试值与理论值的偏差,计算出该组参数的理论修调tr_codex。

优选地,在步骤STEP3之前,还包括步骤STEP1:开启预修调使能:通过IIC对芯片的“REG10H寄存器组”写入pw_code1进入预修调状态,在预修调状态,通过写入寄存器的值代替FUSE的值,可以实现不烧断FUSE而预先看到修调后的结果是否符合预期。

优选地,在步骤STEP1之后还包括步骤STEP2:选择修调组-写入数据:对不同的修调组写值,每一个修调组对应于一组寄存器;如果预修调后的数据不符合预期,则重复步骤STEP2,修改tr_codex,如果符合预期,对FUSE进行烧写。

优选地,芯片内部有判断电路,FUSE电阻值变大到一定阈值则判定为烧断。

一种用于实现前述使用IIC进行FUSE修调的控制方法的控制电路,包括主机和芯片,主机与芯片之间通过所述IIC进行连接;芯片包括用于开启FUSE修调使能的“REG20H寄存器组”,用于选择修调位的“REG21H寄存器组”,以及用于控制“开始烧写FUSE”和“停止烧写FUSE”的“REG22H寄存器组”。

优选地,芯片还包括用于开启预修调使能的寄存器组。

与现有技术相比,本发明的有益效果包括:

(1)采用传统的FUSE器件,设计一套通过IIC实现FUSE修调的控制方法及控制电路;

(2)在芯片生产完成后,直接进行封装,跳过CP测试过程,然后进行FT测试和修调;

(3)修调位数可以根据电路的实际需求设计,不会造成任何修调位数的浪费;

(4)修调位的设置更灵活多变,且保证工艺厂没有eFUSE IP模块的情况下能够实现FT修调。

附图说明

图1是本发明的一种使用IIC进行FUSE修调的控制方法的流程图;

图2本发明的一种使用IIC进行FUSE修调的控制方法的修调过程关键信号时序图;

图3是本发明的一种使用IIC进行FUSE修调的控制方法的IIC发送数据图;

图4是图3所示的IIC发送数据图的IIC发送数据简略图。

具体实施方式

下面结合附图,对本发明的一种使用IIC进行FUSE修调的控制方法进行详细地描述。

IIC(Inter-Integrated Circuit)总线是一种两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件的主从通信。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。

IIC一共有两个总线:一条是双向的串行数据线SDA,一条是串行时钟线SCL。SDA(Serial data)是数据线,SCL(Serial clock line)是时钟线。所有连接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线的SCL上。IIC总线上的每个设备都有自己一个唯一的地址,来确保不同设备之间访问的准确性。

本发明通过使用IIC进行FUSE修调的控制,可以直接在FT测试后修调,免除了CP测试的修调步骤,并且解决了CP修调后再封装使得芯片的关键参数分布再次分散的问题,能够有效提高芯片的良率。

在芯片里面,可以有x个参数需要修调,在具有IICslave的芯片中,采用此修调控制方法,x的理论最大可以有2^8-4个。每一个关键参数的修调位数可以是1-8位。关键参数根据芯片的设计来确定,如基准电压VBG振荡器频率OSC等等。在后续说明中,以关键参数基准电压VBG为例子,来辅助说明本发明的实施方式。

本发明的实施方式需要使用如下寄存器/寄存器组来控制修调:

REG10H寄存器组:由8位寄存器组组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于开启预修调使能。

REG11H寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于第1组关键的数据预写入。

REG12H寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往寄存器组里面写入取值范围为8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于第2组关键参数的数据预写入。

REG13H寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围为8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于第3组关键参数的数据预写入。

依此类推,REG1xH寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围为8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于第x组关键参数的数据预写入。

REG20H寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于开启FUSE修调使能。

REG21H寄存器组:由8位寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于选择修调位。

REG22H寄存器组:由8位1bit寄存器组成的寄存器组,通过IIC可以往该寄存器组里面写入取值范围8’h00-8’hFF的任意数据。该寄存器地址在IC芯片设计的时候就确定好,可以设计为8’h00-8’hFF范围内任意与其他功能寄存器/寄存器组不相冲突的地址。该寄存器组用于控制“开始烧写FUSE”和“停止烧写FUSE”。

可选地,芯片测试完成一组可修调的参数后,首先根据测试值与理论值的偏差,计算出该参数的理论修调tr_codex,后续修调流程如后续步骤。

例如,VBG的目标值为1.2V,修调每步调节0.5%,修调位数为5位(关键参数修调的每步调节值以及修调的位数是在IC芯片设计的过程中已经根据修调范围和修调精度确定好的)。在修调前测试VBG电压值为1.23V,通过计算偏差为(1.23-1.2)/1.23=2.44%,需要调整步数为2.44%÷0.5%=5,因此对应的理论修调码(二进制)为tr_codex=01001。下面的修调过程举例都是以修调码01001为例。

图1是本发明的一种使用IIC进行FUSE修调的控制方法的流程图。

一种使用IIC进行FUSE修调的控制方法,包括以下步骤:

步骤STEP3:开启FUSE修调使能,通过IIC对芯片的“REG20H寄存器组”写入pw_code2进入修调状态,后续可以对FUSE进行烧写。“REG20H寄存器组”的地址以及pw_code2是在电路设计阶段先确定好的值,“REG20H寄存器组”地址须确保与芯片其他功能性的寄存器地址不冲突。当且仅当对“REG20H寄存器组”正确写入pw_code2才能进入修调状态,此后才可以进行后续操作;否则,无法进入修调状态,则后续操作无效。

例如,在芯片设计阶段设计“REG20H寄存器组”的地址为8’h20,设计pw_code2为8’h91。经过前面的步骤,确定基准电压VBG的修调码tr_codex为二进制数01001。通过IIC往8’h20地址的寄存器写入8’h91数据,就可以开启修调使能,能进行后续的修调烧FUSE步骤;通过往8’h20地址的寄存器写入非8’h91数据,则不可以开启FUSE修调使能,不能进行后续的修调烧FUSE步骤。

步骤STEP4:选择修调位:在完成步骤STEP3后才可以进入步骤STEP4,此步骤是选择修调位。通过对“REG21H寄存器组”地址写入数据tr_bit_codex,每一个tri_bit_codex对应一个修调位,理论上最大可以修调2^8-1=255。为了方便修调,可以对tr_bit_codex与修调位做如下表1的映射,此种映射中每个修调组Groupx最大修调8位,若不足8位,则高位空置。

表1tr_bit_code与修调位映射表

例如,在芯片设计阶段设计“REG21H寄存器组”的地址为8’h21。基准电压VBG的修调是第一组,在选择修调这组参数的时候,往“REG21H寄存器组”里写入的数据tr_bit_codex的范围是8’h10-8’h17。若通过IIC往8’h21地址的寄存器写入8’h10数据,就选择了修调码tr_codex的第[0]位;若通过IIC往8’h21地址的寄存器写入8’h11数据,就选择了修调码tr_codex的第[1]位;若通过IIC往8’h21地址的寄存器写入8’h12数据,就选择了修调码tr_codex的第[2]位……。通过前面的步骤,确定了基准电压VBG的修调码为二进制01001,表示需要修调第[0]位和第[3]位。先通过IIC往8’h21地址的寄存器写入8’h10,选择第[0]位,然后进行后续的烧写FUSE步骤。完成第[0]位FUSE烧写后,再返回到这一步骤,通过IIC往8’h21地址的寄存器写入8’h13,选择第[3]位,然后进行后续的烧写FUSE步骤。

同样的原理,在芯片设计时确定了关键参数震荡频率OSC为第二组修调,在选择修调这组参数的时候,往“REG21H寄存器组”里写入的数据tr_bit_codex的范围是8’h20-8’h27。每个数据控制的修调位如映射表所示。

步骤STEP5:开始烧写FUSE:

在步骤STEP4选择修调位后,通过IIC对“REG22H寄存器组”写数据8’hFF,就开始FUSE烧写,烧写过程中,FUSE电阻两端会瞬间加入电压,产生的大电流将FUSE电阻烧断。可选地,芯片内部有判断电路,FUSE电阻值变大到一定阈值则判定为烧断。每个修调组的每个FUSE仅可烧一次,并且烧断后不可逆。

例如,在芯片设计阶段设计“REG22H”寄存器组的地址为8’h22。通过前面的步骤,选择修调基准电压的第[0]位,通过IIC往8’h22地址的寄存器写入8’hFF,就开始对第[0]位的FUSE进行烧写。

步骤STEP6:停止烧写FUSE:

步骤STEP5开始烧写FUSE后,FUSE两端会一直加有电源电压,通过IIC对“REG22H寄存器组”写入数据8’h00,就可以停止FUSE烧写,将FUSE电阻两端加载的电压去除。如果完成步骤STEP6后,可以循环步骤STEP4至步骤STEP6的过程,对不同的修调位FUSE进行烧写;如果不进行步骤STEP6,则流程会被锁定,无法循环步骤STEP4至步骤STEP6的步骤。

例如,在前面的步骤STEP5开始了对基准电压的第[0]位进行烧写,延迟一段时间(如10ms,该时间由工艺FUSE的特性所决定,确保FUSE可以被烧断)后,通过IIC往8’h22地址的寄存器写入8’h00,就停止对第[0]位的FUSE进行烧写。此后,再通过步骤STEP4,选择另外的修调FUSE,重复修调位。基准电压VBG修调第[0]位后,需要再修调第[3]位,需要如下操作;通过IIC往8’h21地址的寄存器写入8’h13数据,选择第[3]位;通过IIC往8’h22地址的寄存器写入8’hFF数据,开始烧写第[3]位FUSE;通过IIC往8’h22地址的寄存器写入8’h00数据,停止烧写第[3]位FUSE。如果基准电压VBG修调完成,可以继续按照相同的流程修调后续关键参数。

步骤STEP7:锁定修调:

通过循环步骤STEP4至步骤STEP6,可以完成所有修调组的修调,使所有组对应的参数满足设计要求。在完成所有组修调后,需要对“REG21H寄存器组”里面tr_bit_codex=8’hF0的FUSE进行修调。此位修调完成后,就会锁定修调,步骤STEP3至步骤STEP6的步骤将无法进入。此步骤操作可以防止用户在使用芯片的过程中误进入修调状态,影响芯片的正常使用。

例如,通过以上的流程完成基准电压VBG、震荡期频率OSC和其他设计的关键参数的修调以后,最后需要进行最后一步修调来锁定。其操作流程是:通过IIC往8’h21地址的寄存器写入8’hF0数据,选择锁定位;通过IIC往8’h22地址的寄存器写入8’hFF数据,开始烧写FUSE;通过IIC往8’h22地址的寄存器写入8’h00数据,停止烧写FUSE。修调完成锁定位后,后续将再不能进入前面的任何修调步骤,这一步需要在所有参数修调完成后进行。

步骤STEP8:退出修调

在步骤STEP3至步骤STEP7的任何步骤中,只要对“REG20H寄存器组”写入非pw_code2的值,就会退出修调。只有经过步骤STEP3才能重新进入修调。

例如,以上例子中“REG20H寄存器组”的地址为8’h20,pw_code2为8’h91。修调的时候,在步骤STEP3至步骤STEP7的任何步骤,只要通过IIC往8’h20地址的寄存器写入非8’h91数据,就可以退出修调,进入正常模式。

可选地,在步骤STEP3之前,还包括步骤STEP1:开启预修调使能:通过IIC对芯片的“REG10H寄存器组”写入pw_code1进入预修调状态,在预修调状态,可以通过写入寄存器的值代替FUSE的值,就可以先不烧断FUSE而预先看到修调后的结果是否符合预期。“REG10H寄存器组”的地址以及pw_code1是在电路设计阶段先确定好的值,“REG10H寄存器组”地址需确保与芯片其他功能性的寄存器地址不冲突。当且仅当对“REG10H寄存器组”正确写入pw_coe1才能进入预修调状态,此后才可以进行步骤STEP2的操作,否则,无法进入预修调状态,则后续步骤STEP2操作无效。

Pw_code1是一个8位的二进制数,在芯片设计过程中确定好的,可以设计为8’h00-8’hFF范围的任意数据。当“REG10H寄存器组”里面写入的数据与pw_code1的8位二进制数相同,就开启预修调使能,否则不开启预修调使能。

例如,芯片设计过程确定“REG10H寄存器组”地址为8’h10,pw_code1为8’h90。在修调的时候,通过IIC往8’h10d地址的寄存器写入8’h90数据就能开启预修调使能,就能进入下一步STEP2。通过IIC往8’h10地址的寄存器写入非8’h90数据就不能开启预修调使能,无法进入后续步骤STEP2。

可选地,在步骤STEP1之后还包括步骤STEP2:选择修调组-写入数据:在完成步骤STEP1之后,就可以对不同的修调组写值,每一个修调组对应于一组寄存器:第一组修调对应于“REG11H寄存器组”、第二组修调对应于“REG12H寄存器组”、第三组修调对应于“REG13H寄存器组”……芯片有x组修调,则对应x组寄存器组。对“REG1xH寄存器组”写入计算的tr_codex,则第x组修调的数据变为tr_codex,此时可以测试到第x修调项的修调后数据。如果预修调后的数据不符合预期,则可以重复步骤STEP2,修改tr_codex;如果数据符合预期,就可以进行后续的操作,对FUSE进行烧写。

例如,修调基准电压VBG对应寄存器组“REG11H寄存器组”,修调振荡器频率OSC对应寄存器组“REG12H寄存器组”,修调关键参数3对应寄存器组“REG13H寄存器组”……。在芯片设计的阶段,设计“REG11H寄存器组”的地址为8’h11,“REG12H寄存器组”的地址为8’h12,“REG13H寄存器组”的地址为8’h13……,延续前面的例子,VBG的5位修调码是01001,其对应的8位数据是8’h05。在步骤STEP1开启预修调使能后,可以通过IIC往8’h11地址的寄存器写入8’h05数据。写入数据后测试VBG电压,若VBG电压满足1.2V精度,则前面计算的修调码tr_codex正确有效,后续可以按照该修调码进行修调。如果写入数据后测得的VBG电压不满足精度,可以重新写入其他数据的修调码tr_codex,再次测试VBG,知道选出最佳VBG对应的修调码tr_codex。

步骤STEP1和步骤STEP2没有烧写FUSE,只是用寄存器值代替FUSE值,预先得到烧写FUSE后的测试结果,可以验证计算的理论值tr_codex是否准确,步骤STEP1和步骤STEP2为可选步骤。在FT测试出修调前的值,计算出理论的修调码tr_codex后,可以直接到步骤STEP3,进入FUSE的修调流程。

图2是本发明的一种使用IIC进行FUSE修调的控制方法的修调过程关键信号时序图。图3是本发明的一种使用IIC进行FUSE修调的控制方法的IIC发送数据图。图4是图3所示的IIC发送数据图的IIC发送数据简略图。

如图2所示,是本实施方式的修调过程关键信号时序图,所有的控制都是通过IIC写数据完成的。IIC传输数据如图3所示,先发送从机地址SlaveAddr,再发送寄存器地址Addr,然后发送数据Data每次一次IIC传输数据都遵循图3所示的格式,同一个芯片的SlaveAddr都是相同的,在描述的过程中将图3简化成图4所示的形式,省略了SlaveAddr。

如图2所示,可以先通过STEP1开启预修调使能,只有在该预修调使能开启期间,STEP2的操作才有效,否则STEP2操作无效。接下来多次通过STEP2给不同的修调组写入预修调值可以只写入1组的预修调值,也可以多次写入,把所有的预修调值都写一次。接下来通过STEP3开启修调使能,与此同时,在STEP1开启的预修调使能会被自动关闭;只有在修调使能开启期间,后面的STEP4至STEP7的操作才有效,否则其操作无效。接下来通过STEP4选择修调位,在同一个时间只有一个修调位可以选中,其他修调位不被选中。接下来通过STEP5开始烧写FUSE。接下来通过STEP6停止烧写FUSE。在STEP5和STEP6期间都是烧写FUSE的时间,此时仅有STEP4选中的修调位FUSE被烧写。通过重复STEP4/STEP5/STEP6,可以逐次烧写选择的FUSE。所有需要的FUSE烧写完成后,接下来通过STEP7选择锁定修调位,通过STEP5和STEP6烧写该位,后面芯片正常使用过程中,将不会误进入本实施方式的修调流程。接下来通过STEP8,退出修调过程。

步骤STEP1至STEP2为可选步骤,这些步骤不烧写FUSE,只通过寄存器值临时改变FUSE数据,预先看到烧写后的结果。在修调操作过程中,可以省略步骤STEP1至STEP2来节省修调时间。可见,本发明中的“STEP1”、“STEP2”……并不代表顺序,如前所述,本发明的一种使用IIC进行FUSE修调的控制方法可以从“STEP3”开始。

名词解释:

IIC:通信协议接口,由SCL(时钟)和SDA(数据)两根线组成,SCL为串行时钟线,SDA为串行数据线。

IIC master:IIC主机,一般为MCU或SOC等设备。在工作期间,主动发送SCL信号和写入/读取从机的数据。

IIC Slaver:IIC从机,一般为被控制设置,接受主机发送的数据,在主机读取时通过SDA线输出数据。

FUSE:芯片内部熔丝,熔丝未烧断前电阻值很小,熔丝烧断后电阻值很大。在芯片内部加入熔丝,可以在芯片测试后,通过选择性烧断熔丝来修调芯片的关键性能参数,使其达到设计预期值。

eFUSE:电子熔丝,工艺厂提供的IP模块,内部包含FUSE和外围控制电路,按照其控制电路的时序施加信号,能达到烧断FUSE的效果。

CP测试:chip probe test,也叫中测,在芯片制造完成还没有封装之前,通过定制的探针插在芯片PAD上进行测试。

FT测试:final test,也叫终测,在芯片封装完成后,通过测试插座连接来测试芯片。

本文中应用了具体的实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

相关技术
  • 一种三维打印平台的调平方法及使用该方法的调平系统
  • 一种单输入电源集成电路成品修调的电源控制电路
  • 一种熔丝修调的控制电路
技术分类

06120116586351