A burning method, device, equipment, medium and product
By determining the data blocks and parsing the burning status based on the Fuse chart before ATE testing, the problems of cumbersome and error-prone Fuse burning methods are solved, and an efficient and accurate burning process is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CIX TECH (WUHAN) CO LTD
- Filing Date
- 2026-02-06
- Publication Date
- 2026-05-19
AI Technical Summary
The existing Fuse programming method is cumbersome and error-prone when processing large amounts of data. Data can be easily confused during multiple test processes, leading to production accidents.
Before ATE testing, the first data block is determined based on the elements in the Fuse diagram and the functions that operate on those elements. The Fuse diagram is then parsed to determine the data writing status. If the status is empty, the second data block is read and the writing is performed, simplifying code maintenance and inspection.
It reduces the probability of errors during Fuse programming, simplifies the code maintenance and update process, and improves the efficiency and accuracy of multiple tests.
Smart Images

Figure CN121680877B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to the field of computer technology, and in particular to a programming method, apparatus, device, medium and product. Background Technology
[0002] In the production testing of Automatic Test Equipment (ATE), each silicon die needs to be programmed with a fuse. Currently, the fuse programming method is as follows:
[0003] At the end of the ATE test program, execute the Fuse operation. First, read the values in the blocks to be programmed from the Fuse map. If the value is not 0, it is assumed that the programming is complete. If the value is 0, execute the programming operation, process the data to be programmed into the data to be programmed for each data block according to the position specified in the Fuse map, and then program each data block into the Fuse.
[0004] The above Fuse programming method has the following problems:
[0005] When a large amount of data needs to be written into the Fuse, the code for processing the Fuse data becomes extremely cumbersome, which in turn greatly increases the probability of errors during Fuse writing.
[0006] In cases involving multiple test processes, the burning data for each test process is processed together. This can easily lead to confusion of the burning data when maintaining the code, potentially causing a major production accident. Summary of the Invention
[0007] This invention provides a programming method, apparatus, device, medium, and product to solve at least one of the above-mentioned problems.
[0008] According to one aspect of the present invention, a programming method is provided, comprising:
[0009] Before performing the ATE test, a first data block is read. The first data block is determined based on the elements in the first Fuse chart and the functions of the operation elements. The elements in the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written.
[0010] The first data block is parsed based on the function that operates on the elements to obtain the first Fuse chart;
[0011] Determine the data burning status based on the first Fuse chart;
[0012] If the data writing status is in the first state, then read the second data block and perform Fuse writing based on the second data block.
[0013] According to another aspect of the present invention, a programming apparatus is provided, the programming apparatus comprising:
[0014] The first reading module is used to read a first data block before performing ATE (Automatic Test Equipment) testing. The first data block is determined based on the elements and functions of the operation elements in the first Fuse chart. The elements of the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written.
[0015] The first parsing module is used to parse the first data block based on the function of the operation element to obtain the first Fuse chart;
[0016] The determination module is used to determine the status of the burned data based on the first Fuse chart.
[0017] The programming module is used to read the second data block and perform Fuse programming based on the second data block if the programming data status is the first status.
[0018] According to another aspect of the present invention, an electronic device is provided, the electronic device comprising:
[0019] At least one processor; and
[0020] A memory communicatively connected to the at least one processor; wherein,
[0021] The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the programming method described in any embodiment of the present invention.
[0022] According to another aspect of the present invention, a computer-readable storage medium is provided, the computer-readable storage medium storing computer instructions for causing a processor to execute and implement the programming method described in any embodiment of the present invention.
[0023] According to another aspect of the present invention, a computer program product is provided, which, when executed by a processor, implements the burning method as described in any of the embodiments of the present invention.
[0024] This invention, in its embodiments, pre-determines a first data block based on elements in a first Fuse chart and functions of operational elements. Elements in the first Fuse chart include: row identifier, data type to be programmed, number of bits to be programmed, address to be programmed, test process identifier, data range to be programmed, and data to be programmed. Before executing ATE (Automatic Test Equipment) testing, the first data block is read. The first data block is parsed based on the functions of operational elements to obtain the first Fuse chart. The programming data state is determined according to the first Fuse chart. If the programming data state is the first state, a second data block is read, and Fuse programming is performed based on the second data block. Since the first data block is determined based on elements in the first Fuse chart and functions of operational elements, no additional data processing code is needed regardless of the amount of programming data; only the Fuse chart needs to be maintained. When maintaining and updating programming data is required, only the Fuse chart needs to be modified, without adding data processing code, greatly reducing the probability of errors. Furthermore, since the elements in the first Fuse chart include test process identifiers, multiple sets of code do not need to be maintained when multiple tests are required, greatly simplifying development, maintenance, and update efficiency. In addition, since the elements in the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written, the data to be written can be checked directly based on the first Fuse chart without having to go back to the source code.
[0025] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of the present invention, nor is it intended to limit the scope of the invention. Other features of the invention will become readily apparent from the following description. Attached Figure Description
[0026] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0027] Figure 1 This is a flowchart of a programming method according to an embodiment of the present invention;
[0028] Figure 2 This is a flowchart of another programming method in an embodiment of the present invention;
[0029] Figure 3 This is a schematic diagram of the structure of a programming device according to an embodiment of the present invention;
[0030] Figure 4This is a schematic diagram of the structure of an electronic device according to an embodiment of the present invention. Detailed Implementation
[0031] To enable those skilled in the art to better understand the present invention, the technical solutions of the present invention will be clearly and completely described below with reference to the accompanying drawings of the embodiments of the present invention. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of the present invention.
[0032] It should be noted that the terms "first," "second," etc., in the specification, claims, and accompanying drawings of this invention are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of the invention described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0033] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0034] Example 1
[0035] Figure 1 This is a flowchart illustrating a programming method provided in an embodiment of the present invention. This embodiment is applicable to Fuse programming. The method can be executed by the programming device in this embodiment, which can be implemented in software and / or hardware, such as... Figure 1 As shown, the method specifically includes the following steps:
[0036] S110, before performing the ATE test, reads the first data block.
[0037] The first data block is determined based on the elements and functions of the operation elements in the first Fuse chart. The elements of the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written.
[0038] In this embodiment, the first Fuse chart is shown in Table 1:
[0039] Table 1
[0040]
[0041] It should be noted that in Table 1, ItemName is the row identifier, Type is the data type to be written, and the data types to be written include: fixed value type (Fix type) and non-fixed value type. Non-fixed value type includes: Trim type, Key type, Harvest type and Repair type. The Trim type is the trimming data type, the Key type is the key type (different customer products have different data), the Harvest type is the chip IP anomaly type (based on ATE test results, the marker information corresponding to the faulty chip IP (e.g., the CPU core of the chip is faulty, but the CPU can still be used normally)), and the Repair type is the data that needs to be repaired in the chip's storage area. Len is the number of bits to be written, Start Row is the starting address of the data to be written, End Row is the ending address of the data to be written, Start Bit is the starting byte of the data to be written, End Bit is the ending byte of the data to be written, PGM Flow is the test process identifier (FT3, FT2, CP1, CP2 and CP3 are different test processes), Llimit is the minimum value of the data to be written, Ulimit is the maximum value of the data to be written, and Value is the data to be written.
[0042] In this embodiment, if the data type to be programmed is a fixed value type, the programming data in the Fuse chart will be used as the final programming data; if the data type to be programmed is not a fixed value type, the programming data will be determined based on the ATE test results.
[0043] In this embodiment, the function that operates on the elements can be a predefined class. The function that operates on the elements is used to assign the data to be written to the corresponding variable in the class, and then process the elements in the first Fuse chart according to the class to obtain the first data block.
[0044] In this embodiment, the first data block refers to the data stored in the data block, and the data stored in the physical space of the data block corresponds to the elements in the first Fuse chart.
[0045] In this embodiment, the method for determining the first data block based on the elements in the first Fuse chart and the functions operating on those elements can be as follows: process the elements in the first Fuse chart according to the functions operating on those elements to obtain the first data block. In a specific example, since each row in the data block stores 32 bytes, the programming data corresponding to Item1-Item20 in Table 1 is stored in the first row of the data block, the programming data corresponding to Item21 is stored in the second row of the data block, and the programming data corresponding to Item22 is stored in the third row of the data block.
[0046] In this embodiment, at the start of the ATE program, the first data block, which is the data stored in the data block, is read.
[0047] S120, the first data block is parsed based on the function of the operation element to obtain the first Fuse chart.
[0048] In this embodiment, since the first data block is determined based on the elements and functions of the operation elements in the first Fuse chart, the first data block can be parsed based on the functions of the operation elements to obtain the first Fuse chart.
[0049] In this embodiment, the method of parsing the first data block based on the function of the operation element to obtain the first Fuse chart can be as follows: the first data block is parsed based on the function of the operation element to obtain the data of each row in the first Fuse chart, and the first Fuse chart is generated based on the data of each row.
[0050] S130, determine the data burning status based on the first Fuse chart.
[0051] In this embodiment, the data writing state includes a first state and a second state. The first state is that the data to be written is empty, and the second state is that the data to be written is not empty. It should be noted that if the data to be written is empty, it means that the writing has been completed and no further writing is required. If the data to be written is not empty, it means that no writing has been performed and a writing operation is required.
[0052] In this embodiment, after determining the data burning status based on the first Fuse chart, other non-Fuse burning test items can be executed in advance.
[0053] S140, if the data writing status is the first status, then read the second data block and perform Fuse writing according to the second data block.
[0054] In this embodiment, the first data block is the data obtained from the first reading of the data block, and the second data block is the data obtained from the second reading of the data block.
[0055] In this embodiment, before entering the Fuse programming stage, the data block needs to be read again, and the Fuse programming is performed based on the read second data block.
[0056] Optional, also includes:
[0057] After executing other non-Fuse programming tests, if the programming data status is in the second state, then read the third data block.
[0058] In this embodiment, after performing other non-Fuse programming tests, if the programming data status is in the second state, the data block is read again to obtain the third data block.
[0059] In this embodiment, the third data block, like the first and second data blocks, is data obtained by reading data blocks, but the timing of reading the data blocks for the first, second, and third data blocks is different.
[0060] The third data block is parsed based on the function that operates on the elements, and the corresponding Fuse chart is obtained.
[0061] In this embodiment, the Fuse chart corresponding to the third data block has the same layout as the first Fuse chart, meaning that the Fuse chart corresponding to the third data block also includes: row identifier, data type to be programmed, bit width of the programmed data, address of the programmed data, test process identifier, range of programmed data, and programmed data. The specific data in the Fuse chart corresponding to the third data block may differ from that in the first Fuse chart. For example, the programmed data for Item 1 in the Fuse chart corresponding to the third data block may differ from the programmed data for Item 1 in the first Fuse chart.
[0062] If the burning data in the Fuse chart corresponding to the third data block is within the burning data range, then the burning process is considered complete.
[0063] In this embodiment, it is necessary to determine whether each piece of programming data in the Fuse chart corresponding to the third data block is within the programming data range. If the programming data in the Fuse chart corresponding to the third data block is within the programming data range, then programming is determined to be complete.
[0064] In this embodiment, if the programming data in the Fuse chart corresponding to the third data block is within its corresponding programming data range, then programming is determined to be complete. For example, as shown in Table 1, the programming data of Item1 in the Fuse chart is 0X3. The programming data range of Item1 includes: minimum programming data of 3 and maximum programming data of 3. The programming data 3 of Item1 is within the programming data range of Item1, therefore, programming is determined to be complete.
[0065] If the programming data in the Fuse chart corresponding to the third data block is outside the programming data range, an abnormal programming flag is added.
[0066] In this implementation, if the programming data in the Fuse chart corresponding to the third data block is not within the programming data range, it is directly judged as an unqualified silicon die and an abnormal programming mark is added.
[0067] In a specific example, if the data writing status is in the second state, the data in the data block (the third data block) is read and parsed to obtain the writing data of each item. The rationality of the writing data is judged based on the range of the writing data of each item. If it is not rational (the writing data in the Fuse chart corresponding to the third data block is not within the range of the writing data), it is directly judged as an unqualified die and the test is terminated.
[0068] Optionally, if the data writing status is in the first state, then read the second data block and perform Fuse writing based on the second data block, including:
[0069] After performing other non-Fuse programming tests, read the second data block.
[0070] In this embodiment, after performing other non-Fuse programming tests, the data block is read again to obtain the second data block.
[0071] If the first data block and the second data block are identical, and the data writing status is in the first state, then Fuse writing will be performed based on the second data block.
[0072] In this embodiment, the method to determine whether the first data block and the second data block are consistent can be: directly determining whether the first data block and the second data block are consistent, or parsing the second data block to obtain the Fuse chart corresponding to the second data block, and comparing whether the burning data in the Fuse chart corresponding to the second data block is the same as the burning data in the first Fuse chart, thereby determining whether the first data block and the second data block are consistent.
[0073] In existing technologies, incorrect Fuse programming may occur during the execution of other non-Fuse programming tests, leading to production accidents. To address this issue, this embodiment proposes to read the data block again before entering the Fuse programming stage to obtain a second data block. The first and second data blocks are then compared. If the first and second data blocks are inconsistent, indicating an incorrect programming occurred during the execution of other non-Fuse tests, the die is directly deemed unqualified and the test is terminated. If the first and second data blocks are consistent and the programming data status is in the first state, then the Fuse programming is performed based on the second data block.
[0074] Optionally, perform Fuse programming based on the second data block, including:
[0075] After performing the ATE test, the first data to be burned is determined based on the ATE test results.
[0076] In this embodiment, the first data to be programmed is non-fixed value type programming data. The first data to be programmed includes: Trim type programming data (that is, the data in the Value column corresponding to the Trim type in Table 1), Key type programming data (that is, the data in the Value column corresponding to the Key type in Table 1), Harvest type programming data (that is, the data in the Value column corresponding to the Harvest type in Table 1), and Repair type programming data (that is, the data in the Value column corresponding to the Repair type in Table 1).
[0077] In this embodiment, since the non-fixed value type of programming data needs to be determined based on the ATE test results, after performing the ATE test, it is necessary to determine the first programming data based on the ATE test results.
[0078] The second data block is updated based on the first data to be burned, the elements in the Fuse graph corresponding to the second data block, and the functions that operate on the elements.
[0079] In this embodiment, the first data to be burned is assigned to the corresponding Value in the Fuse chart corresponding to the second data block, so as to update the second data block.
[0080] Perform Fuse programming based on the updated second data block.
[0081] In this embodiment, if the data to be burned is a fixed value type, it is directly assigned the value from the Fuse chart corresponding to the second data block; for other fixed value types of data to be burned, it is assigned the value from the first data to be burned corresponding to the test result.
[0082] Optionally, after performing Fuse programming based on the second data block, the following may also be included:
[0083] Read the fourth data block.
[0084] In this embodiment, after performing Fuse programming based on the second data block, the data block is read again to obtain the fourth data block.
[0085] The fourth data block is parsed based on the function that operates on the elements, and the corresponding Fuse chart is obtained.
[0086] Parse the updated second block data row to obtain the Fuse chart corresponding to the updated second block data.
[0087] If the elements in the Fuse chart corresponding to the fourth data block are the same as those in the updated Fuse chart corresponding to the second data block, and the burning data in the Fuse chart corresponding to the fourth data block is within the burning data range, then the burning process is considered complete.
[0088] In this embodiment, if the elements in the Fuse chart corresponding to the fourth data block are different from those in the Fuse chart corresponding to the updated second data block, or if the programming data in the Fuse chart corresponding to the fourth data block is outside the programming data range, it is directly judged as an unqualified silicon die and an abnormal programming mark is added.
[0089] Optionally, the data type to be programmed includes: fixed value type and non-fixed value type, wherein the first data to be programmed is non-fixed value type programming data.
[0090] In this embodiment, as Figure 2 As shown, before performing the ATE (Automatic Test Equipment) test, the Fuse value is read for the first time. This reading includes: reading a first data block; parsing the first data block using a function based on the operation elements to obtain a first Fuse chart; using the Value in the first Fuse chart as the Fuse data; and performing other non-Fuse programming tests. After performing these tests, the Fuse data is read a second time, and it is determined whether the first and second reads are consistent. If they are inconsistent, the result is considered unqualified. If they are consistent, it is determined whether the Fuse data is empty. If not empty, it is determined whether the data is within a reasonable range. If it is, the result is considered qualified; otherwise, it is considered unqualified. If the data is empty, a value is assigned, a programming operation is performed, and the written data is read. The written data is compared with the second read of the Fuse data. If they are inconsistent, the result is considered unqualified. If they are consistent, it is determined whether the data is within a reasonable range. If it is within a reasonable range, the result is considered qualified; otherwise, it is considered unqualified.
[0091] The technical solution of this embodiment pre-determines a first data block based on the elements in the first Fuse chart and the functions of the operation elements. The elements in the first Fuse chart include: row identifier, data type to be programmed, number of bits to be programmed, address to be programmed, test process identifier, range to be programmed, and data to be programmed. Before executing the ATE test, the first data block is read. The first data block is parsed based on the functions of the operation elements to obtain the first Fuse chart. The programming data state is determined according to the first Fuse chart. If the programming data state is the first state, a second data block is read, and Fuse programming is performed according to the second data block. Since the first data block is determined based on the elements in the first Fuse chart and the functions of the operation elements, no additional data processing code is needed regardless of the amount of programming data; only the Fuse chart needs to be maintained. When it is necessary to maintain and update the programming data, only the Fuse chart needs to be modified, without adding data processing code, which greatly reduces the probability of errors. In addition, since the elements in the first Fuse chart include the test process identifier, when multiple tests are required, multiple sets of code do not need to be maintained, greatly simplifying the efficiency of development, maintenance, and updates. In addition, since the elements in the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written, the data to be written can be checked directly based on the first Fuse chart without having to go back to the source code.
[0092] Example 2
[0093] Figure 3 This is a schematic diagram of a programming device provided in an embodiment of the present invention. This embodiment is applicable to Fuse programming scenarios. The device can be implemented using software and / or hardware, and can be integrated into any device that provides Fuse programming functionality, such as… Figure 3 As shown, the programming device specifically includes: a first reading module 310, a first parsing module 320, a determining module 330, and a programming module 340.
[0094] The first reading module is used to read a first data block before performing ATE (Automatic Test Equipment) testing. The first data block is determined based on the elements and functions of the operation elements in the first Fuse chart. The elements of the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written.
[0095] The first parsing module is used to parse the first data block based on the function of the operation element to obtain the first Fuse chart;
[0096] The determination module is used to determine the status of the burned data based on the first Fuse chart.
[0097] The programming module is used to read the second data block and perform Fuse programming based on the second data block if the programming data status is the first status.
[0098] The above-described products can perform the methods provided in any embodiment of the present invention, and have the corresponding functional modules and beneficial effects for performing the methods.
[0099] Example 3
[0100] Figure 4 A schematic diagram of an electronic device 10 that can be used to implement embodiments of the present invention is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices (e.g., helmets, glasses, watches, etc.), and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the invention described and / or claimed herein.
[0101] like Figure 4 As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12 or a random access memory (RAM) 13, communicatively connected to the at least one processor 11. The memory stores computer programs executable by the at least one processor. The processor 11 can perform various appropriate actions and processes based on the computer program stored in the ROM 12 or loaded into the RAM 13 from storage unit 18. The RAM 13 can also store various programs and data required for the operation of the electronic device 10. The processor 11, ROM 12, and RAM 13 are interconnected via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0102] Multiple components in electronic device 10 are connected to I / O interface 15, including: input unit 16, such as keyboard, mouse, etc.; output unit 17, such as various types of displays, speakers, etc.; storage unit 18, such as disk, optical disk, etc.; and communication unit 19, such as network card, modem, wireless transceiver, etc. Communication unit 19 allows electronic device 10 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0103] Processor 11 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Processor 11 performs the various methods and processes described above, such as programming methods.
[0104] In some embodiments, the programming method may be implemented as a computer program tangibly contained in a computer-readable storage medium, such as storage unit 18. In some embodiments, part or all of the computer program may be loaded and / or installed on electronic device 10 via ROM 12 and / or communication unit 19. When the computer program is loaded into RAM 13 and executed by processor 11, one or more steps of the programming method described above may be performed. Alternatively, in other embodiments, processor 11 may be configured to perform the programming method by any other suitable means (e.g., by means of firmware).
[0105] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0106] Computer programs used to implement the methods of the present invention may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, such that when executed by the processor, the computer programs cause the functions / operations specified in the flowcharts and / or block diagrams to be performed. The computer programs may be executed entirely on a machine, partially on a machine, or as a standalone software package, partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0107] In the context of this invention, a computer-readable storage medium can be a tangible medium that may contain or store a computer program for use by or in conjunction with an instruction execution system, apparatus, or device. A computer-readable storage medium may include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. Alternatively, a computer-readable storage medium may be a machine-readable signal medium. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof.
[0108] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0109] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as data servers), or middleware components (e.g., application servers), or frontend components (e.g., user computers with graphical user interfaces or web browsers through which users can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., communication networks). Examples of communication networks include local area networks (LANs), wide area networks (WANs), blockchain networks, and the Internet.
[0110] A computing system can include clients and servers. Clients and servers are generally located far apart and typically interact through a communication network. The client-server relationship is created by computer programs running on the respective computers and having a client-server relationship with each other. The server can be a cloud server, also known as a cloud computing server or cloud host, which is a hosting product within the cloud computing service system to address the shortcomings of traditional physical hosts and VPS services, such as high management difficulty and weak business scalability.
[0111] It should be understood that the various forms of processes shown above can be used, with steps reordered, added, or deleted. For example, the steps described in this invention can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution of this invention can be achieved, and this is not limited herein.
[0112] This invention also provides a computer program product, including a computer program that, when executed by a processor, implements the burning method according to any embodiment of the invention.
[0113] In implementing the computer program product, computer program code for performing the operations of this invention can be written in one or more programming languages or a combination thereof. Programming languages include object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0114] The specific embodiments described above do not constitute a limitation on the scope of protection of this invention. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this invention should be included within the scope of protection of this invention.
Claims
1. A programming method, characterized in that, include: Before performing the ATE test, a first data block is read. The first data block is determined based on the elements in the first Fuse chart and the functions of the operation elements. The elements in the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written. The first data block is parsed based on the function that operates on the elements to obtain the first Fuse chart; Determine the data burning status based on the first Fuse chart; If the data writing state is the first state, then the second data block is read and Fuse writing is performed according to the second data block. The first state is when the data writing is empty. Both the first data block and the second data block are data obtained by reading the data block. The timing of reading the data block is different for the first data block and the second data block. If the data writing status is in the first state, then read the second data block and perform Fuse writing based on the second data block, including: After performing other non-Fuse programming tests, read the second data block; If the first data block and the second data block are identical, and the data writing status is the first status, then after executing the ATE test, the first data to be written is determined based on the ATE test results. The second data block is updated based on the elements in the Fuse graph corresponding to the first data to be burned and the functions that operate on the elements; Perform Fuse programming based on the updated second data block.
2. The method according to claim 1, characterized in that, Also includes: After executing other non-Fuse programming tests, if the programming data status is in the second state, then read the third data block, where the second state is that the programming data is not empty; The third data block is parsed based on the function that operates on the elements to obtain the Fuse chart corresponding to the third data block; If the burning data in the Fuse chart corresponding to the third data block is within the burning data range, then the burning process is considered complete. If the programming data in the Fuse chart corresponding to the third data block is outside the programming data range, an abnormal programming flag is added.
3. The method according to claim 1, characterized in that, After performing Fuse programming based on the second data block, the following is also included: Read the fourth data block; The fourth data block is parsed based on the function that operates on the elements, and the corresponding Fuse chart for the fourth data block is obtained. The updated second data block is parsed to obtain the Fuse chart corresponding to the updated second data block; If the elements in the Fuse chart corresponding to the fourth data block are the same as those in the updated Fuse chart corresponding to the second data block, and the burning data in the Fuse chart corresponding to the fourth data block is within the burning data range, then the burning process is considered complete.
4. The method according to claim 1, characterized in that, The data types to be programmed include: fixed value types and non-fixed value types, and the first data to be programmed is non-fixed value type programming data.
5. A programming device, characterized in that, include: The first reading module is used to read a first data block before performing ATE (Automatic Test Equipment) testing. The first data block is determined based on the elements and functions of the operation elements in the first Fuse chart. The elements of the first Fuse chart include: row identifier, data type to be written, number of bits to be written, address to be written, test process identifier, range of data to be written, and data to be written. The first parsing module is used to parse the first data block based on the function of the operation element to obtain the first Fuse chart; The determination module is used to determine the status of the burned data based on the first Fuse chart. The programming module is used to read the second data block and perform Fuse programming based on the second data block if the programming data state is the first state. The first state is when the programming data is empty. Both the first data block and the second data block are data obtained by reading the data block. The timing of reading the data block for the first data block and the second data block is different. The programming module is specifically used for: After performing other non-Fuse programming tests, read the second data block; If the first data block and the second data block are identical, and the data writing status is the first status, then after executing the ATE test, the first data to be written is determined based on the ATE test results. The second data block is updated based on the elements in the Fuse graph corresponding to the first data to be burned and the functions that operate on the elements; Perform Fuse programming based on the updated second data block.
6. An electronic device, characterized in that, The electronic device includes: At least one processor; and A memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, the computer program being executed by the at least one processor to enable the at least one processor to perform the programming method according to any one of claims 1-4.
7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that are used to cause a processor to execute the burning method according to any one of claims 1-4.
8. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, implements the burning method according to any one of claims 1-4.