Pattern loading method, system and device in testing machine debugging

By determining and loading priority pattern block groups during test machine debugging, and performing foreground debugging and background loading in parallel, the problem of long debugging time of traditional test machines is solved and debugging efficiency is improved.

CN120353657BActive Publication Date: 2025-09-09HANGZHOU CHANGCHUAN TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202510828152.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-20
Publication Date
2025-09-09
Estimated Expiration
2045-06-20

AI Technical Summary

Technical Problem

During the debugging process of traditional test machines, it takes too long to load the patterns corresponding to all functions, resulting in low debugging efficiency, especially when the functions are complex or the number of patterns is large.

Method used

By receiving the debugging request, the pattern block group is determined to be selected, and the selected pattern block group is loaded according to the priority, while the unselected pattern block groups continue to be loaded in the background, so as to realize the parallel execution of foreground debugging and background loading.

Benefits of technology

It improves the efficiency of testing machine debugging, reduces loading time, and speeds up the overall debugging process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120353657B_ABST
    Figure CN120353657B_ABST
Patent Text Reader

Abstract

The present application relates to a method, system and device for loading patterns in the debugging of a test machine. The method comprises: 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. When this method is used, when loading a pattern, only the pattern block group corresponding to the debugging request is loaded, and debugging can be performed. Subsequently, during the debugging process, the unselected pattern block groups are continuously 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, debugging and loading are performed simultaneously, which can improve debugging efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of semiconductor technology, and in particular to a pattern loading method, system and device for debugging a test machine. Background Art

[0002] In traditional tester debugging, patterns corresponding to all functions must be loaded before debugging. (In the chip testing industry, a pattern represents a test vector or code data, typically a collection of files containing multiple timing vectors. These files include signal definitions, timing information, parameter configurations, and so on.) The more complex the chip functions and the more patterns there are, the longer the loading process takes, sometimes taking up to 40 minutes or even an hour. This full-load approach results in excessive debugging time and costs, especially when debugging complex functions or a large number of patterns, resulting in low debugging efficiency. Summary of the Invention

[0003] Based on this, it is necessary to provide a pattern loading method, system and device for testing machine debugging that can improve test efficiency in response to the above technical problems.

[0004] In a first aspect, the present application provides a method for loading a pattern during debugging of a test machine, the method comprising:

[0005] Receive debugging requests;

[0006] Determining a selected pattern block group corresponding to the debugging request;

[0007] Load the selected pattern block group;

[0008] Debugging is performed based on the loaded selected pattern block group, and unselected pattern block groups continue to be loaded in the background.

[0009] 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; and the method further includes:

[0010] 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;

[0011] The loading of the selected pattern block group includes:

[0012] The pattern blocks in the selected pattern block group are loaded in sequence according to the priority of the pattern blocks.

[0013] In one embodiment, the method further comprises:

[0014] In the case that there is a pattern block that has been loaded, debugging is performed based on the pattern block, and the pattern blocks that have not been loaded in the selected pattern block group continue to be loaded in the background.

[0015] In one embodiment, when there is a loaded pattern block, debugging based on the pattern block includes:

[0016] If there is a pattern block that has been loaded, generating a first loading completion flag corresponding to the pattern block that has been loaded;

[0017] Based on the first loading completion flag, debugging is performed according to the loaded pattern block.

[0018] In one embodiment, loading the pattern blocks in the selected pattern block group in sequence according to the priority of the pattern blocks includes:

[0019] Determining a current pattern block based on the priority of the pattern block;

[0020] If it is determined that the first loading completion flag does not exist in the current pattern block, loading the current pattern block;

[0021] When it is determined that the current pattern block has the first loading completion flag, the step of determining the current pattern block based on the priority of the pattern block is continued until all pattern blocks in the selected pattern block group are loaded.

[0022] In one embodiment, receiving a debugging request includes:

[0023] receiving a debugging request through an interface, wherein the interface displays various test items;

[0024] Determining the priority of each test item includes:

[0025] The priority of each test item is determined based on the selection order of each test item in the interface.

[0026] In one embodiment, the method further comprises:

[0027] According to the debugging function, the pattern original file is divided into multiple pattern blocks, and the storage address of each pattern block is different.

[0028] In one embodiment, determining a selected pattern block group corresponding to the debugging request includes:

[0029] Obtaining the user program and the first pattern block corresponding to each of the test items;

[0030] 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;

[0031] The first pattern block and the second pattern block corresponding to each of the test items are used as a selected pattern block group corresponding to the debugging request.

[0032] In one embodiment, the debugging based on the loaded selected pattern block group includes:

[0033] 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;

[0034] Based on the second loading completion flag, debugging is performed according to the selected pattern block group that has been loaded.

[0035] In one embodiment, before loading the selected pattern block group, the method further includes:

[0036] If it is determined that there is a second loading completion flag corresponding to the selected pattern block group, continuing to perform the step of debugging based on the loaded selected pattern block group;

[0037] If it is determined that there is no second loading completion flag corresponding to the selected pattern block group, the step of loading the selected pattern block group is continued.

[0038] In one embodiment, the step of continuing to load unselected pattern block groups in the background includes:

[0039] In the background, each pattern block in the unselected pattern block group is loaded in sequence according to the address order of each pattern block in the unselected pattern block group, wherein the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.

[0040] In one embodiment, after continuing to load the unselected pattern block groups in the background, the method includes:

[0041] Receive new debugging requests;

[0042] Determine a new selected pattern block group corresponding to the new debugging request from the unselected pattern block groups;

[0043] Loading the newly selected pattern block group;

[0044] Debugging is performed based on the loaded new selected pattern block group, and new unselected pattern block groups continue to be loaded in the background.

[0045] In a second aspect, the present application further provides a pattern loading method for debugging a test machine, which is applied to a driver, and the method includes:

[0046] receiving a selected pattern block group, wherein the selected pattern block group is a selected pattern block group corresponding to the debugging request determined by the host computer after receiving the debugging request;

[0047] A write instruction is generated based on the selected pattern block group and sent 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.

[0048] In a third aspect, the present application further provides a pattern loading system for debugging a test machine, comprising:

[0049] The host computer is used to execute the pattern loading method in the above-mentioned test machine debugging to obtain the selected pattern block group;

[0050] A driver, configured 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;

[0051] The FPGA is used to write the selected pattern block group into a 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.

[0052] In a fourth aspect, the present application further provides a pattern loading device for a tester, the device comprising:

[0053] A first receiving module, configured to receive a debugging request;

[0054] A selected pattern block group determining module, configured to determine a selected pattern block group corresponding to the debugging request;

[0055] A loading module, used for loading the selected pattern block group;

[0056] The debugging module is used to perform debugging based on the loaded selected pattern block group and continue to load unselected pattern block groups in the background.

[0057] In a fifth aspect, the present application further provides a pattern file loading device for testing machine debugging, which is applied to a driver, and the device includes:

[0058] A second receiving module is configured to receive a selected pattern block group, wherein the selected pattern block group is a selected pattern block group corresponding to the debugging request determined by the host computer software after receiving the debugging request;

[0059] A write module is used to generate a write instruction based on the selected pattern block group and send the write instruction to the FPGA, wherein 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.

[0060] The pattern loading method, system and device in the above-mentioned test machine debugging receive a debugging request; determine a selected pattern block group corresponding to the debugging request; load the selected pattern block group; debug based on the loaded selected pattern block group, and continue to load unselected pattern block groups in the background. In this way, when loading the pattern, only the pattern block group corresponding to the debugging request is loaded to perform debugging. Subsequently, in the debugging process, the unselected pattern block groups continue to be 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, debugging and loading are performed at the same time, which can improve debugging efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0061] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the following briefly introduces the drawings required for use in the embodiments of the present application or related technical descriptions. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying any creative work.

[0062] Figure 1 A schematic diagram of a pattern loading system during debugging of a test machine in one embodiment;

[0063] Figure 2 Schematic diagram of a flow chart of a pattern loading method in debugging a test machine in one embodiment;

[0064] Figure 3 This is a schematic diagram of the pattern original file division result in one embodiment;

[0065] Figure 4 A flowchart of a loading step in one embodiment;

[0066] Figure 5 Schematic diagram of the flow of a pattern loading method in testing machine debugging in another embodiment;

[0067] Figure 6 A schematic flow chart of a pattern loading method in testing machine debugging in yet another embodiment;

[0068] Figure 7 A structural block diagram of a pattern loading device in debugging a test machine in one embodiment;

[0069] Figure 8 It is a structural block diagram of a pattern loading device in debugging a test machine in another embodiment;

[0070] Figure 9 FIG. 1 is a diagram showing the internal structure of a computer device in one embodiment. DETAILED DESCRIPTION

[0071] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0072] It should be noted that the terms "first", "second", etc. used in this application may 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 this application and any variations thereof are intended to cover non-exclusive inclusions. The term "plurality" used in this application refers to two or more. The term "and / or" used in this application refers to one of the solutions or any combination of multiple solutions.

[0073] The pattern loading method in the test machine debugging provided by the embodiment of the present application can be applied to Figure 1The pattern loading system for debugging a test machine shown includes a host computer, a driver, and a field-programmable gate array (FPGA), wherein the host computer is used to execute the pattern loading method for debugging a test machine 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 to 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 user's chip to be tested. The FPGA can be a field-programmable gate array chip of a lower-machine resource board.

[0074] The host computer includes a software program that determines the selected pattern block group, specifically raising the priority of the selected pattern block group required for debugging, maintaining or reducing the priority of the remaining non-selected pattern block groups, and sending the selected pattern block group to the driver first. The driver parses the selected pattern block group and determines the mapping between each pattern block in the selected pattern block group and the storage address in the DDR. Based on this mapping, it generates a write instruction for the corresponding pattern block and sends the write instruction to the FPGA.

