Pattern loading method, system and device in test machine debugging
By receiving debugging requests, determining and loading the selected pattern block group, and continuing to load the unselected block group in the background, the problem of long debugging time of traditional test machines is solved and debugging efficiency is improved.
Patent Information
- Application Number
- CN202510828152.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-20
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2045-06-20
AI Technical Summary
During the debugging process of traditional test machines, it takes a long time to load the pattern corresponding to all functions, resulting in low debugging efficiency, especially when the functions are complex or the number of patterns is large.
Receive the debugging request, determine the selected pattern block group corresponding to the request, load and debug, and continue to load the unselected pattern block group in the background, and load the pattern blocks in order at the priority level.
The efficiency of testing machine debugging is improved. By first loading the necessary pattern block group and continuing to load the unselected block group during the debugging process, efficient pattern loading and debugging is achieved.
Smart Images

Figure CN120353657A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of semiconductor technology, and particularly to a method, system, and device for loading patterns during tester debugging. Background Art
[0002] During the traditional tester debugging process, all patterns corresponding to all functions must be loaded before debugging. (In the chip testing industry, a pattern represents test vectors or code pattern data, usually referring to a set of files containing multiple timing vectors, and these files include signal definitions, timing information, parameter configurations, etc.). The more complex the chip functions and the more patterns there are, the longer the loading time required, and some even reach about 40 minutes or even one hour. This full-volume loading method results in too high a debugging time cost, especially in the case of debugging functions that are more complex or have a larger number of patterns, and the debugging efficiency is low. Summary of the Invention
[0003] Based on this, in view of the above technical problems, it is necessary to provide a method, system, and device for loading patterns during tester debugging that can improve the testing efficiency.
[0004] In a first aspect, the present application provides a method for loading patterns during tester debugging, the method including: Receiving a debugging request; Determining a selected pattern block group corresponding to the debugging request; Loading the selected pattern block group; Performing debugging based on the loaded selected pattern block group, and continuing to load unselected pattern block groups in the background.
[0005] In one embodiment, the debugging request carries at least one selected test item; the selected pattern block group includes pattern blocks corresponding to each of the test items; the method further includes: Determining the priority of each of the test items, and obtaining the priority of the pattern blocks in the selected pattern block group based on the priority of the test items; The loading the selected pattern block group includes: Loading the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks.
[0006] In one embodiment, the method further includes: In the case where there are loaded pattern blocks, perform debugging based on the pattern blocks, and continue to load the unloaded pattern blocks in the selected pattern block group in the background.
[0007] In one embodiment, the performing debugging based on the pattern blocks in the case where there are loaded pattern blocks includes: In the case where there are loaded pattern blocks, generate a first loading completion flag corresponding to the loaded pattern blocks; Based on the first loading completion flag, perform debugging according to the loaded pattern blocks.
[0008] In one embodiment, the sequentially loading the pattern blocks in the selected pattern block group according to the priorities of the pattern blocks includes: Determine the current pattern block based on the priorities of the pattern blocks; In the case where it is determined that the current pattern block does not have the first loading completion flag, load the current pattern block; In the case where it is determined that the current pattern block has the first loading completion flag, continue to execute the step of determining the current pattern block based on the priorities of the pattern blocks until all the pattern blocks in the selected pattern block group are loaded.
[0009] In one embodiment, the receiving a debugging request includes: Receive a debugging request through an interface, where the interface displays each test item; The determining the priorities of each of the test items includes: Determine the priorities of each of the test items based on the selection order of each of the test items in the interface.
[0010] In one embodiment, the method further includes: Divide a pattern original file into multiple pattern blocks according to debugging functions, and the storage addresses of each of the pattern blocks are different.
[0011] In one embodiment, the determining the selected pattern block group corresponding to the debugging request includes: Obtain the user program and the first pattern block corresponding to each of the test items; Scan each of the user programs to obtain pattern block identifiers, and determine each second pattern block based on the obtained pattern block identifiers; Use the first pattern blocks corresponding to each of the test items and each of the second pattern blocks as the selected pattern block group corresponding to the debugging request.
[0012] In one embodiment, the debugging based on the loaded selected pattern block group includes: When the loading of the selected pattern block group is completed, generate a second loading completion identifier corresponding to the selected pattern block group, and output the second loading completion identifier; Based on the second loading completion identifier, perform debugging according to the loaded selected pattern block group.
[0013] In one embodiment, before loading the selected pattern block group, it further includes: When it is determined that there is a second loading completion identifier corresponding to the selected pattern block group, continue to execute the step of debugging based on the loaded selected pattern block group; When it is determined that there is no second loading completion identifier corresponding to the selected pattern block group, continue to execute the step of loading the selected pattern block group.
[0014] In one embodiment, the continuing to load the unselected pattern block group in the background includes: In the background, load each pattern block in the unselected pattern block group in the address order of each pattern block in the unselected pattern block group, where the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.
[0015] In one embodiment, after continuing to load the unselected pattern block group in the background, it includes: Receive a new debugging request; Determine a new selected pattern block group corresponding to the new debugging request from the unselected pattern block group; Load the new selected pattern block group; Perform debugging based on the loaded new selected pattern block group, and continue to load the new unselected pattern block group in the background.
[0016] Second aspect, the present application further provides a method for loading patterns during the debugging of a testing machine, which is applied to a driver. The method includes: Receiving a selected pattern block group, which is the selected pattern block group corresponding to the debugging request determined by the host computer after receiving the debugging request; Generating a write instruction based on the selected pattern block group, and sending the write instruction to the FPGA. The write instruction is used to instruct the FPGA to write the selected pattern block group into the corresponding storage address space in the DDR, and the selected pattern block group in the DDR is used for debugging.
[0017] Third aspect, the present application further provides a system for loading patterns during the debugging of a testing machine, including: A host computer, which is used to execute the method for loading patterns during the debugging of the testing machine described above to obtain a selected pattern block group; A driver, which is used to receive the selected pattern block group, generate a write instruction based on the selected pattern block group, and send the write instruction to the FPGA; An FPGA, which is used to write the selected pattern block group into the corresponding storage address space in the DDR based on the write instruction, and the selected pattern block group in the DDR is used for debugging.
[0018] Fourth aspect, the present application further provides a device for loading patterns during the testing of a testing machine. The device includes: A first receiving module, which is used to receive a debugging request; A selected pattern block group determining module, which is used to determine a selected pattern block group corresponding to the debugging request; A loading module, which is used to load the selected pattern block group; A debugging module, which is used to perform debugging based on the loaded selected pattern block group and continue to load unselected pattern block groups in the background.
[0019] Fifth aspect, the present application further provides a device for loading pattern files during the debugging of a testing machine, which is applied to a driver. The device includes: A second receiving module, which is used to receive a selected pattern block group, which is the selected pattern block group corresponding to the debugging request determined by the host computer software after receiving the debugging request; A writing module, configured to generate a writing instruction based on the selected pattern block group and send the writing instruction to an FPGA. The writing instruction is used to instruct the FPGA to write the selected pattern block group into a corresponding storage address space in a DDR. The selected pattern block group in the DDR is used for debugging.
[0020] In the above pattern loading method, system and device for tester debugging, a debugging request is received; a selected pattern block group corresponding to the debugging request is determined; the selected pattern block group is loaded; debugging is performed based on the loaded selected pattern block group, and unselected pattern block groups are continuously loaded in the background. In this way, when loading patterns, only the pattern block group corresponding to the debugging request needs to be loaded to perform debugging, and then unselected pattern block groups are continuously loaded in the background during the debugging process. On the one hand, the pattern block group required for debugging is loaded first, and on the other hand, patterns are loaded while debugging, which can improve the debugging efficiency. Description of the Drawings
[0021] To more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following will briefly introduce the drawings required for describing the embodiments of the present application or related technologies. Obviously, the following drawings are only some embodiments of the present application. For those of ordinary skill in the art, other related drawings can be obtained based on these drawings without creative efforts.
[0022] Figure 1 It is a schematic diagram of a pattern loading system for tester debugging in an embodiment; Figure 2 It is a schematic flowchart of a pattern loading method for tester debugging in an embodiment; Figure 3 It is a schematic diagram of the division result of a pattern original file in an embodiment; Figure 4 It is a flowchart of a loading step in an embodiment; Figure 5 It is a schematic flowchart of a pattern loading method for tester debugging in another embodiment; Figure 6 It is a schematic flowchart of a pattern loading method for tester debugging in still another embodiment; Figure 7 It is a structural block diagram of a pattern loading device for tester debugging in an embodiment; Figure 8 It is a structural block diagram of a pattern loading device for tester debugging in another embodiment; Figure 9 It is the internal structure diagram of a computer device in an embodiment. Specific implementation manners
[0023] In order to make the objectives, technical solutions and advantages of the present application clearer and more understandable, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0024] It should be noted that the terms "first", "second", etc. used in the present application can be used to describe various elements, but these elements are not limited by these terms. These terms are only used to distinguish the first element from the second element. The terms "including" and "having" used in the present application and any variations thereof are intended to cover non-exclusive inclusion. The term "a plurality" used in the present application refers to two or more. The term "and / or" used in the present application refers to one of the solutions or any combination of multiple solutions.
[0025] The method for loading patterns in tester debugging provided by the embodiments of the present application can be applied to a pattern loading system in tester debugging as Figure 1 shown. The pattern loading system in tester debugging includes a host computer, a driver, and a Field-Programmable Gate Array (FPGA). The host computer is used to execute the method for loading patterns in tester debugging of the present application to obtain a selected pattern block group; the driver is used to receive the selected pattern block group, generate a write instruction based on the selected pattern block group, and send the write instruction to the FPGA; the FPGA is used to write the selected pattern block group into the corresponding storage address space in the DDR based on the write instruction, and the selected pattern block group in the DDR is used to debug the chip to be tested by the user. The FPGA can be a field programmable logic gate array chip of a lower computer resource board.
[0026] The host computer includes a software program, which is used to obtain the selected pattern block group, that is, to increase the priority of the selected pattern block group required for debugging, keep the priority of the remaining non-selected pattern block groups unchanged or decrease, and preferentially send the selected pattern block group to the driver. The driver can parse the obtained selected pattern block group, determine the mapping relationship between each pattern block in the selected pattern block group and the storage address in the DDR, generate a write instruction for the corresponding pattern block based on the mapping relationship, and send the write instruction to the FPGA.
[0027] In the test phase, the FPGA can read the pattern block group from the DDR and run the pattern block group line by line.
[0028] The FPGA receives the write instruction sent by the driver, parses the write instruction, writes each pattern block in the pattern block group to the corresponding storage address in the DDR, and returns the write result to the host computer through the driver.
[0029] When the above system loads patterns, only the pattern block group corresponding to the debug request needs to be loaded for debugging. Subsequently, during the debugging process, the unselected pattern block groups are loaded in the background. In this way, on the one hand, the pattern block group required for debugging is loaded first, and on the other hand, it is loaded while debugging, which can improve the debugging efficiency.
[0030] In an exemplary embodiment, as Figure 2 shown, a method for loading patterns during the debugging of a tester is provided. Taking the host computer in Figure 1 as an example, the method includes the following steps 202 to 206. Wherein: S202: Receive a debug request.
[0031] The debug request is a request to debug a certain or some debug functions of the chip under test by the user based on patterns. Before debugging, the corresponding patterns need to be loaded into the DDR in advance.
[0032] S204: Determine the selected pattern block group corresponding to the debug request.
[0033] Wherein the pattern block group includes several pattern blocks, each pattern block corresponds to a pattern burst, and each pattern burst includes several CBP files.
[0034] The debug request may include debugging of at least one debug function, so that the pattern block group may include pattern blocks corresponding to at least one function.
[0035] Optionally, the pattern blocks corresponding to different debug functions are different or partially the same. Therefore, after determining the pattern blocks corresponding to each debug function, the pattern blocks can be de-duplicated first, and then the pattern block group is determined based on the de-duplicated pattern blocks.
[0036] In some alternative embodiments, the method further includes: dividing the pattern original file into multiple pattern blocks according to the debugging function, where the storage addresses of the respective pattern blocks are different. As combined with Figure 3 shown, in the present application, the complete pattern original file is pre-divided into multiple pattern blocks according to the debugging function. The storage addresses of these pattern blocks in the DDR are different. It should be noted that the sizes of these pattern blocks can be the same or different, and no specific limitation is made here.
[0037] In the present application, each pattern block can be determined based on the debugging function corresponding to the debugging request, so as to obtain the selected pattern block group based on the determined respective pattern blocks. The loading priority of the selected pattern block group is higher than that of the unselected pattern block group corresponding to the pattern original file.
[0038] It should be noted that after the selected pattern block group is determined, the other pattern blocks in the pattern original file constitute the unselected pattern block group, that is, the pattern original file is divided into two parts, one part is the selected pattern block group and the other part is the unselected pattern block group. In other embodiments, after the selected pattern block group is determined, the other unloaded pattern blocks in the pattern original file constitute the unselected pattern block group, that is, the pattern original file is divided into three parts, one part is the selected pattern block group, one part is the unselected pattern block group, and another part is the loaded pattern block group. Those skilled in the art can select any of the above implementation manners based on needs.
[0039] S206: Load the selected pattern block group.
[0040] Among them, the process of loading the pattern block group is that the host computer sends the selected pattern block group to the driver, the driver parses the selected pattern block group to determine its storage address in the DDR, and then generates a corresponding write instruction based on the storage address and the selected pattern block group, and sends the write instruction to the FPGA, so that the FPGA writes the selected pattern block group into the DDR based on the write instruction.
[0041] Each pattern block in the selected pattern block group can also include a priority, that is, based on the priority of the debugging function, determine the priority of each pattern block in the selected pattern block group, so as to drive after obtaining the selected pattern block group, generate corresponding write instructions based on the priority of each pattern block. When the FPGA executes the write instructions, first write the pattern blocks with higher priority into the DDR.
[0042] S208: Perform debugging based on the loaded selected pattern block group, and continue to load the unselected pattern block group in the background.
[0043] In the present application, when the selected pattern block group is loaded into the DDR, the corresponding debugging function of the chip to be tested by the user can be debugged. In order to improve the debugging efficiency in the present application, after the selected pattern block group is loaded into the DDR, debugging can be performed in the foreground, and the unselected pattern block group can be continuously loaded in the background. The processing in the foreground and the background does not interfere with each other. Optionally, the processing in the foreground and the background can be implemented through different processes or threads. For example, the debugging is implemented through the first process based on the pattern block group loaded into the DDR, and the unselected pattern block group is continuously loaded through the second process.
[0044] In some optional embodiments, continuously loading the unselected pattern block group in the background includes: sequentially loading each pattern block in the unselected pattern block group in the address order of each pattern block in the unselected pattern block group, where the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.
[0045] The unselected block group includes pattern blocks other than the pattern blocks in the selected block group. The address order of each pattern block is the order of the storage addresses of the pattern blocks in the DDR. In other embodiments, each pattern block in the unselected pattern block group can also be sequentially loaded in other orders of each pattern block in the unselected pattern block group.
[0046] In some alternative embodiments, after some debugging functions are debugged, testers can debug other functions. Specifically, after the unselected pattern block group is continuously loaded in the background, it includes: receiving a new debugging request; determining a new selected pattern block group corresponding to the new debugging request from the unselected pattern block group; loading the new selected pattern block group; debugging based on the loaded new selected pattern block group, and continuously loading a new unselected pattern block group in the background.
[0047] The function to be debugged corresponding to the new debugging request may be the same as, different from, or partially overlapped with the function to be debugged in the original debugging request, and no specific limitation is made here.
[0048] In this application, to determine the new selected pattern block group based on the new debugging request, please refer to the above for details. Optionally, in this application, the new selected pattern block group corresponding to the new debugging request can be determined only from the unselected pattern block group, that is, the new selected pattern block group is the pattern block group that has not been loaded into the DDR. Subsequently, the new selected pattern block group is loaded; debugging is performed based on the loaded new selected pattern block group, and a new unselected pattern block group is continuously loaded in the background.
[0049] In other embodiments, the new selected pattern block group determined based on the new debugging request can be determined from the pattern original file. Therefore, the new selected pattern block group may include pattern blocks that have been loaded into the DDR and pattern blocks that have not been loaded into the DDR. Therefore, in this application, when loading the new selected pattern block group, it can first be determined whether the new selected pattern block group has been loaded into the DDR or whether the pattern blocks in the new selected pattern block group have been loaded into the DDR. If so, there is no need to load again. Otherwise, load the new selected pattern block group or only load the pattern blocks in the new selected pattern block group that have not been loaded.
[0050] The pattern loading method during the debugging of the above-mentioned testing machine receives a debugging request; determines the selected pattern block group corresponding to the debugging request; loads the selected pattern block group; performs debugging based on the loaded selected pattern block group, and continues to load the unselected pattern block group in the background. In this way, when loading the pattern, only the pattern block group corresponding to the debugging request needs to be loaded to perform debugging. Subsequently, during the debugging process, the unselected pattern block group is continuously loaded in the background. On the one hand, the pattern block group required for debugging is loaded first, and on the other hand, it is loaded while debugging, which can improve the debugging efficiency.
[0051] In one optional embodiment, the debugging request carries at least one selected test item; the selected pattern block group includes pattern blocks corresponding to each test item; the method further includes: determining the priority of each test item, and obtaining the priority of the pattern blocks in the selected pattern block group based on the priority of the test item; loading the selected pattern block group includes: loading the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks.
[0052] Wherein the test item corresponds to a debugging function, one test item corresponds to one debugging function, the debugging request can carry multiple debugging functions, that is, it can carry multiple test items, so that the selected pattern block group includes pattern blocks corresponding to each test item.
[0053] In this application, not only does the priority of the selected pattern block group be higher than that of the unselected pattern block group, but also the priority of the pattern blocks in the selected pattern block group is limited. Since the pattern blocks corresponding to different test items are different, the priority of each pattern block can be determined based on the priority of the test item. When loading the selected pattern block group, the pattern blocks in the selected pattern block group can be loaded in sequence according to the priority of the pattern blocks.
[0054] The method for determining the priority of each pattern block based on the priority of test items may include: determining the priority of each test item, then setting the priority of the pattern block corresponding to the test item with the highest priority to the highest, then obtaining the next-priority test item and the pattern block corresponding to the next-priority test item, and setting the priority of the pattern block corresponding to the next-priority test item when there is no overlap between the pattern block corresponding to the next-priority test item and the pattern blocks of the higher-priority test items. If there is an overlap, obtain the non-overlapping pattern blocks and only set the priority of the non-overlapping pattern blocks.
[0055] In one alternative embodiment, receiving a debugging request includes: receiving a debugging request through an interface that displays each test item; determining the priority of each test item includes: determining the priority of each test item based on the selection order of each test item in the interface. Similarly, the user program corresponding to each test item is obtained, and each user program is scanned, but the pattern block identifier is not scanned. Therefore, only the pattern blocks included in each test item in the selected pattern block group are selected, that is, the second pattern block corresponding to the pattern block identifier is not called.
[0056] Among them, the priority of the test items can be determined based on the debugging request, that is, each test item can be displayed on the interface, and then the user selects these test items in a certain order, so that the priority of the test items can be determined based on the selection order of each test item in the interface. In other embodiments, the priority of the test items can also be default, rather than determined based on the user's selection, which is not specifically limited here, and those skilled in the art can determine the priority of each test item based on needs.
[0057] In the above embodiments, not only the priority of the selected pattern block group is considered, but also the priority of the pattern blocks in the selected pattern block group is set, thereby improving the test efficiency.
[0058] In one alternative embodiment, the method further includes: when there are pattern blocks that have been loaded, debugging the chip under test by the user based on the pattern blocks and continuing to load the unloaded pattern blocks in the selected pattern block group in the background.
[0059] In this application, the granularity is subdivided into test items. When the pattern blocks corresponding to a test item are loaded, debugging is performed based on the pattern blocks corresponding to the test item, and the unloaded pattern blocks in other selected pattern block groups are continuously loaded in the background.
[0060] For ease of understanding, in conjunction with Figure 4 As shown, during the loading process, first load the pattern block corresponding to the test item with a higher priority. Then, after the pattern block corresponding to the test item with a higher priority is loaded, the chip under test of the user can be debugged, and during the debugging process, other unloaded pattern blocks in the selected pattern block group can be continuously loaded in the background. Moreover, after other unloaded pattern blocks in the selected pattern block group are loaded in the background, the unselected pattern block group is continuously loaded in the background.
[0061] In the above embodiment, the granularity is subdivided into test items. In this way, as long as the pattern block corresponding to one test item is loaded, testing can be performed, and other unloaded pattern blocks in the selected pattern block group can be synchronously loaded in the background to facilitate the testing of the next debugging function, which can further improve the testing efficiency.
[0062] In one optional embodiment, when there are loaded pattern blocks, debugging is performed based on the pattern blocks, including: when there are loaded pattern blocks, generating a first loading completion flag corresponding to the loaded pattern blocks; based on the first loading completion flag, performing debugging according to the loaded pattern blocks.
[0063] After the pattern block corresponding to the test item is loaded, a corresponding first loading completion flag can be generated, and this first loading completion flag can be displayed on the interface to prompt the user that the chip under test of the user can be debugged. After receiving the user instruction or automatically starting the debugging, other unloaded pattern blocks in the selected pattern block group are synchronously loaded in the background.
[0064] The first loading completion flag corresponds to the test item and the pattern block corresponding to the test item, and is used to indicate that the pattern block corresponding to the test item is loaded.
[0065] In one optional embodiment, the pattern blocks in the selected pattern block group are loaded in sequence according to the priority of the pattern blocks, including: determining the current pattern block based on the priority of the pattern blocks; when it is determined that the current pattern block does not have a first loading completion flag, loading the current pattern block; when it is determined that the current pattern block has a first loading completion flag, continuing to execute the step of determining the current pattern block based on the priority of the pattern blocks until all the pattern blocks in the selected pattern block group are loaded.
[0066] Based on combination Figure 4 As shown, first determine the current pattern block based on the priority of the pattern block. When it is determined that the current pattern block does not have the first loading completion flag, that is, when the test item corresponding to the current pattern block does not have the first loading completion flag, that is, the current pattern block has not been loaded into the DDR. Therefore, load the current pattern block. If it has already been loaded, then continue to obtain the next pattern block based on the priority of the pattern block.
[0067] It should be noted that generally, the priorities of the pattern blocks corresponding to each test item are the same. Therefore, after each pattern block is loaded, it is also possible to determine whether the pattern blocks corresponding to the current test item have been loaded. If so, display the first loading completion flag on the interface to facilitate debugging.
[0068] In one optional embodiment, determining the selected pattern block group corresponding to the debugging request includes: obtaining the user program and the first pattern block corresponding to each test item; scanning each user program to obtain the pattern block identifier, and determining each second pattern block based on the scanned pattern block identifier; using the first pattern blocks corresponding to each test item and each second pattern block as the selected pattern block group corresponding to the debugging request.
[0069] In this application, each test item corresponds to a first pattern block and a user program. For example, assume that the debugging request includes 3 test items, test item A, test item B, and test item C. Taking test item A as an example, it includes the first pattern block A1 and the user program a; taking test item B as an example, it includes the first pattern block B1 and the user program b; taking test item C as an example, it includes the first pattern block C1 and the user program c.
[0070] Scanning these user programs can obtain the pattern block identifiers, and each second pattern block can be determined based on the obtained pattern block identifiers. For example, scanning user program a, user program b, and user program c respectively to obtain each pattern block identifier. Suppose scanning user program a obtains second pattern blocks A2 and A3, scanning user program b obtains second pattern blocks B2 and B3, and scanning user program c obtains second pattern blocks C2 and C3. In this way, the selected pattern block group includes first pattern block A1, first pattern block B1, first pattern block C1, second pattern blocks A2 and A3, second pattern blocks B2 and B3, and second pattern blocks C2 and C3.
[0071] In some alternative embodiments, first pattern block A1, first pattern block B1, and first pattern block C1 correspond to test items and are necessarily different. However, second pattern blocks A2 and A3, second pattern blocks B2 and B3, and second pattern blocks C2 and C3 in the user programs may be the same, different, or partially the same. To ensure the accuracy of the selected pattern block group, in this application, the second pattern block group obtained by scanning the user programs is first de-duplicated, and then the selected pattern block group is obtained based on the de-duplicated second pattern block groups and each first pattern block group.
[0072] In some alternative embodiments, during the process of determining the selected pattern block group, it is also necessary to identify the pattern blocks corresponding to each test item, which facilitates subsequent determination of the priority of each pattern block, so as to load the pattern blocks corresponding to each test item in sequence according to the priority of the pattern blocks.
[0073] In one of the alternative embodiments, debugging is performed based on the loaded selected pattern block group, including: when the selected pattern block group is loaded, generating a second loading completion identifier corresponding to the selected pattern block group and outputting the second loading completion identifier; based on the second loading completion identifier, performing debugging according to the loaded selected pattern block group.
[0074] The granularity in this embodiment is the pattern block group. That is, after the selected pattern block group is loaded, the host computer outputs the corresponding second loading completion identifier, so that the user can start this debugging, that is, based on the second loading completion identifier, perform debugging according to the loaded selected pattern block group, and then load the corresponding unselected pattern block group in the background.
[0075] In one of the optional embodiments, before loading the selected pattern block group, it further includes: when it is determined that there is a second loading completion flag corresponding to the selected pattern block group, continuing to execute the step of debugging based on the loaded selected pattern block group; when it is determined that there is no second loading completion flag corresponding to the selected pattern block group, continuing to execute the step of loading the selected pattern block group.
[0076] Each debugging corresponds to a selected pattern block group. In this embodiment, after each selected pattern block group is determined, it can be judged whether the selected pattern block group has been loaded, for example, whether there is a corresponding second loading completion flag. If it exists, debugging can be directly performed; otherwise, the selected pattern block group is first loaded.
[0077] In an exemplary embodiment, as Figure 5 shown, a method for pattern loading in tester debugging is provided. Taking the application of this method to the Figure 1 driver as an example for illustration, it includes the following steps 502 to step 504. Among them: S502: Receive the selected pattern block group, which is the selected pattern block group corresponding to the debugging request determined by the host computer after receiving the debugging request.
[0078] For the limitation of the selected pattern block group, specific reference can be made to the above text. After the host computer receives the debugging request, the selected pattern block group corresponding to the debugging request is determined.
[0079] S504: Generate a write instruction based on the selected pattern block group and send the write instruction to the FPGA. The write instruction is used to instruct the FPGA to write the selected pattern block group into the corresponding storage address space in the DDR. The selected pattern block group in the DDR is used for debugging.
[0080] The driver can parse to obtain the selected pattern block group, determine the mapping relationship between each pattern block in the selected pattern block group and the storage address in the DDR, generate a write instruction for the corresponding pattern block based on this mapping relationship, and send the write instruction to the FPGA. The FPGA receives the write instruction sent by the driver, parses the write instruction, writes each pattern block in the pattern block group into the corresponding storage address in the DDR, and returns the write result to the host computer through the driver.
[0081] Among them, for the convenience of understanding, in combination with Figure 6 shown, Figure 6As a schematic diagram of the pattern loading method during the debugging of a testing machine in yet another embodiment, in this embodiment, the host computer pre-divides the pattern original file into multiple pattern blocks according to the debugging functions. The host computer interface displays each test item and receives a debugging request through this interface. The debugging request carries this test item, so that the host computer can obtain the first pattern block corresponding to each test item and each user program, then scans each user program to obtain each second pattern block, and obtains the selected pattern block group based on the first pattern block and the second pattern block. Subsequently, the selected pattern block group is loaded. Specifically, the priority of each pattern block in the selected pattern block group is determined based on the priority of the test item, and then it is determined whether the pattern block corresponding to the current test item is loaded based on the priority of the pattern block. If it is loaded, debugging is directly carried out; otherwise, the pattern block corresponding to the current test item is loaded. After the pattern block corresponding to the current test item is loaded, a first loading completion flag is output, and then the chip to be tested by the user can be debugged, and the unloaded pattern blocks in the selected pattern block group are continuously loaded in the background. After the unloaded pattern blocks in the selected pattern block group are loaded, the unselected pattern block group is continuously loaded. Subsequently, a new debugging request can also be received and the above steps can be continued to be executed. In this way, when loading the pattern, only the pattern block group corresponding to the debugging request needs to be loaded to perform debugging, and the unselected pattern block group is continuously loaded in the background during the subsequent debugging process. On the one hand, the pattern block group required for debugging is loaded first, and on the other hand, it is loaded while debugging, which can improve the debugging efficiency.
[0082] It should be understood that although the steps in the flowcharts involved in the above embodiments are sequentially displayed according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless there is a clear description in this article, the execution of these steps has no strict order limit, and these steps can be executed in other orders. Moreover, at least a part of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages. These steps or stages are not necessarily executed at the same moment, but can be executed at different moments, and the execution order of these steps or stages is not necessarily sequential, but can be executed alternately or alternately with at least a part of the steps or stages in other steps or other steps. It can be understood that the steps in different embodiments can be freely combined according to needs, and all non-contradictory solutions formed by the combination belong to the scope protected by this application.
[0083] Based on the same inventive concept, an embodiment of the present application further provides a pattern loading device in tester debugging for implementing the pattern loading method in the above-mentioned tester debugging. The solution provided by this device to solve the problem is similar to the solution described in the above method. Therefore, the specific limitations in one or more embodiments of the pattern loading device in tester debugging provided below can refer to the limitations on the pattern loading method in tester debugging in the above text, and will not be repeated here.
[0084] In an exemplary embodiment, as Figure 7 shown, a pattern loading device in tester debugging is provided, including: a first receiving module 701, a selected pattern block group determination module 702, a loading module 703, and a debugging module 704, where: The first receiving module 701 is configured to receive a debugging request; The selected pattern block group determination module 702 is configured to determine a selected pattern block group corresponding to the debugging request; The loading module 703 is configured to load the selected pattern block group; The debugging module 704 is configured to perform debugging based on the loaded selected pattern block group and continue to load the unselected pattern block group in the background.
[0085] In one optional embodiment, the debugging request carries at least one selected test item; the selected pattern block group includes pattern blocks corresponding to each test item; the above device further includes: A priority determination module, configured to determine the priority of each test item and obtain the priority of the pattern blocks in the selected pattern block group based on the priority of the test items; The above loading module 703 is further configured to load the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks.
[0086] In one optional embodiment, the above debugging module 704 is further configured to, in the case where there are already loaded pattern blocks, perform debugging based on the pattern blocks and continue to load the unloaded pattern blocks in the selected pattern block group in the background.
[0087] In one optional embodiment, the above debugging module 704 is further configured to, in the case where there are already loaded pattern blocks, generate a first loading completion flag corresponding to the already loaded pattern blocks; and perform debugging according to the already loaded pattern blocks based on the first loading completion flag.
[0088] In one alternative embodiment, the above loading module 703 is further configured to determine the current pattern block based on the priority of the pattern blocks; in the case where it is determined that the current pattern block does not have a first loading completion flag, load the current pattern block; in the case where it is determined that the current pattern block has a first loading completion flag, continue to execute the step of determining the current pattern block based on the priority of the pattern blocks until all the pattern blocks in the selected pattern block group are loaded.
[0089] In one alternative embodiment, the above first receiving module 701 is further configured to receive a debugging request through an interface, where the interface displays each test item; the above priority determination module is further configured to determine the priority of each test item based on the selection order of each test item in the interface.
[0090] In one alternative embodiment, the above device further includes a pre-partitioning module, configured to divide the pattern original file into multiple pattern blocks according to the debugging function, and the storage addresses of each pattern block are different.
[0091] In one alternative embodiment, the above selected pattern block group determination module 702 is specifically configured to obtain the user program corresponding to each test item and the first pattern block; scan each user program to obtain the pattern block identifier, and determine each second pattern block based on the scanned pattern block identifier; use the first pattern block corresponding to each test item and each second pattern block as the selected pattern block group corresponding to the debugging request.
[0092] In one alternative embodiment, the above debugging module 704 is specifically configured to, in the case where the selected pattern block group is loaded, generate a second loading completion flag corresponding to the selected pattern block group, and output the second loading completion flag; perform debugging according to the loaded selected pattern block group based on the second loading completion flag.
[0093] In one alternative embodiment, the above loading module 703 is specifically configured to, in the case where it is determined that there is a second loading completion flag corresponding to the selected pattern block group, continue to execute the step of performing debugging based on the loaded selected pattern block group; in the case where it is determined that there is no second loading completion flag corresponding to the selected pattern block group, continue to execute the step of loading the selected pattern block group.
[0094] In one optional embodiment, the above-mentioned debugging module 704 is specifically configured to sequentially load each pattern block in the unselected pattern block group in the background according to the address order of each pattern block in the unselected pattern block group, where the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.
[0095] In one optional embodiment, the above-mentioned first receiving module 701 is specifically configured to receive a new debugging request; determine a new selected pattern block group corresponding to the new debugging request from the unselected pattern block group; load the new selected pattern block group; perform debugging based on the loaded new selected pattern block group, and continue to load a new unselected pattern block group in the background.
[0096] In an exemplary embodiment, as Figure 8 shown, a pattern loading device in tester debugging is provided, including: a second receiving module 801 and a writing module 802, where: The second receiving module 801 is configured to receive a selected pattern block group, where the selected pattern block group is a selected pattern block group corresponding to a debugging request determined after the host computer software receives the debugging request; The writing module 802 is configured to generate a writing instruction based on the selected pattern block group, and send the writing instruction to the FPGA. The writing instruction is used to instruct the FPGA to write the selected pattern block group into the corresponding storage address space in the DDR, and the selected pattern block group in the DDR is used for debugging.
[0097] Each module in the above-mentioned pattern loading device in tester debugging can be implemented in whole or in part by software, hardware, and their combination. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or stored in the memory in the computer device in the form of software, so as to facilitate the processor to call and execute the operations corresponding to the above-mentioned modules.
[0098] In an exemplary embodiment, a computer device is provided. The computer device can be a terminal, and its internal structure diagram can be as Figure 9As shown in the figure. The computer device includes a processor, a memory, an input / output interface, a communication interface, a display unit, and an input device. Among them, the processor, the memory, and the input / output interface are connected through a system bus, and the communication interface, the display unit, and the input device are connected to the system bus through the input / output interface. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system and a computer program. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The input / output interface of the computer device is used to exchange information between the processor and external devices. The communication interface of the computer device is used to communicate with external terminals in a wired or wireless manner, and the wireless manner can be implemented through WIFI, a mobile cellular network, near field communication (NFC), or other technologies. When the computer program is executed by the processor, it implements a method for loading patterns during the debugging of a testing machine. The display unit of the computer device is used to form a visually visible picture, which can be a display screen, a projection device, or a virtual reality imaging device. The display screen can be a liquid crystal display screen or an electronic ink display screen. The input device of the computer device can be a touch layer covering the display screen, or a button, a trackball, or a touchpad provided on the housing of the computer device, or an external keyboard, touchpad, or mouse, etc.
[0099] Those skilled in the art can understand that Figure 9 the structure shown in the figure is only a block diagram of some structures related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have a different component layout.
[0100] In one embodiment, a computer device is further provided, including a memory and a processor. A computer program is stored in the memory, and when the processor executes the computer program, the steps in the above method embodiments are implemented.
[0101] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0102] In one embodiment, a computer program product is provided, including a computer program. When the computer program is executed by the processor, the steps in the above method embodiments are implemented.
[0103] Those of ordinary skill in the art can understand that all or part of the processes in the methods of the above embodiments can be completed by instructing relevant hardware through a computer program. The computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above methods. Among them, any reference to a memory, database, or other medium used in the embodiments provided in the present application can include at least one of non-volatile memory and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetoresistive random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM), etc. The databases involved in the embodiments provided in the present application can include at least one of relational databases and non-relational databases. Non-relational databases can include distributed databases based on blockchain, etc., without limitation. The processors involved in the embodiments provided in the present application can be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, data processing logics based on quantum computing, artificial intelligence (AI) processors, etc., without limitation.
[0104] The technical features of the above embodiments can be combined arbitrarily. For the sake of concise description, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, it should be considered as the scope recorded in the present application.
[0105] The above-described embodiments merely represent several implementation manners of the present application. The description thereof is relatively specific and detailed, but it should not be construed as a limitation to the patent scope of the present application. It should be noted that for those of ordinary skill in the art, without departing from the concept of the present application, several modifications and improvements can still be made, and these all fall within the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the appended claims.
Claims
1. A method for loading patterns during the debugging of a testing machine, characterized in that, The method includes: Receiving a debugging request; Determining a selected pattern block group corresponding to the debugging request; Loading the selected pattern block group; Performing debugging based on the loaded selected pattern block group and continuing to load unselected pattern block groups in the background.
2. The method according to claim 1, wherein The debugging request carries at least one selected test item; the selected pattern block group includes pattern blocks corresponding to each of the test items; the method further includes: Determining the priority of each of the test items and obtaining the priority of the pattern blocks in the selected pattern block group based on the priority of the test items; The loading the selected pattern block group includes: Loading the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks.
3. The method according to claim 2, wherein The method further includes: In the case where there are pattern blocks that have been loaded, performing debugging based on the pattern blocks and continuing to load the unloaded pattern blocks in the selected pattern block group in the background.
4. The method according to claim 3, wherein The performing debugging based on the pattern blocks in the case where there are pattern blocks that have been loaded includes: In the case where there are pattern blocks that have been loaded, generating a first loaded complete flag corresponding to the loaded pattern blocks; Performing debugging according to the loaded pattern blocks based on the first loaded complete flag.
5. The method according to claim 4, wherein The loading the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks includes: Determining a current pattern block based on the priority of the pattern blocks; Loading the current pattern block in the case where it is determined that the current pattern block does not have the first loaded complete flag; In the case where it is determined that the current pattern block has the first loaded complete flag, continuing to execute the step of determining the current pattern block based on the priority of the pattern blocks until all the pattern blocks in the selected pattern block group are loaded.
6. The method according to any one of claims 2 to 5, characterized in that, The receiving a debugging request includes: Receiving a debugging request through an interface, where the interface displays each test item; The determining the priority of each of the test items includes: Determining the priority of each of the test items based on the selection order of each of the test items in the interface.
7. The method according to any one of claims 1 to 5, characterized in that The method further includes: Dividing a pattern original file into multiple pattern blocks according to a debugging function, and the storage addresses of each of the pattern blocks are different.
8. The method according to any one of claims 1 to 5, characterized in that The determining a selected pattern block group corresponding to the debugging request includes: Obtaining a user program and a first pattern block corresponding to each of the test items; Scanning each of the user programs to obtain a pattern block identifier and determining each second pattern block based on the scanned pattern block identifier; The first pattern blocks corresponding to each of the test items and each of the second pattern blocks are used as the selected pattern block group corresponding to the debugging request.
9. The method according to claim 1, characterized in that, The debugging based on the loaded selected pattern block group includes: When the loading of the selected pattern block group is completed, generating a second loading completion flag corresponding to the selected pattern block group and outputting the second loading completion flag; Based on the second loading completion flag, performing debugging according to the loaded selected pattern block group.
10. The method according to claim 9, wherein Before loading the selected pattern block group, it further includes: When it is determined that there is a second loading completion flag corresponding to the selected pattern block group, continuing to execute the step of debugging based on the loaded selected pattern block group; When it is determined that there is no second loading completion flag corresponding to the selected pattern block group, continuing to execute the step of loading the selected pattern block group.
11. The method according to any one of claims 1 to 5, characterized in that, The continuing to load the unselected pattern block group in the background includes: In the background, sequentially loading each pattern block in the unselected pattern block group according to the address order of each pattern block in the unselected pattern block group, where the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.
12. The method according to any one of claims 1 to 5, characterized in that, After the continuing to load the unselected pattern block group in the background, it includes: Receiving a new debugging request; Determining a new selected pattern block group corresponding to the new debugging request from the unselected pattern block group; Loading the new selected pattern block group; Performing debugging based on the loaded new selected pattern block group and continuing to load a new unselected pattern block group in the background.
13. A method for loading patterns during the debugging of a testing machine, characterized in that, When applied to a driver, the method includes: Receiving a selected pattern block group, where the selected pattern block group is the selected pattern block group corresponding to the debugging request determined after the host computer receives the debugging request; Generating a write instruction based on the selected pattern block group and sending the write instruction to the FPGA. The write instruction is used to instruct the FPGA to write the selected pattern block group into the corresponding storage address space in the DDR, and the selected pattern block group in the DDR is used for debugging.
14. A pattern loading system during the debugging of a testing machine, characterized in that, It includes: A host computer for obtaining a selected pattern block group by executing the pattern loading method in the test machine debugging according to any one of claims 1 to 12; A driver for receiving the selected pattern block group, generating a write instruction based on the selected pattern block group, and sending the write instruction to the FPGA; An FPGA for writing the selected pattern block group into the corresponding storage address space in the DDR based on the write instruction, and the selected pattern block group in the DDR is used for debugging.
15. A pattern loading device during the test of a testing machine, characterized in that, The device includes: A first receiving module, configured to receive a debugging request; A selected pattern block group determining module, configured to determine a selected pattern block group corresponding to the debugging request; A loading module, configured to load the selected pattern block group; A debugging module, configured to perform debugging based on the loaded selected pattern block group and continue to load unselected pattern block groups in the background.
16. A pattern file loading device during the debugging of a testing machine, characterized in that, Applied to driving, the device includes: A second receiving module, configured to receive a selected pattern block group, which is a selected pattern block group corresponding to the debugging request determined after the host computer software receives the debugging request; A writing module, configured to generate a writing instruction based on the selected pattern block group and send the writing instruction to the FPGA. The writing instruction is used to instruct the FPGA to write the selected pattern block group into a corresponding storage address space in the DDR, and the selected pattern block group in the DDR is used for debugging.
Citation Information
Patent Citations
Adjustment comparison method of test vectors
CN101644744A
Chip testing method and device
CN102608518A
Coding for base strips with a plurality of chambers
CN105474178A
Test method of control chip and related equipment
CN113393892A
Testing method and device of computing equipment, electronic equipment and storage medium
CN116302726A