A method and system for testing an SOC chip
Patent Information
- Application Number
- CN202310817699.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-05
- Publication Date
- 2026-09-18
- Estimated Expiration
- 2043-07-05
AI Technical Summary
由于成本的考量,一般SOC芯片的FLASH存储资源较为丰富,RAM存储资源相对较为有限,FLASH资源足够存储丰富的测试用例,而RAM资源却随着测试用例的增多而显得捉襟见肘,某些测试场景下为不占用过多RAM,可能会减少部分测试用例,但这会使得对SOC芯片的测试不太充分,最终影响到SOC芯片的测试质量
[0082] This invention enables unified and efficient management of multiple modules and test cases of a SOC chip with minimal RAM usage, and facilitates the summarization of test results, thereby greatly improving the quality and efficiency of SOC chip testing.
Smart Images

Figure CN116820858B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to integrated circuit technology, and more particularly to a method and system for testing SOC chips. Background Technology
[0002] A System-on-Chip (SoC) chip, when applied to an end product, typically undergoes several stages, including initial design, verification, testing, wafer fabrication, and subsequent testing, packaging, final product testing, and board-level testing. Chip testing is integral to the entire production chain, spanning both design and mass production. As SoC chip integration increases and modules and functions become more complex, the potential for chip problems grows, leading to higher testing requirements and a corresponding increase in test cases. However, with the increasing number of functional modules and their complex operating modes, the number of test cases grows exponentially, resulting in a host of problems:
[0003] 1. Excessive RAM usage. Due to cost considerations, SOC chips generally have abundant FLASH storage resources but relatively limited RAM storage resources. FLASH resources are sufficient to store a wide range of test cases, while RAM resources become insufficient as the number of test cases increases. In some testing scenarios, to avoid excessive RAM usage, some test cases may be reduced, but this will result in insufficient testing of the SOC chip, ultimately affecting the test quality of the SOC chip.
[0004] 2. Disorganized test case management. For increasingly complex SOC chips, multiple engineers often need to collaborate to complete the testing. Due to differences in individual engineer experience, in the absence of a unified test architecture for guidance and management, their test cases may differ. This greatly increases the difficulty of test case integration, maintenance, and future reuse, ultimately affecting the testing efficiency of SOC chips.
[0005] 3. Test results are difficult to statistically analyze. The lack of unified statistical analysis and judgment of the test results for each test case increases the difficulty of summarizing the test results of all test cases, ultimately affecting the test evaluation of the SOC chip.
[0006] Therefore, there is an urgent need for a SOC chip testing method and system to solve the above problems. Summary of the Invention
[0007] Based on the above problems, the first objective of this invention is to provide a SOC chip testing method that can achieve unified management of multiple test cases with less RAM usage, facilitate the summarization of test results, and improve the quality and efficiency of SOC chip testing.
[0008] The technical solution adopted by this invention to achieve its first inventive objective is a SOC chip testing method, the steps of which include:
[0009] (1) Test case set initialization: The test case set management unit requests RAM space for test management data structure from the test space management unit. The test space management unit allocates a segment of RAM space from the test RAM space and initializes the space of each field in the data structure.
[0010] (2) Test case set creation: Create at least one RAM space for test case set data structure. Each test case set includes at least one test case. Under each test case set, create at least one RAM space for test case data structure.
[0011] Generally, a module under test may have multiple working modes, and each working mode corresponds to at least one test case. The set of multiple test cases is called the test case set.
[0012] (3) Test case set execution: First, all test cases belonging to the first test case set are executed sequentially, and the test results are fed back to the test management data structure; then, all test cases belonging to the second test case set are executed sequentially, and the test results are fed back to the test management data structure; until all test cases in all test case sets have been executed.
[0013] (4) Test case set release: The test space management unit releases the RAM space for the test case data structure and the RAM space for the test case set data structure in the completely reverse order of step (3), and finally the test space management unit releases the RAM space for the test management data structure.
[0014] Furthermore, step (2) includes the following specific steps:
[0015] (2.1) The test case set management unit requests a new RAM space for the test case set data structure from the test space management unit. The test space management unit allocates a segment of RAM space from the test RAM space and initializes the space of each field in the data structure.
[0016] (2.2) If a previous test case set exists, update the data structure of the previous test case set; otherwise, update the test management data structure.
[0017] (2.3) The test case set management unit requests a new test case data structure RAM space belonging to the test case set from the test space management unit. The test space management unit allocates a RAM space from the test RAM space and initializes the space of each field in the data structure.
[0018] (2.4) If a previous test case exists, update the data structure of the previous test case; otherwise, update the data structure of the test case set.
[0019] (2.5) If there are new test cases in the test case set, proceed to step (2.3); otherwise, proceed to step (2.6).
[0020] (2.6) If there are new test case sets, proceed to step (2.1); otherwise, end the test case set creation process.
[0021] Furthermore, the test management data structure includes the following fields:
[0022] The pointer field stores the address of the data structure for the next-level test case set;
[0023] The name field stores the name of the test case set;
[0024] The initial program field is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set;
[0025] The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set;
[0026] The Run program field is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set;
[0027] The release program field is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set;
[0028] The success statistics field is used to store the successful test result when each test case passes.
[0029] The failure statistics field is used to store the results of failed tests when each test case fails.
[0030] As shown in Table 1 below:
[0031] Table 1: Test Management Data Structure
[0032] Starting address + 0x04 Name field: Stores the name of the test case set. Starting address + 0x08 Initial program field: Stores the address of the initial program for the test case set. Starting address + 0x0C Configuration field: Stores the address of the test case set configuration program. Starting address + 0x10 Run program field: Stores the address of the test case set's run program. Starting address + 0x14 Release program field: Stores the address of the test case set release program. Starting address + 0x18 Success statistics field: Statistics on the successful execution results of all test cases. Starting address + 0x1C Failure statistics field: Statistics on the failure results of all test cases.
[0033] The RAM address space actually occupied by the test management data structure is allocated from the test RAM space by the test space management unit. If the starting address obtained in this application is 0x20000000, then the RAM address space occupied in sequence is 0x20000004, 0x20000008, 0x20000000C, 0x20000010, 0x20000014, and 0x2000001C.
[0034] Generally, the test management data structure only needs to be applied for once to manage all test case sets.
[0035] The test case set data structure includes the following fields:
[0036] Pointer field A stores the address of the data structure for the next-level test case set;
[0037] The name field A stores the name of the test case set;
[0038] The initial program field is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set;
[0039] The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set;
[0040] The Run program field is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set;
[0041] The release program field is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set;
[0042] Pointer field B stores the address of the data structure for the next-level test case;
[0043] Name field B stores the test case name;
[0044] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case;
[0045] The activation status field indicates whether the test case is activated;
[0046] As shown in Table 2 below:
[0047] Table 2: Test Case Set Data Structure
[0048] Starting address + 0x04 Name field A: Stores the name of the test case set. Starting address + 0x08 Initial program field: Stores the address of the initial program for the test case set. Starting address + 0x0C Configuration field: Stores the address of the test case set configuration program. Starting address + 0x10 Run program field: Stores the address of the test case set's run program. Starting address + 0x14 Release program field: Stores the address of the test case set release program. Starting address + 0x18 Pointer field B: Stores the address of the data structure for the next-level test case. Starting address + 0x1C Name field B: Stores the test case name Starting address + 0x20 Executor field: Stores the address of the test case executor. Starting address + 0x24 Activation status field: Stores whether the test case is activated.
[0049] The RAM address space actually occupied by the test case set data structure is allocated from the test RAM space by the test space management unit. If the starting address obtained in this application is 0x20000020, then the RAM address space occupied in sequence is 0x20000024, 0x20000028, 0x20000002C, 0x20000030, 0x20000034, 0x2000003C, 0x20000040, and 0x20000044.
[0050] Generally, a module only needs to apply for a test case set data structure once to manage all test cases under that module; multiple modules need to apply multiple times.
[0051] For example, if you apply again, the starting address could be 0x20000050, then the addresses 0x20000054, 0x20000058, 0x20000005C, 0x20000060, 0x20000064, 0x2000006C, 0x20000070, and 0x20000074 would be occupied in sequence.
[0052] The starting addresses of multiple test case set data structures are allocated by the test space management unit according to the current RAM usage, and can be continuous or non-contiguous.
[0053] The test case data structure includes the following fields:
[0054] The pointer field stores the address of the data structure for the next-level test case;
[0055] The name field stores the name of the test case;
[0056] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case;
[0057] The activation status field indicates whether the test case is activated.
[0058] As shown in Table 3 below:
[0059] Table 3: Test Case Data Structure
[0060] Starting address + 0x04 Name field: Stores the name of the test case. Starting address + 0x08 Executor field: Stores the address of the test case executor. Starting address + 0x0C Activation status field: Stores whether the test case is activated.
[0061] The RAM address space actually occupied by the test case data structure is allocated from the test RAM space by the test space management unit. If the starting address obtained in this application is 0x20000100, then the RAM address space of 0x20000104, 0x20000108, and 0x20000010C will be occupied in sequence.
[0062] Generally, a test case only needs to request the test case data structure once; multiple test cases require multiple requests.
[0063] If you apply again, the starting address can be 0x20000200, then 0x20000204, 0x20000208, and 0x20000020C will be occupied in sequence.
[0064] The starting addresses of multiple test case data structures are allocated by the test space management unit according to the current RAM usage, and can be continuous or non-contiguous.
[0065] The second objective of this invention is to provide a SOC chip testing system that enables unified management of multiple test cases.
[0066] The technical solution adopted by this invention to achieve its second objective is: a SOC chip testing system, comprising a test case set management unit, a test space management unit, a test case set unit, a driver unit for the module under test, a module under test unit, and RAM space, wherein:
[0067] Test Case Set Management Unit: Used for the lifecycle management of test cases for the SOC chip module under test. Through the comprehensive scheduling of the test case set management unit, the testing of the module under test is realized.
[0068] Test Space Management Unit: Used to manage the RAM space used for testing under the scheduling of the Test Case Set Management Unit;
[0069] Test Case Set Unit: The test case set unit is used to ultimately test the module under test by calling the driver unit of the module under test under the scheduling of the test case set management unit.
[0070] The driver unit for the module under test (DUT) drives the DUT to work through a series of read and write operations on the registers of each DUT module.
[0071] Module under test (DUT): The SOC chip module under test for use by end users.
[0072] Furthermore, the test case lifecycle management function of the test case set management unit includes the following specific contents:
[0073] Test case set initialization: Request RAM space for test management data structures from the test space management unit;
[0074] Test case set creation: Create at least one RAM space for a test case set data structure. Each test case set includes at least one test case. Under each test case set, create at least one RAM space for a test case data structure.
[0075] Test case set execution: Run all test cases in all test case sets sequentially;
[0076] Test case set release: Release the RAM space used for the test case data structure, the RAM space used for the test case set data structure, and the RAM space used for the test management data structure in sequence.
[0077] Furthermore, the test RAM space management function of the test space management unit includes the following specific features:
[0078] Application: When creating each test case set or each test case, the right to use a segment of RAM space is requested through the test space management unit;
[0079] Occupation: Once the application is successful, the test case set or the test case itself will occupy the right to use this segment of RAM space.
[0080] Release: When each test case set or each test case is released, the right to use the RAM segment is requested to be released through the test space management unit. After release, the management right of the RAM segment is transferred to the test space management unit and can be reassigned.
[0081] The beneficial effects of this invention are as follows:
[0082] This invention enables unified and efficient management of multiple modules and test cases of a SOC chip with minimal RAM usage, and facilitates the summarization of test results, thereby greatly improving the quality and efficiency of SOC chip testing. Attached Figure Description
[0083] Figure 1 This is a flowchart illustrating the RAM space creation and release process during the testing of Embodiment 1 of the present invention.
[0084] Figure 2 This is a flowchart illustrating the RAM space creation and release process during the testing of Embodiment 2 of the present invention.
[0085] Figure 3 This is a flowchart illustrating the RAM space creation and release process during the testing process of Embodiment 3 of the present invention.
[0086] Figure 4 This is a flowchart illustrating the RAM space creation and release process during the testing process in Embodiment 4 of the present invention.
[0087] Figure 5 This is a block diagram of the SOC chip testing system of the present invention. Detailed Implementation
[0088] To better understand the above-mentioned objectives, features, and advantages of the present invention, the present invention will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0089] Based on the relationship between the test case sets and the number of test cases within each test case set, four classic working modes can be simplified as shown in the table below:
[0090]
[0091] Example 1
[0092] Figure 1 The first specific implementation of the SOC chip testing method of the present invention is shown, which is aimed at the WM1 working mode, that is, the case where there is only one test case set and only one test case in the test case set, including the following steps:
[0093] (1) Test case set initialization:
[0094] The test case set management unit requests RAM space for the test management data structure from the test space management unit. The test space management unit allocates a RAM space S201 from the test RAM space and initializes the space of each field in the data structure. At this time, there is no test case set yet, so all related fields are empty.
[0095] Pointer field: At this point, there is no test case set data structure yet, and no subordinates, so it is empty;
[0096] Name field: At this point, there is no test case set data structure, so it is empty;
[0097] Initial program field: This is an address pointer pointing to the address space of the program stored in the FLASH space that initializes the test case set. At this point, there is no test case set data structure yet, so it is empty.
[0098] Configuration program field: This is an address pointer pointing to the address space of the program stored in the FLASH space that configures this test case set. At this point, there is no test case set data structure yet, so it is empty.
[0099] The "Running Program" field is an address pointer that points to the address space of the program stored in the FLASH space that will run this test case set. At this point, there is no test case set data structure yet, so it is empty.
[0100] The release program field is an address pointer that points to the address space of the program stored in the FLASH space that releases this test case set. At this point, there is no test case set data structure yet, so it is empty.
[0101] Success statistics field: This field stores the successful test results when each test case passes. At this point, no test cases have been run yet, so it is empty.
[0102] Failure statistics field: This field stores the results of failed tests when each test case fails. At this point, no test cases have been run yet, so it is empty.
[0103] (2) Test case set creation:
[0104] (2.1) The test case set management unit requests RAM space for the first test case set data structure from the test space management unit. The test space management unit allocates a RAM space S202 from the test RAM space and initializes the space of each field in the data structure.
[0105] Pointer field A: At this point, there is only the data structure of the first test case set, and there are no subordinates, so it is empty;
[0106] Name field A: The name of the first test case set, for example, UART test case set;
[0107] Initial program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin, data reception pin, communication baud rate, data length, checksum, stop bit length, etc. used by the UART module.
[0108] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, a UART module may have multiple channels, and one or more channels may be configured for testing.
[0109] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the baud rate test, data format test, interrupt test, etc. of the UART module. The test cases are used to actually test the various working modes of the module and can be added arbitrarily by the engineer according to the actual test needs.
[0110] The release procedure field is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the data structures allocated above and the data structures allocated next in the future using RAM space.
[0111] Pointer field B: At this point, there is no first test case data structure yet, and no subordinate data structure, so it is empty;
[0112] Name field B: At this point, there is no data structure for the first test case yet, so it is empty;
[0113] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes this test case. At this time, there is no first test case data structure yet, so it is empty.
[0114] Activation status field: Indicates whether the test case is active. At this time, there is no first test case data structure yet, so it is set to inactive.
[0115] (2.2) Update of Test Management Data Structure S201:
[0116] For pointer fields: At this point, there is only the first test case set data structure, and no subordinates, so it is empty;
[0117] For the name field, initial program field, configuration program field, running program field, and release program field: update all of them using the corresponding name field A, initial program field, configuration program field, running program field, and release program field in the first test case set data structure S202.
[0118] (2.3) The test case set management unit requests RAM space for the first test case data structure from the test space management unit. The test space management unit allocates a RAM space S203 from the test RAM space and initializes the space of each field in the data structure.
[0119] Pointer field: At this point, there is only the data structure of this first test case, and no subordinate data, so it is empty;
[0120] Name field: The name of this test case, for example, UART baud rate test case;
[0121] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the UART baud rate test case.
[0122] Activation status field: Indicates whether the test case is active. At this time, there is already a first test case, which is set to the active status.
[0123] (2.4) Update of the first test case set data structure S202:
[0124] For pointer field B, name field B, executor field, and activation status field: update all of them using the pointer field, name field, executor field, and activation status field corresponding to the data structure S203 of the first test case set.
[0125] (3) Test case set execution:
[0126] Since the test management data structure S201 points to the test case set data structure S202, and S202 points to the test case data structure S203, the test cases pointed to by S203 are run directly. After the test is completed, the test results are fed back to the success statistics field and failure statistics field of the test management data structure S201.
[0127] Since the test case data structure S203 does not point to any lower-level test cases, it returns directly to the test case set data structure S202 after execution. Since the test case set data structure S202 also does not point to any lower-level test case sets, it returns directly to the test management data structure S201 after execution, thus ending the process.
[0128] (4) Test case set release:
[0129] Modify the activation state field of the test case data structure S203 to the inactive state, and release the RAM space S204 used by the test case data structure by the test space management unit (S203 is destroyed, and the test space management unit regains management rights).
[0130] Modify the activation state field of the test case set data structure S202 to the inactive state, and release the RAM space S205 used by the test case set data structure by the test space management unit (S202 is destroyed, and the test space management unit regains management rights).
[0131] The success and failure statistics fields of the test management data structure S201 are stored or printed in graphical form and given to the user to evaluate the test results. The test space management unit releases the RAM space S206 used by the test management data structure (S201 is destroyed, and the test space management unit regains management rights).
[0132] Example 2
[0133] Figure 2 The second specific implementation of the SOC chip testing method of the present invention is shown, which is aimed at the WM2 working mode, that is, there is only one test case set, and the test case set contains multiple test cases (two test cases in this embodiment), including the following steps:
[0134] (1) Test case set initialization:
[0135] The test case set management unit requests RAM space for the test management data structure from the test space management unit. The test space management unit allocates a RAM space S301 from the test RAM space and initializes the space of each field in the data structure. At this time, there is no test case set yet, so all related fields are empty.
[0136] Pointer field: At this point, there is no first test case set data structure yet, and no subordinates, so it is empty;
[0137] Name field: At this point, the first test case set data structure does not yet exist, so it is empty;
[0138] Initial program field: This is an address pointer pointing to the address space of the program stored in the FLASH space that initializes this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0139] The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0140] The "Running Program" field is an address pointer that points to the address space of the program stored in the FLASH space that will run this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0141] The release program field is an address pointer pointing to the address space of the program stored in the FLASH space that releases this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0142] Success statistics field: This field stores the successful test results when each test case passes. At this point, no test cases have been run yet, so it is empty.
[0143] Failure statistics field: This field stores the results of failed tests when each test case fails. At this point, no test cases have been run yet, so it is empty.
[0144] (2) Test case set creation:
[0145] (2.1) The test case set management unit requests RAM space for the first test case set data structure from the test space management unit. The test space management unit allocates a RAM space S302 from the test RAM space and initializes the values of each field in the data structure.
[0146] Pointer field: At this point, there is only the data structure of this first test case set, and there are no subordinates, so it is empty;
[0147] Name field: The name of this test case set, for example, UART test case set;
[0148] Initial program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin, data reception pin, communication baud rate, data length, checksum, stop bit length, etc. used by the UART module.
[0149] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, a UART module may have multiple channels, and one or more channels may be configured for testing.
[0150] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the baud rate test, data format test, interrupt test, etc. of the UART module. (Test cases are used to actually test the various working modes of the module and can be added arbitrarily by the test engineer according to the actual test needs.)
[0151] Release procedure field: This is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the various data structures requested above and the various data structures requested next.
[0152] Pointer field A: At this point, there is no first test case data structure yet, and no subordinate data structure, so it is empty;
[0153] Name field A: At this point, there is no data structure for the first test case yet, so it is empty;
[0154] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes this test case. At this time, there is no first test case data structure yet, so it is empty.
[0155] Activation status field: Indicates whether the test case is active. At this time, there is no first test case data structure yet, so it is set to inactive status;
[0156] (2.2) Update of Test Management Data Structure S301:
[0157] For pointer fields: At this point, there is only the first test case set data structure, and no subordinates, so it is empty;
[0158] For the name field, initial program field, configuration program field, running program field, and release program field: update all of them using the corresponding name field A, initial program field, configuration program field, running program field, and release program field in the first test case set data structure S302.
[0159] (2.3) The test case set management unit requests RAM space for the first test case data structure from the test space management unit. The test space management unit allocates a RAM space S303 from the test RAM space and initializes the space of each field in the data structure.
[0160] Pointer field: At this point, there is only the data structure of this first test case, and no subordinate data, so it is empty;
[0161] Name field: The name of this test case, for example, UART baud rate test case;
[0162] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the UART baud rate test case.
[0163] Activation status field: Indicates whether the test case is active. At this time, there is already a first test case, which is set to the active status.
[0164] (2.4) Data structure update for the first test case set (302):
[0165] For pointer field B, name field B, executor field, and activation status field: update all of them using the pointer field, name field, executor field, and activation status field corresponding to the data structure S303 of the first test case set.
[0166] (2.5) The test case set management unit requests RAM space for the second test case data structure from the test space management unit. The test space management unit allocates a RAM space S304 from the test RAM space and initializes the space of each field in the data structure.
[0167] Pointer field: At this point, there is only the data structure of this second test case, and there are no subordinates, so it is empty;
[0168] Name field: The name of this test case, such as a UART data format test case;
[0169] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the SPI baud rate test case.
[0170] Activation status field: Indicates whether the test case is active. If there is already a test case, set it to the active state.
[0171] (2.6) Update the first test case data structure S303: Point the pointer field of S303 to the second test case data structure S304.
[0172] (3) Test case set execution:
[0173] Since the test management data structure S301 points to the test case set data structure S302, and S302 points to the first test case data structure S303, and the first test case data structure S303 points to the lower-level second test case data structure S304.
[0174] Therefore, the first test case S303 pointed to by S302 is run first. After the test is completed, the test results are fed back to the success statistics field and failure statistics field of the test management data structure S301.
[0175] Next, the second test case S304 pointed to by S303 is run. After the test is completed, the test results are fed back to the success statistics field and failure statistics field of the test management data structure S301.
[0176] After execution, the system returns directly to the test case set data structure S302. Since the test case set data structure S302 does not point to any lower-level test case sets, after execution, it returns directly to the test management data structure S301 and terminates the process.
[0177] (4) Test case set release:
[0178] Modify the activation state field of the test case data structure S304 to the inactive state, and release the RAM space S305 used by the test case data structure by the test space management unit (S304 is destroyed, and the test space management unit regains management rights).
[0179] Modify the activation state field of the test case data structure S303 to the inactive state, and release the RAM space S306 used by the test case data structure by the test space management unit (S303 is destroyed, and the test space management unit regains management rights).
[0180] Modify the activation state field of the test case set data structure S302 to the inactive state, and release the RAM space S307 used by the test case set data structure by the test space management unit (S302 is destroyed, and the test space management unit regains management rights).
[0181] The success and failure statistics fields of the test management data structure S301 are stored or printed in graphical form and given to the user for evaluation of the test results. The test space management unit releases the RAM space S308 used by the test management data structure (S301 is destroyed, and the test space management unit regains management rights).
[0182] Example 3
[0183] Figure 3 This invention illustrates a third specific implementation of the SOC chip testing method, specifically for the WM3 working mode, i.e., a situation with multiple test case sets, each containing only one test case (in this embodiment, there are two test case sets). The method includes the following steps:
[0184] (1) Test case set initialization:
[0185] The test case set management unit requests RAM space for the test management data structure from the test space management unit. The test space management unit allocates a RAM space S401 from the test RAM space and initializes the space of each field in the data structure. At this time, there is no test case set yet, so all related fields are empty.
[0186] Pointer field: At this point, there is no first test case set data structure yet, and no subordinates, so it is empty;
[0187] Name field: At this point, the first test case set data structure does not yet exist, so it is empty;
[0188] Initial program field: This is an address pointer pointing to the address space of the program stored in the FLASH space that initializes this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0189] The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0190] The "Running Program" field is an address pointer that points to the address space of the program stored in the FLASH space that will run this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0191] The release program field is an address pointer pointing to the address space of the program stored in the FLASH space that releases this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0192] Success statistics field: This field stores the successful test results when each test case passes. At this point, no test cases have been run yet, so it is empty.
[0193] Failure statistics field: This field stores the results of failed tests when each test case fails. At this point, no test cases have been run yet, so it is empty.
[0194] (2) Test case set creation:
[0195] (2.1) The test case set management unit requests RAM space for the first test case set data structure from the test space management unit. The test space management unit allocates a RAM space S402 from the test RAM space and initializes the space of each field in the data structure.
[0196] Pointer field A: At this point, there is only the data structure of the first test case set, and there are no subordinates, so it is empty;
[0197] Name field A: The name of this test case set, for example, UART test case set;
[0198] Initial program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin, data reception pin, communication baud rate, data length, checksum, stop bit length, etc. used by the UART module.
[0199] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, a UART module may have multiple channels, and one or more channels may be configured for testing.
[0200] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the baud rate test, data format test, interrupt test, etc. of the UART module. (Test cases are used to actually test the various working modes of the module and can be added arbitrarily by the test engineer according to the actual test needs.)
[0201] Release procedure field: This is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the various data structures requested above and the various data structures requested next.
[0202] Pointer field B: At this point, there is no test case data structure yet, and no subordinate level, so it is empty;
[0203] Name field B: There is no test case data structure at this time, so it is empty;
[0204] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case. At this time, there is no test case data structure yet, so it is empty.
[0205] Activation status field: Indicates whether the test case is active. At this time, there is no test case data structure yet, so it is set to inactive.
[0206] (2.2) Update of Test Management Data Structure S401:
[0207] For pointer fields: At this point, there is only the first test case set data structure, and no subordinates, so it is empty;
[0208] For the Name field, Initial Program field, Configuration Program field, Run Program field, and Release Program field: update all fields using the corresponding Name field A, Initial Program field, Configuration Program field, Run Program field, and Release Program field in the first test case set data structure S402.
[0209] (2.3) The test case set management unit requests RAM space for the first test case data structure belonging to the first test case set from the test space management unit. The test space management unit allocates a RAM space S403 from the test RAM space and initializes the space of each field in the data structure.
[0210] Pointer field: At this point, there is only the data structure of this first test case, and no subordinate data, so it is empty;
[0211] Name field: The name of this test case, for example, it can be a UART baud rate test case;
[0212] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the UART baud rate test case.
[0213] Activation status field: Indicates whether the test case is active. At this time, there is already a first test case, which is set to the active status.
[0214] (2.4) Data structure update for the first test case set (402):
[0215] For pointer field B, name field B, executor field, and activation status field: update all of them using the pointer field, name field, executor field, and activation status field corresponding to the data structure S403 of the first test case set.
[0216] (2.5) The test case set management unit requests RAM space for the second test case set data structure from the test space management unit. The test space management unit allocates a RAM space S404 from the test RAM space and initializes the space of each field in the data structure.
[0217] Pointer field A: At this point, there is only the data structure of the first test case set, and there are no subordinates, so it is empty;
[0218] Name field A: The name of this test case set, for example, ADC test case set;
[0219] Initialization program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin and data reception pin used by the ADC module.
[0220] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, an ADC module may have multiple channels, and one or more channels may be configured for testing.
[0221] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the sampling accuracy test cases of the ADC module. (Test cases are used to actually test the various working modes of the module and can be added arbitrarily by the test engineer according to the actual test needs.)
[0222] Release procedure field: This is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the various data structures requested above and the various data structures requested next.
[0223] Pointer field B: At this point, there is no first test case data structure yet, and no subordinate data structure, so it is empty;
[0224] Name field B: At this point, there is no data structure for the first test case yet, so it is empty;
[0225] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes this test case. At this time, there is no first test case data structure yet, so it is empty.
[0226] Activation status field: Indicates whether the test case is active. At this time, there is no first test case data structure yet, so it is set to inactive.
[0227] (2.6) Update of the first test case set data structure S402:
[0228] Pointer field A: Points to the starting address of the storage of the second test case set data structure S404.
[0229] (2.7) The test case set management unit requests RAM space for the first test case data structure belonging to the second test case set from the test space management unit. The test space management unit allocates a RAM space S405 from the test RAM space and initializes the space of each field in the data structure.
[0230] Pointer field: At this point, there is only the data structure of this first test case, and no subordinate data, so it is empty;
[0231] Name field: The name of this test case, for example, ADC sampling accuracy test case;
[0232] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the ADC sampling accuracy test case.
[0233] Activation status field: Indicates whether the test case is active. At this time, there is already a first test case, which is set to the active status.
[0234] (2.8) Data structure update for the second test case set (404 error):
[0235] For pointer field B, name field B, executor field, and activation status field: update all of them using the pointer field, name field, executor field, and activation status field corresponding to the data structure S405 of the first test case set.
[0236] (3) Test case set execution:
[0237] Since the test management data structure S401 points to the first test case set data structure S402, and S402 points to the first test case data structure S403; at the same time, the first test case set data structure S402 points to the lower-level second test case set data structure S404, and S404 points to the first test case data structure S405.
[0238] Therefore, the first test case S403 pointed to by the first test case set S402 is run first. After the test case is run, the test case set data structure S402 is returned and the test results are fed back to the success statistics field and failure statistics field of the test management data structure S401.
[0239] Next, the first test case S405 pointed to by the second test case set S404 is run. After the run is completed, the system returns to the second test case set data structure S404 and feeds the test results back to the success statistics field and failure statistics field of the test management data structure S401.
[0240] After the operation is complete, it returns directly to the test management data structure S401 and ends the operation.
[0241] (4) Test case set release:
[0242] Modify the activation state field of the test case data structure S405 to the inactive state, and release the RAM space S406 used by the test case data structure by the test space management unit (S405 is destroyed, and the test space management unit regains management rights).
[0243] Modify the activation state field of the test case set data structure S404 to the inactive state, and release the RAM space S407 used by the test case set data structure by the test space management unit (S404 is destroyed, and the test space management unit regains management rights).
[0244] Modify the activation state field of the test case data structure S403 to the inactive state, and release the RAM space S408 used by the test case data structure by the test space management unit (S403 is destroyed, and the test space management unit regains management rights).
[0245] Modify the activation state field of the test case set data structure S402 to the inactive state, and release the RAM space S409 used by the test case set data structure by the test space management unit (S402 is destroyed, and the test space management unit regains management rights).
[0246] The success and failure statistics fields of the test management data structure S401 are stored or printed in graphical form and given to the user for evaluation of the test results. The test space management unit releases the RAM space S410 used by the test management data structure (S401 is destroyed and the test space management unit regains management rights).
[0247] Example 4
[0248] Figure 4 This invention illustrates a fourth specific implementation of the SOC chip testing method, specifically for the WM4 working mode, i.e., a situation with multiple test case sets, each containing multiple test cases (in this embodiment, there are two test case sets, each containing two test cases), and includes the following steps:
[0249] (1) Test case set initialization:
[0250] The test case set management unit requests RAM space for the first test management data structure from the test space management unit. The test space management unit allocates a RAM space S501 from the test RAM space and initializes the space of each field in the data structure. At this time, there is no test case set yet, so all related fields are empty.
[0251] Pointer field: At this point, there is no first test case set data structure yet, and no subordinates, so it is empty;
[0252] Name field: At this point, the first test case set data structure does not yet exist, so it is empty;
[0253] Initial program field: This is an address pointer pointing to the address space of the program stored in the FLASH space that initializes this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0254] The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0255] The "Running Program" field is an address pointer that points to the address space of the program stored in the FLASH space that will run this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0256] The release program field is an address pointer pointing to the address space of the program stored in the FLASH space that releases this test case set. At this point, the first test case set data structure does not yet exist, so it is empty.
[0257] Success statistics field: This field stores the successful test results when each test case passes. At this point, no test cases have been run yet, so it is empty.
[0258] Failure statistics field: This field stores the results of failed tests when each test case fails. At this point, no test cases have been run yet, so it is empty.
[0259] (2) Test case set creation:
[0260] (2.1) The test case set management unit requests RAM space for the first test case set data structure from the test space management unit. The test space management unit allocates a RAM space S502 from the test RAM space and initializes the space of each field in the data structure.
[0261] Pointer field A: At this point, there is only the data structure of the first test case set, and there are no subordinates, so it is empty;
[0262] Name field A: The name of this test case set, for example, UART test case set;
[0263] Initial program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin, data reception pin, communication baud rate, data length, checksum, stop bit length, etc. used by the UART module.
[0264] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, a UART module may have multiple channels, and one or more channels may be configured for testing.
[0265] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the baud rate test, data format test, interrupt test, etc. of the UART module. (Test cases are used to actually test the various working modes of the module and can be added arbitrarily by the test engineer according to the actual test needs.)
[0266] Release procedure field: This is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the various data structures requested above and the various data structures requested next.
[0267] Pointer field B: At this point, there is no first test case data structure yet, and no subordinate data structure, so it is empty;
[0268] Name field B: At this point, there is no data structure for the first test case yet, so it is empty;
[0269] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes this test case. At this time, there is no first test case data structure yet, so it is empty.
[0270] Activation status field: Indicates whether the test case is active. At this time, there is no first test case data structure yet, so it is set to inactive.
[0271] (2.2) Update of Test Management Data Structure S501:
[0272] For pointer fields: At this point, there is only the first test case set data structure, and no subordinates, so it is empty;
[0273] Update the Name field, Initial Program field, Configuration Program field, Run Program field, and Release Program field using the corresponding Name field A, Initial Program field, Configuration Program field, Run Program field, and Release Program field from the Test Case Set Data Structure S502.
[0274] (2.3) The test case set management unit requests RAM space for the first test case data structure belonging to the first test case set from the test space management unit. The test space management unit allocates a RAM space S503 from the test RAM space and initializes the space of each field in the data structure.
[0275] Pointer field: At this point, there is only the data structure for this test case, and no substructures, so it is empty;
[0276] Name field: The name of this test case, for example, UART baud rate test case;
[0277] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the UART baud rate test case.
[0278] Activation status field: Indicates whether the test case is active. If there is already a test case, set it to the active state.
[0279] (2.4) Update of the first test case set data structure S502:
[0280] The pointer field B, name field B, executor field, and activation status field are updated to the pointer field, name field, executor field, and activation status field corresponding to the first test case data structure S503, respectively.
[0281] (2.5) The test case set management unit requests RAM space for the second test case data structure belonging to the first test case set from the test space management unit. The test space management unit allocates a RAM space S504 from the test RAM space and initializes the space of each field in the data structure.
[0282] Pointer field: At this point, there is only the data structure of this second test case, and there are no subordinates, so it is empty;
[0283] Name field: The name of this test case, for example, UART data format test case;
[0284] The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of a UART data format test case.
[0285] Activation status field: Indicates whether the test case is active. If there is already a second test case, set it to active status.
[0286] (2.6) Update of the first test case data structure S503:
[0287] Update the pointer field to the starting address of the storage of the second test case data structure S504.
[0288] (2.7) The test case set management unit requests RAM space for the second test case set data structure from the test space management unit. The test space management unit allocates a RAM space S505 from the test RAM space and initializes the space of each field in the data structure.
[0289] Pointer field A: At this point, there is only the data structure of this second test case set, and there are no subordinates, so it is empty;
[0290] Name field A: The name of this test case set, for example, ADC test case set;
[0291] Initialization program field: This is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set. The initialization program is used to perform initialization operations on the module, such as the data transmission pin and data reception pin used by the ADC module.
[0292] Configuration program field: This is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set. The configuration program is used to configure the module. For example, an ADC module may have multiple channels, and one or more channels may be configured for testing.
[0293] Run program field: This is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set. The run program is used to run the various test cases of the module, such as the sampling accuracy test cases of the ADC module. (Test cases are used to actually test the various working modes of the module and can be added arbitrarily by the test engineer according to the actual test needs.)
[0294] Release procedure field: This is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set. The release procedure is used to release the module test cases, such as releasing the various data structures requested above and the various data structures requested next.
[0295] Pointer field B: At this point, there is no first test case data structure yet, and no subordinate data structure, so it is empty;
[0296] Name field B: At this point, there is no data structure for the first test case yet, so it is empty;
[0297] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes this test case. At this time, there is no first test case data structure yet, so it is empty.
[0298] Activation status field: Indicates whether the test case is active. At this time, there is no first test case data structure yet, so it is set to inactive.
[0299] (2.8) Update of the first test case set data structure S502:
[0300] Update the pointer field A to the starting address of the storage of the second test case set data structure S505.
[0301] (2.9) The test case set management unit requests RAM space for the first test case data structure belonging to the second test case set from the test space management unit. The test space management unit allocates a RAM space S506 from the test RAM space and initializes the space of each field in the data structure.
[0302] Pointer field: At this point, there is only the data structure for this test case, and no substructures, so it is empty;
[0303] Name field: The name of this test case, such as the ADC sampling accuracy test case;
[0304] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the ADC sampling accuracy test case.
[0305] Activation status field: Indicates whether the test case is active. At this time, there is already a first test case, which is set to the active status.
[0306] (2.10) Update the second test case set data structure S505: Update the pointer field B, name field B, executor field and activation status field to the pointer field, name field, executor field and activation status field corresponding to the first test case data structure S506, respectively.
[0307] (2.11) The test case set management unit requests RAM space for the second test case data structure belonging to the second test case set from the test space management unit. The test space management unit allocates a RAM space S507 from the test RAM space and initializes the space of each field in the data structure.
[0308] Pointer field: At this point, there is only the data structure for this test case, and no substructures, so it is empty;
[0309] Name field: The name of this test case, for example, ADC interrupt test case;
[0310] The Executable Program field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case, such as the storage address of the ADC interrupt test case.
[0311] Activation status field: Indicates whether the test case is active. If there is already a second test case, set it to active status.
[0312] (2.12) Update of the first test case data structure S506:
[0313] Update the pointer field to the starting address of the storage of the second test case data structure S507.
[0314] (3) Test case set execution:
[0315] Because the test management data structure S501 points to the first test case set data structure S502, S502 points to the first test case data structure S503, and S503 points to the second test case data structure S504; at the same time, the first test case set data structure S502 points to the lower-level second test case set data structure S505, S505 points to the first test case data structure S506, and S506 points to the second test case data structure S507.
[0316] Therefore, the first test case S503 pointed to by the first test case set S502 is run first. After the run is completed, the second test case S504 is run. The test results are then fed back to the success statistics field and failure statistics field of the test management data structure S501.
[0317] Next, the first test case S506 pointed to by the second test case set S505 is run. After the run is completed, the second test case S507 is run. The system returns to the second test case set data structure S505 and feeds back the test results to the success statistics field and failure statistics field of the test management data structure S501.
[0318] After the operation is complete, it returns directly to the test management data structure S501 and ends the operation.
[0319] (4) Test case set release:
[0320] (4.1) Release of data structure for the second test case set:
[0321] The activation state field of the second test case data structure S507 is modified to the inactive state, and the test space management unit releases the RAM space S508 used by the second test case data structure (S507 is destroyed, and the test space management unit regains management rights).
[0322] The activation state field of the first test case data structure S506 is modified to the inactive state, and the test space management unit releases the RAM space S509 used by the first test case data structure (S506 is destroyed, and the test space management unit regains management rights).
[0323] The activation state field of the second test case set data structure S505 is modified to the inactive state, and the test space management unit releases the RAM space S510 used by the second test case set data structure (S505 is destroyed, and the test space management unit regains management rights).
[0324] (4.2) Release of the data structure for the first test case set:
[0325] The activation state field of the second test case data structure S504 is modified to the inactive state, and the test space management unit releases the RAM space S511 used by the second test case data structure (S504 is destroyed, and the test space management unit regains management rights).
[0326] The activation state field of the first test case data structure S503 is modified to the inactive state, and the test space management unit releases the RAM space S512 used by the first test case data structure (S503 is destroyed, and the test space management unit regains management rights).
[0327] The activation state field of the first test case set data structure S502 is modified to the inactive state, and the test space management unit releases the RAM space S513 used by the first test case set data structure (S5025 is destroyed, and the test space management unit regains management rights).
[0328] (4.3) The success and failure statistics fields of the test management data structure S501 are stored or printed in the form of graphics and text and then the test space management unit releases the RAM space S514 used by the test management data structure (S501 is destroyed and the test space management unit regains management rights).
[0329] Figure 5 This invention illustrates a specific implementation of the SOC chip testing system: it includes a test case set management unit, a test space management unit, a test case set unit, a driver unit for the module under test, a module under test unit, and RAM space, wherein:
[0330] Test Case Set Management Unit: Used for the lifecycle management of test cases for the SOC chip module under test. Through the comprehensive scheduling of the test case set management unit, the testing of the module under test is realized.
[0331] Test Space Management Unit: Used to manage the RAM space used for testing;
[0332] Test Case Set Unit: Under the coordination of the Test Case Set Management Unit, the Test Case Set Unit ultimately performs testing on the module under test by calling the driver unit of the module under test.
[0333] The driver unit for the module under test (DUT) drives the DUT to work through a series of read and write operations on the registers of each DUT module.
[0334] Module under test (DUT): The SOC chip module under test for use by end users.
[0335] The test case lifecycle management function of the test case set management unit includes the following specific contents:
[0336] Test case set initialization: Request RAM space for test management data structures from the test space management unit;
[0337] Test case set creation: Create at least one RAM space for a test case set data structure. Each test case set includes at least one test case. Under each test case set, create at least one RAM space for a test case data structure.
[0338] Test case set execution: Run all test cases in at least one test case set sequentially;
[0339] Test case set release: Release the RAM space used for the test case data structure, the RAM space used for the test case set data structure, and the RAM space used for the test management data structure in sequence.
[0340] The test RAM space management function of the test space management unit includes the following specific features:
[0341] Application: When creating each test case set or each test case, the right to use a segment of RAM space is requested through the test space management unit;
[0342] Occupation: Once the application is successful, the test case set or the test case itself will occupy the right to use this segment of RAM space.
[0343] Release: When each test case set or each test case is released, the right to use the RAM segment is requested to be released through the test space management unit. After release, the management right of the RAM segment is transferred to the test space management unit and can be reassigned.
[0344] The above embodiments of the present invention are merely illustrative examples and are not intended to limit the implementation of the invention. Those skilled in the art can make other variations and modifications based on the above description. It is impossible to exhaustively list all possible implementations here. All obvious variations or modifications derived from the technical solutions of the present invention are still within the protection scope of the present invention.
Claims
1. A method for testing a System-on-a-Chip (SOC) chip, characterized in that, Includes the following steps: (1) Test case set initialization: The test case set management unit requests RAM space for test management data structure from the test space management unit. The test space management unit allocates a segment of RAM space from the test RAM space and initializes the space of each field in the data structure. (2) Test case set creation: Create at least one RAM space for test case set data structure. Each test case set includes at least one test case. Under each test case set, create at least one RAM space for test case data structure. (3) Test case set execution: First, all test cases belonging to the first test case set are run in sequence, and the test results are fed back to the test management data structure. Then, all test cases belonging to the second test case set are run sequentially, and the test results are fed back to the test management data structure; until all test cases in all test case sets have been run. (4) Test case set release: The test space management unit releases the RAM space for the test case data structure and the RAM space for the test case set data structure in the completely reverse order of step (3), and finally the test space management unit releases the RAM space for the test management data structure.
2. The SOC chip testing method according to claim 1, characterized in that, Step (2) includes the following specific steps: (2.1) The test case set management unit requests a new RAM space for the test case set data structure from the test space management unit. The test space management unit allocates a segment of RAM space from the test RAM space and initializes the space of each field in the data structure. (2.2) If a previous test case set exists, update the data structure of the previous test case set; otherwise, update the test management data structure. (2.3) The test case set management unit requests a new test case data structure RAM space belonging to the test case set from the test space management unit. The test space management unit allocates a RAM space from the test RAM space and initializes the space of each field in the data structure. (2.4) If a previous test case exists, update the data structure of the previous test case; otherwise, update the data structure of the test case set. (2.5) If there are new test cases in the test case set, proceed to step (2.3); otherwise, proceed to step (2.6). (2.6) If there are new test case sets, proceed to step (2.1); otherwise, end the test case set creation process.
3. The SOC chip testing method according to claim 1, characterized in that, The test management data structure includes the following fields: The pointer field stores the address of the data structure for the next-level test case set; The name field stores the name of the test case set; The initial program field is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set; The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set; The Run program field is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set; The release program field is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set; The success statistics field is used to store the successful test result when each test case passes. The failure statistics field is used to store the results of failed tests when each test case fails. The test case set data structure includes the following fields: Pointer field A stores the address of the data structure for the next-level test case set; The name field A stores the name of the test case set; The initial program field is an address pointer that points to the address space of the program stored in the FLASH space that initializes the test case set; The configuration program field is an address pointer that points to the address space of the program stored in the FLASH space that configures the test case set; The Run program field is an address pointer that points to the address space of the program stored in the FLASH space that runs the test case set; The release program field is an address pointer that points to the address space of the program stored in the FLASH space that releases the test case set; Pointer field B stores the address of the data structure for the next-level test case; Name field B stores the test case name; The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case; The activation status field indicates whether the test case is activated; The test case data structure includes the following fields: The pointer field stores the address of the data structure for the next-level test case; The name field stores the name of the test case; The executor field is an address pointer that points to the address space of the program stored in the FLASH space that executes the test case; The activation status field indicates whether the test case is activated.
4. A SOC chip testing system, used for the SOC chip testing method as described in any one of claims 1 to 3, characterized in that: It includes a test case set management unit, a test space management unit, a test case set unit, a driver unit for the module under test, a module under test unit, and RAM space, wherein: Test Case Set Management Unit: Used for the lifecycle management of test cases for the SOC chip module under test. Through the comprehensive scheduling of the test case set management unit, the testing of the module under test is realized. Test Space Management Unit: Used to manage the RAM space used for testing under the scheduling of the Test Case Set Management Unit; Test Case Set Unit: The test case set unit is used to ultimately test the module under test by calling the driver unit of the module under test under the scheduling of the test case set management unit. The driver unit for the module under test (DUT) drives the DUT to work through a series of read and write operations on the registers of each DUT module. Module under test (DUT): The SOC chip module under test for use by end users.
5. The SOC chip testing system according to claim 4, characterized in that, The test case lifecycle management function of the test case set management unit includes the following specific contents: Test case set initialization: Request RAM space for test management data structures from the test space management unit; Test case set creation: Create at least one RAM space for a test case set data structure. Each test case set includes at least one test case. Under each test case set, create at least one RAM space for a test case data structure. Test case set execution: Run all test cases in all test case sets sequentially; Test case set release: Release the RAM space used for the test case data structure, the RAM space used for the test case set data structure, and the RAM space used for the test management data structure in sequence.
6. The SOC chip testing system according to claim 4, characterized in that, The test RAM space management function of the test space management unit includes the following specific features: Application: When creating each test case set or each test case, the right to use a segment of RAM space is requested through the test space management unit; Occupation: Once the application is successful, the test case set or the test case itself will occupy the right to use this segment of RAM space. Release: When each test case set or each test case is released, the right to use the RAM segment is requested to be released through the test space management unit. After release, the management right of the RAM segment is transferred to the test space management unit and can be reassigned.
Citation Information
Patent Citations
Testing method and device, medium and electronic equipment
CN111459798A
Chip testing method and system, storage medium, equipment and chip
CN114780319A