Method for realizing multiple programming function of chip by using efuse

By enabling multiple programming of the chip through the efuse register and array, the problem of the lack of MTPNV in SBC chips is solved, process verification is simplified, and automatic data acquisition for multiple programming is realized.

CN121979539APending Publication Date: 2026-05-05UNISEMI POWER INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
UNISEMI POWER INC
Filing Date
2026-01-24
Publication Date
2026-05-05

AI Technical Summary

Technical Problem

In the prior art, the system base chip (SBC) lacks the function of multiple programmable non-volatile register (MTPNV), resulting in additional process verification cycles and IP licensing requirements, and the one-time programmable OTP circuit cannot realize the MTP function.

Method used

Using efuse registers and efuse arrays, the first storage area records the number of programming attempts, the second storage area stores the data to be programmed, and the CRC checksum is calculated and stored in the third storage area, enabling multiple programming attempts.

Benefits of technology

It enables multiple programming of the chip, simplifies the process verification cycle, avoids additional IP licensing requirements, and allows users to automatically obtain the data to be programmed after the chip is powered on and off.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121979539A_ABST
    Figure CN121979539A_ABST
Patent Text Reader

Abstract

The invention provides a method for realizing a multi-time programming function of a chip by using efuse, which comprises the following steps of: reading a current programming frequency written into a first storage area, and determining a to-be-programmed frequency; reading the to-be-burnt data written into the second storage area, calculating a first check code through the to-be-burnt data written into the second storage area, and writing the first check code into the third storage area; burning the number of to-be-burnt times of the first storage area, the to-be-burnt data in the second storage area and the first check code in the third storage area into the efuse array at a time; when the chip is powered off and powered on, data to be burnt in a nonvolatile register are read, and the data to be burnt are obtained through the data to be burnt with the number of times to be burnt in the second storage area in the first storage area. Therefore, the multi-time programming function of the chip is realized by using the efuse.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of this application belong to the field of chip programming technology, and in particular relate to a method for implementing multiple programming functions of a chip using efuse. Background Technology

[0002] The Multiple Time Programmable Non-Volatile (MTPNV) register in the System Base Chip (SBC) is primarily used to store the chip's default configuration information and support specific mode settings. Its specific functions are as follows: Store default configuration: Its address range is 0x73-0x74, which can be used to store the device's default configuration parameters, such as the Forced Normal Mode Control bit FNMC (Fail-Safe Normal Mode Control). These parameters are called when the chip starts up to determine the chip's initial operating state.

[0003] Support for mode setting and switching: By programming the registers in MTPNV, the chip's operating mode can be configured, such as switching from forced normal mode to software development mode. In forced normal mode, some chip registers are inaccessible, while writing specific MTPNV register values ​​enables software development mode, allowing users to access and read / write any register on the chip, facilitating more comprehensive debugging and functional configuration by developers.

[0004] Assisted Factory Reset: MTPNV also plays a crucial role in restoring the SBC chip to its factory default settings. During the factory reset, the RSTN pin must be set to low, CAN_H connected to the input voltage VBAT, and CAN_L grounded. This must be done while maintaining at least the battery power-on time of MTPNV. This MTPNV time parameter is set by the relevant time settings for MTPNV. Completing this operation will reset the chip to its initial forced normal mode.

[0005] Typical BCD processes do not support multiple-time programmable MTPs; developing a standalone MTP requires additional process verification cycles or IP licensing. In contrast, one-time programmable (OTP) circuits are very common and have stable processes. Currently, there is no technical solution to implement MTP functionality via OTP. Summary of the Invention

[0006] To address or mitigate the technical problems in existing technologies, this application primarily focuses on how to implement MTP functionality using efuse. This application provides a method for implementing multiple programming (MPP) functionality for a chip using efuse. The efuse includes an efuse register and an efuse array. The efuse register includes a first storage region, a second storage region, and a third storage region. The method includes: Read the current number of burning attempts written to the first storage area. The first storage area uses a thermometer code to record the number of burning attempts. Add 1 to the current number of burning attempts and write it to the first storage area to obtain the number of burning attempts to be obtained. Read the data to be programmed written to the second storage area, calculate the first check code by writing the data to be programmed to the second storage area, and write the first check code into the third storage area; The number of times to be burned in the first storage area, the data to be burned in the second storage area, and the first check code in the third storage area are burned into the efuse array at once; When the chip is powered off and powered on, the data to be programmed is read from the non-volatile register. The data to be programmed is obtained by the data to be programmed in the second storage area that has been programmed a number of times in the first storage area.

[0007] As a preferred embodiment of this application, after reading the data to be programmed from the non-volatile register, the process includes: The data to be programmed is verified according to the first verification code. If the verification passes, the data to be programmed is read from the non-volatile register.

