A test vector encoding method
Through the encoding method of test vectors, the huge problem of test vectors in high-integration integrated circuit tests is solved, and more efficient storage and decoding is achieved, which improves the performance and efficiency of the test machine.
Patent Information
- Application Number
- CN202111553469.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-12-17
- Publication Date
- 2024-12-06
- Estimated Expiration
- 2041-12-17
AI Technical Summary
When testing the functional test of high-integration integrated circuits, the test vector is huge, which causes the test machine to store a large amount of data and has a long loading time, which affects the testing efficiency.
Using the encoding method of test vectors, by dividing the test file into sub-files, column encoding and function code encoding, row encoding of the excitation code, compressing the repeated test vector, adding the complementary test vector to achieve integer multiple lines, and generating excitation data Frame and functional data frames, optimized storage and decoding processes.
It significantly improves the storage depth and compression efficiency of test vectors, and can store more test vectors in limited storage space, improving the performance and efficiency of the test machine.
Smart Images

Figure CN114325311B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of testing technology, and in particular to a coding method for a test vector. Background Art
[0002] With the rapid development of integrated circuit (IC) technology, the integration of digital circuits continues to increase, and a number of highly integrated integrated circuits such as FPGA and CPU have emerged. When testing such integrated circuits, especially the functional testing of finished product testing (FT testing), the test complexity increases rapidly and the test vectors are often very large.
[0003] In order to enable the tester to meet the batch testing of the functional tests of these integrated circuits, the tester needs to be able to store enough test vectors and all the test vectors required for the functional test of the single-chip circuit, which places high demands on the internal storage space of the tester. If the tester cannot meet the test vector depth required for the functional test of the single-chip circuit, it needs to be loaded in multiple times. Since loading the test vector takes up most of the time of the entire test process, the test efficiency will be greatly reduced. Summary of the invention
[0004] In view of the above problems and technical requirements, the inventors have proposed a test vector encoding method. The technical solution of the present invention is as follows:
[0005] A method for encoding a test vector, the method comprising:
[0006] Obtain a test file, the test file includes several lines of test vectors, each line of test vectors includes a function code and M stimulus codes, each stimulus code corresponds to a test channel of a test machine that executes the test file; the function code is used to indicate the test function executed by the test vector, and the stimulus code corresponding to each test channel is used to indicate the test behavior information of the test channel under the current test vector;
[0007] Divide the test file into several sub-files, each sub-file includes P lines of test vectors in the test file;
[0008] For each sub-file, the excitation codes of P rows of test vectors in the sub-file are column-encoded to obtain M excitation data frames, and the function codes of P rows of test vectors are row-encoded to obtain P function data frames, to obtain the encoding result of the sub-file, wherein each excitation data frame corresponds to a test channel and contains the encoding result of the excitation codes corresponding to the test channel in all P rows of test vectors in the sub-file, and each function data frame corresponds to a row of test vectors and contains the encoding result of the function codes in the corresponding row of test vectors.
[0009] A further technical solution is to divide the test file into several sub-files, including:
[0010] Compress several consecutive identical test vectors in the test file into one line of test vectors, the function code of the compressed one line of test vectors is used to indicate the test function of all test vectors before compression, each excitation code of the compressed one line of test vectors is respectively the same as the excitation code of any one line of test vectors before compression, the identical test vectors are multiple lines of test vectors with the same function identifier of the function code and the same excitation codes for each test channel, the function identifier includes any one of the line repetition function identifier R, the segment repetition function identifier LOOP, the pause function identifier PAUSE and the PPMU test function identifier PPMU;
[0011] The test file that has completed the compression processing is divided into a plurality of sub-files, each of which includes continuous P lines of test vectors in the test file that has completed the compression processing.
[0012] Its further technical solution is that the method further comprises:
[0013] When the total number of lines of test vectors in the test file is not an integer multiple of P, several lines of supplementary line test vectors are added to the test file to be an integer multiple of P, each supplementary line test vector includes a line repetition function code and M excitation codes, and each excitation code in the supplementary line test vector is used to indicate that the test behavior information of the corresponding test channel under the current supplementary line test vector is in any state.
[0014] Its further technical solution is that the excitation data frame of each test channel includes a frame type field, a test channel number field and a data field, the field information of the frame type field is a first frame type identifier, the first frame type identifier is used to identify the current data frame as an excitation data frame, the field information of the test channel number field is a binary code of the channel number of the test channel, and the field information of the data field includes the encoding results of the binary codes of P excitation codes, and the encoding result of each excitation code occupies Q bits.
[0015] A further technical solution is that the function code in the test vector is a row repetition function code, and the row repetition function code includes a row repetition function identifier and a row repetition number;
[0016] The functional data frame obtained by encoding the test vector of the row repetition function code includes a frame type field, a row repetition identification field, a repeated row position field and a row repetition number field. The field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame. The field information of the row repetition identification field is the binary code corresponding to the row repetition function identification, the field information of the repeated row position field is the binary code of the row number of the test vector in the subfile, and the field information of the row repetition number field is the binary code of the row repetition number.
[0017] A further technical solution is that the function code in the test vector is a segment repetition function code, and the segment repetition function code includes a segment repetition function identifier, a number of repetition segment rows, and a number of segment repetition times;
[0018] The functional data frame obtained by encoding the test vector of the segment repetition function code includes a frame type field, a segment repetition identification field, a first cross-file field, a repeated segment start line position field, a second cross-file field, a repeated segment end line position field and a segment repetition count field: the field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame; the field information of the segment repetition identification field is the binary code corresponding to the segment repetition function identification; the field information of the first cross-file field is the first same-file identification or the first cross-file identification, the first same-file identification indicates that the repeated segment start line and the test vector of the segment repetition function code belong to the same sub-file, and the first cross-file identification indicates that the repeated segment start line The test vectors of the start line and the segment repetition function code belong to different subfiles; the field information of the repeated segment start line position field is the binary code of the line number of the repeated segment start line in the subfile; the field information of the second cross-file field is the second same-file identifier or the second cross-file identifier, the second same-file identifier indicates that the repeated segment end line and the test vector of the segment repetition function code belong to the same subfile, and the second cross-file identifier indicates that the repeated segment end line and the test vector of the segment repetition function code belong to different subfiles; the field information of the repeated segment end line position field is the binary code of the line number of the repeated segment end line in the subfile; the field information of the segment repetition count field is the binary code of the segment repetition count in the segment repetition function code;
[0019] The repeat segment start line is the next line of test vectors of the test vector of the segment repeat function code, and the repeat segment end line is a line of test vectors starting from the repeat segment start line and having the number of repeat segment lines.
[0020] A further technical solution is that the function code in the test vector is a pause function code, and the pause function code includes a pause function identifier and a pause cycle number;
[0021] The functional data frame obtained by encoding the test vector of the pause function code includes a frame type field, a pause identification field, a pause line position field and a pause cycle number field; the field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame; the field information of the pause identification field is the binary code corresponding to the pause function identification, the pause line position field is the binary code of the line number of the test vector of the pause function code in the sub-file where it is located, and the pause cycle number field is the binary code of the number of pause cycles in the pause function code.
[0022] A further technical solution is that the function code in the test vector is a PPMU test function code, and the PPMU test function code includes a PPMU test function identifier and a test cycle number;
[0023] The functional data frame obtained by encoding the test vector of the PPMU test function code includes a frame type field, a PPMU test identification field, a test row position field and a test cycle number field; the field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame; the field information of the PPMU test identification field is the binary code corresponding to the PPMU test function identification; the test row position field is the binary code of the row number of the test vector of the PPMU test function code in the subfile; the field information of the test cycle number field is the binary code of the test cycle number in the PPMU test function code.
[0024] Its further technical solution is that the method further comprises:
[0025] After encoding each sub-file to obtain M excitation data frames and P functional data frames, if the total number of bits occupied by all data frames is an integer multiple of T, the M excitation data frames and P functional data frames are directly output to the test machine as the encoding result of the sub-file, and the test machine decodes according to the data bit width of T bits; if the total number of bits occupied by all data frames is not an integer multiple of T, then the corresponding bit-filling data frames are added until the total number of bits is an integer multiple of T, and then the M excitation data frames, P functional data frames and the filling data frames are output to the test machine as the encoding result of the sub-file; the filling data frame contains a skip flag, and the skip flag is used to instruct the test machine to skip processing the filling data frame.
[0026] Its further technical solution is that the fill-in data frame includes a frame type field, a skip flag field and a data field, the field information of the frame type field is a second frame type flag, and the second frame type flag is used to identify the current data frame as a functional data frame; the field information of the skip flag field is a skip flag, and the field information of the data field is a default value.
[0027] The beneficial technical effects of the present invention are:
[0028] The present application discloses a method for encoding test vectors, which encodes in sub-files, and can improve the storage depth of test vectors by encoding the excitation codes in columns and encoding the function codes in rows. In particular, when there are fewer test channels in actual use, the compression efficiency can be greatly improved. The encoded data is directly sent to the storage space of the test machine, and more test vector files can be stored in the limited storage space of the test machine. The test process can be realized in conjunction with the decoding of the test machine, which can effectively improve the performance of the test machine and improve the test efficiency.
[0029] Furthermore, by first performing row compression on the test file and then encoding it according to the method of the present application, the test vector compression efficiency can be improved, and more test vectors can be further stored in the same storage space. BRIEF DESCRIPTION OF THE DRAWINGS
[0030] Figure 1 It is a method flow chart of the encoding method in one embodiment of the present application.
[0031] Figure 2 The following is a schematic diagram of some test vectors of a test file in an example.
[0032] Figure 3 It is a flow chart of the encoding method in another embodiment of the present application.
[0033] Figure 4 Yes Figure 2 Schematic diagram of the test file obtained after compressing the test file shown.
[0034] Figure 5 It is a schematic diagram of the frame structure of the incentive data frame.
[0035] Figure 6 It is a schematic diagram of the frame structure of a function data frame obtained by encoding a test vector of a row-repeated function code.
[0036] Figure 7 It is a schematic diagram of the frame structure of a functional data frame obtained by encoding a test vector of a segment repetitive functional code.
[0037] Figure 8 It is a schematic diagram of the frame structure of a function data frame obtained by encoding a test vector of a pause function code.
[0038] Fig. 9 It is a schematic diagram of the frame structure of a function data frame obtained by encoding the test vector of the PPMU test function code.
[0039] Fig.10 The diagram is a schematic diagram of data frames and the number of bits occupied by each data frame in an encoding result obtained by encoding a sub-file in an embodiment.
[0040] Fig.11 It is a schematic diagram of the frame structure of the padding data frame. DETAILED DESCRIPTION
[0041] The specific implementation of the present invention will be further described below in conjunction with the accompanying drawings.
[0042] This application discloses a method for encoding a test vector, please refer to Figure 1 The method comprises the following steps:
[0043] Step 102, obtaining a test file. The test file is a file that is pre-written for the functional test process of the test machine and needs to be provided to the test machine. The test machine executes the test file to complete the functional test process of the product to be tested according to the set test process.
[0044] The test file includes several lines of test vectors. These test vectors are generally written in time sequence. Part of the content of the test file in an embodiment is as follows: Figure 2 As shown, each row of the test vector includes a function code and M stimulus codes, and each stimulus code corresponds to a test channel of the test machine that executes the test file. Figure 2 In the figure, each row of the test vector includes a function code and 5 excitation codes. The information in the first column is the function code, and the remaining 5 columns are the excitation codes corresponding to the 5 test channels NUM_15, NUM_18, NUM_3, NUM_20 and NUM_31 of the test machine.
[0045] The function code is used to indicate the test function executed by the row test vector. In the present application, the function code includes at least one of a row repeat function code, a segment repeat function code, a pause function code and a PPMU test function code, wherein:
[0046] (1) The row repeat function code is used to indicate that the current row of test vectors is repeated several times continuously. The row repeat function code includes a row repeat function identifier R and a row repeat number n1, where n1 ≥ 1. The row repeat function code can be expressed as Rn1. For example Figure 2 In the example, R1 means executing the current row of test vectors once, and R100 means repeatedly executing the current row of test vectors 100 times.
[0047] (2) The segment repeat function code is used to indicate the continuous repetition of a repeat segment for a number of times. The repeat segment includes several rows of test vectors starting from the next row of test vectors of the current row of test vectors, that is, the repeat segment start row is the next row of test vectors of the test vector of the segment repeat function code, and the repeat segment end row is a row of test vectors starting from the repeat segment start row and having the number of repeat segment rows. The segment repeat function code includes the segment repeat function identifier LOOP, the number of repeat segment rows N and the number of segment repetitions n2, where n2 ≥ 1. The segment repeat function code can be expressed as LOOPNn2. For example Figure 2 In the example, LOOP 3 100 means that the test vectors contained in the repetition segment are executed 100 times continuously. The repetition segment contains the following: Figure 2 The three rows of test vectors in the dashed box 210 are shown in FIG.
[0048] (3) The pause function code is used to indicate the continuous pause of several cycles. The pause function code includes the pause function identifier PAUSE and the pause cycle number n3, where n3 ≥ 1. The pause function code can be expressed as PAUSEn3. Figure 2In the example, PAUSE 10000 means pausing execution for 10000 cycles.
[0049] (4) The PPMU test function code is used to indicate that the PPMU (Per Pin Parametric Measurement Unit) test is to be performed continuously for several cycles according to the current row of test vectors. The PPMU test function code includes the PPMU test function identifier PPMU and the test cycle number n4, where n4 ≥ 1. The PPMU test function code can be expressed as PPMUn4. For example Figure 2 In the example, PPMU 10000 means that the current row of test vectors is repeatedly executed for 10000 cycles to perform PPMU testing.
[0050] The excitation code corresponding to each test channel is used to indicate the test behavior information of the test channel under the current test vector. Optionally, the test behavior information of the test channel indicated by each excitation code is any one of the following: the test channel outputs low-level excitation data (indicated by 0), the test channel outputs high-level excitation data (indicated by 1), the test channel is in any state (indicated by X), the test channel is expected to receive a low level (indicated by L), the test channel is expected to receive a high level (indicated by H), and the test channel test process has no parameter information (indicated by null). The test channel being in any state means that the output level or expected receiving level of the test port is not concerned, so the test port can output any level or receive any level.
[0051] Among them, please refer to Figure 2 , each excitation code in the test vector of the row repeat function code and the PPMU test function code is any one of 0, 1, X, L and H, and all excitation codes in the test vector of the segment repeat function code and the pause function code are empty.
[0052] Step 104: divide the test file into a plurality of sub-files, each sub-file including P rows of test vectors in the test file.
[0053] Step 106, for each subfile, column-encode the excitation codes of the P rows of test vectors in the subfile to obtain M excitation data frames, and row-encode the function codes of the P rows of test vectors to obtain P function data frames, to obtain the encoding result of the subfile.
[0054] Each stimulus data frame corresponds to a test channel and contains the encoding results of the stimulus codes corresponding to the test channel in all P lines of test vectors in the subfile, and each function data frame corresponds to a line of test vectors and contains the encoding results of the function codes in the corresponding line of test vectors. The encoding process for each subfile is the same, and the encoding operations for each subfile can be performed synchronously. Figure 1The diagram is illustrated by taking a total of S sub-files as an example.
[0055] like Figure 2 As shown, in the test file initially obtained, there are test vectors representing multiple lines of repeated function codes, but there are still multiple lines of the same test vector, such as Figure 2 The multiple lines of test vectors in the dashed box 220 are as follows Figure 3 As shown in the flowchart, the above step 104 further includes the following steps when dividing the test file into a plurality of sub-files:
[0056] Step 302: compress a plurality of consecutive lines of identical test vectors in the test file into one line of test vectors.
[0057] The same test vector refers to a multi-row test vector with the same function identifier of the function code and the same excitation code for each test channel. The function identifier includes the row repetition function identifier R, the segment repetition function identifier LOOP, the pause function identifier PAUSE and the PPMU test function identifier PPMU as described above.
[0058] The function identifier of the function code of a row of test vectors obtained by compression is the function identifier of all test vectors before compression, but other parameters in the function code are different, so that the function code of a row of test vectors obtained by compression is used to indicate the test function of executing all test vectors before compression. And each stimulus code of a row of test vectors obtained by compression is the same as the stimulus code of any row of test vectors before compression.
[0059] In fact, generally only the test vector with the function identifier of the row repeat function identifier R will have multiple consecutive rows of repetitions that need to be compressed. Therefore, this step is generally used to deal with this situation. The compressed test vector is a new test vector of the row repeat function code, and the function identifier of the row repeat function code in the compressed test vector is still the row repeat function identifier R, and the row repetition number n1 becomes the total number of rows included after compression. The excitation code for each test channel is the excitation code of any row of the test vector before compression. For example Figure 2 The 7 test vectors in the dashed box 220 can be compressed into one test vector. The updated row repetition function code is R15. The excitation code for each test channel is the excitation code of any test vector before compression. The test vectors of the remaining rows are compressed according to the same principle. Figure 2 Compressed as Figure 4 shown.
[0060] Step 304: divide the compressed test file into a plurality of sub-files, each sub-file including P consecutive lines of test vectors in the compressed test file.
[0061] Regardless of whether the test file is compressed or not, when the test file is divided into several sub-files, the number of rows of test vectors contained in each sub-file is generally equal to P. Therefore, if the total number of rows of test vectors in the test file is not an integer multiple of P, preprocessing is required. Figure 3 Taking the compression processing of the test file as an example, the method also includes step 303 before dividing the sub-files: adding several rows of supplementary line test vectors to the test file to an integer multiple of P, each supplementary line test vector includes a row repetition function code and M excitation codes, and the row repetition function code in each supplementary line test vector is represented as R1, that is, executing the current row supplementary line test vector once, and each excitation code in the supplementary line test vector is used to indicate that the test behavior information of the corresponding test channel under the current supplementary line test vector is in any state, that is, all excitation codes are X. After completing the supplementary line operation, it is divided into several sub-files. Optionally, multiple rows of supplementary line test vectors are generally added to the last few lines of the test file, so the added multiple rows of supplementary line test vectors are generally divided into the same sub-file.
[0062] In the above step 106, the formats of the excitation data frame and the function data frame obtained by encoding each sub-file and the information contained therein are respectively introduced as follows:
[0063] 1. Incentive data frame.
[0064] like Figure 5 In the frame structure shown, the excitation data frame of each test channel includes a frame type field, a test channel number field, and a data field. The field information of the frame type field is the first frame type identifier, and the first frame type identifier is used to identify the current data frame as an excitation data frame. The field information of the test channel number field is the binary code of the channel number of the test channel. The field information of the data field includes the encoding results of the binary codes of P excitation codes, and the encoding results of each excitation code occupy Q bits. The encoding results of the binary codes corresponding to each excitation code are pre-agreed and configured.
[0065] If Figure 5 As shown, the data field occupies P*Q bits. Assuming that the excitation data frame occupies 2 K The test channel number field occupies J bits, 2 J Greater than or equal to the total number of test channels of the test machine, for example, if the test machine has 32 test channels, then J ≥ 5. The number of bits occupied by the frame type field is 2 K -2 J -P*Q and is at least 1. The general configuration frame type field occupies 1 bit, and 0 can be used as the first frame type identifier to identify the current data frame as an excitation data frame, and 1 can be used as the second frame type identifier to identify the current data frame as a functional data frame.
[0066] The total number of bits occupied by the specific excitation data frame can be customized, and the remaining parameters P, Q, and J can be determined as needed. In one embodiment, taking Q=3 as an example, the excitation code in each test vector is encoded to obtain a corresponding 3-bit binary code. For example, the encoding results of the binary codes of different types of excitation codes are shown in the following table:
[0067]
[0068]
[0069] In a typical application scenario, the test machine has 32 test channels, which can be configured as follows: the stimulus data frame occupies a total of 64 bits, the frame type field occupies 1 bit, the test channel number field occupies 6 bits, each sub-file contains 19 lines of test vectors and each stimulus code is encoded to obtain a corresponding 3-bit binary code, so that the data field occupies 57 bits.
[0070] 2. A functional data frame is obtained by encoding the test vector of the row-repeated functional code.
[0071] Please refer to Figure 6 The frame structure shown in the figure, the function data frame obtained by encoding the test vector of the row repetition function code R includes a frame type field, a row repetition identification field, a repeated row position field, and a row repetition number field. Among them, the field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a function data frame. As in the above-mentioned excitation data frame part, the frame type field can be configured to occupy 1 bit, and 1 is used as the second frame type identification to identify the current data frame as a function data frame to distinguish it from the excitation data frame.
[0072] The field information of the row repeat identification field is the binary code corresponding to the row repeat function identifier. The field information of the repeated row position field is the binary code of the row number of the row test vector in the subfile. The field information of the row repeat count field is the binary code of the row repeat count n1.
[0073] The binary code corresponding to each function identifier is pre-configured, and the number of bits of the binary code corresponding to the function identifier can also be configured as needed. For example, in one embodiment, a coding result of encoding each function identifier using a 4-bit binary code is shown in the following table:
[0074] Corresponding binary code Functional Identifier 0000 Row repeat function indicator R 0001 Segment repeat function flag LOOP 0010 Pause function flag PAUSE 0011 PPMU test function identifier PPMU 1111 Skip flag the remaining Reserved bits
[0075] Based on the above table, the frame type fields of all function data frames obtained by encoding the test vector of the row repetition function code are the second frame type identifier, and the row repetition identifier field is 0000. Figure 6 Taking this as an example, the remaining repeated row position fields and row repetition times fields determine the binary code results according to actual conditions.
[0076] 3. The functional data frame obtained by encoding the test vector of the segment repeated functional code.
[0077] Please refer to Figure 7 The frame structure shown, the functional data frame obtained by encoding the test vector of the segment repetition function code LOOP includes a frame type field, a segment repetition identification field, a first cross-file field, a repeated segment start line position field, a second cross-file field, a repeated segment end line position field and a segment repetition count field.
[0078] The field information of the frame type field is the second frame type identifier, which is used to identify the current data frame as a functional data frame. The field information of the segment repeat identifier field is the binary code corresponding to the segment repeat functional identifier. Similar to the row repeat functional code part, based on the encoding result of the functional identifier in the above embodiment as an example, in this case, the frame type fields of all functional data frames obtained by encoding the test vector of the segment repeat functional code are all the second frame type identifier, and the segment repeat identifier fields are all 0001. Figure 7 Take this as an example.
[0079] The field information of the first cross-file field is the first same-file identifier or the first cross-file identifier. The first same-file identifier indicates that the test vector of the repeated segment start line and the segment repetition function code belong to the same sub-file. The first cross-file identifier indicates that the test vector of the repeated segment start line and the segment repetition function code belong to different sub-files. Typically, if the first cross-file field occupies 1 bit, 0 can be used as the first same-file identifier and 1 can be used as the first cross-file identifier. The field information of the repeated segment start line position field is the binary code of the line number of the starting line of the repeated segment in the sub-file where it is located. Among them, the repeated segment start line is the next line of test vector of the test vector where the segment repetition function code is located. The sub-file where the repeated segment start line is located may be the sub-file where the test vector of the segment repetition function code is located, or it may not be the same sub-file.
[0080] The field information of the second cross-file field is the second same-file identifier or the second cross-file identifier. The second same-file identifier indicates that the test vector of the repeated segment end line and the segment repetition function code belong to the same sub-file. The second cross-file identifier indicates that the test vector of the repeated segment end line and the segment repetition function code belong to different sub-files. Typically, if the second cross-file field occupies 1 bit, 0 can be used as the second same-file identifier and 1 can be used as the second cross-file identifier. The field information of the repeated segment end line position field is the binary code of the line number of the end line of the repeated segment in the sub-file where it is located. Among them, the repeated segment end line is a line of test vectors starting from the repeated segment start line and having the number of repeated segment lines N. Similarly, the sub-file where the repeated segment end line is located may be the sub-file where the test vector of the segment repetition function code is located, or it may not be the same sub-file.
[0081] The field information of the segment repetition number field is the binary code of the segment repetition number n2 in the segment repetition function code.
[0082] 4. A functional data frame obtained by encoding the test vector of the pause function code.
[0083] Please refer to Figure 8 The frame structure shown in the figure, the functional data frame obtained by encoding the test vector of the pause function code PAUSE includes a frame type field, a pause identification field, a pause line position field and a pause period number field. The field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame. The field information of the pause identification field is the binary code corresponding to the pause function identification. Similar to the row repetition function code part, based on the encoding result of the function identification in the above embodiment as an example, in this case, the frame type field of all functional data frames obtained by encoding the test vector of the pause function code is the second frame type identification, and the pause identification field is 0010. Figure 8 Take this as an example.
[0084] The pause line position field is the binary code of the line number of the test vector of the pause function code in the subfile where it is located, and the pause cycle number field is the binary code of the pause cycle number n3 in the pause function code.
[0085] 5. A functional data frame obtained by encoding the test vector of the PPMU test function code.
[0086] Please refer to Fig. 9 As shown in the frame structure diagram, the function data frame obtained by encoding the test vector of the PPMU test function code PPMU includes a frame type field, a PPMU test identification field, a test row position field and a test cycle number field.
[0087] The field information of the frame type field is the second frame type identifier, and the second frame type identifier is used to identify the current data frame as a functional data frame. The field information of the PPMU test identifier field is the binary code corresponding to the PPMU test function identifier. Similar to the row repetition function code part, based on the encoding result of the function identifier in the above embodiment as an example, in this case, the frame type fields of all functional data frames obtained by encoding the test vector of the PMU test function code are the second frame type identifier, and the PPMU test identifier field is 0011. Fig. 9 Take this as an example.
[0088] The test line position field is the binary code of the line number of the test vector of the PPMU test function code in the subfile. The field information of the test cycle number field is the binary code of the test cycle number n4 in the PPMU test function code.
[0089] Above Figure 4-6 The number of bits occupied by each type of function data frame shown, as well as the number of bits occupied by each field in each type of function data frame, can be configured and adjusted on the basis of meeting the basic bit requirements. The basic bit requirements for each field are, for example, for the function data frame obtained by encoding the test vector of the row repeat function code, when each sub-file includes 19 rows of test vectors, the field occupied by the repeated row position field is at least 5 bits. In this way, since the 5-bit binary code can represent 32 different row numbers, the repeated row position field is sufficient to represent each row number of the 19 rows of test vectors in the sub-file, which can meet the basic requirements, but it can actually occupy 6 bits or 7 bits, etc. The situation of the remaining fields of the remaining function data frames is similar.
[0090] In one embodiment, the total number of bits occupied by all functional data frames is equal, and based on the feature that the test machine decodes according to the data bit width of 64 bits, each stimulus data frame can be configured to occupy 64 bits, and each functional data frame can occupy 32 bits. Then, the total number of bits occupied by the encoding result obtained by encoding each sub-file is 64bit*M+32bit*P. Figure 2 In the case of the five test channels shown in FIG. 1 and each sub-file containing 19 test vectors, the encoding result obtained by processing each sub-file is as follows: Fig.10 As shown. Based on the fact that each function data frame occupies a total of 32 bits, in one embodiment, the number of bits occupied by each field of each function data frame can be configured as follows:
[0091] (1) In the function data frame obtained by encoding the test vector of the row repetition function code R, the frame type field occupies 1 bit, the row repetition identification field occupies 4 bits, the repeated row position field occupies 5 bits, and the row repetition number field occupies 22 bits.
[0092] (2) In the function data frame obtained by encoding the test vector of the segment repetition function code LOOP, the frame type field occupies 1 bit, the segment repetition identification field occupies 4 bits, the first cross-file field occupies 1 bit, the repeat segment start line position field occupies 5 bits, the second cross-file field occupies 1 bit, the repeat segment end line position field occupies 5 bits, and the segment repetition count field occupies 15 bits.
[0093] (3) In the function data frame obtained by encoding the test vector of the pause function code PAUSE, the frame type field occupies 1 bit, the pause flag field occupies 4 bits, the pause line position field occupies 5 bits, and the pause cycle number field occupies 22 bits.
[0094] (4) PPMU Test Function Code In the function data frame obtained by encoding the PPMU test vector, the frame type field occupies 1 bit, the PPMU test identification field occupies 4 bits, the test row position field occupies 5 bits, and the test cycle number field occupies 22 bits.
[0095] Optionally, on the basis of decoding by the test machine according to the data width of T bits, after encoding each sub-file to obtain M stimulus data frames and P function data frames, the total number of bits occupied by all data frames may be an integer multiple of T, or may not be an integer multiple of T. For example, Fig.10 In the example shown, the 5 excitation data frames and 19 functional data frames obtained by encoding each sub-file are not an integer multiple of 64 bits. If the total number of bits occupied by all data frames is an integer multiple of T, then the M excitation data frames and P functional data frames are directly output to the test machine as the encoding result of the sub-file. If the total number of bits occupied by all data frames is not an integer multiple of T, then after adding the corresponding bit positions of the padding data frames until the total number of bits is an integer multiple of T, the M excitation data frames, P functional data frames and padding data frames are output to the test machine as the encoding result of the sub-file, so that the test machine can decode it conveniently later. Fig.10 As shown, a 32-bit padding data frame is added, and the padding data frame is generally added at the end.
[0096] The padding data frame includes a skip flag, and the skip flag is used to instruct the test machine to skip processing the padding data frame, so that the padding data frame participates in decoding but does not affect the actual function.
[0097] For details, please refer to Fig.11In the frame structure shown, the fill-in data frame includes a frame type field, a skip flag field and a data field. The field information of the frame type field is the second frame type flag, which is used to identify the current data frame as a functional data frame. The field information of the skip flag field is the skip flag. Similar to the row repetition function code part, based on the encoding result of the function flag in the above embodiment as an example, in this case, the frame type field of the fill-in data frame is the second frame type flag, and the skip flag field is 1111. Fig.11 Take this as an example. The field information of the data field is the default value, for example, all 0. In one embodiment, the total number of bits of the padded data frame is determined according to the number of bits to be padded. The frame type field in the padded data frame occupies 1 bit, the skip flag field occupies 4 bits, and the data field occupies the remaining bits and all are 0. For example, in Fig.10 In the embodiment, the padding data frame occupies 32 bits, and the data field occupies 27 bits and all of them are 0.
[0098] The above is only a preferred embodiment of the present application, and the present invention is not limited to the above embodiments. It is understood that other improvements and changes directly derived or associated by those skilled in the art without departing from the spirit and concept of the present invention should be considered to be included in the protection scope of the present invention.
Claims
1. A method for encoding a test vector, characterized in that: The method comprises: Get a test file, the test file includes several lines of test vectors, each line of test vectors includes a function code and a stimulus code, each stimulus code corresponding to a test channel of a test machine executing the test file; the function code is used to indicate the test function executed by the test vector, and the stimulus code corresponding to each test channel is used to indicate the test behavior information of the test channel under the current test vector; Divide the test file into several sub-files, each of which includes row test vector; For each sub-file, The excitation code of the row test vector is encoded column by column to obtain Stimulus data frame, The function code of the row test vector is row-encoded to obtain Function data frames are obtained to obtain the encoding result of the sub-file, wherein each stimulus data frame corresponds to a test channel and contains all the sub-files. The encoding result of the excitation code corresponding to the test channel in the row test vector, each function data frame corresponds to a row of test vectors and contains the encoding result of the function code in the corresponding row of test vectors; In the encoding of each sub-file stimulus data frames and After function data frames, if the total number of bits occupied by all data frames is An integer multiple of stimulus data frames and The function data frame is directly output to the test machine as the encoding result of the sub-file, and the test machine bits of data width are decoded; if the total number of bits occupied by all data frames is not If the number of bits is an integer multiple of , then the corresponding bit-filled data frame is added to the total bit position. After the integer multiple of Stimulus data frame, The functional data frames and the padding data frames are output to the test machine as the encoding results of the sub-files; the padding data frames contain a skip flag, and the skip flag is used to instruct the test machine to skip processing the padding data frames.
2. The method according to claim 1, characterized in that The test file is divided into a plurality of sub-files, including: Several consecutive identical test vectors in the test file are compressed into one line of test vectors, the function code of the compressed line of test vectors is used to indicate the test function of all test vectors before compression, each stimulus code of the compressed line of test vectors is respectively the same as the stimulus code of any line of test vectors before compression, the same test vector is a multi-line test vector with the same function identifier of the function code and the same stimulus code for each test channel, and the function identifier includes a line repeated function identifier , segment repeat function identifier , Pause function flag and PPMU test function identifier Any of the following: The test file that has been compressed is divided into a plurality of sub-files, each of which includes consecutive Row test vector.
3. The method according to claim 1, characterized in that The method further comprises: The total number of lines of test vectors in the test file is not When the value is an integer multiple of , add several lines of supplementary test vectors to the test file. An integer multiple of , each complementary line test vector includes a line repeat function code and An excitation code is provided, and each excitation code in the supplementary row test vector is used to indicate that the test behavior information of the corresponding test channel under the current supplementary row test vector is in any state.
4. The method according to any one of claims 1 to 3, characterized in that: The stimulus data frame of each test channel includes a frame type field, a test channel number field and a data field. The field information of the frame type field is a first frame type identifier, which is used to identify the current data frame as a stimulus data frame. The field information of the test channel number field is a binary code of the channel number of the test channel. The field information of the data field includes The binary code encoding result of the excitation code, each excitation code encoding result occupies bits.
5. The method according to any one of claims 1 to 3, characterized in that: The function code in the test vector is a row repetition function code, and the row repetition function code includes a row repetition function identifier and a row repetition number; The functional data frame obtained by encoding the test vector of the row repetition function code includes a frame type field, a row repetition identification field, a repeated row position field and a row repetition number field, the field information of the frame type field is a second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame, the field information of the row repetition identification field is the binary code corresponding to the row repetition function identification, the field information of the repeated row position field is the binary code of the row number of the test vector in the subfile, and the field information of the row repetition number field is the binary code of the row repetition number.
6. The method according to any one of claims 1 to 3, characterized in that: The function code in the test vector is a segment repetition function code, and the segment repetition function code includes a segment repetition function identifier, a number of repetition segment rows, and a number of segment repetition times; The functional data frame obtained by encoding the test vector of the segment repetition function code includes a frame type field, a segment repetition identification field, a first cross-file field, a repeated segment start line position field, a second cross-file field, a repeated segment end line position field and a segment repetition count field: the field information of the frame type field is the second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame; the field information of the segment repetition identification field is the binary code corresponding to the segment repetition function identification; the field information of the first cross-file field is the first same-file identification or the first cross-file identification, and the first same-file identification indicates that the repeated segment start line and the test vector of the segment repetition function code belong to the same subfile, and the first cross-file identification indicates that the repeated segment The test vectors of the starting line and the segment repetition function code belong to different subfiles; the field information of the repeated segment starting line position field is the binary code of the line number of the starting line of the repeated segment in the subfile where it is located; the field information of the second cross-file field is the second same-file identifier or the second cross-file identifier, the second same-file identifier indicates that the test vectors of the repeated segment end line and the segment repetition function code belong to the same subfile, and the second cross-file identifier indicates that the test vectors of the repeated segment end line and the segment repetition function code belong to different subfiles; the field information of the repeated segment end line position field is the binary code of the line number of the ending line of the repeated segment in the subfile where it is located; the field information of the segment repetition count field is the binary code of the segment repetition count in the segment repetition function code; The repeat segment start line is the next line of test vectors of the test vector of the repeat segment function code, and the repeat segment end line is a line of test vectors starting from the repeat segment start line and having the number of repeat segment lines.
7. The method according to any one of claims 1 to 3, characterized in that: The function code in the test vector is a pause function code, and the pause function code includes a pause function identifier and a pause cycle number; The functional data frame obtained by encoding the test vector of the pause function code includes a frame type field, a pause identification field, a pause line position field and a pause cycle number field; the field information of the frame type field is a second frame type identification, and the second frame type identification is used to identify the current data frame as a functional data frame; the field information of the pause identification field is the binary code corresponding to the pause function identification, the pause line position field is the binary code of the line number of the test vector of the pause function code in the sub-file where it is located, and the pause cycle number field is the binary code of the number of pause cycles in the pause function code.
8. The method according to any one of claims 1 to 3, characterized in that: The function code in the test vector is a PPMU test function code, and the PPMU test function code includes a PPMU test function identifier and a test cycle number; The function data frame obtained by encoding the test vector of the PPMU test function code includes a frame type field, a PPMU test identification field, a test row position field and a test cycle number field; the field information of the frame type field is a second frame type identification, and the second frame type identification is used to identify that the current data frame is a function data frame; the field information of the PPMU test identification field is a binary code corresponding to the PPMU test function identification; The test row position field is a binary code of the row number of the test vector of the PPMU test function code in the subfile; The field information of the test cycle number field is the binary code of the test cycle number in the PPMU test function code.
9. The method according to claim 1, characterized in that: The padding data frame includes a frame type field, a skip flag field and a data field, the field information of the frame type field is a second frame type flag, and the second frame type flag is used to identify the current data frame as a functional data frame; the field information of the skip flag field is the skip flag, and the field information of the data field is a default value.
Citation Information
Patent Citations
Method for testing SOC (System On Chip) based on reference vector and bit mask
CN102353894A
Method for storing test vectors in test machine
CN104656009A
Lossless compression and decompression method for test vector
CN110719105A
Test vector compression method and decoder forrestoring compressed test vector
KR1020080019140A
Integrated circuit test stimulus verification and vector extraction system
US5920490A