[0075] During the test phase, the FPGA can read the pattern block group from the DDR and run the pattern block group line by line.

[0076] 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 of the DDR, and returns the write result to the host computer through the driver.

[0077] When the above system loads a pattern, it only loads the pattern block group corresponding to the debugging request and can perform debugging. Subsequently, during the debugging process, the unselected pattern block groups continue to be 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, debugging and loading are carried out at the same time, which can improve debugging efficiency.

[0078] In an exemplary embodiment, Figure 2 As shown, a pattern loading method for testing machine debugging is provided, which is applied to Figure 1 The host computer in the example is used to illustrate, including the following steps 202 to 206. Among them:

[0079] S202: Receive a debugging request.

[0080] A debug request is a request to debug one or more debug functions of the user's chip under test based on a pattern. Before debugging, the corresponding pattern needs to be loaded into the DDR in advance.

[0081] S204: Determine a selected pattern block group corresponding to the debugging request.

[0082] The pattern block group includes several pattern blocks, each pattern block corresponds to a pattern burst, and each pattern burst includes several CBP files.

[0083] The debugging request may include debugging of at least one debugging function, so the pattern block group may include a pattern block corresponding to at least one function.

[0084] Optionally, the pattern blocks corresponding to different debugging functions are different or partially the same. Therefore, after determining the pattern blocks corresponding to each debugging function, the pattern blocks can be deduplicated first, and then the pattern block group can be determined based on the deduplicated pattern blocks.

[0085] In some optional embodiments, the method further includes: dividing the original pattern file into a plurality of pattern blocks according to the debugging function, and each pattern block has a different storage address. Figure 3 As shown, in this application, the complete pattern original file is divided into multiple pattern blocks in advance according to the debugging function. The storage addresses of these pattern blocks in 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.

[0086] In the present application, each pattern block can be determined based on the debugging function corresponding to the debugging request, thereby obtaining a selected pattern block group based on the determined pattern blocks, wherein the loading priority of the selected pattern block group is higher than that of the unselected pattern block groups corresponding to the original pattern file.

[0087] It should be noted that after the selected pattern block group is determined, the other pattern blocks in the original pattern file constitute the non-selected pattern block group, that is, the original pattern file is divided into two parts, one part is the selected pattern block group, and the other part is the non-selected pattern block group. In other embodiments, after the selected pattern block group is determined, the other unloaded pattern blocks in the original pattern file constitute the non-selected pattern block group, that is, the original pattern file is divided into three parts, one part is the selected pattern block group, one part is the non-selected pattern block group, and the other part is the loaded pattern block group. Those skilled in the art can select any of the above implementation methods based on their needs.

[0088] S206: Load the selected pattern block group.

[0089] 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, determines 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.

[0090] Each pattern block in the selected pattern block group may also include a priority, that is, based on the priority of the debugging function, the priority of each pattern block in the selected pattern block group is determined, so that after the driver obtains the selected pattern block group, it generates a corresponding write instruction based on the priority of each pattern block. When executing the write instruction, the FPGA first writes the pattern block with a high priority into the DDR.

[0091] S208: Debugging is performed based on the loaded selected pattern block group, and unselected pattern block groups continue to be loaded in the background.

[0092] In this application, after the selected pattern block group is loaded into the DDR, the corresponding debugging function of the user's chip to be tested can be debugged. In this application, in order to improve debugging efficiency, after the selected pattern block group is loaded into the DDR, debugging can be performed in the foreground, and unselected pattern block groups continue to be loaded in the background, wherein the foreground and background processing do not interfere with each other. Optionally, the foreground and background processing can be implemented through different processes or threads. For example, debugging is implemented based on the pattern block group loaded into the DDR through a first process, and unselected pattern block groups continue to be loaded through a second process.

[0093] In some optional embodiments, continuing to load the unselected pattern block group in the background includes: loading each pattern block in the unselected pattern block group in sequence in the background according to the address order of each pattern block in the unselected pattern block group, wherein the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.

[0094] 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 address of the pattern block in the DDR. In other embodiments, the pattern blocks in the unselected pattern block group can also be loaded sequentially according to other orders of the pattern blocks in the unselected pattern block group.

[0095] In some optional embodiments, after debugging of some debugging functions is completed, the tester can debug other functions. Specifically, after continuing to load the unselected pattern block group in the background, the process 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 continuing to load new unselected pattern block groups in the background.

[0096] The function to be debugged corresponding to the new debugging request may be the same as, different from, or partially overlap with the function to be debugged of the original debugging request, and no specific limitation is made here.