[0008] As a preferred embodiment of this application, reading the current number of burn-ins written to the first storage area includes the following steps: Read the initial number of burns stored in the first storage area; The data burned during the initial programming count is read from the second storage area after determining the initial programming count. The data burned during the initial burning count is verified. If the verification passes, the initial burning count is determined to be the current burning count.

[0009] As a preferred embodiment of this application, the verification of the data burned in the initial burning cycle includes: The second checksum in the third storage area determines the initial number of burning attempts; The accuracy of the initial programming count is determined based on the second verification code. If correct, the verification passes.

[0010] As a preferred embodiment of this application, before reading the current number of burns written to the first storage area, the process includes: Write the data to be programmed into a non-volatile register; Read the data to be programmed from the non-volatile register and write the data to be programmed into the second storage area.

[0011] Compared with existing technologies, this application provides a method for implementing multiple programming functions of a chip using efuse. The method involves reading the current programming count written to the first storage area (which uses a thermometer to record the number of programming attempts), adding 1 to the current count, and writing the result back to the first storage area to obtain the number of attempts to be programmed. Next, the method reads the data to be programmed written to the second storage area, calculates a first checksum based on this data, and writes the checksum to the third storage area. The method then programs the number of attempts to be programmed in the first storage area, the data to be programmed in the second storage area, and the first checksum in the third storage area into the efuse array all at once. When the chip powers off and on again, the method reads the data to be programmed from the non-volatile register. This data is obtained by comparing the number of attempts to be programmed in the first storage area with the data in the second storage area. Therefore, for the user, the process involves reading the data to be programmed from the non-volatile register after the chip powers off and on again, but the user does not know the specific number of programming attempts inside the chip. This application utilizes efuse to implement multiple programming functions of the chip. Attached Figure Description

[0012] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. Some specific embodiments of this application will be described in detail below with reference to the accompanying drawings in an exemplary and non-limiting manner. The same reference numerals in the drawings designate the same or similar parts or components. Those skilled in the art should understand that these drawings are not necessarily drawn to scale. In the drawings: Figure 1 This is a flowchart of a method for implementing multiple programming functions of a chip using efuse, as provided in an embodiment of this application. Detailed Implementation

[0013] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are merely some, not all, of the embodiments of the present application. All other embodiments obtained by those skilled in the art based on the embodiments of the present application without creative effort should fall within the scope of protection of the present application.

[0014] like Figure 1 As shown in the figure, this application provides a method for implementing multiple programming functionality of a chip using efuse. The efuse register includes a first storage area, a second storage area, and a third storage area. The method includes: Step S101: Read the current number of burning attempts written to the first storage area. The first storage area uses a thermometer code to record the number of burning attempts. Add 1 to the current number of burning attempts and write it to the first storage area to obtain the number of burning attempts to be obtained. It should be noted that if it is necessary to determine the number of times to be burned, first read the current number of times to be burned in the first storage area, such as: if it is necessary to determine which number of times to burn; then automatically add 1 to the current number of times to be burned to obtain the number of times to be burned. For example, if the current number of times to be burned in the first storage area is the 3rd time, then add 1 to the 3rd time of burning to obtain the number of times to be burned as the 4th time, and write the number of times to be burned into the first storage area.

[0015] In this embodiment, the number of programming cycles is recorded using a thermometer code (1->8'b0000_0001, 2->8'b0000_0011, 3->8'b0000_0111, 4->8'b0000_1111, 5->8'b0001_1111, 6->8'b0011_1111, 7->8'b0111_1111, 8->8'b1111_1111). The number of 1s in the thermometer code indicates the programming cycle number.

[0016] Specifically, the current number of burns in the first storage area includes: Read the initial number of burns stored in the first storage area; The data burned during the initial programming count is read from the second storage area after determining the initial programming count. The data burned during the initial burning count is verified. If the verification passes, the initial burning count is determined to be the current burning count.

[0017] It should be noted that this step mainly involves confirming the current number of burns. The process of confirming the current number of burns is to first read the preliminary number of burns in the first storage area, and then read the burn data corresponding to the preliminary number of burns in the second storage area according to the preliminary number of burns. The burn data corresponding to the preliminary number of burns is verified by the first verification code. If the verification passes, it means that the preliminary number of burns is recorded correctly.

[0018] The verification of the initial programming data includes: The second checksum in the third storage area determines the initial number of burning attempts; The accuracy of the initial programming count is determined based on the second verification code. If correct, the verification passes.

[0019] It should be noted that the initial burning data needs to be verified to avoid reading incorrect burning data, and each burning data should be set to correspond one-to-one with the corresponding verification code.

