CN117219146A - 一种面向安全启动的片上efuse读写控制装置及方法 - Google Patents
一种面向安全启动的片上efuse读写控制装置及方法 Download PDFInfo
- Publication number
- CN117219146A CN117219146A CN202311193031.9A CN202311193031A CN117219146A CN 117219146 A CN117219146 A CN 117219146A CN 202311193031 A CN202311193031 A CN 202311193031A CN 117219146 A CN117219146 A CN 117219146A
- Authority
- CN
- China
- Prior art keywords
- efuse
- data
- module
- read
- burnt
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012360 testing method Methods 0.000 claims abstract description 25
- 238000004458 analytical method Methods 0.000 claims description 24
- 238000003079 width control Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 13
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 4
- 238000007664 blowing Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种面向安全启动的片上efuse读写控制方法及装置。装置包括:数据测试数据寄存器,用于根据测试协议配置输出待烧写efuse数据;指令测试数据寄存器,用于根据测试协议配置输出待执行efuse操作指令;通用efuse控制器,其包括efuse读写控制电路和自定义寄存器,efuse读写控制电路用于解析待执行efuse操作指令以确定对应的命令类型,根据命令类型执行相应的操作,并根据操作中的不同执行状态生成并输出相应的第一控制信号和第二控制信号,自定义寄存器用于存储待烧写efuse数据,并接收第二控制信号并根据其更新efuse数据的存储信息;以及efuse模块,用于接收第一控制信号并根据其烧写待烧写的efuse数据,或向自定义寄存器存入已烧写efuse数据。通过本发明提升了芯片良率。
Description
技术领域
本发明涉及芯片设计领域,尤其涉及一种面向安全启动的片上efuse读写控制装置及方法。
背景技术
通常采用“蚀刻”或“硬编码”的方式将计算机逻辑设置到芯片上,在芯片制造完成后无法改变其计算机逻辑。efuse(电可编程熔丝)是一种一次性可编程存储器,其通过熔断熔丝的方式,实现在芯片上写入数据的功能。利用efuse技术能够使芯片上的电路在运行时发生变化。当芯片在运行时局部出现问题,例如芯片中存储器发生问题、芯片响应时间过长或者芯片耗电过多时,芯片能够通过熔断熔丝(blowing the efuse)来调整芯片的问题,保证其他功能正常运行,以实现芯片性能的调优。
相关技术中,efuse技术主要是单一的控制方法或电源设计的技术,相关技术中的efuse控制装置无法同时满足芯片的多种控制要求,如何提供一种efuse读写控制装置,以使得在完成芯片上电安全启动的基础上能够实现芯片的多方面的控制要求,是本领域技术人员亟待解决的技术问题之一。
发明内容
有鉴于此,本发明提出了一种面向安全启动的片上efuse读写控制装置及方法,解决了efuse读写控制装置控制方法单一及无法同时满足芯片的多种控制需求等问题,有效提升了芯片的良率。
基于上述目的,本发明实施例的一方面提供了一种面向安全启动的片上efuse读写控制装置,包括:
数据测试数据寄存器,用于根据测试协议配置输出待烧写efuse数据;
指令测试数据寄存器,用于根据测试协议配置输出待执行efuse操作指令;
通用efuse控制器,所述通用efuse控制器包括相互连接的efuse读写控制电路和自定义寄存器,所述efuse读写控制电路用于接收并解析待执行efuse操作指令以确定对应的命令类型,根据所述命令类型执行相应的烧写、读取或比对操作,并根据操作中的不同执行状态生成并输出相应的第一控制信号和第二控制信号,所述自定义寄存器用于接收并存储待烧写efuse数据,并接收所述第二控制信号及根据其更新所述待烧写efuse数据的存储信息;以及
与所述通用efuse控制器连接的efuse模块,用于接收所述第一控制信号并根据其烧写所述待烧写的efuse数据,或向所述自定义寄存器存入已烧写efuse数据。
作为本发明的进一步方案,所述efuse读写控制电路包括命令解析模块、状态控制模块、计数器、数据寄存器控制模块、多路选择模块、比对控制模块、读写脉冲宽度控制模块和控制信号生成模块;
所述命令解析模块用于根据接收到的待执行efuse操作指令解析出所述待执行efuse操作指令的命令类型并输出对应的命令,所述命令类型包括烧写、比对和读取;
所述状态控制模块与所述命令解析模块连接,用于接收所述命令解析模块输出的命令,基于所述命令对应的命令类型对所述efuse模块执行相应的烧写、读取或比对操作;
所述计数器与所述状态控制模块连接,用于响应于所述状态控制模块执行相应操作过程中efuse地址位增加,进行地址位的计数操作;
所述数据寄存器控制模块与所述状态控制模块和所述自定义寄存器连接,用于响应于所述状态控制模块执行相应操作过程中efuse地址位增加,输出第二控制信号至所述自定义寄存器;
所述多路选择模块与所述计数器连接,用于解析从所述efuse模块读取的每行已烧写efuse数据以确定各地址位中的已烧写efuse数据;
所述比对控制模块与所述多路选择模块和所述状态控制模块连接,用于响应于所述状态控制模块执行比对操作,在所述多路选择模块解析出的所有地址位中的已烧写efuse数据内筛选出若干目标已烧写efuse数据,将各所述目标已烧写efuse数据与自定义寄存器中相应地址位的待烧写efuse数据进行比对;
所述读写脉冲宽度控制模块与所述状态控制模块连接,用于记录所述efuse模块的读写访问时序,并提供跳转时间以控制所述状态控制模块中执行状态发生跳转;
所述控制信号生成模块与所述状态控制模块连接,用于根据所述状态控制模块的执行状态生成相应的第一控制信号。
作为本发明的进一步方案,所述状态控制模块配置用于:
若所述状态控制模块接收到所述命令解析模块输出的烧写命令,根据所述脉冲宽度控制单元中读写访问时序将所述待烧写efuse数据按地址位依次烧写入所述efuse模块以执行烧写操作;
若所述状态控制模块接收到所述命令解析模块输出的读取命令,根据所述脉冲宽度控制单元中读写访问时序按行读取所述efuse模块中已烧写efuse数据以执行读取操作;
若所述状态控制模块接收到所述命令解析模块输出的比对命令,根据所述脉冲宽度控制单元中读写访问时序按行读取所述efuse模块中已烧写efuse数据,将所述自定义寄存器中存储的待烧写efuse数据与efuse模块中已烧写efuse数据进行比对以执行比对操作。
作为本发明的进一步方案,所述比对控制模块配置用于:
响应于所述状态控制模块执行比对操作,基于解析出的所有地址位中已烧写efuse数据筛选出数据值为1的若干目标已烧写efuse数据;
将各所述目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;
若异或结果为1,所述目标已烧写efuse数据与所述目标待烧写efuse数据不一致,所述efuse模块烧写失败,发送烧写失败信号;
若异或结果为0,所述目标已烧写efuse数据与所述目标待烧写efuse数据一致,所述efuse模块烧写成功。
作为本发明的进一步方案,所述计数器配置用于:
响应于地址位的计数达到efuse地址位最大值,向所述状态控制模块发送相应操作的执行结束信号,以及向所述控制信号生成模块发送地址输出信号。
作为本发明的进一步方案,所述第一控制信号为针对efuse模块的读写控制信号,所述第一控制信号包括片选信号、烧写使能信号、选通信号、读访问信号、烧写电压控制信号和掉电使能信号。
作为本发明的进一步方案,所述第二控制信号为针对所述自定义寄存器的存储控制信号,所述第二控制信号包括数据移位周期信号和数据移位控制信号。
作为本发明的进一步方案,所述面向安全启动的片上efuse读写控制装置还包括与所述通用efuse控制器连接的系统控制单元;
所述系统控制单元包括efuse读操作控制模块和系统控制寄存器模块,所述efuse读操作控制模块用于向所述通用efuse控制器发送待执行efuse操作指令,所述系统控制寄存器模块用于存储所述efuse模块中已烧写的efuse数据。
本发明实施例的另一方面,还提供了一种面向安全启动的片上efuse读写控制方法,包括通以上所述的装置执行以下步骤:
响应于通用efuse控制器接收到待执行efuse操作指令,解析所述待执行efuse操作指令以获取对应命令;
若所述命令为烧写命令,获取自定义寄存器中存储的待烧写efuse数据,通过逐一增加地址位数的方式依次将各地址位对应的efuse数据和第一控制信号发送至efuse模块;
响应于所述efuse模块接收所述第一控制信号,按读写访问时序将各所述地址位对应的efuse数据依次进行烧写;
响应于地址位数增加至efuse地址位最大值,发送烧写结束信号,确定所述待执行efuse操作指令执行结束。
作为本发明的进一步方案,方法还包括:
若所述命令为读取命令,基于读写访问时序通过增加多个地址位数的方式按行读取所述efuse模块中已烧写efuse数据,并发送第二控制信号至自定义寄存器;
响应于所述自定义寄存器接收所述第二控制信号且所述第二控制信号中的数据移位周期信号无效,将各行所述已烧写efuse数据进行拼接并输出;
响应于地址位数增加至efuse地址位最大值,发送读取结束信号,确定所述待执行efuse操作指令执行结束。
作为本发明的进一步方案,方法还包括:
若所述命令为比对命令,基于读写访问时序通过增加多个地址位数的方式读取所述efuse模块中各行已烧写efuse数据,并发送第二控制信号至自定义寄存器;
响应于所述自定义寄存器接收所述第二控制信号且所述第二控制信号中的数据移位周期信号有效,解析各行已烧写efuse数据以确定各地址位对应的已烧写efuse数据的数据值,并在所有地址位对应的已烧写efuse数据中筛选出数据值为1的若干目标已烧写efuse数据;
获取自定义寄存器中存储的待烧写efuse数据,将各所述目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;
若异或结果为1,所述目标已烧写efuse数据与所述目标待烧写efuse数据不一致,所述efuse模块烧写失败,发送烧写失败信号;
若异或结果为0,所述目标已烧写efuse数据与所述目标待烧写efuse数据一致,所述efuse模块烧写成功。
本发明至少具有以下有益技术效果:
本发明提出了一种面向安全启动的片上efuse读写控制装置和方法,通过本装置提供的通用efuse控制器来解析不同efuse操作指令,该通用efuse控制器具备的efuse读写控制电路既能够满足efuse模块访问的读写时序要求来执行读写操作,又能够结合自定义寄存器实现待烧写efuse数据与已烧写数据的自动比对,实现在芯片流片前对芯片上电启动功能进行功能测试以提高芯片良率,以及利用efuse数据的备份完成芯片上电启动时的安全状态判断以保证SoC芯片的安全启动,避免造成人力物力的浪费,提高了工作效率,可以灵活的兼容多种业务场景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明提供的面向安全启动的片上efuse读写控制装置的一实施例的框图;
图2为本发明提供的面向安全启动的片上efuse读写控制装置的一实施例的示意图;
图3为本发明提供的面向安全启动的片上efuse读写控制装置中efuse读写控制电路的一实施例的示意图;
图4为本发明提供的面向安全启动的片上efuse读写控制方法中通用efuse控制器的一实施例的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
efuse广泛应用于数据保护、设备识别和授权管理等领域,如采用efuse来存储设备序列号、存储加密秘钥和设备ID等信息。利用efuse能够使得芯片中的电路运行效率提高上千倍,并且由于efuse的成本较低以及其保存的数据信息不会因为掉电而丢失的优势,因此很多芯片中都会采用efuse保存关键信息数据。
efuse的每个bit对应一根熔丝,一根熔丝能够存储一个二进制数——“0”或“1”。一般情况下,未被烧断的熔丝对应的存储低电平“0”,被熔断的熔丝称为被编程,对应的存储高电平“1”。efuse中的熔丝熔断后不可恢复,无法进行二次烧写操作,即一旦efuse写操作过程中出现写错误就不能擦除后再次重写。如果在CP(Chip Probing,晶圆测试)测试过程中或量产中出现问题,或者芯片生产制造过程出现坏点(即某些bit无法操作),则导致芯片的良率下降。
相关技术中,efuse技术主要是单一的控制方法或电源设计的技术等,并未发现一种既能够满足efuse存储器访问的读写时序要求,同时又能够完成芯片上电启动时通过读取efuse信息进行安全状态判断以完成SoC(System-on-Chip,系统级芯片)芯片的安全启动的efuse读写控制装置。
基于上述目的,本发明实施例的第一个方面,提出了一种面向安全启动的片上efuse读写控制装置,参见图1所示,该装置包括数据TDR(Test data register,测试数据寄存器)100、指令TDR200、通用efuse控制器300和efuse模块400。
其中,数据TDR100用于根据测试协议配置输出待烧写efuse数据;指令TDR200用于根据测试协议配置输出待执行efuse操作指令;通用efuse控制器300分别与数据TDR100和指令TDR200连接,通用efuse控制器300包括相互连接的efuse读写控制电路310和自定义寄存器320。efuse读写控制电路310用于解析待执行efuse操作指令以确定对应的命令类型,根据命令类型执行相应的烧写、读取或比对操作,并根据操作中的不同执行状态生成并输出相应的第一控制信号和第二控制信号;自定义寄存器320用于存储待烧写efuse数据,并接收第二控制信号及根据其更新待烧写efuse数据的存储信息。efuse模块400与通用efuse控制器连接,用于接收第一控制信号并根据其向所述自定义寄存器320存入已烧写efuse数据,或烧写待烧写的efuse数据。
测试协议配置包括JTAG(Joint Test Action Group,联合测试行动小组),JTAG主要用于电路的边界扫描测试和可编程芯片的在线系统编程,目前已经发展成为一种标准测试协议,主要用于芯片内部测试。
自定义寄存器为UDR(USER DEFINED REGISTERS,用户自定义寄存器),能够暂存接收到的待烧写efuse数据,并保证efuse数据稳定输入和输出。
efuse模块为efuse硬核IP(Intellectual Property,知识产权)模块,efuse硬核IP模块广泛用于芯片标识、存储器冗余、安全代码、配置设置和功能选择等方面。efuse硬核IP模块能够进行读操作(sensing)和写操作(program),但必须按照一定的读写访问时序进行,且其仅在规定的电压和温度条件下工作,否则可能会出现永久性损坏的情况。
通过本发明的方案,能够通过通用efuse控制器来解析不同efuse操作指令,该通用efuse控制器具备的efuse读写控制电路既能够满足efuse模块访问的读写时序要求来执行读写操作,又能够结合自定义寄存器实现待烧写efuse数据与已烧写数据的自动比对,实现在芯片流片前对芯片上电启动功能进行功能测试以提高芯片良率,以及利用efuse数据的备份完成芯片上电启动时的安全状态判断以保证SoC芯片的安全启动,避免造成人力物力的浪费,提高了工作效率,可以灵活的兼容多种业务场景。
作为本发明的进一步方案,本发明的装置还包括与通用efuse控制器连接的系统控制单元。如图2为面向安全启动的片上efuse读写控制装置的一实施例的示意图。其中,系统控制单元包括efuse读操作控制模块和系统控制寄存器模块,操作控制模块用于向通用efuse控制器发送待执行efuse操作指令,系统控制寄存器模块用于存储efuse模块中已烧写efuse数据。
图2中S0、S1和S2分别表示操作中的不同执行状态。一实例中,若执行的烧写操作时,S0可以表示接收读取命令状态,S1可以表示加载数据状态,S3可以表示加载完成状态。
在芯片上电过程中,系统控制单元中的efuse读操作控制模块可以产生efuse硬核IP所需的efuse操作指令,能够通过efuse读操作控制单元产生的efuse操作指令将efuse硬核IP中烧写的功能信息读出并加载至系统控制寄存器模块,以供固件程序查询。支持在系统控制单元定义一次写入(write once)寄存器,即每次执行状态复位后只能写入一次,或者说只有第一次写入的efuse数据是有效的。
可以通过配置JTAG来控制指令TDR触发待执行efuse操作指令,也可以通过芯片上电来使系统控制单元中efuse读操作控制单元产生待执行efuse操作指令。
通过本发明的方案,通过系统控制单元满足对内部的功能模块的访问和关闭,实现对efuse模块已烧写efuse数据的保护,使得用户无法访问efuse模块中的任何内容,在芯片回片后通过更新固件来重新使能访问。
作为本发明的进一步方案,第一控制信号为针对efuse模块的读写控制信号,第一控制信号包括片选信号(CSB)、烧写使能信号(PGENB)、选通信号(STROBE)、读访问信号(LOAD)、烧写电压控制信号(PS)和掉电使能信号(PD)。上述信号之间生成的间隔时间需要满足efuse模块的读写访问时序。
作为本发明的进一步方案,第二控制信号为针对自定义寄存器的存储控制信号,第二控制信号包括数据移位周期信号和数据移位控制信号。
当自定义寄存器接收到的数据移位周期信号和数据移位控制信号同时有效时,在自定义寄存器中通过从高位地址位向低位地址位做移位完成待烧写efuse数据的存储。当自定义寄存器接收到的数据移位周期信号无效,数据移位控制信号有效时,在自定义寄存器中通过拼接操作完成已烧录efuse数据的存储。
作为本发明的进一步方案,如图3为面向安全启动的片上efuse读写控制装置中efuse读写控制电路的一实施例的示意图。如图3所示,efuse读写控制电路包括命令解析模块、状态控制模块、计数器、数据寄存器控制模块、多路选择模块、比对控制模块、读写脉冲宽度控制模块和控制信号生成模块。
其中,命令解析模块用于根据接收到的待执行efuse操作指令解析出待执行efuse操作指令的命令类型并输出对应的命令,命令类型包括烧写、比对和读取。状态控制模块与命令解析模块连接,用于接收命令解析模块输出的命令,基于命令对应的命令类型对efuse模块执行相应的烧写、读取或比对操作。计数器与状态控制模块连接,用于响应于状态控制模块执行相应操作过程中efuse地址位增加,进行地址位的计数操作。数据寄存器控制模块与状态控制模块和自定义寄存器连接,用于响应于状态控制模块执行相应操作过程中efuse地址位增加,输出第二控制信号至自定义寄存器。多路选择模块与计数器连接,用于解析从efuse模块读取的每行已烧写efuse数据以确定各地址位中的已烧写efuse数据。比对控制模块与多路选择模块和状态控制模块连接,用于响应于状态控制模块执行比对操作,在多路选择模块解析出的所有地址位中的已烧写efuse数据筛选出若干目标已烧写efuse数据,将各目标已烧写efuse数据与自定义寄存器中相应地址位的待烧写efuse数据进行比对。读写脉冲宽度控制模块与状态控制模块连接,用于记录efuse模块的读写访问时序,并提供跳转时间以控制状态控制模块中执行状态发生跳转。控制信号生成模块与状态控制模块连接,用于根据状态控制模块的执行状态生成相应的第一控制信号。
命令解析模块和状态控制模块能够通过FSM(finite-state machine,有限状态机)来实现。命令解析模块解析得到对应类型的命令后,还需要通过状态控制模块输出执行结束信号来保证命令执行完成。
数据寄存器控制模块用来输出自定义寄存器的控制信号,当状态控制模块中的地址发生递增时,则输出数据移位控制信号。另外,当收到烧写和比对命令时,数据移位周期信号有效,直至命令执行完成,数据移位周期信号无效。当收到读取命令时,数据移位周期信号默认无效。
由于对efuse模块进行读取时是按行读取,根据efuse控制信号生成模块中的高位地址输出信号,该多路选择模块(Byte-to-Bit)用来解析出该行每bit对应的efuse数据结果。
根据efuse模块要求的读写访问时序,计算得出每个执行状态的跳转时间,设计一个符合读写时序要求的计数器,其中烧写维持时间支持JTAG配置进行修改。当该计数器满足状态控制模块的跳转时间,状态控制模块跳转到下一个执行状态。
根据状态控制模块中执行状态的跳转生成相应的第一控制信号,包括片选信号CSB、烧写使能信号PGENB、选通信号STROBE、读访问信号LOAD、烧写电压控制信号PS和掉电使能信号PD等。
作为本发明的进一步方案,状态控制模块配置用于:若状态控制模块接收到命令解析模块输出的烧写命令,根据脉冲宽度控制单元中读写访问时序将待烧写efuse数据按地址位依次烧写入efuse模块以执行烧写操作;若状态控制模块接收到命令解析模块输出的读取命令,根据脉冲宽度控制单元中读写访问时序按行读取efuse模块中已烧写efuse数据以执行读取操作;若状态控制模块接收到命令解析模块输出的比对命令,根据脉冲宽度控制单元中读写访问时序按行读取efuse模块中已烧写efuse数据,将自定义寄存器中存储的待烧写efuse数据与efuse模块中已烧写efuse数据进行比对以执行比对操作。
状态控制模块接收到命令解析模块输出的烧写命令,根据脉冲宽度控制单元的读写时序要求完成写操作,写操作是按bit进行操作。当烧写bit为0,则地址增加,同时不进行烧写,当烧写bit为1,则地址增加,同时进行烧写。直到计数器计到用户定义的efuse存放地址大小,efuse控制器完成烧写操作。
状态控制模块接收到命令解析模块输出的读取命令,根据脉冲宽度控制单元的读写时序要求完成读操作,efuse模块中数据读取方式为通过行地址按行读取efuse数据。如果efuse模块是32位的一次性可编程非易失性电熔丝存储单元,那么一次可读取32bit数据。直到计数器计到用户定义的efuse存放地址大小,efuse控制器完成读操作。
状态控制模块接收到命令解析模块输出的比对命令,通过该命令将UDR寄存器的内容与efuse存储空间的内容进行比较,该操作不会更改UDR寄存器的内容。此时状态控制模块内部和读操作对应的执行状态跳转是一样的,也是通过行地址按行读取efuse存储空间的内容,直到bit计数器计到用户定义的efuse存放地址大小,efuse控制器完成比对操作。
通过本发明的方案,能够满足efuse模块访问的读写时序要求来执行读写操作,又能够实现待烧写efuse数据与已烧写数据的自动比对,实现在芯片流片前对芯片上电启动功能进行功能测试以提高芯片良率,避免造成人力物力的浪费,提高了工作效率,可以灵活的兼容多种业务场景。
作为本发明的进一步方案,比对控制模块配置用于:响应于状态控制模块执行比对操作,基于解析出的所有地址位中已烧写efuse数据筛选出数据值为1的若干目标已烧写efuse数据;将各目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;若异或结果为1,目标已烧写efuse数据与目标待烧写efuse数据不一致,efuse模块烧写失败,发送烧写失败信号;若异或结果为0,目标已烧写efuse数据与目标待烧写efuse数据一致,efuse模块烧写成功。
其中,已烧写efuse数据筛选出数据值为1表示efuse模块中烧写bit为1,即该bit对应的熔丝称为被编程并存储高电平“1”。
根据状态控制模块接收到命令解析模块输出的比对命令,将多路选择模块解析出的每bit的efuse数据和UDR寄存器中每bit的efuse数据进行“异或”操作。当“异或”结果为1,则efuse存储的efuse数据和UDR寄存器中的efuse数据出现差异,表明efuse烧写操作不成功,此时会上报烧写失败信号(ERROR)信号提供给用户,用来排查烧写错误。
另外,efuse模块每次只能烧写一bit,但是可以进行多次不同bit的烧写,efuse读写控制电路会自动过滤将bit从1烧写为0的操作。针对多次不同bit的烧写操作,仅需要对efuse模块中烧写为1的bit位进行比对操作即可,即可保证所有bit位中烧写的efuse数据为正确比对结果。
通过两个烧写bit位做“或”运算,实现备份efuse数据。
通过本发明的方案,能够实现待烧写efuse数据与已烧写数据的自动比对,实现在芯片流片前对芯片上电启动功能进行功能测试以提高芯片良率,利用efuse数据的备份完成芯片上电启动时的安全状态判断以保证SoC芯片的安全启动,避免造成人力物力的浪费,提高了工作效率,可以灵活的兼容多种业务场景。
作为本发明的进一步方案,计数器配置用于:响应于地址位的计数达到efuse地址位最大值,向状态控制模块发送相应操作的执行结束信号,以及向控制信号生成模块发送地址输出信号。
计数器为Bit(binary digit,比特)计数器,efuse地址位最大值为用户定义的efuse存放地址大小。
当状态控制模块中的地址发生递增时,则Bit计数器需要进行计数操作。一实例中,计数器有以下功能:
1)判断efuse写操作的结束;
2)判断efuse的按行读取操作的结束;
3)提供efuse控制信号生成模块中的地址输出信号。
每次指令操作完成,通用efuse控制器模块会根据FSM的行为输出准备(READY)信号作为命令操作完成的标志,这样可以保证指令TDR输出待执行efuse指令前保证通用efuse控制器内部不存在还未完成的操作以及系统控制单元不存在状态跳转输出。
通过本发明的方案,能够通过通用efuse控制器来解析不同efuse操作指令,能够满足efuse模块访问的读写时序要求来执行读写操作。
本发明的第二方面,还提供了一种面向安全启动的片上efuse读写控制方法。图4为面向安全启动的片上efuse读写控制方法中通用efuse控制器的一实施例的流程示意图,如图4所示,该方法包括以下步骤:
响应于通用efuse控制器接收到待执行efuse操作指令,解析待执行efuse操作指令以获取对应命令;
若命令为烧写命令,获取自定义寄存器中存储的待烧写efuse数据,通过逐一增加地址位数的方式依次将各地址位对应的efuse数据和第一控制信号发送至efuse模块;
响应于efuse模块接收第一控制信号,按读写访问时序将各地址位对应的efuse数据依次进行烧写;
响应于地址位数增加至efuse地址位最大值,发送烧写结束信号,确定待执行efuse操作指令执行结束。
作为本发明的进一步方案,方法还包括:若命令为读取命令,基于读写访问时序通过增加多个地址位数的方式按行读取efuse模块中已烧写efuse数据,并发送第二控制信号至自定义寄存器;响应于自定义寄存器接收第二控制信号且第二控制信号中的数据移位周期信号无效,将各行已烧写efuse数据进行拼接并输出;响应于地址位数增加至efuse地址位最大值,发送读取结束信号,确定待执行efuse操作指令执行结束。
作为本发明的进一步方案,方法还包括:若命令为比对命令,基于读写访问时序通过增加多个地址位数的方式读取efuse模块中各行已烧写efuse数据,并发送第二控制信号至自定义寄存器;响应于自定义寄存器接收第二控制信号且第二控制信号中的数据移位周期信号有效,解析各行已烧写efuse数据以确定各地址位对应的已烧写efuse数据的数据值,并在所有地址位对应的已烧写efuse数据中筛选出数据值为1的若干目标已烧写efuse数据;获取自定义寄存器中存储的待烧写efuse数据,将各目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;若异或结果为1,目标已烧写efuse数据与目标待烧写efuse数据不一致,efuse模块烧写失败,发送烧写失败信号;若异或结果为0,目标已烧写efuse数据与目标待烧写efuse数据一致,efuse模块烧写成功。
通过本发明的方案,能够通过通用efuse控制器来解析不同efuse操作指令,能够满足efuse模块访问的读写时序要求来执行读写操作,又能够实现待烧写efuse数据与已烧写数据的自动比对,实现在芯片流片前对芯片上电启动功能进行功能测试以提高芯片良率,以及完成芯片上电启动时的安全状态判断以保证SoC芯片的安全启动,避免造成人力物力的浪费,提高了工作效率,可以灵活的兼容多种业务场景。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (11)
1.一种面向安全启动的片上efuse读写控制装置,其特征在于,包括:
数据测试数据寄存器,用于根据测试协议配置输出待烧写efuse数据;
指令测试数据寄存器,用于根据测试协议配置输出待执行efuse操作指令;
通用efuse控制器,所述通用efuse控制器包括相互连接的efuse读写控制电路和自定义寄存器,所述efuse读写控制电路用于接收并解析待执行efuse操作指令以确定对应的命令类型,根据所述命令类型执行相应的烧写、读取或比对操作,并根据操作中的不同执行状态生成并输出相应的第一控制信号和第二控制信号,所述自定义寄存器用于接收并存储所述待烧写efuse数据,并接收所述第二控制信号及根据其更新所述待烧写efuse数据的存储信息;以及
与所述通用efuse控制器连接的efuse模块,用于接收所述第一控制信号并根据其烧写所述待烧写的efuse数据,或向所述自定义寄存器存入已烧写efuse数据。
2.基于权利要求1所述的装置,其特征在于,所述efuse读写控制电路包括命令解析模块、状态控制模块、计数器、数据寄存器控制模块、多路选择模块、比对控制模块、读写脉冲宽度控制模块和控制信号生成模块;
所述命令解析模块用于根据接收到的待执行efuse操作指令解析出所述待执行efuse操作指令的命令类型并输出对应的命令,所述命令类型包括烧写、比对和读取;
所述状态控制模块与所述命令解析模块连接,用于接收所述命令解析模块输出的命令,基于所述命令对应的命令类型对所述efuse模块执行相应的烧写、读取或比对操作;
所述计数器与所述状态控制模块连接,用于响应于所述状态控制模块执行相应操作过程中efuse地址位增加,进行地址位的计数操作;
所述数据寄存器控制模块与所述状态控制模块和所述自定义寄存器连接,用于响应于所述状态控制模块执行相应操作过程中efuse地址位增加,输出第二控制信号至所述自定义寄存器;
所述多路选择模块与所述计数器连接,用于解析从所述efuse模块读取的每行已烧写efuse数据以确定各地址位中的已烧写efuse数据;
所述比对控制模块与所述多路选择模块和所述状态控制模块连接,用于响应于所述状态控制模块执行比对操作,在所述多路选择模块解析出的所有地址位中的已烧写efuse数据内筛选出若干目标已烧写efuse数据,将各所述目标已烧写efuse数据与自定义寄存器中相应地址位的待烧写efuse数据进行比对;
所述读写脉冲宽度控制模块与所述状态控制模块连接,用于记录所述efuse模块的读写访问时序,并提供跳转时间以控制所述状态控制模块中执行状态发生跳转;
所述控制信号生成模块与所述状态控制模块连接,用于根据所述状态控制模块的执行状态生成相应的第一控制信号。
3.基于权利要求2所述的装置,其特征在于,所述状态控制模块配置用于:
若所述状态控制模块接收到所述命令解析模块输出的烧写命令,根据所述脉冲宽度控制单元中读写访问时序将所述待烧写efuse数据按地址位依次烧写入所述efuse模块以执行烧写操作;
若所述状态控制模块接收到所述命令解析模块输出的读取命令,根据所述脉冲宽度控制单元中读写访问时序按行读取所述efuse模块中已烧写efuse数据以执行读取操作;
若所述状态控制模块接收到所述命令解析模块输出的比对命令,根据所述脉冲宽度控制单元中读写访问时序按行读取所述efuse模块中已烧写efuse数据,将所述自定义寄存器中存储的待烧写efuse数据与efuse模块中已烧写efuse数据进行比对以执行比对操作。
4.基于权利要求2所述的装置,其特征在于,所述比对控制模块配置用于:
响应于所述状态控制模块执行比对操作,基于解析出的所有地址位中已烧写efuse数据筛选出数据值为1的若干目标已烧写efuse数据;
将各所述目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;
若异或结果为1,所述目标已烧写efuse数据与所述目标待烧写efuse数据不一致,确定所述efuse模块烧写失败,发送烧写失败信号;
若异或结果为0,所述目标已烧写efuse数据与所述目标待烧写efuse数据一致,确定所述efuse模块烧写成功。
5.基于权利要求2所述的装置,其特征在于,所述计数器配置用于:
响应于地址位的计数达到efuse地址位最大值,向所述状态控制模块发送相应操作的执行结束信号,以及向所述控制信号生成模块发送地址输出信号。
6.基于权利要求1所述的装置,其特征在于,所述第一控制信号为针对efuse模块的读写控制信号,所述第一控制信号包括片选信号、烧写使能信号、选通信号、读访问信号、烧写电压控制信号和掉电使能信号。
7.基于权利要求1所述的装置,其特征在于,所述第二控制信号为针对所述自定义寄存器的存储控制信号,所述第二控制信号包括数据移位周期信号和数据移位控制信号。
8.基于权利要求1所述的装置,其特征在于,还包括与所述通用efuse控制器连接的系统控制单元;
所述系统控制单元包括efuse读操作控制模块和系统控制寄存器模块,所述efuse读操作控制模块用于向所述通用efuse控制器发送待执行efuse操作指令,所述系统控制寄存器模块用于存储所述efuse模块中已烧写的efuse数据。
9.一种面向安全启动的片上efuse读写控制方法,其特征在于,包括通过权利要求1至8任一项所述的装置执行以下步骤:
响应于通用efuse控制器接收到待执行efuse操作指令,解析所述待执行efuse操作指令以获取对应命令;
若所述命令为烧写命令,获取自定义寄存器中存储的待烧写efuse数据,通过逐一增加地址位数的方式依次将各地址位对应的efuse数据和第一控制信号发送至efuse模块;
响应于所述efuse模块接收所述第一控制信号,按读写访问时序将各所述地址位对应的efuse数据依次进行烧写;
响应于地址位数增加至efuse地址位最大值,发送烧写结束信号,确定所述待执行efuse操作指令执行结束。
10.基于权利要求9所述的方法,其特征在于,方法还包括:
若所述命令为读取命令,基于读写访问时序通过增加多个地址位数的方式按行读取所述efuse模块中已烧写efuse数据,并发送第二控制信号至自定义寄存器;
响应于所述自定义寄存器接收所述第二控制信号且所述第二控制信号中的数据移位周期信号无效,将各行所述已烧写efuse数据进行拼接并输出;
响应于地址位数增加至efuse地址位最大值,发送读取结束信号,确定所述待执行efuse操作指令执行结束。
11.基于权利要求9所述的方法,其特征在于,方法还包括:
若所述命令为比对命令,基于读写访问时序通过增加多个地址位数的方式读取所述efuse模块中各行已烧写efuse数据,并发送第二控制信号至自定义寄存器;
响应于所述自定义寄存器接收所述第二控制信号且所述第二控制信号中的数据移位周期信号有效,解析各行已烧写efuse数据以确定各地址位对应的已烧写efuse数据的数据值,并在所有地址位对应的已烧写efuse数据中筛选出数据值为1的若干目标已烧写efuse数据;
获取自定义寄存器中存储的待烧写efuse数据,将各所述目标已烧写efuse数据与自定义寄存器中存储的对应目标已烧写efuse数据地址位的目标待烧写efuse数据进行异或操作,并输出异或结果以判断efuse模块是否烧写成功;
若异或结果为1,所述目标已烧写efuse数据与所述目标待烧写efuse数据不一致,所述efuse模块烧写失败,发送烧写失败信号;
若异或结果为0,所述目标已烧写efuse数据与所述目标待烧写efuse数据一致,所述efuse模块烧写成功。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311193031.9A CN117219146A (zh) | 2023-09-15 | 2023-09-15 | 一种面向安全启动的片上efuse读写控制装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311193031.9A CN117219146A (zh) | 2023-09-15 | 2023-09-15 | 一种面向安全启动的片上efuse读写控制装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117219146A true CN117219146A (zh) | 2023-12-12 |
Family
ID=89038453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311193031.9A Pending CN117219146A (zh) | 2023-09-15 | 2023-09-15 | 一种面向安全启动的片上efuse读写控制装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117219146A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667601A (zh) * | 2024-01-30 | 2024-03-08 | 深圳鲲云信息科技有限公司 | 可编程存储器烧录监控方法、电子设备、系统以及监控器 |
CN117785756A (zh) * | 2024-02-23 | 2024-03-29 | 西安简矽技术有限公司 | 存储器控制系统、方法、芯片及计算机可读存储介质 |
CN117785756B (zh) * | 2024-02-23 | 2024-05-28 | 西安简矽技术有限公司 | 存储器控制系统、方法、芯片及计算机可读存储介质 |
-
2023
- 2023-09-15 CN CN202311193031.9A patent/CN117219146A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117667601A (zh) * | 2024-01-30 | 2024-03-08 | 深圳鲲云信息科技有限公司 | 可编程存储器烧录监控方法、电子设备、系统以及监控器 |
CN117785756A (zh) * | 2024-02-23 | 2024-03-29 | 西安简矽技术有限公司 | 存储器控制系统、方法、芯片及计算机可读存储介质 |
CN117785756B (zh) * | 2024-02-23 | 2024-05-28 | 西安简矽技术有限公司 | 存储器控制系统、方法、芯片及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108899061B (zh) | 一种电源常开芯片中的存储器内建自测试方法和系统 | |
US6922649B2 (en) | Multiple on-chip test runs and repairs for memories | |
CN112331253B (zh) | 一种芯片的测试方法、终端和存储介质 | |
CN102568580B (zh) | 带芯片测试功能的烧录机及其烧录方法 | |
US7646655B2 (en) | Memory device with fail search and redundancy | |
US6324096B1 (en) | Interface circuit and method for writing data into a non-volatile memory, and scan register | |
CN117219146A (zh) | 一种面向安全启动的片上efuse读写控制装置及方法 | |
CN103021469A (zh) | 一种存储器电路的通用单粒子效应检测方法 | |
US20080016415A1 (en) | Evaluation system and method | |
CN105304144A (zh) | 存储器错误检测方法及装置 | |
US9778880B2 (en) | Memory control circuit unit, data transmitting method and memory storage device | |
CN110554298A (zh) | 芯片和芯片测试方法 | |
US20120124441A1 (en) | Embedded testing module and testing method thereof | |
CN105469832A (zh) | 集成电路和用于集成电路的存储器自我测试方法 | |
CN114333962A (zh) | 闪存芯片的测试方法、装置、系统、电子设备及存储介质 | |
CN114327516A (zh) | 一种修改芯片系统存储器进行烧录的电路及方法 | |
CN113127283B (zh) | 芯片修复系统、方法、装置、计算机设备和存储介质 | |
US6711705B1 (en) | Method of analyzing a relief of failure cell in a memory and memory testing apparatus having a failure relief analyzer using the method | |
US6917220B2 (en) | Semiconductor device and a method for checking state transition thereof | |
JP4738405B2 (ja) | 記憶装置の試験方法、および記憶装置 | |
JP4122824B2 (ja) | 不揮発性記憶装置のデ−タ転送制御回路,不揮発性記憶装置の書き換え回路,及び,通信制御装置 | |
TWI801954B (zh) | 晶片及其設計方法與故障分析方法 | |
CN111857866A (zh) | 一种多动态核的加载方法、装置和计算机可读存储介质 | |
CN100364010C (zh) | 一种eeprom在板编程方法 | |
CN113590153B (zh) | 一种cpld的固件升级方法、系统、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |