Test vector file storage and loading method

By partitioning and storing the test vector file as a two-dimensional test vector table and using index value mapping, the problem of low storage and editing efficiency caused by the excessively large test vector file in the testing of highly integrated integrated circuits is solved, and efficient file loading and storage are achieved.

CN122152773APending Publication Date: 2026-06-05WUXI ESIONTECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
WUXI ESIONTECH CO LTD
Filing Date
2026-02-27
Publication Date
2026-06-05

AI Technical Summary

Technical Problem

In the functional testing of highly integrated circuits, excessively large test vector files lead to low loading, editing, and storage efficiency, and consume a large amount of storage space.

Method used

The test vector file is organized into a two-dimensional test vector table, and its basic attribute information, vector header row, command column and stimulus code column are partitioned and stored in the file header data area, header data area, command column data area, stimulus code data area and string data area. The data is stored using fast compression and index value mapping.

Benefits of technology

It improves the efficiency of editing and compiling test vector files, reduces storage space requirements, and solves the problems of editing, compiling, and saving efficiency caused by excessively large and numerous test vector files.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122152773A_ABST
    Figure CN122152773A_ABST
Patent Text Reader

Abstract

The application discloses a test vector file storage and loading method, and relates to the technical field of testing. When storing a test vector file, the method arranges test vector data in the test vector file into a two-dimensional test vector table, and divides basic attribute information, a vector title line, a command column and related information of each excitation code column of the two-dimensional test vector table into five different storage areas for partition storage. The method can quickly save the content of the test vector file, is beneficial to subsequent quick loading and reading of the content of the test vector file, improves the work efficiency of editing and compiling of the test vector file, and greatly compresses the storage space, so that the storage space can be reduced as much as possible, and the editing, compiling and saving efficiency problems and storage space pressure caused by too large and too many test vector files can be effectively solved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of testing technology, and in particular to a method for storing and loading test vector files. Background Technology

[0002] With the rapid development of integrated circuit (IC) technology, the integration level of digital circuits has been continuously improved, and a number of highly integrated integrated circuits such as FPGA (Field Programmable Gate Array) and CPU (Central Processing Unit) have emerged. When testing these integrated circuits, especially the functional testing of finished product testing (FT testing), the testing complexity increases rapidly, and the test vectors are often very large.

[0003] To meet the batch testing requirements for the functional testing of these integrated circuits, it is often necessary to edit and compile a large number of test vectors. Since individual test vector files are often too large, loading, editing, compiling, and saving them consumes a significant amount of time, severely impacting the writing and debugging of test cases. Furthermore, the sheer number of test vector files and the substantial content of each individual file also puts considerable pressure on storage space. Summary of the Invention

[0004] This application addresses the aforementioned problems and technical requirements by proposing a method for storing and loading test vector files. The technical solution of this application is as follows:

[0005] A method for storing test vector files, the method comprising: Obtain the test vector file and organize the test vector data in the test vector file into a two-dimensional test vector table. The vector header row of the two-dimensional test vector table includes a default header and N column headers consisting of the channel names of N-1 test machine channels. The vector column corresponding to the default header in the two-dimensional test vector table belongs to the command column and includes M test vector commands executed sequentially in row order. The vector column corresponding to the channel name of each test machine channel in the two-dimensional test vector table belongs to the excitation code column and includes M data cells. The content of each data cell is the excitation code when executing the test vector command of the corresponding row for the test machine channel in the column, or it is empty; M and N are both integer parameters. Based on a two-dimensional test vector table structure, the test vector file is partitioned and stored in the header data area, title data area, command line data area, stimulus code data area, and string data area: (1) The file header data area is used to store the basic attribute information of the test vector file, the total number of rows M of the two-dimensional test vector table, the total number of columns N of the two-dimensional test vector table, and the address information of other data areas; (2) The title data area includes N consecutive title data blocks. Each title data block corresponds to a vector column in the two-dimensional test vector table and has a fixed data size. It is used to store the basic attribute information of the corresponding vector column and the index value of the column header. (3) The command column data area includes M command data blocks arranged in sequence. Each command data block corresponds to a test vector command in the command column of the two-dimensional test vector table and has a fixed data size. It is used to store the index value of the command type and the command parameters of the corresponding test vector command. (4) The incentive code data area includes N-1 incentive code data units. Each incentive code data unit corresponds to an incentive code column in the two-dimensional test vector table and is used to store the index value of the incentive code type of the contents of M data cells in the corresponding incentive code column. (5) The string data area is used to store the string content corresponding to the index value of each string in other data areas.

[0006] The further technical solution is that the incentive code data area includes an incentive code header data area and an incentive code index data area stored sequentially. The incentive code header data area includes N-1 header data blocks arranged sequentially from the first address of the incentive code data area, and the incentive code index data area includes N-1 incentive code data blocks arranged sequentially. Each header data block corresponds to an activation code column in the two-dimensional test vector table, and each activation code data block corresponds to an activation code column in the two-dimensional test vector table. The header data block and activation code data block corresponding to the same activation code column form an activation code data unit. Each header data block stores the storage information of the corresponding incentive code data block, and each incentive code data block stores the index value of the incentive code type of the M data cells in the corresponding incentive code column.

[0007] A further technical solution is that the test vector file storage method also includes: The index values ​​of the incentive code type of the M data cells in each incentive code column are quickly compressed and stored in the corresponding incentive code data block. The storage information of the incentive code data block stored in the header data block corresponding to the current incentive code includes the address information of the incentive code data block and the length of the quickly compressed data.