[0097] In this application, a new selected pattern block group is determined based on a new debug request, as described above. Optionally, in this application, a new selected pattern block group corresponding to a new debug request can be determined only from unselected pattern block groups, that is, the new selected pattern block group is a pattern block group that has not been loaded into the DDR, and a new selected pattern block group is subsequently loaded; debugging is performed based on the loaded new selected pattern block group, and new unselected pattern block groups continue to be loaded in the background.

[0098] In other embodiments, the new selected pattern block group determined based on the new debugging request can be determined from the pattern original file, so 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 be determined first whether the new selected pattern block group is loaded into the DDR or whether the pattern blocks in the new selected pattern block group are loaded into the DDR. If so, there is no need to load it again, otherwise load the new selected pattern block group or only load the pattern blocks that have not been loaded in the new selected pattern block group.

[0099] The pattern loading method in the above-mentioned test machine debugging 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 unselected pattern block groups in the background. In this way, when the pattern is loaded, only the pattern block group corresponding to the debugging request is loaded for debugging. Subsequently, in the debugging process, the unselected pattern block group continues to be 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, debugging and loading are performed at the same time, which can improve debugging efficiency.

[0100] In one optional embodiment, the debugging request carries at least one selected test item; the selected pattern block group includes a pattern block corresponding to each test item; the method further includes: determining the priority of each test item, and obtaining the priority of the pattern block 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 block.

[0101] The test items correspond to debugging functions, one test item corresponds to one debugging function, and the debugging request may carry multiple debugging functions, that is, multiple test items, so that the selected pattern block group includes the pattern blocks corresponding to each test item.

[0102] The present application not only includes that the priority of the selected pattern block group is higher than the priority of the unselected pattern block group, but also limits the priority of the pattern blocks in the selected pattern block group, where different test items correspond to different pattern blocks. Therefore, 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.

[0103] The method for determining the priority of each pattern block based on the priority of the test item 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 test item with the next priority and the pattern block corresponding to the test item with the next priority, and when the pattern block corresponding to the test item with the next priority does not overlap with the pattern block of the test item with the high priority, setting the priority of the pattern block corresponding to the test item with the next priority; if there is overlap, obtaining the non-overlapping pattern block, and only setting the priority of the non-overlapping pattern block is required.

[0104] In one optional embodiment, receiving a debugging request includes: receiving the debugging request via an interface, wherein the interface displays each test item; and determining the priority of each test item includes: determining the priority of each test item based on the order in which the test items are selected in the interface. Similarly, a user program corresponding to each test item is obtained and scanned, but no pattern block identifier is obtained. Therefore, only the pattern block included in each test item in the pattern block group is selected, i.e., the second pattern block corresponding to the pattern block identifier is not called.

[0105] The priority of a test item can be determined based on a debugging request. Specifically, the test items can be displayed on an interface, and the user can select the test items in a certain order. The priority of the test items can then be determined based on the order in which the test items are selected on the interface. In other embodiments, the priority of the test items can be set by default rather than based on user selection. This is not specifically limited here, and those skilled in the art can determine the priority of each test item based on their needs.

[0106] In the above embodiment, not only the priority of the selected pattern block group is taken into consideration, but also the priority of the pattern blocks in the selected pattern block group is set, thereby improving the test efficiency.

[0107] In one optional embodiment, the method further includes: in the case where there is a loaded pattern block, debugging the user chip to be tested based on the pattern block, and continuing to load the unloaded pattern blocks in the selected pattern block group in the background.

[0108] In this application, the granularity is subdivided into test items. When the pattern block corresponding to a test item is loaded, debugging is performed based on the pattern block corresponding to the test item, and the pattern blocks that have not been loaded in other selected pattern block groups are continued to be loaded in the background.

[0109] For ease of understanding, combined Figure 4 As shown, during the loading process, the pattern blocks corresponding to the test items with higher priority are loaded first, and then after the pattern blocks corresponding to the test items with higher priority are loaded, the user's chip to be tested can be debugged, and during the debugging process, other unloaded pattern blocks in the selected pattern block group continue to be loaded in the background, and after other unloaded pattern blocks in the selected pattern block group are loaded in the background, the unselected pattern block group continues to be loaded in the background.

[0110] In the above embodiment, the granularity is subdivided into test items, so that as long as the pattern block corresponding to one test item is loaded, the test can be performed, and other unloaded pattern blocks in the selected pattern block group are loaded synchronously in the background to facilitate the test of the next debugging function, which can further improve the test efficiency.

[0111] In one of the optional embodiments, in the presence of a loaded pattern block, debugging is performed based on the pattern block, including: in the presence of a loaded pattern block, generating a first loading completion identifier corresponding to the loaded pattern block; and based on the first loading completion identifier, debugging is performed according to the loaded pattern block.

[0112] After the pattern block corresponding to the test item is loaded, a corresponding first loading completion mark can be generated. The first loading completion mark can be displayed on the interface to prompt the user to debug the user's chip to be tested. After receiving user instructions or automatically starting debugging, other unloaded pattern blocks in the selected pattern block group are synchronously loaded in the background.

