Sub-pattern result acquisition method and device and chip testing machine
By working together with the host computer software and the driver unit, the sub-pattern results are obtained using a binary search algorithm, which solves the problems of low efficiency and high resource consumption in the existing technology and achieves efficient acquisition of sub-pattern results.
Patent Information
- Application Number
- CN202610954529.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-06-29
- Publication Date
- 2026-08-25
AI Technical Summary
Existing technologies suffer from low efficiency and high resource consumption in obtaining subpattern results, especially in scenarios with large amounts of test data, leading to excessively high resource consumption of the test machine system.
The host computer software sends a request to the driver unit to obtain the full failure results. After the driver unit returns the full failure results, the host computer software performs a binary search based on the full failure results to determine the test results within the period range of the target sub-pattern, thus reducing the number of data accesses.
It significantly improves the efficiency of obtaining subpattern results and reduces system resource consumption, especially with a large number of failed channels and periodic data.
Smart Images

Figure CN122632053A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of semiconductor chip testing technology, specifically to a method, apparatus, and chip testing machine for obtaining subpattern results. Background Technology
[0002] In the field of chip testing, digital test machines typically divide a pattern into multiple sub-patterns to obtain the pass / fail results corresponding to each sub-pattern, which are used for fault location and yield analysis.
[0003] In related technologies, the method for obtaining the pass / fail result of a sub-pattern is as follows: read all data frames from the memory storing the full test result data, parse each frame of data one by one, and then traverse the parsed results to determine the pass / fail result of each sub-pattern. This method requires processing all data frames, and the data processing time is positively correlated with the number of data frames. In scenarios with a large amount of test data, there are problems such as low result acquisition efficiency and high system resource consumption of the test machine. Summary of the Invention
[0004] This application provides a method, apparatus, and chip tester for obtaining subpattern results to solve the problems of low efficiency and high resource consumption in obtaining subpattern results.
[0005] In a first aspect, this application provides a method for obtaining sub-pattern results, comprising: initiating a request to a driving unit to obtain the full failure results of each sub-pattern; obtaining the full failure results of each sub-pattern returned by the driving unit; obtaining the period range of the target sub-pattern from the driving unit; based on the full failure results, finding the index position range of the failure period number in the full failure results within the period range; and determining the test results within the period range of the target sub-pattern according to the index position range.
[0006] Secondly, this application provides a sub-pattern result acquisition device, comprising: a request initiation module, configured to initiate a request to a driving unit to acquire the full failure results of each sub-pattern; a full failure result acquisition module, configured to acquire the full failure results of each sub-pattern returned by the driving unit; a period range acquisition module, configured to acquire the period range of the target sub-pattern from the driving unit; an index position range lookup module, configured to look up the index position range of the failure period number in the full failure results based on the full failure results; and a result determination module, configured to determine the test result within the period range of the target sub-pattern based on the index position range.
[0007] Thirdly, this application provides a chip testing machine, characterized in that it includes: host computer software, a driver unit, and a testing unit; the testing unit includes a memory for storing initial full failure results generated during the execution of each sub-pattern; the driver unit is used to, in response to a request from the host computer software, read the initial full failure results of each sub-pattern and convert them into the full failure results of each sub-pattern, and return the full failure results to the host computer software; the host computer software is used to execute the sub-pattern result acquisition method of the first aspect above or any corresponding embodiment thereof.
[0008] Beneficial effects: The host computer software sends a request to the driver unit to obtain the full failure results of each sub-pattern, obtains the full failure results of each sub-pattern returned by the driver unit, obtains the period range of the target sub-pattern from the driver unit, and then finds the index position range of the failure period number in the full failure results based on the full failure results, and determines the test results within the period range of the target sub-pattern based on the index position range. Since the full failure result returned by the driving unit is obtained by the driving unit from the initial full failure result according to the channel-Site-pin mapping relationship, it already contains the failure cycle number, the failure Site corresponding to each failure cycle number, and the failure pin information corresponding to each failure Site. Moreover, the failure cycle number is arranged in ascending order of cycle. Based on this ordered data structure, the host computer software can directly locate the index position range of the failure cycle number in the full failure result within the cycle range of the target subpattern through binary search. It is not necessary to check all data frame by frame, which reduces the number of times to access the full failure result from O(n) to O(log n), thereby significantly improving the efficiency of obtaining the subpattern result and reducing the system resource consumption rate. This effectively solves the problems of low efficiency and high resource consumption rate in obtaining the subpattern result in related technologies. Attached Figure Description
[0009] To more clearly illustrate the technical solutions in the specific embodiments of this application or the prior art, the drawings used in the description of the specific embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.
[0010] Figure 1 This is a schematic diagram of the structure of a chip testing machine according to an embodiment of this application; Figure 2 This is a schematic diagram of the first method for obtaining subpattern results according to an embodiment of this application; Figure 3 This is a schematic diagram of the data structure of the full failure result according to an embodiment of this application; Figure 4 This is a schematic diagram illustrating the period range division of the sub-pattern according to an embodiment of this application; Figure 5 This is a schematic diagram of a second method for obtaining subpattern results according to an embodiment of this application; Figure 6 This is a schematic diagram of the third method for obtaining subpattern results according to an embodiment of this application; Figure 7 This is a schematic diagram of the fourth process of obtaining subpattern results according to an embodiment of this application; Figure 8 This is a swimlane diagram of the subpattern result acquisition method according to the embodiments of this application; Figure 9 This is a structural block diagram of a subpattern result acquisition device according to an embodiment of this application. Detailed Implementation
[0011] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.
[0012] It is understood that before using the technical solutions disclosed in the various embodiments of this application, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this application in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0013] The terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Therefore, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature. In the description of this application, "multiple" means two or more, unless otherwise explicitly specified.
[0014] As an optional application scenario in this application, refer to Figure 1 As shown, the chip testing system includes host computer software, a driver unit, and a testing unit. Figure 1The system is illustrated in the example, including host computer software 101, drive unit 102 and test unit 103. The host computer software 101 is communicatively connected to the drive unit 102, and the drive unit 102 is communicatively connected to the test unit 103.
[0015] The host computer software 101 runs on the host computer of the test machine, providing a user interface, initiating test requests, acquiring and parsing test data, and receiving and displaying test results. The driver unit 102 is the digital board driver (or digital board bottom-end software) running on the host computer of the test machine, responding to requests from the host computer software, configuring test units, reading the registers and memory of the test units, parsing failure result data, and returning all failure results to the host computer software. The digital board includes multiple test units (FEs), each including an FPGA and DDR. The test unit 103 includes a field-programmable gate array (FPGA) and double data rate synchronous dynamic random access memory (DDR SDRAM). The FPGA executes test vectors, compares chip output responses in real time, and concatenates and stores failure data to the DDR. The DDR stores failure result data generated during the test. During the execution of test vectors, the FPGA writes failure result data to the DDR in ascending order of cycle number. The cycle results within each row are arranged in ascending order of cycle number, and the data between rows also maintains a globally ascending order.
[0016] It should be noted that, Figure 1 This is merely an example of an application scenario and does not limit the scope of protection of this application.
[0017] According to an embodiment of this application, a method for obtaining subpattern results is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions. Although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.
[0018] This embodiment provides a method for obtaining sub-pattern results, which can be used in the aforementioned host computer software. Figure 2 This is a flowchart of a method for obtaining sub-pattern results according to an embodiment of this application, referred to as... Figure 2 As shown, the process includes the following steps: Step S201: Send a request to the driver unit to obtain the full failure results of each sub-pattern, and obtain the full failure results of each sub-pattern returned by the driver unit.
[0019] In step S201, the host computer software actively sends a request to the driver unit to obtain the full failure results of each sub-pattern. It should be noted that this request is for the full failure results of the entire test vector (Pattern), that is, the host computer software requests to obtain the failure period and corresponding failure site of all sub-patterns, and the failure pin information corresponding to each failure site, rather than just a specific sub-pattern.
[0020] The host computer software receives the full failure results returned by the driver unit. In some embodiments of this application, after responding to the request from the host computer software, the driver unit reads the initial full failure results from the DDR corresponding to the test unit. The initial full failure results include the failure cycle number and the corresponding failure channel. Then, according to the channel-Site-pin mapping relationship, the initial full failure results are converted into full failure results. That is, the initial full failure results are read and parsed by the driver unit from the memory corresponding to the test unit, and the full failure results are converted by the driver unit according to the mapping relationship between channel, Site, and pin. Among them, the full failure results include the failure cycle number, the failure Site corresponding to each failure cycle number, and the failure pin information corresponding to each failure Site.
[0021] Reference Figure 3 As shown in the diagram, this data structure exemplifies the correspondence between failure period numbers and failure sites in the full failure results. Each failure period number corresponds to at least one failure site. For example, failure period number 3 corresponds to failure sites 0, 5, 7, and 9; failure period number 5 corresponds to failure sites 1, 3, and 5; and failure period number 9 corresponds to failure sites 0 and 2. This data structure reflects that within a single failure period, multiple sites may fail simultaneously, and each site corresponds to a device under test (DUT).
[0022] In some specific examples, if the period range of the target sub-pattern is cycle[7]~cycle
[27] , then the failure period number within this period range can be found in the full failure results, and the failure period number of the target sub-pattern can be determined to be 9, 11, 26; further, by merging the failure sites corresponding to these failure period numbers, the failure site set of the target sub-pattern can be obtained as Site 0, Site 1, Site 2, Site 3, Site 5, Site 10 and Site 11.
[0023] It should be noted that the total failure result refers to the failure results of all channels of each test unit, including the failure cycles that occur on all channels during the execution of the entire test vector, without distinguishing between individual patterns.
[0024] Furthermore, the failure cycle numbers in the full failure results are arranged in ascending order by cycle and correspond one-to-one with the failure channels. The driver unit maps the failure channels to the corresponding failure sites and corresponding failure pin information according to the channel-Site-pin mapping relationship. The failure pin information exists in the form of strings, such as "DIO_PIN000" and "DIO_PIN001", which are used to identify the specific failure pin name.
[0025] Optionally, the host computer software can send requests to multiple drive units simultaneously in parallel to accelerate the data acquisition process.
[0026] Step S202: Obtain the period range of the target sub-pattern from the driving unit.
[0027] In step S202, the host computer software obtains the period range of the target sub-pattern from the driving unit. (Refer to...) Figure 4 As shown, a sub-pattern is a CBP file. A test item's pattern file can contain one or more CBP files. Each sub-pattern contains a certain number of cycles, arranged sequentially within the overall pattern file. The cycle range is defined by the start cycle number (StartCycle) and the stop cycle number (StopCycle). The start cycle number is the first cycle number of the target sub-pattern in the test vector pattern, and the stop cycle number is the last cycle number of the target sub-pattern in the test vector pattern.
[0028] In some specific examples, if the Pattern contains 4 cbp files with corresponding cycle ranges of 0-9, 10-24, 25-29, and 30-34, then the starting cycle number of the second cbp is 10 and the ending cycle number is 24.
[0029] Step S203: Based on the full failure results, find the index position range of the failure period number in the full failure results within the period range.
[0030] In step S203, the host computer software determines the index range of the failure cycle number within the target sub-pattern in the full failure results using a binary search method, based on the period range of the target sub-pattern. The index position refers to the position number of the corresponding failure cycle number in the full failure results, i.e., the array index. Since the failure cycle numbers in the full failure results are arranged in ascending order of period, the host computer software can perform a binary search based on this ordered characteristic.
[0031] Step S204: Determine the test results within the period range of the target sub-pattern based on the index position range.
[0032] In step S204, the host computer software determines whether there are any failed results for the target sub-pattern based on the data index position. If the first index position (StartPos) is less than or equal to the second index position (StopPos), it is determined that there are failed results in the test results within the period range of the target sub-pattern; if the first index position is greater than the second index position, it is determined that the test results within the period range of the target sub-pattern are all passed.
[0033] After obtaining the test results within the periodic range of the target subpattern, the host computer software presents the results to the user.
[0034] The subpattern result acquisition method provided in this embodiment involves the host computer software actively initiating a request to the driver unit to obtain the full failure results, obtaining the full failure results returned by the driver unit, and then obtaining the period range of the target subpattern from the driver unit. Based on the full failure results, the host computer locates the data range of the target subpattern through binary search. This eliminates the need to check all data frame by frame, reducing the number of times to access the full failure results from O(n) to O(log n), thereby significantly improving the efficiency of acquiring subpattern results. Furthermore, as the number of times n increases, generally speaking, the more failure channels there are and the more failure period data there is, the greater the efficiency improvement will be, while also reducing the system resource utilization rate. Furthermore, in this embodiment, by limiting the period range to a period interval defined by the start period number and the end period number, and specifying that the start period number is the first period number of the target sub-pattern in the test vector and the end period number is the last period number of the target sub-pattern in the test vector, a clear search boundary is defined for the target sub-pattern in the full failure results; at the same time, the index position is defined as the position number of the corresponding failure period number in the full failure results, so that the subsequent search process can be located and compared based on the position number.
[0035] This embodiment provides a method for obtaining sub-pattern results, which can be used in the aforementioned host computer software. Figure 5 This is a flowchart of a method for obtaining sub-pattern results according to an embodiment of this application, referred to as... Figure 5 As shown, the process includes the following steps: Step S301: Initiate a request to the driver unit to obtain the full failure results of each sub-pattern, and obtain the full failure results of each sub-pattern returned by the driver unit. The specific implementation of this step is the same as that of step S201, and will not be repeated here.
[0036] Step S302: Obtain the period range of the target sub-pattern from the driving unit. The specific implementation of this step is the same as that of step S202, and will not be described again here.
[0037] Step S303: Based on the full failure results, find the index position range of the failure period number in the full failure results within the period range.
[0038] Specifically, step S303 includes: Step S3031: Based on the full failure result and the starting cycle number, determine the first index position of the first failure cycle number within the cycle range in the full failure result.
[0039] In step S3031, the starting cycle number is the first cycle number of the target sub-pattern in the test vector. Based on the starting cycle number, the first failure cycle number greater than or equal to the starting cycle number is located in the full failure results. This failure cycle number is the first failure cycle number within the cycle range, and its position number in the full failure results is the first index position.
[0040] Step S3032: Based on the full failure result and the end cycle number, determine the second index position of the last failure cycle number in the full failure result within the cycle range.
[0041] In step S3032, the end cycle number is the last cycle number of the target sub-pattern in the test vector. Based on the end cycle number, the last failure cycle number less than or equal to the end cycle number is located in the full failure results. This failure cycle number is the last failure cycle number within the cycle range, and its position number in the full failure results is the second index position.
[0042] Step S3033: Determine the index position range based on the first index position and the second index position.
[0043] In step S3033, the interval between the first index position and the second index position is determined as the index position range of the failure cycle numbers within the cycle range in the full failure result. Since the first index position corresponds to the first failure cycle within the cycle range and the second index position corresponds to the last failure cycle within the cycle range, all the data between the two are within the target cycle range.
[0044] The sub-pattern result acquisition method provided in this embodiment determines the first index position of the first failure cycle number within the cycle range in the full failure result based on the full failure result and the start cycle number, and determines the second index position of the last failure cycle number within the cycle range in the full failure result based on the full failure result and the end cycle number. Then, according to the first index position and the second index position, the index position range is determined, which realizes the transformation of the search target from whether there is a failure cycle within the search interval to locating the positions of the two failure cycles at the interval boundaries in the full failure result, thus eliminating the need to traverse all the data within the interval and reducing the access times of the full failure result.
[0045] In some optional implementation manners, the above step S3031 includes: Step a1, initialize the search range, taking the first data position of the full failure result as the left boundary and the last data position as the right boundary.
[0046] In step a1, the full failure result is arranged in ascending order of cycle numbers. The first data position stores the failure cycle data with the smallest cycle number, and the last data position stores the failure cycle data with the largest cycle number. Denote the first data position as Left and the last data position as Right, and the initial search range is [Left, Right].
[0047] Step a2, calculate the middle position when the left boundary is less than the right boundary.
[0048] In step a2, specifically, when Left < Right, calculate the middle position Mid = (Right - Left) ÷ 2, and Mid is the middle position between the left boundary and the right boundary.
[0049] Step a3, iteratively update the left boundary and / or the middle position according to the comparison results of the cycle number corresponding to the left boundary, the cycle number corresponding to the middle position, and the start cycle number until the position number of the first failure cycle number within the cycle range in the full failure result is located.
[0050] In step a3, the corresponding failure cycle number is obtained from the left boundary position (Left position) and denoted as LeftCycle; the corresponding failure cycle number is obtained from the middle position (Mid position) and denoted as MidCycle. LeftCycle and MidCycle are compared with the starting cycle number (StartCycle) respectively, and the search range is iteratively updated according to the comparison results until the target position is located.
[0051] In steps a1 to a3, the search range is initialized and the intermediate position is calculated. The boundary is iteratively updated by combining the comparison results of the period number corresponding to the left boundary and the intermediate position with the starting period number. This allows the search range to converge quickly in a halving manner, which greatly reduces the number of data accesses during the search process and reduces the number of times the full access failure result is reduced from O(n) to O(log n).
[0052] In some alternative implementations, step a3 above includes: Step b1: If the period number corresponding to the left boundary or the period number corresponding to the middle position is equal to the starting period number, the corresponding position number is determined as the first index position.
[0053] Specifically, in step b1, when LeftCycle equals StartCycle, the failure cycle number corresponding to the left boundary position is the first failure cycle number within the cycle range, and the first index position is Left. When MidCycle equals StartCycle, the failure cycle number corresponding to the middle position is the first failure cycle number within the cycle range, and the first index position is Mid.
[0054] Step b2: If the cycle number corresponding to the left boundary is less than the starting cycle number, and the starting cycle number is less than the cycle number corresponding to the middle position, and the left boundary and the middle position are not adjacent, recalculate the middle position; or, if the cycle number corresponding to the middle position is less than the starting cycle number, update the middle position to the new left boundary and recalculate the middle position, until the position number of the first failed cycle number within the cycle range is located in the full failure result.
[0055] In step b2, when LeftCycle < StartCycle < MidCycle and Left and Mid are not adjacent, it indicates that the target position is between the left boundary and the middle position. At this time, update the middle position to the new right boundary (i.e., Right = Mid), and recalculate the middle position Mid = (Mid - Left) ÷ 2 (rounded up), and continue the search. When MidCycle < StartCycle, it indicates that the target position is between the middle position and the right boundary. At this time, update the middle position to the new left boundary (i.e., Left = Mid), and recalculate the middle position Mid = (Right - Mid) ÷ 2 (rounded up), and continue the search.
[0056] Step b3, when the starting cycle number is between the cycle number corresponding to the left boundary and the cycle number corresponding to the middle position, and the left boundary and the middle position are adjacent, determine the position number of the middle position as the first index position.
[0057] In step b3, when LeftCycle < StartCycle < MidCycle and Left and Mid are adjacent (i.e., Left = Mid - 1), it indicates that the target position is at the middle position. At this time, determine the position number of the middle position as the first index position.
[0058] In steps b1 to b3, by dealing with three different comparison results of the cycle number corresponding to the left boundary or the middle position and the starting cycle number when searching for the starting end: when the cycle number corresponding to the left boundary or the middle position is equal to the starting cycle number, it is directly hit; when the starting cycle number is between the left boundary and the middle position, recalculate the middle position to narrow the right boundary; when the cycle number corresponding to the middle position is less than the starting cycle number, update the middle position to the new left boundary to narrow the left boundary, so that the search range always converges unidirectionally to the target position until the position number of the first failed cycle number in the full amount of failed results is located, ensuring the correctness of the binary search process.
[0059] In some optional embodiments, the above step S3032 includes: Step c1, initialize the search range, use the first data position of the full amount of failed results as the left boundary, and the last data position as the right boundary.
[0060] Step c2, when the left boundary is less than the right boundary, calculate the middle position.
[0061] Step c3: Based on the comparison results of the cycle number corresponding to the right boundary, the cycle number corresponding to the middle position, and the end cycle number, iteratively update the right boundary and / or the middle position until the position number of the last failed cycle number within the cycle range is located in the full failure results.
[0062] In step c3, the corresponding failure cycle number is obtained from the right boundary position (Right position) and denoted as RightCycle; the corresponding failure cycle number is obtained from the middle position (Mid position) and denoted as MidCycle. RightCycle and MidCycle are compared with the end cycle number (StopCycle) respectively, and the search range is iteratively updated according to the comparison results until the target position is located.
[0063] This step is symmetrical to the processing method of step S3031. By initializing the search range, the first data position of the full failure result is taken as the left boundary and the last data position as the right boundary. If the left boundary is less than the right boundary, the middle position is calculated. Then, the right boundary and / or the middle position are iteratively updated according to the comparison result of the cycle number corresponding to the right boundary, the cycle number corresponding to the middle position and the end cycle number, so that the search range can converge quickly in a binary manner, and finally locate the position number of the last failure cycle number in the full failure result within the cycle range.
[0064] In some alternative implementations, step c3 above includes: Step d1: If the period number corresponding to the right boundary or the period number corresponding to the middle position is equal to the end period number, the corresponding position number is determined as the second index position.
[0065] Specifically, in step d1, when RightCycle equals StopCycle, the failure cycle number corresponding to the right boundary position is the last failure cycle number within the cycle range, and the second index position is Right. When MidCycle equals StopCycle, the failure cycle number corresponding to the middle position is the last failure cycle number within the cycle range, and the second index position is Mid.
[0066] Step d2: If the cycle number corresponding to the right boundary is greater than the end cycle number, and the end cycle number is greater than the cycle number corresponding to the middle position, and the right boundary and the middle position are not adjacent, recalculate the middle position; or, if the cycle number corresponding to the middle position is greater than the end cycle number, update the middle position to the new right boundary and recalculate the middle position, until the position number of the last failed cycle number within the cycle range is located in the full failure result.
[0067] In step d2, when RightCycle > StopCycle > MidCycle and Right and Mid are not adjacent, it means the target position is between the middle position and the right boundary. In this case, the middle position is updated to the new left boundary (i.e., Left = Mid), and the middle position Mid = (Right - Mid) ÷ 2 (rounded down) is recalculated, continuing the search. When MidCycle > StopCycle, it means the target position is between the left boundary and the middle position. In this case, the middle position is updated to the new right boundary (i.e., Right = Mid), and the middle position Mid = (Mid - Left) ÷ 2 (rounded down) is recalculated, continuing the search.
[0068] Step d3: If the ending cycle number is located between the cycle number corresponding to the middle position and the cycle number corresponding to the right boundary, and the right boundary is adjacent to the middle position, then the position number of the middle position is determined as the second index position.
[0069] In step d3, when RightCycle>StopCycle>MidCycle and Right is adjacent to Mid (i.e., Right=Mid+1), it means that the target position is in the middle position. At this time, the position number of the middle position is determined as the second index position.
[0070] In steps d1 to d3, the following three different comparison results are processed for the period number corresponding to the right boundary or middle position and the end period number when searching for the end point: when the period number corresponding to the right boundary or middle position is equal to the end period number, the search is directly hit; when the period number corresponding to the right boundary is greater than the end period number and the end period number is greater than the period number corresponding to the middle position, the middle position is recalculated to narrow the left boundary; when the period number corresponding to the middle position is greater than the end period number, the middle position is updated to the new right boundary to narrow the right boundary, so that the search range always converges unidirectionally towards the target position until the position number of the last failed period number in the full failure result is located.
[0071] Step S304: Determine the test results within the periodic range of the target sub-pattern based on the index position range.
[0072] In step S304, the presence of failed results in the target sub-pattern is determined by the data index position. If the first index position is less than or equal to the second index position, it is determined that there are failed results in the test results within the period range of the target sub-pattern; if the first index position is greater than the second index position, it is determined that the test results within the period range of the target sub-pattern are all passed.
[0073] It should be noted that, since the first index position corresponds to the position number of the first failed cycle within the period range in the full failure result, and the second index position corresponds to the position number of the last failed cycle within the period range in the full failure result, when the first failed cycle appears before or equal to the last failed cycle, it indicates that at least one failed cycle exists within the interval; when the first failed cycle appears after the last failed cycle, it indicates that no failed cycles exist within the interval. This judgment method based on position number comparison can obtain the result without checking the specific content within the interval, further improving the judgment efficiency.
[0074] The subpattern result acquisition method provided in this embodiment locates the position numbers of the first and last failed cycles within the period range in the full failure results by using a binary search at the start and end points, respectively. Based on the comparison of the position numbers, it determines whether the subpattern has a failed result, which further reduces the number of times the full failure results are accessed and improves the determination efficiency.
[0075] This embodiment provides a method for obtaining sub-pattern results, which can be used in the aforementioned host computer software. Figure 6 This is a flowchart of a method for obtaining sub-pattern results according to an embodiment of this application, referred to as... Figure 6 As shown, the process includes the following steps: Step S401: Initiate a request to the driver unit to obtain the full failure results of each sub-pattern, and obtain the full failure results of each sub-pattern returned by the driver unit. The specific implementation of this step is the same as that of step S201, and will not be repeated here.
[0076] Step S402: Obtain the period range of the target sub-pattern from the driving unit. The specific implementation of this step is the same as that of step S202, and will not be repeated here.
[0077] Step S403: Based on the full failure results, find the index position range of the failure period number within the full failure results. The specific implementation of this step is the same as step S303, and will not be repeated here.
[0078] Step S404: Determine the test results within the period range of the target sub-pattern based on the index position range.
[0079] Specifically, step S404 includes: Step S4041: If the test results within the period range of the target subpattern are determined to have failed results, parse the failed Site corresponding to each failed period number within the index position range and the failed pin information corresponding to each failed Site; traverse the failed Site corresponding to each failed period number within the index position range and integrate the failed Site and the corresponding failed pin information.
[0080] In step S4041, if it is determined that there are failed test results within the period range of the target subpattern, the host computer software first parses the failed Site corresponding to each failed period number within the index position range and the failed pin information corresponding to each failed Site.
[0081] In some embodiments of this application, the full failure result already includes the failure cycle number, the failure site corresponding to each failure cycle number, and the failure pin information corresponding to each failure site. Then, the host computer software traverses the failure sites corresponding to each failure cycle number within the index position range, merges the failure information belonging to the same site, and integrates and determines each failure site and all its corresponding failure pin information.
[0082] Step S4042: When the target sub-pattern corresponds to multiple period ranges, obtain the index position range of each period range in the full failure results, and parse the failure Site and failure pin information in the index position range corresponding to each period range; merge the Site pass / fail results corresponding to each period range to obtain the Site pass / fail result set of the target sub-pattern.
[0083] It should be noted that in actual testing scenarios, sub-patterns with the same name may be distributed in different period ranges of the overall pattern. That is, target sub-test vectors with the same name may exist in at least one period range. For each period range, the host computer software executes the same binary search algorithm, traverses each period range of the target sub-test vector in turn, obtains the Site failure results of each period range, and merges them.
[0084] Step S4043: During the process of parsing the failed results within the index position range, when all Sites have been determined to be failed results, terminate the parsing process and return all failed results.
[0085] In step S4043, during the parsing of failure results in step S4041, if each Site has already parsed a failure result, it is considered that all tested chips have failed, and subsequent data does not need to be parsed further. At this time, the parsing process can be terminated early, and a full failure result can be returned. This early termination mechanism can avoid unnecessary parsing operations and further save processing time.
[0086] Step S405: Fill the pass result with the test results of the Site where there is no failed pin information within the period range of the target sub-test vector.
[0087] In step S405, for Sites that do not have any failed pin information within the period range of the target subpattern, it means that these Sites have not failed in the subpattern test and should be marked as passed. The host computer software fills the test results of these Sites with the passed results.
[0088] The subpattern result acquisition method provided in this embodiment, after determining that there are failed results, realizes the result transformation from the failure cycle to the test seat level by parsing the failed Site and failed pin information corresponding to each failure cycle number within the index position range; when all Sites have been determined to be failed results, the parsing process is terminated in advance, further reducing unnecessary processing overhead; when there is no failed pin information, the test results of the corresponding Site are filled into the pass results, ensuring the completeness and accuracy of the test results.
[0089] This embodiment provides a method for obtaining sub-pattern results, which can be used in the aforementioned host computer software. Figure 7 This is a flowchart of a method for obtaining sub-pattern results according to an embodiment of this application, referred to as... Figure 7 As shown, the process includes the following steps: Step S501: Set the failure storage mode and send the failure storage mode to the driver unit so that the driver unit configures the failure storage mode to the test unit.
[0090] In step S501, the user sets the failure storage mode in the user program, and the host computer software sends the failure storage mode to the driver unit, which then configures the failure storage mode on the FPGA. It should be noted that the failure storage mode indicates the data format for storing failed data in the memory. The data format includes the number of cycle results stored in each line of the memory, and the field content contained in each cycle result.
[0091] Specifically, common failure storage modes currently include NM mode, PF mode, AE mode, HIL mode, and MT mode. Optionally, in NM mode, each DDR row stores the failure results of one cycle, storing the failure cycle number, failure vector, and failure channel. In PF mode, each DDR row stores the failure results of three cycles, storing the failure cycle number, failure vector, and failure channel. In AE mode, each DDR row stores the failure results of two cycles, storing the failure cycle number, failure channel, and expected data. In HIL mode, each DDR row stores the failure results of two cycles, storing the failure cycle number, failure channel, and captured data. In MT mode, each DDR row stores the failure results of four cycles, storing the failure cycle number, failure vector, and failure channel. In some embodiments of this application, the data format includes at least one of the following fields: failure cycle number, failure vector, failure channel, expected data, and captured data.
[0092] Step S502: Initiate a request to the driver unit to obtain the full failure results of each sub-pattern, and obtain the full failure results of each sub-pattern returned by the driver unit. The specific implementation of this step is the same as that of step S201, and will not be repeated here.
[0093] Step S503: Obtain the period range of the target sub-pattern from the driving unit. The specific implementation of this step is the same as that of step S202, and will not be described again here.
[0094] Step S504: Based on the full failure results, find the index position range of the failure period number within the full failure results. The specific implementation of this step is the same as step S303, and will not be repeated here.
[0095] Step S505: Determine the test results within the period range of the target sub-pattern based on the index position range. The specific implementation of this step is the same as that of step S304, and will not be repeated here.
[0096] The subpattern result acquisition method provided in this embodiment sets a failure storage mode and sends it to the driver unit so that the driver unit is configured to the test unit. This enables the test unit to determine the data format of the failure data stored in the memory according to the failure storage mode, providing a data format basis for the subsequent driver unit to read and convert the full failure results.
[0097] Furthermore, by limiting the data format to include the number of cycle results stored in each row of the memory, and the fields included in the data format including at least one of failure cycle number, failure vector, failure channel, expected data, and captured data, the storage format of failure data in the memory can be flexibly configured according to different testing requirements.
[0098] Reference Figure 8 As shown, in conjunction with the above embodiments, the complete process of the sub-pattern result acquisition method provided in this application is as follows: First, the user sets the failure storage mode in the user program. The host computer software sends the failure storage mode to the driver unit, which configures the failure storage mode for the FPGA. The FPGA records the failure storage mode in a register. During the execution of the user program vector, the driver unit configures the pattern burst list information to the FPGA and sends a trigger instruction. During vector execution, the FPGA determines the failure data storage format based on the failure storage mode and stores the failure data in DDR.
[0099] Secondly, the host computer software initiates a request to obtain the failure pin names of the Pattern across all failure cycles. The driver unit responds to this request by reading the FPGA register results to confirm whether each FE FPGA has failure results. If failure results exist, it reads the failure result data from each FE DDR. Based on the failure result data format in the DDR, the driver unit parses each failure cycle and failure channel, and then, according to the CH-site-pin mapping relationship, converts each failure cycle and its corresponding failure channel into a failure cycle, its corresponding failure site, and its failure pin name. The host computer software then obtains the failure pin name for each failure cycle. It should be noted that the failure pin name here refers to the failure pin information mentioned earlier.
[0100] Then, the host computer software obtains the period range of each sub-pattern and calculates one or more period ranges of the target sub-pattern that the user expects to obtain in the complete pattern.
[0101] The host computer software uses a binary search algorithm to find the data index position (StartFailCyclePos) of the first failed cycle and the data index position (EndFailCyclePos) of the last failed cycle within the full range of failed results data, based on the period range of the target sub-pattern. It then determines whether the sub-pattern has failed results based on these two index positions: if StartFailCyclePos ≤ EndFailCyclePos, then a failed result exists; if StartFailCyclePos > EndFailCyclePos, then no failed result exists.
[0102] If the sub-pattern does not contain any failure result data, then all enabled sites are recorded as Pass. If the sub-pattern contains failure result data, then the failure cycle results between StartFailCyclePos and EndFailCyclePos are traversed, and the failure results of each site mapped to each failure cycle number are traversed. The site is recorded as Fail, and enabled sites without failure pin names are filled with Pass. If every site resolves a failure result, then the parsing process is terminated early, and all Fail results are returned.
[0103] Finally, the host computer software returns the Pass / Fail result of the sub-pattern to the user.
[0104] Although the embodiments of this application are described using the interaction between the host computer software and the driver unit as an example, those skilled in the art should understand that at least one step of the subpattern result acquisition method provided in this application can also be implemented by other types of computing units such as FPGA, CPU, and ASIC, as long as the computing unit can read the failure result data in the memory and execute the binary search algorithm. In other words, the core protection scope of this application is not limited to execution by the driver unit, but covers any computing unit capable of executing the method.
[0105] The above-described embodiments of the methods in this application obtain the full failure results from the driver unit through the host computer software, and locate the data range of the target sub-pattern through binary search on the host computer side. This eliminates the need to check all data frame by frame, reducing the number of times to access the full failure results from O(n) to O(log n), significantly improving the efficiency of obtaining the sub-pattern results, while also reducing the system resource occupancy rate.
[0106] This embodiment also provides a sub-pattern result acquisition device, which is used to implement the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0107] This embodiment provides a sub-pattern result acquisition device, referring to... Figure 9 As shown, it includes: The request initiation module 601 is used to send a request to the driver unit to obtain the full failure results of each sub-pattern.
[0108] The full failure result acquisition module 602 is used to acquire the full failure results of each sub-pattern returned by the driving unit.
[0109] The period range acquisition module 603 is used to acquire the period range of the target sub-pattern from the driving unit.
[0110] The index position range lookup module 604 is used to look up the index position range of the failure period number in the full failure results based on the full failure results.
[0111] The result determination module 605 is used to determine the test results within the periodic range of the target subpattern based on the index position range.
[0112] In some optional implementations, the index location range lookup module 604 includes: The starting lookup unit is used to determine the first index position of the first failure cycle number in the full failure results based on the full failure results and the starting cycle number.
[0113] The end lookup unit is used to determine the second index position of the last failure cycle number in the full failure result based on the full failure result and the end cycle number.
[0114] The range determination unit is used to determine the range of index positions based on the first index position and the second index position.
[0115] In some optional implementations, the start-end lookup unit includes: Initialize the sub-cell to initialize the search range, using the first data position of the full failure result as the left boundary and the last data position as the right boundary.
[0116] The calculation sub-cell is used to calculate the middle position when the left boundary is smaller than the right boundary.
[0117] The iterative sub-unit is used to iteratively update the left boundary and / or the middle position based on the comparison results of the cycle number corresponding to the left boundary, the cycle number corresponding to the middle position, and the starting cycle number, until the position number of the first failed cycle number within the cycle range is located in the full failure result.
[0118] In some optional implementations, the end-of-line lookup unit includes: Initialize the sub-cell to initialize the search range, using the first data position of the full failure result as the left boundary and the last data position as the right boundary.
[0119] The calculation sub-cell is used to calculate the middle position when the left boundary is smaller than the right boundary.
[0120] The iterative sub-unit is used to iteratively update the right boundary and / or the middle position based on the comparison results of the cycle number corresponding to the right boundary, the cycle number corresponding to the middle position, and the end cycle number, until the position number of the last failed cycle number within the cycle range is located in the full failure result.
[0121] The sub-pattern result acquisition device provided in this application embodiment can execute the sub-pattern result acquisition method provided in any embodiment of this application, and has the corresponding functional modules and beneficial effects of the method execution. Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.
[0122] This embodiment also provides a chip testing machine, with reference to... Figure 1 As shown, the system includes host computer software 101, a driver unit 102, and a test unit 103. The host computer software 101 is communicatively connected to the driver unit 102, and the driver unit 102 is communicatively connected to the test unit 103. The test unit 103 includes a memory used to store the initial full failure results generated during the execution of each sub-pattern.
[0123] The driver unit 102 is used to respond to the request from the host computer software 101, read the initial full failure results of each sub-pattern, convert them into full failure results of each sub-pattern, and return the full failure results to the host computer software 101. The initial full failure results include a failure cycle number and the corresponding failure channel. The driver unit 102 converts the initial full failure results into full failure results according to the channel-Site-pin mapping relationship. The full failure results include the failure cycle number, the failure Site corresponding to each failure cycle number, and the failure pin information corresponding to each failure Site.
[0124] The host computer software 101 is used to execute the sub-pattern result acquisition method of any of the foregoing embodiments.
[0125] In addition, the host computer software 101 is also used to set the failure storage mode and send the failure storage mode to the driver unit 102. The driver unit 102 is also used to configure the failure storage mode to the test unit 103. The test unit 103 is used to record the failure storage mode and, during the execution of each sub-pattern, determine the data format of the failure result according to the failure storage mode, and write the failure result to the memory according to the data format. During the execution of the test vector, the FPGA in the test unit 103 writes the failure result data to the memory in ascending order of the cycle number. The cycle results within each row are arranged in ascending order of the cycle number, and the data between rows also maintains a global ascending order. This is because during the execution of the vector, the FPGA increments the count of the executed cycles, so the failure cycle number in the recorded failure results must also be in ascending order.
[0126] Although embodiments of this application have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of this application, and all such modifications and variations fall within the scope defined by the appended claims.
Claims
1. A method for obtaining sub-pattern results, characterized in that, include: A request is sent to the driver unit to obtain the full failure results of each sub-pattern, and the full failure results of each sub-pattern returned by the driver unit are obtained. Obtain the period range of the target sub-pattern from the driving unit; Based on the full failure results, find the index position range of the failure period number within the full failure results; The test results within the period range of the target sub-pattern are determined based on the index position range.
2. The method according to claim 1, characterized in that, The period range is a period interval defined by the start period number and the end period number; The starting cycle number is the first cycle number of the target sub-pattern in the pattern, and the ending cycle number is the last cycle number of the target sub-pattern in the pattern; The index position in the index position range is the position number of the corresponding failure cycle number in the full failure result.
3. The method according to claim 2, characterized in that, The step of finding the index position range of the failure period number within the total failure results based on the total failure results includes: Based on the full failure result and the starting cycle number, determine the first index position of the first failure cycle number within the cycle range in the full failure result; Based on the full failure result and the end cycle number, determine the second index position of the last failure cycle number within the cycle range in the full failure result; The range of index positions is determined based on the first index position and the second index position.
4. The method according to claim 3, characterized in that, The step of determining the first index position of the first failure cycle number within the cycle range in the full failure result based on the full failure result and the starting cycle number includes: Initialize the search range by taking the first data position of the full failure result as the left boundary and the last data position as the right boundary; If the left boundary is smaller than the right boundary, calculate the middle position; Based on the comparison results of the cycle number corresponding to the left boundary, the cycle number corresponding to the middle position, and the starting cycle number, the left boundary and / or the middle position are iteratively updated until the position number of the first failed cycle number within the cycle range is located in the total failure results.
5. The method according to claim 4, characterized in that, The step of iteratively updating the left boundary and / or the middle position based on the comparison results of the cycle number corresponding to the left boundary, the cycle number corresponding to the middle position, and the starting cycle number, until the position number of the first failed cycle number within the cycle range is located in the total number of failed results, includes: If the cycle number corresponding to the left boundary or the cycle number corresponding to the middle position is equal to the starting cycle number, the corresponding position number is determined as the first index position. If the cycle number corresponding to the left boundary is less than the starting cycle number, and the starting cycle number is less than the cycle number corresponding to the middle position, and the left boundary is not adjacent to the middle position, the middle position is recalculated; or, if the cycle number corresponding to the middle position is less than the starting cycle number, the middle position is updated to the new left boundary, and the middle position is recalculated, until the position number of the first failed cycle number within the cycle range is located in the full failure result. If the starting period number is located between the period number corresponding to the left boundary and the period number corresponding to the middle position, and the left boundary is adjacent to the middle position, the position number of the middle position is determined as the first index position.
6. The method according to claim 3, characterized in that, The step of determining the second index position of the last failure cycle number within the cycle range in the full failure result based on the full failure result and the end cycle number includes: Initialize the search range by taking the first data position of the full failure result as the left boundary and the last data position as the right boundary; If the left boundary is smaller than the right boundary, calculate the middle position; Based on the comparison results of the cycle number corresponding to the right boundary, the cycle number corresponding to the middle position, and the end cycle number, the right boundary and / or the middle position are iteratively updated until the position number of the last failed cycle number within the cycle range is located in the total failure results.
7. The method according to claim 6, characterized in that, The step of iteratively updating the right boundary and / or the middle position based on the comparison results of the cycle number corresponding to the right boundary, the cycle number corresponding to the middle position, and the end cycle number, until the position number of the last failed cycle number within the cycle range is located in the total failure results, includes: If the cycle number corresponding to the right boundary or the cycle number corresponding to the middle position is equal to the end cycle number, the corresponding position number is determined as the second index position. If the cycle number corresponding to the right boundary is greater than the end cycle number, and the end cycle number is greater than the cycle number corresponding to the middle position, and the right boundary is not adjacent to the middle position, the middle position is recalculated; or, if the cycle number corresponding to the middle position is greater than the end cycle number, the middle position is updated to the new right boundary, and the middle position is recalculated, until the position number of the last failed cycle number within the cycle range is located in the total failure result. If the ending cycle number is located between the cycle number corresponding to the middle position and the cycle number corresponding to the right boundary, and the right boundary is adjacent to the middle position, the position number of the middle position is determined as the second index position.
8. The method according to claim 3, characterized in that, The step of determining the test results within the periodic range of the target sub-pattern based on the index position range includes: If the first index position is less than or equal to the second index position, it is determined that there are test failures within the period range of the target sub-pattern; If the first index position is greater than the second index position, the test results within the period range of the target sub-pattern are determined to be all-pass results.
9. The method according to any one of claims 1 to 8, characterized in that, The step of determining the test results within the period range of the target sub-pattern based on the index position range further includes: If it is determined that there are failed test results within the period range of the target subpattern, the failed Site corresponding to each failed period number within the index position range and the failed pin information corresponding to each failed Site are parsed. Traverse the failure sites corresponding to each failure cycle number within the index position range, and integrate and determine the failure site and its corresponding failure pin information.
10. The method according to any one of claims 1 to 8, characterized in that, The method further includes: The test results of sites that do not have failed pin information within the period range of the target sub-test vector will be used to fill the pass results.
11. The method according to any one of claims 1 to 8, characterized in that, The step of determining the test results within the period range of the target sub-pattern based on the index position range further includes: During the parsing of failure results within the index location range, when all Sites have been determined to be failure results, the parsing process is terminated and all failure results are returned.
12. The method according to any one of claims 1 to 8, characterized in that, The full failure result includes the failure cycle number, the failure site corresponding to each failure cycle number, and the failure pin information corresponding to each failure site. The full failure result is obtained by the driving unit from the initial full failure result according to the mapping relationship between the channel, site and pin. The failure cycle number in the full failure result is arranged in ascending order of cycle. The initial full failure result is obtained by the driver unit reading and parsing from the memory corresponding to the test unit.
13. The method according to claim 12, characterized in that, The step of determining the test results within the period range of the target sub-pattern based on the index position range further includes: When the target sub-pattern corresponds to multiple period ranges, the index position range of each period range in the full failure result is obtained respectively, and the failure Site and failure pin information in the index position range corresponding to each period range is parsed respectively. The site pass / fail results corresponding to each of the aforementioned period ranges are merged to obtain the site pass / fail result set for the target sub-pattern.
14. The method according to any one of claims 1 to 8, characterized in that, The method for obtaining subpattern results also includes: A failure storage mode is set and sent to the driver unit so that the driver unit configures the failure storage mode to the test unit.
15. The method according to claim 14, characterized in that, The failure storage mode is used to indicate the data format in which the test unit stores failure results; The data format includes the number of cycle results stored in each row of memory, and the fields included in the data format include at least one of failure cycle number, failure vector, failure channel, expected data, and captured data.
16. A device for obtaining sub-pattern results, characterized in that, include: The request initiation module is used to send a request to the driver unit to obtain the full failure results of each sub-pattern; The full failure result acquisition module is used to acquire the full failure results of each sub-pattern returned by the driving unit; A period range acquisition module is used to acquire the period range of the target sub-pattern from the driving unit; The index position range lookup module is used to find the index position range of the failure period number in the full failure result based on the full failure result; The result determination module is used to determine the test results within the periodic range of the target sub-pattern based on the index position range.
17. A chip testing machine, characterized in that, include: Host computer software, driver unit, and test unit; The test unit includes a memory, which is used to store the initial full failure results generated during the execution of each sub-pattern. The driving unit is used to respond to the request of the host computer software, read the initial full failure result of each sub-pattern and convert it into the full failure result of each sub-pattern, and return the full failure result to the host computer software. The host computer software is used to execute the sub-pattern result acquisition method as described in any one of claims 1 to 15.
18. The chip testing machine according to claim 17, characterized in that, The host computer software is also used to set a failure storage mode and send the failure storage mode to the driver unit; The driving unit is also configured to configure the failure storage mode to the test unit; The test unit is used to record the failure storage pattern, and during the execution of each sub-pattern, to determine the data format of the failure result according to the failure storage pattern, and to write the failure result into the memory according to the data format.