[0008] A further technical solution is that each vector column in the two-dimensional test vector table has a unique column identifier; The basic attribute information of the corresponding vector column stored in each header data block in the header data area includes the column identifier of the vector column. The storage order of the N header data blocks corresponding to the N vector columns in the two-dimensional test vector table may be consistent with or inconsistent with the column order of the N vector columns. Each header data block in the stimulus code header data area also stores the column identifier of the corresponding stimulus code column. The storage order of the N-1 header data blocks corresponding to the N-1 stimulus code columns in the two-dimensional test vector table may be consistent with or inconsistent with the column order of the N-1 stimulus code columns.

[0009] The further technical solution is that the basic attribute information of the corresponding vector column stored in each header data block also includes column type and other auxiliary information. The column type is used to indicate whether the current vector column belongs to the command column or the excitation code column; the other auxiliary information includes the column attributes of the current vector column. When the column type of the vector column is the excitation code column, the other auxiliary information includes the channel number of the test machine channel corresponding to the current vector column.

[0010] A further technical solution is that the test vector file storage method also includes: In the command column data area, the index value of the command type and the command parameters of each test vector command are stored sequentially in M ​​command data blocks according to the row order of the M test vector commands in the command column; In each incentive code data block, the index value of the incentive code type of each incentive code is stored sequentially according to the row order of the contents of M data cells in the corresponding incentive code column.

[0011] The further technical solution is that the string data area includes a string header, a string information block, and a string data block, wherein: The string header is used to store the total number of strings K, as well as the address information of the string information block; The string information block consists of K consecutively arranged string information blocks. Each string information block is used to store the index value of a string and the storage information of the string data block where the corresponding string content is located. The string data block consists of K consecutively arranged string data blocks, each used to store a set of string content.

[0012] A further technical solution is that the test vector file storage method also includes: When writing the correspondence between each string content and its corresponding string index value into the string data area, the string index value is mapped to the index value range corresponding to the string type to which the current string content belongs, thus obtaining the index mapping value; wherein, different string types correspond to different index value ranges and do not overlap with each other, and the string types include at least column header, command type, and incentive code type; Write the string content into a string data block, and write the index mapping value and the storage information of the string data block containing the string content into a string information block.

[0013] A further technical solution is that the basic attribute information of the test vector file in the header data area includes the file identifier, version number and auxiliary information of the test vector file. The auxiliary information of the test vector file includes at least one of the following: modification date, index value of author name, and index value of file description information.

[0014] A test vector file loading method is provided for loading a test vector file stored according to the test vector file storage method described in the first aspect above. The test vector file loading method includes: Read the basic attribute information of the test vector file, the total number of rows M of the two-dimensional test vector table, the total number of columns N of the two-dimensional test vector table, and the address information of other data areas from the file header data area; Based on the total number of columns N in the two-dimensional test vector table, N header data blocks are read and parsed sequentially from the header data area based on the starting address of the header data area to obtain the basic attribute information and the index value of the column header for each vector column; Based on the total number of rows M in the two-dimensional test vector table, M command data blocks are read and parsed sequentially from the command column data area based on the starting address of the command column data area to obtain the index value of the command type and command parameters of each of the M test vector commands to be executed sequentially; Based on the total number of columns N in the two-dimensional test vector table, N-1 incentive code data units are read and parsed sequentially from the incentive code data area based on the starting address of the incentive code data area, so as to obtain the index value of the incentive code type of the M data cells in each incentive code column; Based on the starting address of the string data area, the column headers of each vector column are obtained by reading the string content corresponding to the index values ​​of each column header; the command types of the M test vector commands in the command column are obtained by reading the string content corresponding to the index values ​​of various command types, and the M test vector commands to be executed sequentially are obtained by combining the command parameters of the test vector commands; the M data cell contents in each incentive code column are obtained by reading the string content corresponding to the index values ​​of various incentive code types, the channel name of the test machine channel represented by the column header of each incentive code column and the test vector command of the row are determined, and the test vector file is loaded.

[0015] The beneficial technical effects of this application are: This application discloses a method for storing and loading test vector files. When storing test vector files, the method organizes the test vector data in the test vector file into a two-dimensional test vector table, and divides the basic attribute information, vector header row, command column, and relevant information of each stimulus code column of the two-dimensional test vector table into five different storage areas for partitioned storage. This method can quickly save the contents of the test vector file and facilitates the subsequent fast loading and reading of the contents of the test vector file, thereby improving the efficiency of editing and compiling test vector files. At the same time, this method also greatly compresses storage space, minimizing storage space usage and effectively solving the problems of editing, compiling, and saving efficiency and storage space pressure caused by excessively large and numerous test vector files. Attached Figure Description

[0016] Figure 1 This is a schematic diagram of a two-dimensional test vector table obtained by organizing the test vector data in the test vector file of an instance.

[0017] Figure 2 This is a schematic diagram of partitioning and storing test vector files in one embodiment of this application.

[0018] Figure 3 This is a storage data structure diagram of the title data area in one embodiment of this application.

[0019] Figure 4 This is a storage data structure diagram of the command column data area in one embodiment of this application.

[0020] Figure 5 This is a storage data structure diagram of the incentive code data area in one embodiment of this application.

[0021] Figure 6 This is a storage data structure diagram of the string data area in one embodiment of this application. Detailed Implementation

[0022] The specific embodiments of this application will be further described below with reference to the accompanying drawings.

[0023] This application discloses a test vector file storage method. The core of this method is to quickly save the test vector file while minimizing storage space, and also to facilitate subsequent fast loading of the test vector file, thereby effectively solving the problems of editing, compiling and saving efficiency and storage space pressure caused by excessively large and numerous test vector files.