[0113] 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 loading of the pattern block corresponding to the test item is complete.

[0114] In one optional embodiment, the pattern blocks in the selected pattern block group are loaded sequentially according to the priority of the pattern blocks, including: determining the current pattern block based on the priority of the pattern blocks; loading the current pattern block when it is determined that the current pattern block does not have a first loading completion identifier; and continuing to perform the step of determining the current pattern block based on the priority of the pattern blocks when it is determined that the current pattern block has a first loading completion identifier, until all pattern blocks in the selected pattern block group are loaded.

[0115] Based on the combination Figure 4 As shown, the current pattern block is first determined based on the priority of the pattern block. When it is determined that the current pattern block does not have the first loading completion identifier, that is, the test item corresponding to the current pattern block does not have the first loading completion identifier, that is, the current pattern block has not been loaded into the DDR, so the current pattern block is loaded. If it has been loaded, the next pattern block is obtained based on the priority of the pattern block.

[0116] One thing that needs to be explained is that generally, the priority of each pattern block corresponding to a test item is the same. Therefore, after each pattern block is loaded, it is also possible to determine whether the pattern block corresponding to the current test item is loaded. If so, the first loading completion mark is displayed on the interface to facilitate debugging.

[0117] In one optional embodiment, determining a selected pattern block group corresponding to a debugging request includes: obtaining a user program and a first pattern block corresponding to each test item; scanning each user program to obtain a pattern block identifier, and determining each second pattern block based on the scanned pattern block identifier; and using the first pattern block and each second pattern block corresponding to each test item as the selected pattern block group corresponding to the debugging request.

[0118] Each test item in this application corresponds to a first pattern block and a user program. For example, assuming that the debugging request includes three test items, test item A, test item B and test item C, taking test item A as an example, it includes a first pattern block A1 and a user program a; taking test item B as an example, it includes a first pattern block B1 and a user program b; taking test item C as an example, it includes a first pattern block C1 and a user program c.

[0119] Scanning these user programs can obtain pattern block identifiers, and each second pattern block is determined based on the scanned pattern block identifiers; for example, user program a, user program b, and user program c are scanned respectively to obtain each pattern block identifier. Assuming that user program a is scanned to obtain second pattern blocks A2 and A3, user program b is scanned to obtain second pattern blocks B2 and B3, and user program c is scanned to obtain second pattern blocks C2 and C3, the selected pattern block group includes the first pattern block A1, the first pattern block B1, the first pattern block C1, the second pattern blocks A2 and A3, the second pattern blocks B2 and B3, and the second pattern blocks C2 and C3.

[0120] In some optional embodiments, the first pattern block A1, the first pattern block B1, and the first pattern block C1 correspond to the test items and are necessarily different. However, the second pattern blocks A2 and A3, the second pattern blocks B2 and B3, and the second pattern blocks C2 and C3 in the user program may be the same, different, or partially the same. In order to ensure the accuracy of the selected pattern block group, the second pattern block group obtained by scanning the user program is first deduplicated in this application, and then the selected pattern block group is obtained based on the deduplicated second pattern block groups and the first pattern block groups.

[0121] In some optional embodiments, in the process of determining the selected pattern block group, it is also necessary to identify the pattern block corresponding to each test item, so as to facilitate the subsequent determination of the priority of each pattern block, and thus load the pattern blocks corresponding to each test item in sequence according to the priority of the pattern block.

[0122] In one of the optional embodiments, debugging is performed based on the loaded selected pattern block group, including: when the loading of the selected pattern block group is completed, 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, debugging is performed according to the loaded selected pattern block group.

[0123] 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, debug according to the selected pattern block group that has been loaded, and then load the corresponding unselected pattern block group in the background.

[0124] In one of the optional embodiments, before loading the selected pattern block group, the method further includes: if it is determined that there is a second loading completion identifier corresponding to the selected pattern block group, continuing to execute the step of debugging based on the loaded selected pattern block group; if it is determined that there is no second loading completion identifier corresponding to the selected pattern block group, continuing to execute the step of loading the selected pattern block group.

[0125] Each debugging corresponds to a selected pattern block group. In this embodiment, each time the selected pattern block group is determined, it can be determined whether the selected pattern block group has been loaded, for example, whether there is a corresponding second loading completion flag. If so, debugging can be performed directly, otherwise the selected pattern block group is loaded first.

[0126] In an exemplary embodiment, Figure 5 As shown, a pattern loading method for testing machine debugging is provided, which is applied to Figure 1 The driver in is taken as an example to illustrate, including the following steps 502 to 504. Among them:

[0127] S502: receiving a selected pattern block group, where the selected pattern block group is a selected pattern block group corresponding to the debugging request determined by the host computer after receiving the debugging request.

[0128] The limitation of the selected pattern block group can be specifically referred to above. After the host computer receives the debugging request, it determines the selected pattern block group corresponding to the debugging request.

