A verification method for flexibly selecting modes based on an SSD master control chip
By adopting a verification method of flexible selection mode during the verification process of the SSD master chip, the verification complexity problem caused by design updates and IP function points is solved, and an efficient verification process and rapid R&D process is achieved.
Patent Information
- Application Number
- CN202211163358.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-09-23
- Publication Date
- 2025-07-01
- Estimated Expiration
- 2042-09-23
AI Technical Summary
During the development of enterprise-level SSD master chips, when design updates and IP function points are not determined, the original verification method requires a large number of test cases, resulting in complex verification and difficulty in maintenance.
It provides a verification method for flexible selection mode based on SSD master chip. By assigning values and judging variable values in makefiles, counting existing matching modes, analyzing GU format-related variable values, and configuring registers and modifying codes in the verification platform to achieve flexible testing mode selection.
This method saves manpower, improves verification efficiency, simplifies task division and beginner training in the team, reduces the time to write checklists, and reduces the complexity and maintenance difficulty of verification.
Smart Images

Figure CN115481034B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to, and specifically relates to a verification method for flexibly selecting a mode based on an SSD main control chip. Background Art
[0002] During the development of enterprise-level SSD (solid state disk) main control chips, according to market demand feedback, the project R & D needs to continuously add different types of data formats, data paths, and control signals for storing data to achieve more powerful functions. During the verification process, with the update and replacement of the design, when the detailed function points of the IP are not determined in the initial stage of the new version project, in order to ensure the completeness of verification, a large number of test cases need to be added to verify different data formats and data paths. After the detailed function points of the IP are determined, some test cases will no longer need to be tested.
[0003] Based on the update of the design and the undetermined detailed function points of the IP, the original verification method faces problems such as a greatly increased number of test cases to be covered in verification, the need to modify the corresponding code at multiple locations, and difficulties in testing and maintenance. Summary of the Invention
[0004] In order to overcome the above deficiencies in technology, the present invention provides a verification method for flexibly selecting a mode based on an SSD main control chip, which saves manpower and improves verification efficiency.
[0005] The technical solution adopted by the present invention to overcome its technical problems is as follows:
[0006] A verification method for flexibly selecting a mode based on an SSD main control chip includes the following steps:
[0007] a) Assign values to the variable value of RND_DATA_PATH, the variable value of GU format, and the variable value of command configuration information in the makefile;
[0008] b) In the makefile, determine whether the variable value related to the GU format is a fixed value. If it is a fixed value, directly use this fixed value for the variable value of the makefile. If it is a random value, save the random number into the variable value of the makefile;
[0009] c) Count the number of matching patterns that can exist in the combination of the variable value of RND_DATA_PATH, the variable value of GU format, and the variable value of command configuration information in the makefile as the verification checklist;
[0010] d) Analyze the variable values related to the GU format in the makefile, perform numerical operations on the GU data volume, and assign the calculated value to the variable ONE_GU_SIZE;
[0011] e) Configure the register in the verification platform testbench to pass in the variable ONE_GU_SIZE, and the SEQMEM.txt loaded by the verification platform is set with values related to the variable ONE_GU_SIZE;
[0012] f) Modify the code at the position where the variable value passed in by the makefile is parsed in the verification platform.
[0013] Further, step a) includes the following steps:
[0014] a-1) For the variable value of RND_DATA_PATH, assign a fixed value of SINGLE_DMA or LINK_DMA or BUF_DMA or BUF_LINK_DMA, and assign a random value of RND_DMA_OR_DMA_LINK or RND_BUF_OR_BUF_LINK;
[0015] a-2) For the variable value of RND_DATA_FORMAT in the variable value of the GU format, assign a fixed value of DATA_4096, DATA_4104, DATA_4112, DATA_512, DATA_520, or assign a random value of the permutation and combination of the five fixed values, and the number of random values is where is the number of combinations of any two of the five fixed values, is the number of combinations of any three of the five fixed values, is the number of combinations of any four of the five fixed values, is the number of combinations of any five of the five fixed values;
[0016] a-3) For the variable value of ADD_8B_EN in the variable value of the GU format, assign two fixed values of 0 or 1, and assign a random value of 2;
[0017] a-4) For the variable value of FTL_MATE_LEN in the variable value of the GU format, assign a fixed value of 0B, 8B, 16B, 24B, 32B, or assign a random value of the permutation and combination of the five fixed values, and the number of random values is where is the number of combinations of any two of the five fixed values, is the number of combinations of any three of the five fixed values, is the number of combinations of any four of the five fixed values, is the combination number of any five of the five fixed values;
[0018] a-5) For the variable values of the 8 variable configuration command information existing in the command configuration information, each variable value is given a fixed value of 0 or 1, and a random value of 2 is given.
[0019] Further, if it is a random value in step b), use the shell function of make to call python from makefile to generate a random number that meets the constraints, and save the random number to the variable value of makefile. Further, when the constraint meets the requirements that RND_DATA_PATH = SINGLE_DMA or LINK_DMA or RND_DMA_OR_DMA_LINK, RND_DATA_FORMAT cannot be the fixed value DATA_512 and the fixed value DATA_520 and the random value including DATA_512 or DATA_520 when random. For the variable values of the 8 variable configuration command information existing in the command configuration information, directly pass the random value into the verification platform.
[0020] Further, in step d), use the expr command of the shell function in makefile to perform numerical operations on the GU data volume.
[0021] Further, in step f), judge whether the variable value passed into the verification platform from makefile is a fixed value or a random value in the verification platform. If it is a fixed value, directly use this value. If it is a random value, perform randomization according to the constraints inside the verification platform. According to the results of different variable orientation or randomization, perform variable configuration, data format selection and data path selection in the verification platform according to the rules.
[0022] The beneficial effects of the present invention are: In addition to flexibly selecting the test mode, the test mode statistically in makefile can also be used as a checklist. Since there are too many verification modes that can exist, this checklist is convenient for task division for each person in the team, facilitating newbies in the team to more quickly understand the test cases to be verified and enter the verification state faster. At the same time, it also saves the time for writing the checklist, saves verification manpower, greatly improves the verification efficiency, and speeds up the R & D process. BRIEF DESCRIPTION OF THE DRAWINGS
[0023] Figure 1 is the method flow chart of the present invention. DETAILED DESCRIPTION OF THE INVENTION
[0024] The following combines the attached Figure 1 to further describe the present invention.
[0025] A verification method for flexibly selecting modes based on an SSD master control chip, comprising the following steps:
[0026] a) Assign variable values of RND_DATA_PATH (random data path), variable values of GU format (GU is a gather unit, which is a transmission unit for gathering data from different sources, and GU format is the splicing format of the transmission unit, related to variables RND_DATA_FORMAT, ADD_8B_EN, and FTL_MATE_LEN), and variable values of command configuration information in the makefile.
[0027] b) Determine in the makefile whether the variable values related to the GU format are fixed values. If they are fixed values, directly use these fixed values as the variable values of the makefile. If they are random values, save the random numbers into the variable values of the makefile.
[0028] c) Count the number of matching modes that can exist in the combination of the variable values of RND_DATA_PATH, the variable values of GU format, and the variable values of command configuration information in the makefile, and use it as the verification checklist, which is convenient for novices in the team to conduct verification and also saves the time for writing the checklist, greatly saving the verification manpower.
[0029] d) Analyze the variable values related to the GU format in the makefile, perform numerical operations on the GU data volume, and assign the calculated numerical value to the variable ONE_GU_SIZE.
[0030] e) Configure the register to pass in the variable ONE_GU_SIZE (the data volume size of one GU) in the verification platform testbench. The value related to the variable ONE_GU_SIZE is set in the SEQMEM.txt (microcode file) loaded by the verification platform. Since the detailed function points of the IP are not determined, ONE_GU_SIZE has multiple values. This SEQMEM.txt is generated by a Python script. If following the original verification method of the project, it is necessary to change the Python script to generate multiple different versions of SEQMEM.txt, and when adding a large amount of code in the verification platform to distinguish which SEQMEM.txt file is loaded for different ONE_GU_SIZE values. Therefore, a fixed-width array is used to store the values in SEQMEM.txt in the verification platform. Before configuring with this array in the verification platform, corresponding calculations and rewrites are performed on the values related to ONE_GU_SIZE in the fixed-width array. This method saves a lot of time in changing the Python script to generate multiple versions of SEQMEM.txt and modifying the code in the verification platform, and also avoids mistakes that are prone to occur when writing code manually.
[0031] f) Modify the code at the position where the verification platform parses the variable value passed in by the makefile.
[0032] By writing the makefile to pass in compilation parameters and simulation parameters, flexibly select the test mode by assigning values to multiple parameters, determine whether to call Python in the makefile to randomize the parameter according to the parameter value, count the number of test modes that can exist in the combinations of different variable values, and perform logical arithmetic assignment by calling the expr function in the makefile according to multiple directed or randomized parameter values. Corresponding code modifications are made at multiple positions in the verification platform where the makefile needs to pass in variable values. In addition to flexibly selecting the test mode, the test modes counted in the makefile in the present invention can also be used as a checklist. Since there are too many verification modes that can exist, this checklist facilitates the task division of each person in the team, makes it easier for novices in the team to quickly understand the test cases to be verified, enter the verification state faster, and at the same time saves the time for writing the checklist, saves verification manpower, greatly improves the verification efficiency, and speeds up the R & D process.
[0033] Compile and simulation parameters are passed in through the makefile, which cleverly combines the makefile with shell functions. Variable randomization, counting the number of test modes, logical arithmetic assignment, etc. are performed in the makefile, and corresponding code modifications are made in the verification platform to flexibly select the verification mode of test cases. The test modes counted by the makefile can also be used as a checklist to facilitate task division, making it convenient for novices in the team to perform verification, saving the time of writing the checklist, saving verification manpower, and solving problems such as the need to cover a large number of test cases in the original verification method, the need to modify the corresponding code in multiple locations, the difficulty of testing and maintaining the code, and the need to modify the code for retesting. This helps to improve the verification efficiency and speed up the R & D process. Step a) includes the following steps:
[0034] a-1) For the variable value of RND_DATA_PATH, assign a fixed value of SINGLE_DMA or LINK_DMA or BUF_DMA or BUF_LINK_DMA, and assign a random value of RND_DMA_OR_DMA_LINK or RND_BUF_OR_BUF_LINK.
[0035] a-2) For the variable value of RND_DATA_FORMAT in the variable value of GU format, assign a fixed value of DATA_4096, DATA_4104, DATA_4112, DATA_512, DATA_520, or assign a random value of the permutation and combination of five fixed values. The number of random values is where is the number of combinations of any two fixed values among the five fixed values, is the number of combinations of any three fixed values among the five fixed values, is the number of combinations of any four fixed values among the five fixed values, is the number of combinations of any five fixed values among the five fixed values.
[0036] a-3) For the variable value of ADD_8B_EN (whether to add 8-byte 0 data in GU) in the variable value of GU format, assign two fixed values of 0 or 1 (0: not add, 1: add), and assign a random value of 2 (random 0 / 1).
[0037] a-4) For the variable value of FTL_MATE_LEN in the variable value of GU format (the data volume size of ftl_mate), assign a fixed value of 0B, 8B, 16B, 24B, 32B, or assign a random value of the permutation and combination of five fixed values. The number of random values is where is the number of combinations of any two fixed values among the five fixed values, is the number of combinations of any three of the five fixed values, is the number of combinations of any four of the five fixed values, is the number of combinations of all five of the five fixed values.
[0038] a - 5) For the variable values of the 8 variable configuration command information existing in the command configuration information, each variable value is given a fixed value of 0 or 1, and a random value of 2 (random 0 or 1) is given, and there are a total of 2 8 = 256 cases.
[0039] In step b), if it is a random value, use the shell function of make to call python from the makefile to generate a random number that meets the constraints, and save the random number to the variable value of the makefile.
[0040] When the constraint meets the requirements that RND_DATA_PATH = SINGLE_DMA or LINK_DMA or RND_DMA_OR_DMA_LINK, RND_DATA_FORMAT cannot be the fixed value DATA_512 and the fixed value DATA_520 and the random value including DATA_512 or DATA_520 when random. Due to different functions, for the variable values of the 8 variable configuration command information existing in the command configuration information, directly pass the random value into the verification platform and do randomness inside the verification platform.
[0041] In step d), use the expr command of the shell function in the makefile to perform numerical operations on the GU data volume. In step f), in the verification platform, determine whether the variable value passed in from the makefile is a fixed value or a random value. If it is a fixed value, directly use this value. If it is a random value, perform randomness according to the constraints inside the verification platform. According to the results of different variables being fixed or random, perform variable configuration, data format selection, and data path selection in the verification platform according to the rules.
[0042] Finally, it should be noted that the above are only the preferred embodiments of the present invention and are not used to limit the present invention. Although the present invention has been described in detail with reference to the foregoing embodiments, for those skilled in the art, they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements for some of the technical features. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A verification method for flexibly selecting modes based on an SSD master control chip, characterized in that, It includes the following steps: a) Assign values to the variable value of RND_DATA_PATH, the variable value of GU format, and the variable value of command configuration information in the makefile; b) In the makefile, determine whether the variable value related to GU format is a fixed value. If it is a fixed value, directly use this fixed value for the variable value of the makefile. If it is a random value, save the random number into the variable value of the makefile; c) Count the number of matching patterns that can exist in the combination of the variable value of RND_DATA_PATH, the variable value of GU format, and the variable value of command configuration information in the makefile as the verification checklist; d) Parse the variable value related to GU format in the makefile, perform numerical operations on the GU data volume, and assign the calculated value to the variable ONE_GU_SIZE; e) Configure the register in the verification platform testbench to pass in the variable ONE_GU_SIZE, and the SEQMEM.txt loaded by the verification platform is set with a value related to the variable ONE_GU_SIZE; f) Modify the code at the position where the variable value passed in from the makefile is parsed in the verification platform.
2. The verification method for flexibly selecting a mode based on an SSD main control chip according to claim 1, wherein Step a) includes the following steps: a-1) For the variable value of RND_DATA_PATH, give fixed values of SINGLE_DMA or LINK_DMA or BUF_DMA or BUF_LINK_DMA, and give random values of RND_DMA_OR_DMA_LINK or RND_BUF_OR_BUF_LINK; a-2) For the RND_DATA_FORMAT variable value in the variable value of the GU format, assign a fixed value of DATA_4096, DATA_4104, DATA_4112, DATA_512, DATA_520, or assign a random value of five fixed value permutations and combinations, and the number of random values is where is the number of combinations of any two fixed values among the five fixed values, is the number of combinations of any three fixed values among the five fixed values, is the number of combinations of any four fixed values among the five fixed values, is the number of combinations of any five fixed values among the five fixed values; a-3) For the variable value of ADD_8B_EN in the variable value of GU format, give two fixed values of 0 or 1, and give a random value of 2; a-4) For the variable value of FTL_MATE_LEN in the variable value of GU format, assign a fixed value of 0B, 8B, 16B, 24B, 32B, or assign a random value from five permutations and combinations of fixed values, and the number of random values is where is the number of combinations of any two of the five fixed values, is the number of combinations of any three of the five fixed values, is the number of combinations of any four of the five fixed values, is the number of combinations of all five fixed values; a-5) For the variable values of the 8 variable configuration command information existing in the command configuration information, give each variable value a fixed value of 0 or 1, and give a random value of 2.
3. The verification method for flexibly selecting a mode based on an SSD main control chip according to claim 2, wherein: In step b), if it is a random value, use the shell function of make to call python from the makefile to generate a random number that meets the constraints, and save the random number into the variable value of the makefile.
4. The verification method for flexibly selecting a mode based on an SSD main control chip according to claim 3, wherein: When the constraint meets the requirement that when RND_DATA_PATH = SINGLE_DMA or LINK_DMA or RND_DMA_OR_DMA_LINK, RND_DATA_FORMAT cannot be a fixed value of DATA_512 and a fixed value of DATA_520 and a random value including DATA_512 or DATA_520. For the variable values of the 8 variable configuration command information existing in the command configuration information, directly pass the random value into the verification platform.
5. The verification method for flexibly selecting a mode based on an SSD main control chip according to claim 1, characterized in that: In step d), use the expr command of the shell function in the makefile to perform numerical operations on the GU data volume.
6. The verification method for flexibly selecting a mode based on an SSD main control chip according to claim 1, wherein: In step f), it is determined in the verification platform whether the variable value passed by the makefile is a directed value or a random value. If it is a directed value, the value is directly used. If it is a random value, randomization is performed within the verification platform according to the constraints. According to the results of directing or randomizing different variables, variable configuration, data format selection, and data path selection are carried out in the verification platform according to the rules.
Citation Information
Patent Citations
Chip testing method and device, chip and storage medium
CN113641541A
Chip verification method and device and server
CN113868061A