[0024] First, obtain the test vector file. The most important part of the test vector file is the test vector data. Each test vector data record is a test vector command executed on the test machine channel, along with the stimulus code. During test input, this stimulus code serves as the driving value; during test output, it serves as the expected value. The content of this test vector data is essential for the test machine's testing. Besides the core test vector data, the test vector file also includes some basic attribute information. This basic attribute information includes the file identifier, version number, and various auxiliary information. The auxiliary information includes at least one of the following: the modification date, author name, and file description.

[0025] To achieve rapid storage of test vector files, this application first organizes the test vector data into a two-dimensional test vector table. Please refer to [reference needed]. Figure 1 This two-dimensional test vector table includes a vector header row, which contains N column headers, each represented as a string. These N column headers include a default title and the channel names of N-1 test machine channels. For example, in... Figure 1 In the vector header row, there is a default header "cmd" and the channel names of the nine test machine channels: "PPMU4, PPMU2, PPMU3, PPMU1, PPMU7, PPMU6, PPMU5, PPMU9, PPMU8". The content of the default header can be customized; this is just an example.

[0026] In a two-dimensional test vector table, each column header in the vector header row corresponds to a vector column. Therefore, the two-dimensional test vector table includes N vector columns. These N vector columns fall into two categories: one command column and N-1 excitation code columns. Each vector column has its own unique column header. The vector column in the two-dimensional test vector table corresponding to the default header belongs to the command column, and the vector column in the two-dimensional test vector table corresponding to the channel name of each test machine channel belongs to the excitation code column. For example... Figure 1 The command column and the excitation code column corresponding to PPMU7 are shown; the other excitation code columns are similar. A two-dimensional test vector table has one and only one command column, but can have multiple excitation code columns. It is usually agreed that the 0th vector column of the two-dimensional test vector table is the command column, and the subsequent excitation code columns are arranged sequentially, such as... Figure 1 Take this as an example.

[0027] Because the test vector data is directional, the command column includes M test vector commands executed sequentially in row order. Each test vector command is represented as a string. Each test vector command includes a command type and command parameters. Common command types include normal row loop, PPMU row loop, segment loop start and end, pause, skip, etc. Command parameters have different meanings depending on the command type. When the command type is normal row loop, PPMU row loop, or segment loop, the corresponding command parameter represents the number of loops; when the command type is a segment loop end, pause, skip, etc., which does not require parameters, the command parameters can be omitted. For example, in Figure 1 In the command line, the first test vector command "R100" means to execute 100 normal row loops, and the fourth test vector command "PPMU100" means to execute 100 PPMU row loops, and so on.

[0028] The two-dimensional test vector table contains M data cells corresponding to the channel name of each test channel. Each data cell is located at the intersection of a row and a column. For any given data cell: if it contains the test data content for executing the test vector command of the corresponding row for the test channel in that column, then the content of that data cell is the excitation code for executing the test vector command of the corresponding row for that test channel. Currently, there are five common excitation codes: 1 (logic 1, representing a strong high level), 0 (logic 0, representing a strong low level), X (representing an unknown / irrelevant / high impedance state), H (logic 1, representing a weak high level), and L (logic 0, representing a weak low level). If it does not contain the test data content for executing the test vector command of the corresponding row for the test channel in that column, then the content of that data cell is empty.

[0029] This allows a large amount of test vector data to be summarized into a two-dimensional table structure with a vector header row and M rows and N columns of data, where the total number of rows M and the total number of columns N are both integer parameters. In this two-dimensional test vector table, each stimulus code has a corresponding test machine channel name and test vector command, but not every data cell needs to contain a stimulus code.

[0030] When storing test vector files, it is essential to ensure the correct location of test vector commands and stimulus codes can be restored. Therefore, this application, based on the aforementioned two-dimensional test vector table structure, partitions the test vector file into a header data area, a title data area, a command line data area, a stimulus code data area, and a string data area. Please refer to [reference needed]. Figure 2The file header data area is fixed at the beginning of the file and has a fixed size. The sizes and storage order of other data areas are variable and can be adjusted freely without affecting the final data loading and compilation. I. File Header Data Area The header data area is the first part of the test vector file. This header data area is unique and located at the very beginning of the test vector file, starting from byte 0, and its length is fixed. The header data area stores basic attribute information of the test vector file, the total number of rows M in the two-dimensional test vector table, the total number of columns N in the two-dimensional test vector table, the address information of the header data area, the address information of the command column data area, the address information of the stimulus code data area, and the address information of the string data area. Among these: (1) As mentioned above, the basic attribute information of the test vector file includes the file identifier, version number and various auxiliary information of the test vector file. The auxiliary information includes at least one of the modification date of the test vector file, author name and file description information. Therefore, the basic attribute information written into the file header data area also includes these data contents.

[0031] The file identifier is used to uniquely identify a test vector file. When saving a test vector file, the file identifier is written to it by the vector file editor and cannot be changed by the user.

[0032] The version number indicates the storage technology version of the test vector file. This version number is fixedly written by the vector file editor when saving the file, based on the version of the storage technology. Its main function is to facilitate the resolution of compatibility issues that may arise during later expansions.

[0033] The modification date of the test vector file is the system time when the vector file editor saves the test vector file. Users cannot modify this information, but it is provided as supplementary information for users to refer to.

[0034] The author name in the test vector file is used to store information about the person who modified and saved the current vector. The author name is a string with an uncertain length; therefore, in one embodiment, the string content of the author name is not directly written into the file header data area. Instead, only the index value of the author name in the string dictionary is written into the file header data area, and the string content of the author name is stored in the string data area. The author name is auxiliary information, and users can add it as needed.