[0129] 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.

[0130] The driver can parse the selected pattern block group and determine the mapping relationship between each pattern block in the selected pattern block group and the storage address in the DDR. Based on the mapping relationship, it generates a write instruction for the corresponding pattern block and sends the write instruction to the FPGA. The FPGA receives the write instruction sent by the driver, parses the write instruction, and 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.

[0131] For ease of understanding, Figure 6 As shown, Figure 6 Schematic diagram of a pattern loading method in testing machine debugging in another embodiment. In this embodiment, the host computer divides the original pattern file into multiple pattern blocks according to debugging functions in advance. The host computer interface displays each test item and receives a debugging request through the interface. The debugging request carries the test item, so that the host computer can obtain the first pattern block and each user program corresponding to each test item, and then scan each user program to obtain each second pattern block. Based on the first pattern block and the second pattern block, a selected pattern block group is obtained, and the selected pattern block group is subsequently 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 based on the priority of the pattern block whether the pattern block corresponding to the current test item is loaded. If it is loaded, debugging is performed directly, otherwise the pattern block corresponding to the current test item is loaded. After the pattern block corresponding to the current test item is loaded, the first loading completion identifier is output, and then the user's chip to be tested can be debugged, and the pattern blocks that have not been loaded in the selected pattern block group will continue to be loaded in the background. After the pattern blocks that have not been loaded in the selected pattern block group are loaded, the unselected pattern block group will continue to be loaded. Subsequently, new debugging requests can be received and the above steps can be continued. In this way, when the pattern is loaded, only the pattern block group corresponding to the debugging request is 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, debugging and loading are carried out at the same time, which can improve debugging efficiency.

[0132] It should be understood that, although the various steps in the flowcharts involved in the above embodiments are displayed in sequence according to the instructions of the arrows, these steps are not necessarily performed in sequence in the order indicated by the arrows. Unless clearly stated herein, the execution of these steps is not strictly limited in order, and these steps can be performed in other orders. Moreover, at least a portion of the steps in the flowcharts involved in the above embodiments may include multiple steps or multiple stages, and these steps or stages are not necessarily performed at the same time, but can be performed at different times, and the execution order of these steps or stages is not necessarily performed in sequence, but can be performed in turn or alternately with at least a portion of the steps or stages in other steps or other steps. It is understandable that the various steps in different embodiments can be freely combined as needed, and the various non-contradictory schemes formed by the combination all fall within the scope of protection of this application.

[0133] Based on the same inventive concept, embodiments of the present application further provide a device for pattern loading during test machine debugging, which is used to implement the aforementioned method for pattern loading during test machine debugging. The solution provided by this device is similar to the solution described in the aforementioned method. Therefore, the specific limitations of one or more embodiments of the device for pattern loading during test machine debugging provided below can be found in the aforementioned limitations of the method for pattern loading during test machine debugging, and will not be further elaborated here.

[0134] In an exemplary embodiment, Figure 7 As shown, a pattern loading device for debugging a test machine is provided, comprising: a first receiving module 701, a selected pattern block group determination module 702, a loading module 703 and a debugging module 704, wherein:

[0135] A first receiving module 701 is configured to receive a debugging request;

[0136] A selected pattern block group determining module 702 is configured to determine a selected pattern block group corresponding to a debugging request;

[0137] The loading module 703 is used to load the selected pattern block group;

[0138] The debugging module 704 is used to perform debugging based on the loaded selected pattern block group and continue to load the unselected pattern block groups in the background.

[0139] 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; and the apparatus further includes:

[0140] A priority determination module is used to determine the priority of each test item and obtain the priority of the pattern block in the selected pattern block group based on the priority of the test item;

[0141] The loading module 703 is further configured to sequentially load the pattern blocks in the selected pattern block group according to the priorities of the pattern blocks.

[0142] In one optional embodiment, the debugging module 704 is further configured to perform debugging based on the pattern block when there is a loaded pattern block, and continue to load the unloaded pattern blocks in the selected pattern block group in the background.

[0143] In one of the optional embodiments, the above-mentioned debugging module 704 is also used to generate a first loading completion identifier corresponding to the loaded pattern block when there is a loaded pattern block; and based on the first loading completion identifier, debug according to the loaded pattern block.

[0144] In one of the optional embodiments, the above-mentioned loading module 703 is also used to 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 identifier, the current pattern block is loaded; when it is determined that the current pattern block has the first loading completion identifier, the step of determining the current pattern block based on the priority of the pattern block is continued until the loading of each pattern block in the selected pattern block group is completed.

[0145] In one of the optional embodiments, the first receiving module 701 is further used to receive a debugging request through an interface, where the interface displays each test item; the priority determination module is used to determine the priority of each test item based on the selection order of each test item in the interface.