[0020] Step S102: Read the data to be programmed written into the second storage area, calculate the first verification code by writing the data to be programmed into the second storage area, and write the first verification code into the third storage area; It should be noted that the data to be programmed in the second storage area is obtained from a non-volatile register, and the data to be programmed is written by the user in advance. The first check code is calculated in the non-volatile register based on the data to be programmed. The first check code is a Cyclic Redundancy Check (CRC) check code. CRC is a widely used error detection technology, mainly used in data communication and storage to detect errors that may occur during data transmission or storage.

[0021] Step S103: The number of times to be burned in the first storage area, the data to be burned in the second storage area, and the first check code in the third storage area are burned into the efuse array at once; It should be noted that, based on the above steps, the current number of burning attempts and the first checksum of the dataset to be burned are obtained. Then, the above data is burned into the efuse array in one go, and each efuse array corresponds to an efuse register.

[0022] Step S104: When the chip is powered off and powered on, the data to be programmed in the non-volatile register is read. The data to be programmed is obtained by the data to be programmed in the second storage area that has been programmed a number of times in the first storage area.

[0023] It should be noted that when the chip is powered off and then powered on, the user needs to read the data to be programmed from the non-volatile register and determine the number of times to be programmed from the first storage area based on the data to be programmed.

[0024] After reading the data to be programmed from the non-volatile register, the process includes: The data to be programmed is verified according to the first verification code. If the verification passes, the data to be programmed is read from the non-volatile register.

[0025] It should be noted that, in order to avoid errors in the data to be programmed read from the non-volatile register after the chip is powered off and powered on, the data to be programmed needs to be verified. Specifically, the verification is performed based on the first verification code. If the verification passes, the data to be programmed in the non-volatile register is read.

[0026] In this embodiment, the repeated programming of the non-volatile register MTPNV is implemented by efuse. Multiple programming corresponds to multiple sets of efuse, each efuse including an efuse array and an efuse register. The number of programming sessions needs to be recorded in the first storage area of ​​the efuse register. A thermometer code is used to record the number of programming sessions. Only 8 bits of data to be programmed need to be programmed, and each programming session occupies only one byte. The programming data is mapped to the corresponding second storage area. CRC verification of the programming data is also required. The CRC verification code corresponding to the programming data is stored in the third storage area. Therefore, in actual use, as long as the chip is powered off and powered on, the user only needs to read the programming data written in the non-volatile register of the chip. This programming data is obtained from the programming data in the second storage area corresponding to the number of programming sessions in the first storage area. Therefore, multiple programming and storage of programming data written to the non-volatile register can be performed inside the chip. As long as the chip is powered off and powered on, the programming data can be obtained.

[0027] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features therein. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of this application.

Claims

1. A method for implementing multiple programming functionality of a chip using efuse, characterized in that, The efuse includes an efuse register and an efuse array, the efuse register including a first storage area, a second storage area, and a third storage area, and the method includes: Read the current number of burning attempts written to the first storage area. The first storage area uses a thermometer code to record the number of burning attempts. Add 1 to the current number of burning attempts and write it to the first storage area to obtain the number of burning attempts to be obtained. Read the data to be programmed written to the second storage area, calculate the first check code by writing the data to be programmed to the second storage area, and write the first check code into the third storage area; The number of times to be burned in the first storage area, the data to be burned in the second storage area, and the first check code in the third storage area are burned into the efuse array at once; When the chip is powered off and powered on, the data to be programmed is read from the non-volatile register. The data to be programmed is obtained by the data to be programmed in the second storage area that has been programmed a number of times in the first storage area.

2. The method for implementing multiple programming functions using efuse as described in claim 1, characterized in that, After reading the data to be programmed from the non-volatile register, the process includes: The data to be programmed is verified according to the first verification code. If the verification passes, the data to be programmed is read from the non-volatile register.

3. The method for implementing multiple programming functions using efuse as described in claim 1, characterized in that, The reading of the current number of times the code is written to the first storage area includes: Read the initial number of burns stored in the first storage area; The initial programming count is determined, and the programming data for the initial programming count is read from the second storage area. The initial number of burning attempts is verified. If the verification passes, the initial number of burning attempts is determined to be the current number of burning attempts.

4. The method for implementing multiple programming functions using efuse as described in claim 3, characterized in that, The verification of the initial programming data includes: The second checksum in the third storage area determines the initial number of burning attempts; The accuracy of the initial programming count is determined based on the second verification code. If correct, the verification passes.

5. A method for implementing multiple programming functions using efuse as described in claim 1, characterized in that, Before reading and writing the current number of burns to the first storage area, the process includes: Write the data to be programmed into a non-volatile register; Read the data to be programmed from the non-volatile register and write the data to be programmed into the second storage area.