[0035] The file description information of the test vector file is used to describe the relevant content of the test vector file. Similarly, the file description information is a string with an uncertain length. Therefore, in one embodiment, the string content of the file description information is not directly written into the file header data area. Instead, only the index value of the file description information in the string dictionary is written into the file header data area, and the string content of the file description information is stored in the string data area. The file description information is auxiliary information, and users can add it as needed.

[0036] (2) The total number of rows M and the total number of columns N of the two-dimensional test vector table are necessary information for the test vector file. These two parameters are used to mark the specifications of the two-dimensional test vector table and determine the number of rows and columns of the command column and the excitation code. The total number of rows M and the total number of columns N must not be less than 0. If either the total number of rows M or the total number of columns N is zero, it means that the content of the test vector file is empty, and compilation cannot be performed. The total number of rows M and the total number of columns N of the test vector file are calculated and saved by the vector file editor according to the actual content.

[0037] In one embodiment, the total number of rows in the two-dimensional test vector table occupies 32 bits, and the maximum supported total number of rows is 4,294,967,295. The total number of columns in the two-dimensional test vector table occupies 32 bits, and the theoretical maximum number of columns supported by a single test vector file is determined by the actual number of test machine channels.

[0038] (3) The address information of the header data area is the offset address of the starting address of the header data area relative to the file header data area. The number of column headers in the test vector file is equal to the total number of columns in the test vector file, both being N. If the total number of columns N in the test vector file is 0, it means that there is no information of any vector header row. Therefore, the starting address of the header data area in the test vector file is 0, that is, there is no header data 7 command column data and excitation code data in the test vector file, which also means that the test vector file is empty.

[0039] (4) The address information of the command line data area is the offset address of the starting address of the command line data area relative to the file header data area. The number of command line rows in the test vector file is the same as the total number of rows in the test vector file, which is M. If the total number of rows M in the test vector file is 0, it means that there is no command line information, and the starting address of the command line data area is 0. That is, there is no command line data or stimulus code data in the test vector file, and it also means that the compilable data of the test vector file is empty.

[0040] (5) The address information of the stimulus code data area is the offset address of the starting address of the stimulus code data area relative to the file header data area. The size of the stimulus code data area is determined by the total number of rows M and the total number of columns N of the test vector file. The formula for calculating the total number of data cells in the two-dimensional test vector table is M×(N-1). Therefore, when the total number of rows M is 0 or the total number of columns N is not greater than 1, the total number of data cells is also 0. At this time, the starting address of the stimulus code data area is 0, which also indicates that the compilable data of the test vector file is empty.

[0041] (6) The address information of the string data area is the offset address of the starting address of the string data area relative to the file header data area.

[0042] The string data area has a fixed data format. In one embodiment, the string data area occupies a total of 64 bytes. The string data area sequentially records the file identifier (occupying 32 bits of bytes 0-3), version number (occupying 32 bits of bytes 4-7), modification date (occupying 64 bits of bytes 8-15), index value of author name (occupying 32 bits of bytes 16-19), index value of file description information (occupying 32 bits of bytes 20-23), total number of rows (occupying 32 bits of bytes 24-27), total number of columns (occupying 32 bits of bytes 28-31), address information of title data area (occupying 64 bits of bytes 32-39), address information of command line data area (occupying 64 bits of bytes 40-47), address information of stimulus code data area (occupying 64 bits of bytes 48-55), and address information of string data area (occupying 64 bits of bytes 56-63).

[0043] II. Title Data Area The header data area stores information related to the header rows of vectors in the two-dimensional test vector table. It comprises N consecutively arranged header data blocks, denoted as header data block 1 to header data block N, starting from the first address. The size of each header data block is fixed, but the number of header data blocks in the header data area is determined by the total number of columns N in the two-dimensional test vector table. Therefore, the size of the header data area is not fixed and is related to the total number of columns N.

[0044] Each header data block corresponds to a vector column in the two-dimensional test vector table. The data format of each header data block is fixed and is used to store the basic attribute information of the corresponding vector column and the index value of the string content of the column header in the string dictionary.

[0045] In one embodiment, each vector column in the two-dimensional test vector table has a unique column identifier, which is generally represented by a column number. The basic attribute information of the corresponding vector column stored in each header data block includes the column identifier. The column identifier is mainly used to determine the position of the column header and the corresponding activation code in the vector editor during editing, and to determine the test set channel corresponding to the column containing the activation code during compilation. Since the header data blocks record the column identifiers, the storage order of the N header data blocks does not need to be fixed. That is, the storage order of the N header data blocks corresponding to each of the N vector columns in the two-dimensional test vector table can be the same as or different from the column order of the N vector columns. The correspondence between vector columns and header data blocks can be constructed through the column identifier of each vector column. For example, for... Figure 1 The two-dimensional test vector table shown can have its first header data block 1 corresponding to the first vector column (command column) in sequence, or it can correspond to the fifth excitation code column or any other excitation code column out of sequence.

[0046] In addition to column identifiers, each header data block stores basic attribute information for the corresponding vector column, including column type and other auxiliary information: the column type indicates whether the current vector column belongs to a command column or an excitation code column, and can also reserve column types for later expansion. When the vector column belongs to an excitation code column, it corresponds to a test machine channel. The other auxiliary information stored in the header data block includes the channel number of the test machine channel corresponding to the current vector column. This channel number is defined by the user in the test case and is a unique identifier used to specify the channel number. The channel number is an auxiliary parameter, generally used for reference during editing and compilation. If the corresponding vector column does not have a re-specified channel number for the column header, this channel number is used for compilation. If the channel number for the column header is re-specified during editing and compilation, the newly specified channel number takes precedence. When the column type of the vector column is a command column, the channel number does not need to be recorded. When the vector column belongs to a command column, the channel number is meaningless and the default value can be used directly.