[0146] In one optional embodiment, the apparatus further includes a pre-division module for dividing the original pattern file into a plurality of pattern blocks according to a debugging function, and each pattern block has a different storage address.

[0147] In one of the optional embodiments, the above-mentioned selected pattern block group determination module 702 is specifically used to obtain the user program and the first pattern block corresponding to each test item; scan each user program to obtain a pattern block identifier, and determine each second pattern block based on the scanned pattern block identifier; and use the first pattern block and each second pattern block corresponding to each test item as the selected pattern block group corresponding to the debugging request.

[0148] In one of the optional embodiments, the above-mentioned debugging module 704 is specifically used to generate a second loading completion identifier corresponding to the selected pattern block group when the loading of the selected pattern block group is completed, and output the second loading completion identifier; based on the second loading completion identifier, debugging is performed according to the selected pattern block group that has been loaded.

[0149] In one of the optional embodiments, the above-mentioned loading module 703 is specifically used to continue to execute the step of debugging based on the loaded selected pattern block group when it is determined that there is a second loading completion identifier corresponding to the selected pattern block group; and continue to execute the step of loading the selected pattern block group when it is determined that there is no second loading completion identifier corresponding to the selected pattern block group.

[0150] In one of the optional embodiments, the above-mentioned debugging module 704 is specifically used to load each pattern block in the unselected pattern block group in sequence according to the address order of each pattern block in the unselected pattern block group in the background, where the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.

[0151] In one of the optional embodiments, the above-mentioned first receiving module 701 is specifically used 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 new unselected pattern block groups in the background.

[0152] In an exemplary embodiment, Figure 8 As shown, a pattern loading device for debugging a test machine is provided, comprising: a second receiving module 801 and a writing module 802, wherein:

[0153] The second receiving module 801 is used to receive a selected pattern block group, where the selected pattern block group is a selected pattern block group corresponding to the debugging request determined by the host computer software after receiving the debugging request;

[0154] The write module 802 is used to 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.

[0155] Each module in the pattern loading device used in the tester debugging process can be implemented in whole or in part through software, hardware, or a combination thereof. Each module can be embedded in or independent of a processor within a computer device in hardware form, or stored in a computer device memory in software form, allowing the processor to call and execute the corresponding operations of each module.

[0156] In an exemplary embodiment, a computer device is provided. The computer device may be a terminal, and its internal structure diagram may be as shown in FIG. Figure 9 As shown. The computer device includes a processor, memory, an input / output interface, a communication interface, a display unit, and an input device. The processor, memory, and input / output interface are connected via a system bus, and the communication interface, display unit, and input device are connected to the system bus via the input / output interface. 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 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 via wired or wireless communication, and the wireless communication can be achieved via Wi-Fi, a mobile cellular network, near-field communication (NFC), or other technologies. When executed by the processor, the computer program implements a pattern loading method for debugging a test machine. The display unit of the computer device is used to form a visually visible image, and 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, and the input device of the computer device can be a touch layer covering the display screen, or a button, trackball or touchpad set on the computer device casing, or an external keyboard, touchpad or mouse.

[0157] Those skilled in the art will understand that Figure 9The structure shown in the figure is only a block diagram of a part of the structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied. The specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different component arrangement.

[0158] In one embodiment, a computer device is further provided, including a memory and a processor. The memory stores a computer program, and the processor implements the steps in the above method embodiments when executing the computer program.

[0159] In one embodiment, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps in the above-mentioned method embodiments are implemented.

[0160] In one embodiment, a computer program product is provided, including a computer program, which implements the steps in the above method embodiments when executed by a processor.

[0161] Those skilled in the art will understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the 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-mentioned methods. In particular, any reference to memory, database, or other media used in the embodiments provided in this 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), magnetic 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 take various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM). The databases involved in the various embodiments provided herein may include at least one of a relational database and a non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the various embodiments provided herein may be, but are not limited to, general-purpose processors, central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), programmable logic devices (PLDs), quantum computing-based data processing logic devices, artificial intelligence (AI) processors, and the like.

[0162] The technical features of the above embodiments can be combined arbitrarily. In order to make the description concise, 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, they should be considered to be within the scope of this application.

[0163] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present application. It should be noted that a person of ordinary skill in the art may make various modifications and improvements without departing from the spirit of the present application, and these modifications and improvements fall within the scope of protection of the present application. Therefore, the scope of protection of the present application shall be determined by the appended claims.

Claims

1. A pattern loading method for debugging a test machine, characterized in that: The method comprises: Receive debugging requests; Determining a selected pattern block group corresponding to the debugging request, 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; 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; Loading the selected pattern block group includes: sequentially loading the pattern blocks in the selected pattern block group according to the priority of the pattern blocks; Debugging is performed based on the loaded selected pattern block group, and unselected pattern block groups continue to be loaded in the background.

2. The method according to claim 1, characterized in that The method further comprises: In the case that there is a pattern block that has been loaded, debugging is performed based on the pattern block, and the pattern blocks that have not been loaded in the selected pattern block group continue to be loaded in the background.