[0047] In addition to the command column and the stimulus code column, other auxiliary information stored in the header data block includes the column attributes of the current vector column. The column attributes mainly facilitate the corresponding data processing based on different attribute information during editing, saving, and compilation. For example, when deleting the corresponding column during editing, the corresponding column is marked as a deleted column, but the corresponding column data is not deleted immediately. Instead, it is marked as the corresponding status information in the editor for easy reference and rollback. At the same time, the column data is not saved when saving. When the column attribute is set to "ignored column" during editing, it is specially marked in the editor and the column data is not loaded and compiled during compilation, which facilitates the reuse of test vector files and the debugging of test cases.

[0048] Figure 3Taking the header data block corresponding to the incentive code column as an example, the information of each field contained therein is shown. In one embodiment, each header data block stores the column identifier, channel number, column type, column attribute, and index value of the column header in sequence. The column identifier occupies 32 bits, the channel number occupies 32 bits, the column type occupies 16 bits, the column attribute occupies 16 bits, and the index value of the column header occupies 32 bits.

[0049] III. Command Column Data Area The command column data area stores information related to the command columns in the two-dimensional test vector table. The command column data area comprises M consecutively arranged command data blocks, denoted as command data block 1 to command data block M, starting from its first address. The size of each command data block is fixed, but the number of command data blocks contained in the command data area is determined by the total number of rows M in the two-dimensional test vector table. Therefore, the size of the command data area is not fixed and is related to the total number of rows M.

[0050] Each command data block corresponds to a test vector command in the command column of the two-dimensional test vector table. The data format of each command data block is fixed and is used to store the index value of the string content of the command type of the corresponding test vector command in the string dictionary and the command parameters.

[0051] Since the total number of rows M in the two-dimensional test vector table may be very large, in order to save storage space, in one embodiment, the row number of the corresponding test vector command is not recorded in the command data block. However, in order to determine the specific row number of the test vector command in each command data block, and to improve the efficiency of loading and saving, the index value of the command type and the command parameters of each test vector command are stored sequentially in M ​​command data blocks according to the row order of the M test vector commands in the command column data area. That is, the storage order of the command data blocks is ordered according to the row number of the corresponding test vector command in ascending order. Figure 4 As shown, command data blocks 1 through M are used to store the relevant information of the test vector commands in the first row to the Mth row of the command column, respectively.

[0052] Given the characteristics of test vector files, there are relatively few command types. Therefore, in one embodiment, the index value of the command type occupies one byte. Since command parameters may be large values, they are set to 32-bit positive integers, supporting a maximum command parameter of 4,294,967,295. If the value exceeds this, the user is prompted to start a new line.

[0053] IV. Incentive Code Data Area The incentive code data area stores information related to the incentive code columns in the two-dimensional test vector table. The incentive code data area comprises N-1 incentive code data units starting from its first address, denoted as incentive code data unit 1 to incentive code data unit N-1. The size of each incentive code data unit is fixed, and the number of incentive code data units contained in the incentive code data area is related to the number of incentive code columns N-1; therefore, the overall size of the incentive code data area is not fixed. Each incentive code data unit corresponds to an incentive code column in the two-dimensional test vector table and is used to store the index value of the incentive code type of the M data cells in the corresponding incentive code column.

[0054] In one embodiment, the stimulus code data region is not directly obtained from N-1 consecutive stimulus code data units. Instead, the stimulus code data region is first divided into two sub-regions: a stimulus code header data region and a stimulus code index data region. The stimulus code header data region includes N-1 consecutive header data blocks, denoted as Header Data Block 1 to Header Data Block N-1, starting from the first address of the stimulus code data region. Each header data block corresponds to a stimulus code column in the two-dimensional test vector table. The stimulus code index data region includes N-1 consecutive stimulus code data blocks, denoted as Header Data Block 1 to Header Data Block N-1, each also corresponding to a stimulus code column in the two-dimensional test vector table.

[0055] The header data block and the incentive code data block corresponding to the same incentive code column form an incentive code data unit, which is used to jointly store the relevant information of the incentive code column. Specifically: each header data block is used to store the storage information of the incentive code data block where the corresponding incentive code column is located. Each incentive code data block is used to store the index value of the incentive code type of the M data cells in the corresponding incentive code column.

[0056] Similar to the header data block, each header data block in the stimulus code header data area also stores the column identifier of the corresponding stimulus code column. Therefore, the header data blocks do not need to be stored in order; that is, the storage order of the N-1 header data blocks corresponding to each of the N-1 stimulus code columns in the two-dimensional test vector table may or may not be consistent with the column order of the N-1 stimulus code columns. For example, in... Figure 5 In the example, the first header data block 1 can correspond to the first stimulus code column in sequence, or it can correspond to the third stimulus code column or any other stimulus code column out of sequence.

[0057] The header data block records the storage information of the stimulus code data block containing the corresponding stimulus code column. This includes the address information and data length of the stimulus code data block containing the corresponding stimulus code column. The address information of the stimulus code data block is generally the offset address of the starting address of the stimulus code data block relative to the starting address of the stimulus code data area.

[0058] Each stimulus code data block in the stimulus code index data area has its location specified by the storage information in the corresponding header data block. Therefore, the N-1 stimulus code data blocks in the stimulus code index data area do not need to be stored in order. For example, in... Figure 5 In the table, header data block 1 can correspond to excitation code data block 1 in sequence, or it can correspond to excitation code data block 2 out of sequence.

[0059] Each stimulus code data block stores the index values ​​of the M stimulus code types in the corresponding stimulus code column, denoted as the index value of stimulus code type 1 to the index value of stimulus code type M, respectively. Similarly, since the total number of rows in the two-dimensional test vector table may be large, each stimulus code data block only records the index value of the stimulus code type, not the row number of each data cell. However, to determine the specific row number of each data cell in each stimulus code data block, the index values ​​of the stimulus code types of each stimulus code are stored sequentially in the row order of the M data cells in the corresponding stimulus code column, that is, in... Figure 5 In the code, the index values ​​of incentive code type 1 to incentive code type M are stored sequentially to store the index values ​​of the incentive code type of the content of the 1st to Mth data cells in the corresponding incentive code column.

[0060] As described above, each data cell in the two-dimensional test vector table contains either an incentive code or is empty. Since the incentive codes in the test vector file are few in number and have a very high repetition rate, such as the commonly used incentive codes mentioned above, which are mainly 0, 1, X, H, and L, plus the case of being empty, the incentive code types in the data cell content are very limited. Therefore, in one embodiment, the index value of the incentive code type only needs to occupy one byte.

[0061] Furthermore, to further reduce space usage, when storing the index values ​​of the incentive code types of M data cells in an incentive code column into the corresponding incentive code data block, a fast compression method is used to quickly compress the index values ​​of the incentive code types in the incentive code column before storing them in the corresponding incentive code data block, thus saving storage space. In this case, the data length of the incentive code data block recorded in the header data block is the data length of the corresponding incentive code column after fast compression.

[0062] V. String Data Area The string data area is used to store the string content corresponding to the index values ​​of each string in other data areas. The size of the string data area is related to the total number of strings K in the two-dimensional test vector table and the length of the string content of each group. Therefore, the size of the string data area is not fixed.

[0063] As can be seen from the above description, the index values ​​of strings in other data areas include: the index values ​​of column headers in each header data block, the index values ​​of command types in each command data block, and the index values ​​of stimulus code types in each stimulus code data unit. It also includes the index values ​​of strings in the basic attribute information of the test vector file, specifically the index values ​​of the author name and the file description information. The string data area needs to store the string content corresponding to the different index values ​​of the above-mentioned types of strings separately. Furthermore, since test vector files allow the existence of blank lines (i.e., displaying empty characters), the index values ​​of strings in other data areas also actually include the index values ​​of empty strings.

[0064] In one embodiment, such as Figure 1 As shown, the string data area includes a string header, a string information block, and a string data block, where... Figure 6 As shown: The data format and size of the string header are fixed. The string header is used to store the total number of strings K and the address information of the string information block. This address information is usually the offset address of the first address of the string information block relative to the first address of the string data area.

[0065] The data format of the string information block is fixed. A string information block consists of K consecutively arranged string information blocks, denoted as string information block 1 to string information block K, each used to record information about K different strings. There is no specific order requirement. The data size of each string information block is fixed, but the number of string information blocks is equal to the total number of strings K. Therefore, the size of the string information block is variable and equal to the size of a single string information block. The total number of strings is K. Each string information block stores the index value of a string and the storage information of the string data block containing its corresponding string content. The storage information of the string data block includes the address information of the string data block and the length of the stored string content. The address information of the string data block is usually the offset address of the starting address of the string data block relative to the starting address of the string data area. In one embodiment, each string information block stores the string index value, the length of the string content, and the address information of the string data block containing the string in sequence. The string index value occupies 16 bits, the string content length occupies 16 bits, and the address information of the string data block occupies 64 bits.

[0066] The string data block consists of K consecutively arranged string data blocks, denoted as string data block 1 to string data block K. Each string data block stores a set of string content. Since the address of each string data block is specified by the address information in the string information block, the storage order of the string data blocks can be the same as or different from the storage order of the string information blocks. For example, writing the string content of a certain string into string data block K, but writing the index value of that string into string information block 1, will not affect compilation. Figure 6 Take this as an example.

[0067] Each string's index is a unique identifier within the string dictionary. Given the characteristics of test vector files, the number of strings (K) in a test vector file is finite. The most numerous are channel names (column headers), but these typically don't exceed 1024; otherwise, editing and viewing the test vector file would be inconvenient. The command types of test vector commands and the stimulus code types of data cell contents are the most frequently used strings in the vector file, but these strings generally have fixed types and a limited number. As mentioned above, there are six main command types for test vector commands, and five main stimulus code types for data cell contents, plus one empty case. Therefore, the actual number of strings (K) in a test vector file is relatively limited.

[0068] Based on this, in one embodiment, the index value of each string is defined to occupy 16 bits, thus supporting a maximum number of strings K of 65536. As mentioned above, strings in test vector files are generally short, and the longest string may be the file description information of the test vector file. Therefore, in one embodiment, the length of each string content is set to occupy 16 bits, that is, the maximum supported string content length is 65536.

[0069] Furthermore, as mentioned above, the most frequently used strings in the test vector file are the command type of the test vector command and the stimulus code type of the data cell content, and both types of strings are limited in number. Therefore, to save storage space, improve saving and loading speed, and meet future expansion needs, the index values ​​of both command type and stimulus code type are defined as 8-bit values, supporting a maximum of 255 command types and 255 stimulus code types. The index value of the command type ranges from 0 to 255, and 0 is usually used to represent an empty string for the test vector command. The index value of the stimulus code type also ranges from 0 to 255, and 0 is usually used to represent an empty string for the corresponding data cell content. Considering the WYSIWYG nature of vector file editing, blank lines are allowed when saving and loading the test vector file. However, blank lines are not included in the compilation process, so index values ​​for empty command types and empty stimulus code types are allowed here. Additionally, information related to empty strings is defined not to be saved; for example, when the index value of an empty string is 0, there is no need to store the information related to the string with index value 0.