3. The method according to claim 2, characterized in that In the case where there is a loaded pattern block, debugging based on the pattern block includes: If there is a pattern block that has been loaded, generating a first loading completion flag corresponding to the pattern block that has been loaded; Based on the first loading completion flag, debugging is performed according to the loaded pattern block.

4. The method according to claim 3, characterized in that The loading of 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 block; If it is determined that the first loading completion flag does not exist in the current pattern block, loading the current pattern block; When it is determined that the current pattern block has the first loading completion flag, the step of determining the current pattern block based on the priority of the pattern block is continued until all pattern blocks in the selected pattern block group are loaded.

5. The method according to any one of claims 1 to 4, characterized in that The receiving of the debugging request includes: receiving a debugging request through an interface, wherein the interface displays various test items; Determining the priority of each test item includes: The priority of each test item is determined based on the selection order of each test item in the interface.

6. The method according to any one of claims 1 to 4, characterized in that The method further comprises: According to the debugging function, the pattern original file is divided into multiple pattern blocks, and the storage address of each pattern block is different.

7. The method according to any one of claims 1 to 4, characterized in that The determining of a selected pattern block group corresponding to the debugging request includes: Obtaining the user program and the 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 block and the second pattern block corresponding to each of the test items are used as a selected pattern block group corresponding to the debugging request.

8. 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, debugging is performed according to the selected pattern block group that has been loaded.

9. The method according to claim 8, characterized in that Before loading the selected pattern block group, the method further includes: If it is determined that there is a second loading completion flag corresponding to the selected pattern block group, continuing to perform the step of debugging based on the loaded selected pattern block group; If it is determined that there is no second loading completion flag corresponding to the selected pattern block group, the step of loading the selected pattern block group is continued.

10. The method according to any one of claims 1 to 4, characterized in that The method of continuing to load unselected pattern block groups in the background includes: In the background, each pattern block in the unselected pattern block group is loaded in sequence according to the address order of each pattern block in the unselected pattern block group, wherein the unselected pattern block group includes pattern blocks other than the pattern blocks in the selected pattern block group.

11. The method according to any one of claims 1 to 4, characterized in that After that, continue to load the unselected pattern block group in the background, including: Receive new debugging requests; Determine a new selected pattern block group corresponding to the new debugging request from the unselected pattern block groups; Loading the newly selected pattern block group; Debugging is performed based on the loaded new selected pattern block group, and new unselected pattern block groups continue to be loaded in the background.

12. A pattern loading method for debugging a test machine, characterized in that: Applied to driving, the method includes: receiving a selected pattern block group, wherein the selected pattern block group is a selected pattern block group corresponding to the debugging request determined by the host computer after receiving the debugging request, wherein the debugging request carries at least one selected test item; and the selected pattern block group includes pattern blocks corresponding to each of the test items; A write instruction is generated based on the selected pattern block group and sent to the FPGA. The write instruction is used to instruct the FPGA to write the pattern blocks in the selected pattern block group into the corresponding storage address space in the DDR in sequence according to the priority of the pattern blocks. The selected pattern block group in the DDR is used for debugging. Each test item has a priority. The priority of the pattern block in the selected pattern block group is obtained based on the priority of the test item.

13. A pattern loading system for debugging a test machine, characterized in that: include: A host computer, configured to execute the pattern loading method in the debugging of the test machine according to any one of claims 1 to 11 to obtain a selected pattern block group; A driver, configured 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 a 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.

14. A pattern loading device for a testing machine, characterized in that: The device comprises: 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, 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; A loading module, configured to determine the priority of each of the test items and obtain the priority of the pattern blocks in the selected pattern block group based on the priority of the test items; loading the selected pattern block group, comprising: sequentially loading the pattern blocks in the selected pattern block group according to the priority of the pattern blocks; The debugging module is used to perform debugging based on the loaded selected pattern block group and continue to load unselected pattern block groups in the background.

15. A pattern file loading device for testing machine debugging, characterized in that: Applied to driving, the device comprises: a second receiving module, configured to receive a selected pattern block group, wherein the selected pattern block group is a selected pattern block group corresponding to a debugging request determined by the host computer software after receiving the debugging request, wherein the debugging request carries at least one selected test item; and the selected pattern block group includes pattern blocks corresponding to each of the test items; A write module is used to generate a write instruction based on the selected pattern block group and send the write instruction to the FPGA, wherein the write instruction is used to instruct the FPGA to write the pattern blocks in the selected pattern block group into the corresponding storage address space in the DDR in sequence according to the priority of the pattern blocks. The selected pattern block group in the DDR is used for debugging, and each test item has a priority. The priority of the pattern block in the selected pattern block group is obtained based on the priority of the test item.

Citation Information

Patent Citations

  • Chip testing method and device

    CN102608518A