[0070] Because the index values ​​for command types and incentive code types overlap, string lookups become difficult. For example, an index value of 1 for a command type might correspond to different string content than an index value of 1 for an incentive code type, and identical index values ​​can be hard to distinguish. To avoid this problem, when writing the correspondence between each set of string content and its corresponding string index value into the string data area, the index value of the string is not directly written into the corresponding string information block. Instead, the string index value is first mapped to the index value range corresponding to the string type of the current string content, obtaining an index mapping value. Then, the string content is written into a string data block, and the calculated index mapping value and the storage information of the string data block containing the string content are written into a string information block.

[0071] Different string types correspond to different, non-overlapping, and pre-defined index value ranges. String types include at least column headers, command types, and incentive code types, as well as author names and file description information. That is, in this embodiment, different index value ranges are pre-defined for different string types. Although the index values ​​of strings under each string type are numbered sequentially, when writing to the string data area, the index mapping value is obtained by adding the index value to its index value range offset before writing it accordingly. Thus, when referencing the string content corresponding to each string's index value, mapping is first performed by adding the index value to its index value range offset, and then the string content is found in the string data area using the index mapping value. In one embodiment, the index value ranges for each string type are as follows:

[0072] This application also discloses a test vector file loading method, which is used to load a test vector file stored according to the test vector file storage method of this application. The test vector file loading method includes the following steps: Step 1: First, starting from the first address of the test vector file, read the contents of the file header data area based on its size. Then, parse the data based on the data structure of the file header data area to read the basic attribute information of the test vector file, the total number of rows M of the two-dimensional test vector table, the total number of columns N of the two-dimensional test vector table, and the address information of other data areas.

[0073] Based on the data structure of the file header data area, the file identifier is loaded first. If it is not the agreed-upon file identifier, an error is reported and loading is exited. If it is the agreed-upon file identifier, the subsequent version number is loaded. This version number is used to indicate the version number of the test vector file storage technology, so as to solve vector file compatibility issues when expanding later. Higher version vector file editors and compilers can be compatible with lower version test vector files as needed. For lower version vector file editors and compilers, the version number of the test vector file can be used to determine whether the corresponding test vector file can be parsed. If it cannot be parsed, the process exits and reports the corresponding version number of the editor or compiler, the version number of the test vector file, and relevant information such as the solution, and then continues to load information from other fields.

[0074] Step 2: Based on the total number of columns N in the two-dimensional test vector table, read and parse N header data blocks sequentially from the header data area based on the starting address of the header data area, and obtain the basic attribute information and the index value of the column header for each vector column.

[0075] Step 3: Combining the total number of rows M in the two-dimensional test vector table, read and parse M command data blocks sequentially from the command column data area based on the starting address of the command column data area to obtain the index value of the command type and command parameters of each of the M test vector commands to be executed sequentially.

[0076] Step 4: Combining the total number of columns N in the two-dimensional test vector table, read and parse N-1 incentive code data units sequentially from the incentive code data area based on the starting address of the incentive code data area, and obtain the index value of the incentive code type of the M data cells in each incentive code column.

[0077] Step 5: Based on the starting address of the string data area, read the relevant information of the string from the string data area. This includes reading the string content corresponding to the index values ​​of each column header to obtain the column headers of each vector column; reading the string content corresponding to the index values ​​of various command types to obtain the command types of the M test vector commands in the command column; and combining the command parameters of the test vector commands to obtain the M test vector commands to be executed sequentially. Additionally, read the string content corresponding to the index values ​​of various stimulus code types to obtain the content of the M data cells in each stimulus code column. From this, the following can be reconstructed: Figure 1 The structure of the two-dimensional test vector table shown can be used to determine the channel name of the test machine channel represented by the column header of each excitation code and the test vector command of the row, thereby loading the test vector file.

[0078] The above descriptions are merely preferred embodiments of this application, and this application is not limited to the above embodiments. It is understood that other improvements and variations that can be directly derived or conceived by those skilled in the art without departing from the spirit and concept of this application should be considered to be included within the protection scope of this application.

Claims

1. A method for storing test vector files, characterized in that, The test vector file storage method includes: Obtain the test vector file and organize the test vector data in the test vector file into a two-dimensional test vector table. The vector header row of the two-dimensional test vector table includes a default header and N column headers consisting of the channel names of N-1 test machine channels. The vector column corresponding to the default header in the two-dimensional test vector table belongs to the command column and includes M test vector commands executed sequentially in row order. The vector column corresponding to the channel name of each test machine channel in the two-dimensional test vector table belongs to the excitation code column and includes M data cells. The content of each data cell is the excitation code when executing the test vector command of the row for the test machine channel in the column, or it is empty; M and N are both integer parameters. Based on the aforementioned two-dimensional test vector table structure, the test vector file is partitioned and stored in the file header data area, title data area, command column data area, stimulus code data area, and string data area: (1) The file header data area is used to store the basic attribute information of the test vector file, the total number of rows M of the two-dimensional test vector table, the total number of columns N of the two-dimensional test vector table, and the address information of other data areas; (2) The title data area includes N consecutive title data blocks. Each title data block corresponds to a vector column in the two-dimensional test vector table and has a fixed data size. It is used to store the basic attribute information of the corresponding vector column and the index value of the column header. (3) The command column data area includes M command data blocks arranged in sequence. Each command data block corresponds to a test vector command in the command column of the two-dimensional test vector table and has a fixed data size. It is used to store the index value of the command type and the command parameters of the corresponding test vector command. (4) The incentive code data area includes N-1 incentive code data units. Each incentive code data unit corresponds to an incentive code column in the two-dimensional test vector table and is used to store the index value of the incentive code type of the contents of M data cells in the corresponding incentive code column. (5) The string data area is used to store the string content corresponding to the index value of each string in other data areas.

2. The test vector file storage method according to claim 1, characterized in that, The incentive code data area includes an incentive code header data area and an incentive code index data area stored sequentially. The incentive code header data area includes N-1 header data blocks arranged consecutively starting from the first address of the incentive code data area. The incentive code index data area includes N-1 incentive code data blocks arranged consecutively. Each header data block corresponds to an activation code column in the two-dimensional test vector table, and each activation code data block corresponds to an activation code column in the two-dimensional test vector table. The header data block and activation code data block corresponding to the same activation code column form an activation code data unit. Each header data block stores the storage information of the corresponding incentive code data block, and each incentive code data block stores the index value of the incentive code type of the M data cells in the corresponding incentive code column.

3. The test vector file storage method according to claim 2, characterized in that, The test vector file storage method further includes: The index values ​​of the incentive code type of the M data cells in each incentive code column are quickly compressed and stored in the corresponding incentive code data block. The storage information of the incentive code data block stored in the header data block corresponding to the current incentive code includes the address information of the incentive code data block and the length of the quickly compressed data.

4. The test vector file storage method according to claim 2, characterized in that, Each vector column in the two-dimensional test vector table has a unique column identifier; The basic attribute information of the corresponding vector column stored in each header data block in the header data area includes the column identifier of the vector column. The storage order of the N header data blocks corresponding to the N vector columns in the two-dimensional test vector table may be consistent with or inconsistent with the column order of the N vector columns. Each header data block in the stimulus code header data area also stores the column identifier of the corresponding stimulus code column. The storage order of the N-1 header data blocks corresponding to the N-1 stimulus code columns in the two-dimensional test vector table may be consistent with or inconsistent with the column order of the N-1 stimulus code columns.

5. The test vector file storage method according to claim 4, characterized in that, The basic attribute information of the corresponding vector column stored in each header data block also includes column type and other auxiliary information. The column type is used to indicate whether the current vector column belongs to the command column or the excitation code column. Other auxiliary information includes the column attributes of the current vector column. When the column type of the vector column is the excitation code column, other auxiliary information includes the channel number of the test machine channel corresponding to the current vector column.

6. The test vector file storage method according to claim 2, characterized in that, The test vector file storage method further includes: In the command column data area, the index value of the command type and the command parameters of each test vector command are stored sequentially in M ​​command data blocks according to the row order of the M test vector commands in the command column; In each incentive code data block, the index value of the incentive code type of each incentive code is stored sequentially according to the row order of the contents of M data cells in the corresponding incentive code column.

7. The test vector file storage method according to claim 1, characterized in that, The string data area includes a string header, a string information block, and a string data block, where: The string header is used to store the total number of strings K, as well as the address information of the string information block; The string information block consists of K consecutively arranged string information blocks. Each string information block is used to store the index value of a string and the storage information of the string data block where the corresponding string content is located. The string data block consists of K consecutively arranged string data blocks, each used to store a set of string content.

8. The test vector file storage method according to claim 7, characterized in that, The test vector file storage method further includes: When writing the correspondence between each string content and its corresponding string index value into the string data area, the string index value is mapped to the index value range corresponding to the string type to which the current string content belongs, thus obtaining the index mapping value; wherein, different string types correspond to different index value ranges and do not overlap with each other, and the string types include at least column header, command type, and incentive code type; Write the string content into a string data block, and write the index mapping value and the storage information of the string data block containing the string content into a string information block.

9. The test vector file storage method according to claim 1, characterized in that, The basic attribute information of the test vector file written to the file header data area includes the file identifier, version number, and auxiliary information of the test vector file. The auxiliary information of the test vector file includes at least one of the following: modification date, index value of author name, and index value of file description information.

10. A method for loading test vector files, characterized in that, The test vector file loading method is used to load a test vector file stored according to any one of the test vector file storage methods as described in claims 1-9, and the test vector file loading method includes: Read the basic attribute information of the test vector file, the total number of rows M of the two-dimensional test vector table, the total number of columns N of the two-dimensional test vector table, and the address information of other data areas from the file header data area; Based on the total number of columns N in the two-dimensional test vector table, N header data blocks are read and parsed sequentially from the header data area based on the starting address of the header data area to obtain the basic attribute information and the index value of the column header for each vector column; Based on the total number of rows M in the two-dimensional test vector table, M command data blocks are read and parsed sequentially from the command column data area based on the starting address of the command column data area to obtain the index value of the command type and command parameters of each of the M test vector commands to be executed sequentially; Based on the total number of columns N in the two-dimensional test vector table, N-1 incentive code data units are read and parsed sequentially from the incentive code data area based on the starting address of the incentive code data area, so as to obtain the index value of the incentive code type of the M data cells in each incentive code column; Based on the starting address of the string data area, the column headers of each vector column are obtained by reading the string content corresponding to the index values ​​of each column header; the command types of the M test vector commands in the command column are obtained by reading the string content corresponding to the index values ​​of various command types, and the command parameters of the test vector commands are combined to obtain the M test vector commands to be executed sequentially; the M data cell contents in each incentive code column are obtained by reading the string content corresponding to the index values ​​of various incentive code types, the channel name of the test machine channel represented by the column header of each incentive code column and the test vector command of the row are determined, and the test vector file is loaded.