Method and system for feature extraction of standard cell libraries

By working together with the control module and the simulation module, and dynamically scheduling simulation tasks, the problem of low feature extraction efficiency of the standard cell library is solved, and efficient and accurate feature extraction is achieved.

CN115169280BActive Publication Date: 2026-07-31PRIMARIUS TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
PRIMARIUS TECH CO LTD
Filing Date
2021-04-01
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

In existing technologies, the feature extraction process of standard cell libraries is time-consuming and labor-intensive, especially in small process nodes and high-integration circuit designs, where the demand for simulation calculations increases significantly, becoming a design bottleneck.

Method used

The system employs a control module and multiple simulation modules. By receiving and parsing feature extraction tasks, it establishes simulation sub-tasks, determines the operating status of simulation modules based on communication information, dynamically schedules simulation tasks, and optimizes task allocation and resource utilization.

Benefits of technology

This improved the efficiency and accuracy of feature extraction from the standard cell library, reduced simulation computation time, optimized resource utilization, and ensured that the task was completed on time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115169280B_ABST
    Figure CN115169280B_ABST
Patent Text Reader

Abstract

This application relates to a system for feature extraction from a standard cell library. The system includes a control module and multiple simulation modules initiated by the control module. The control module is configured to receive and parse a feature extraction task for at least one standard cell, and establish multiple simulation subtasks based on the feature extraction task. Each of the multiple simulation modules is configured to receive and execute a simulation subtask assigned by the control module, and send the execution result of the assigned simulation subtask to the control module. Furthermore, the control module is further configured to determine the operating status of the simulation modules based on communication information with the simulation modules.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of integrated circuit-aided design technology, and more specifically, to a method and system for feature extraction from a standard cell library. Background Technology

[0002] Application-Specific Integrated Circuits (ASICs) are integrated circuits designed and manufactured to meet specific user needs or the requirements of specific electronic systems. They are characterized by small size, light weight, low power consumption, high reliability, and low cost when used in electronic systems. With the development of integrated circuit technology and processes, design methods based on standard cells have been widely adopted in ASIC design. However, feature extraction from standard cell libraries, a crucial foundation for ASIC circuit design, is a time-consuming and labor-intensive process. Especially with the continuous shrinking of process nodes and the increasing integration density of circuits, the requirements for feature extraction from standard cell libraries have also increased significantly, including requirements for latency, noise, power consumption, and randomness. The simulation calculations required increase exponentially, becoming a bottleneck in standard cell library design.

[0003] Therefore, it is necessary to provide an improved method and system for feature extraction from standard unit libraries. Summary of the Invention

[0004] One objective of this application is to provide an improved method and system for feature extraction from standard cell libraries, thereby improving the efficiency and accuracy of feature extraction from standard cell libraries.

[0005] In one aspect of this application, a system for feature extraction from a standard cell library is provided. The system includes: a control module configured to receive and parse a feature extraction task for at least one standard cell, and to establish multiple simulation subtasks based on the feature extraction task; and multiple simulation modules initiated by the control module, each of which is configured to receive and execute a simulation subtask assigned by the control module, and to send the execution result of the assigned simulation subtask to the control module; wherein the control module is further configured to determine the operating status of the simulation modules based on communication information with the simulation modules.

[0006] In some embodiments, the communication information between the control module and the simulation module includes the average task time taken by the simulation module to execute multiple simulation sub-tasks, the number of times the simulation sub-tasks that failed to be executed by the simulation module were successfully executed in other simulation modules, the number of times the simulation module failed or timed out when executing simulation sub-tasks within a specified time period, or the time elapsed since the simulation module last responded to the control module.

[0007] In some embodiments, the control module is configured to determine the operating state of the simulation module based on communication information with the simulation module by comparing the average task time of the simulation module executing multiple simulation subtasks with a task time threshold; and in response to the average task time being greater than the task time threshold, determining that the simulation module is in an invalid state.

[0008] In some embodiments, the control module is configured to determine the operating state of the simulation module based on communication information with the simulation module by comparing the number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules with a retry success count threshold; and in response to the number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules being greater than the retry success count threshold, determining that the simulation module is in an invalid state.

[0009] In some embodiments, the control module is configured to determine the operating state of the simulation module based on communication information with the simulation module by comparing the number of times the simulation module fails or times out during the execution of simulation subtasks within a specified time period with a task failure or timeout threshold; and in response to the number of failures or timeouts being greater than the task failure or timeout threshold, determining that the simulation module is in an invalid state.

[0010] In some embodiments, the control module is configured to determine the operating state of the simulation module based on communication information with the simulation module by comparing the time elapsed since the simulation module last responded to the control module with a no-feedback time threshold; and determining that the simulation module is in an invalid state in response to the time elapsed since the simulation module last responded to the control module being greater than the no-feedback time threshold.

[0011] In some embodiments, the control module is configured to, in response to determining that the simulation module is in an invalid state, cease sending simulation subtasks to the simulation module, send stop commands to the simulation module, and / or refuse to process information sent by the simulation module.

[0012] In some embodiments, the control module is configured to start a new simulation module in response to determining that the simulation module is invalid.

[0013] In some embodiments, the control module is configured to determine the estimated total remaining time of the feature extraction task based on the number of currently active simulation modules and the estimated task time of multiple unexecuted simulation subtasks.

[0014] In some embodiments, the control module is further configured to start or terminate one or more simulation modules based on the estimated remaining total time.

[0015] In some embodiments, the control module is further configured to arrange the plurality of simulation subtasks in a task queue and assign simulation subtasks to the plurality of simulation modules according to the order of the task queue.

[0016] In some embodiments, the plurality of simulation subtasks are arranged in the task queue such that the overall task time of the feature extraction task is minimized.

[0017] In some embodiments, the control module is configured to arrange the plurality of simulation subtasks in a task queue by: determining the estimated task time of the plurality of simulation subtasks; and sorting the plurality of simulation subtasks in descending order of estimated task time.

[0018] In some embodiments, the control module is configured to assign simulation subtasks to the plurality of simulation modules according to the order of the task queue by: obtaining the execution time of the simulation modules currently in an idle state within a specified time period; and assigning the simulation subtasks to the simulation module with the shortest execution time.

[0019] In some embodiments, the control module is further configured to, when the execution result of the received simulation subtask is an execution failure, re-enter the failed simulation subtask into the task queue and assign it to a simulation module that has not executed the failed simulation subtask for execution.

[0020] In some embodiments, the control module is further configured to record the number of execution failures for each simulation subtask, and to exclude simulation subtasks with a number of execution failures exceeding the execution failure threshold from the task queue.

[0021] In some embodiments, the control module is further configured to determine the required number of simulation modules based on the number of the plurality of simulation subtasks and the estimated task time, and to start the corresponding number of simulation modules based on the determined number of simulation modules.

[0022] In some embodiments, the system is a distributed system and the plurality of simulation modules includes at least one remote simulation module. The control module is further configured to determine whether the remote simulation module needs to be invoked based on the number of the plurality of simulation subtasks, the estimated task time, and the hardware resources of the system.

[0023] In some embodiments, the control module is further configured to summarize the execution results of the simulation subtasks to generate model parameter feature files for one or more standard cells in the standard cell library.

[0024] In another aspect of this application, a method for feature extraction from a standard cell library using a system is provided. The system includes a control module and multiple simulation modules initiated by the control module. The method comprises: receiving and parsing a feature extraction task for at least one standard cell through the control module; establishing multiple simulation subtasks based on the feature extraction task; initiating the multiple simulation modules through the control module and assigning the multiple simulation subtasks to the multiple simulation modules; receiving and executing the simulation subtasks assigned by the control module through the simulation modules, and sending the execution results of the assigned simulation subtasks to the control module; wherein, based on communication information between the control module and the simulation modules, the control module determines the operating status of the simulation modules.

[0025] In some embodiments, the communication information between the control module and the simulation module includes the average task time taken by the simulation module to execute multiple simulation sub-tasks, the number of times the simulation sub-tasks that failed to be executed by the simulation module were successfully executed in other simulation modules, the number of times the simulation module failed or timed out when executing simulation sub-tasks within a specified time period, or the time elapsed since the simulation module last responded to the control module.

[0026] In some embodiments, the allocation of the plurality of simulation subtasks to the plurality of simulation modules further includes: arranging the plurality of simulation subtasks in a task queue by the control module, and allocating the simulation subtasks to the plurality of simulation modules according to the order of the task queue.

[0027] In some embodiments, the method further includes: determining the required number of simulation modules based on the number of the plurality of simulation subtasks and the estimated task time, and starting the corresponding number of simulation modules based on the determined number of simulation modules.

[0028] The above is an overview of this application, and there may be simplifications, generalizations, and omissions of details. Therefore, those skilled in the art should recognize that this section is merely illustrative and not intended to limit the scope of this application in any way. This overview section is neither intended to identify the key or essential features of the claimed subject matter nor to serve as an aid in determining the scope of the claimed subject matter. Attached Figure Description

[0029] The above and other features of this application will become more fully clear through the following description and appended claims, in conjunction with the accompanying drawings. It is understood that these drawings depict only a few embodiments of the application and should not be construed as limiting the scope of the application. The application will be described more clearly and in more detail through the use of the drawings.

[0030] Figure 1A schematic diagram of a system 100 according to one embodiment of this application is shown;

[0031] Figure 2 A flowchart is shown of a method 300 for extracting features of a standard cell library using an embodiment of this application;

[0032] Figure 3 A flowchart is shown of a method 400 for monitoring the running status of multiple simulation modules during the execution of a feature extraction task using a system according to an embodiment of this application;

[0033] Figure 4 A flowchart is shown of a method 500 for extracting features of a standard cell library using an embodiment of this application. Detailed Implementation

[0034] In the following detailed description, reference is made to the accompanying drawings, which form a part thereof. In the drawings, similar symbols generally denote similar components unless the context otherwise requires. The illustrative embodiments described in the detailed description, drawings, and claims are not intended to be limiting. Other embodiments and variations may be employed without departing from the spirit or scope of the subject matter of this application. It will be understood that various different configurations, substitutions, combinations, and designs can be made to the various aspects of the general description and illustrated in the drawings of this application, all of which explicitly form part of the subject matter of this application.

[0035] Figure 1 A schematic diagram of an integrated circuit-aided design system 100 according to one embodiment of this application is shown. Figure 1 As shown, system 100 includes a control module 101 and multiple simulation modules 201, 202, and 203. The control module 101 is configured to receive and parse feature extraction tasks for one or more standard cells, and establish multiple simulation subtasks based on these feature extraction tasks. A standard cell refers to a series of digital units used in integrated circuit design, composed of transistors and interconnects, that have Boolean logic or triggering functions. Examples include inverters, AND gates, registers, selectors, full adders, and other pre-designed basic units for integrated circuits. The feature extraction task for standard cells may include creating or processing cell netlist files, model files, and configuration files for the standard cells.

[0036] In such Figure 1In the illustrated embodiment, the control module 101 includes a main simulator 120 for parsing feature extraction tasks of one or more standard units and establishing corresponding multiple simulation subtasks, and a task management module 130 for managing and scheduling simulation subtasks and processing task execution results. Specifically, the task management module 130 includes a thread pool 131 and a task queue 132. Multiple simulation subtasks established by the main simulator 120 are stored in the thread pool 131. Multiple simulation subtasks A1, A2, A3, B1, and B2 corresponding to standard units A and B are extracted from the thread pool 131 and arranged in the task queue 132, so that the task management module 130 can arrange them according to a specific order (e.g., ...). Figure 1 The sequence A1, A2, B1, A3, B2) is assigned to multiple simulation modules 201, 202, and 203. Specific details regarding the arrangement and allocation of these simulation subtasks will be described below. It should be noted that although the embodiment shown only illustrates the simulation subtasks corresponding to the two standard units A and B, the control module 101 can be used to receive and parse feature extraction tasks from any number of standard units in the standard unit library.

[0037] Simulation modules 201, 202, and 203 have sub-simulators 212, 222, and 232, respectively. Sub-simulators 212, 222, and 232 are configured to perform simulation calculations on simulation subtasks assigned to them to obtain the electrical characteristics of standard cell circuits, and send the execution results of the simulation subtasks back to control module 101 for final aggregation to form the model feature parameter file of the standard cell library.

[0038] The control module 101 and simulation modules 201, 202, and 203 can communicate using any available protocol. Figure 1In the illustrated embodiment, control module 101 and simulation modules 201, 202, and 203 each have a corresponding Process Remote Caller (PRC). Control module 101 is coupled to the PRCs 211, 221, and 231 of simulation modules 201, 202, and 203 via PRC module 110 to achieve inter-process communication, such as issuing specific simulation sub-tasks to the simulation modules, monitoring the running status of the simulation modules, and the execution status of simulation sub-tasks. Furthermore, the simulators of control module 101 and simulation modules 201, 202, and 203 perform simulation processing at different stages. Specifically, the main simulator 120 of control module 101 is used to parse the feature extraction task of the standard cell and establish simulation sub-tasks. The main simulator 120 of control module 101 is used to parse the netlist file contained in the feature extraction task to generate a simulation netlist, and to generate one or more specific simulation sub-tasks based on the specific parameters and requirements provided in the feature extraction task. Thus, the sub-simulators 212, 222, and 232 of simulation modules 201, 202, and 203 are respectively used to execute specific simulation sub-tasks to calculate and obtain the electrical characteristics of the required unit circuits. In some embodiments, the electrical characteristics of the unit circuits calculated by the sub-simulators 212, 222, and 232 of the simulation modules are summarized by the control module 101 to generate model feature files for the standard unit library.

[0039] The integrated circuit-aided design system used in this application can be any computer system capable of performing circuit simulation calculations. In some embodiments, system 100 can be implemented by one or more graphics processing units (GPUs) and / or central processing units (CPUs), and includes corresponding system buses, storage devices, and system bus interfaces, etc., and software required to implement various processes can run on system 100. In other embodiments, certain functions of the system can be implemented in one or more application-specific integrated circuits (ASICs) or field-programmable gate arrays (FPGAs), and / or supplemented by various required software.

[0040] In some embodiments, system 100 may be a distributed system, and at least one of the multiple simulation modules in the system may be a remote simulation module. Control module 101 is further configured to determine whether to invoke the one or more remote simulation modules based on the number of multiple simulation subtasks, estimated task duration, and the distribution of system hardware resources. Figure 1As shown, the control module 101 of system 100 shares files with multiple simulation modules 201, 202, and 203 through a Network File System (NFS) to improve system efficiency. In other embodiments, the control module 101 and the multiple simulation modules 201, 202, and 203 may use TCP / IP communication to reduce I / O operations.

[0041] Figure 2 A flowchart of a method 300 for extracting features of a standard unit library using an embodiment of this application is shown. The following will be combined with... Figure 1 The system description shown Figure 2 The specific methods described.

[0042] like Figure 2 As shown, in step 301, control module 101 receives and parses a feature extraction task for multiple standard units, including standard units A and B, and establishes multiple simulation subtasks, including tasks A1, A2, A3, B1, and B2, based on the feature extraction task. Subsequently, in steps 302 and 303, control module 101 starts simulation modules 201, 202, and 203 and assigns the established simulation subtasks to them. It should be noted that in some embodiments, the established simulation subtasks A1, A2, A3, B1, and B2 will be sorted and selectively assigned to simulation modules 201, 202, and 203. Details regarding task allocation and sorting will be described below.

[0043] Subsequently, in step 304, the remote calling modules (PRC) of simulation modules 201, 202, and 203 respectively receive simulation sub-tasks assigned by control module 101, and execute the received simulation sub-tasks through the sub-simulators of simulation modules 201, 202, and 203 to calculate the electrical parameter characteristics of the corresponding unit circuits. Then, in step 305, control module 101 determines the operating status of simulation modules 201, 202, and 203 based on the communication information between itself and simulation modules 201, 202, and 203, such as whether the simulation modules are in an invalid state. The specific methods and rules for determining the operating status of simulation modules 201, 202, and 203 will be detailed below. It should be noted that the order of step 305 in method 300 is only for illustrative purposes; the step of determining the operating status of simulation modules 201, 202, and 203 based on communication information can be executed at any point in the operation of system 100.

[0044] Subsequently, in step 306, the execution results of the assigned simulation subtasks are sent to the control module 101 via simulation modules 201, 202, and 203, respectively. The control module then aggregates the received execution results of the simulation subtasks to generate the model parameter file of the final standard unit. In some embodiments, the number of simulation subtasks established by the control module 101 is greater than the number of simulation modules. After a simulation module completes a single simulation subtask, the control module 101 continues to execute step 303 to allocate the remaining unexecuted simulation subtasks to the simulation modules that have completed their single simulation tasks, until the feature extraction task of the standard unit received by the control module 101 is completed.

[0045] It needs to be emphasized that, although Figure 1 and Figure 2 The system or method shown only involves simulation modules 201, 202, and 203; however, the system and method of this application can also employ any number of other simulation modules, such as 3 to 800. In some embodiments, the simulation modules of system 100 are activated by control module 101 according to the computational load of the received feature extraction task. In some embodiments, control module 101 can determine the number of simulation modules required to complete the feature extraction task before step 301, based on the specific parameters and configuration of the received feature extraction task, such as the number of standard units and the task type. Subsequently, based on the determined number of required simulation modules, control module 101 activates the corresponding number of simulation modules.

[0046] In other embodiments, the step of determining the number of required simulation modules can also be performed after step 301. Specifically, for example... Figure 1 Taking the illustrated embodiment as an example, the control module 101 can determine the number of simulation modules required to complete the task based on the total computational load or estimated task time of the simulation subtasks A1, A2, A3, B1, and B2. For example, when the feature extraction task received by the control module 101 involves 10 standard units, and each standard unit has 1000 corresponding simulation subtasks, the control module 101 activates 25 to 100 simulation modules, preferably 50 to 75. In addition to the number of standard units and the number of simulation subtasks, the control module 101 also considers the computational load or estimated task time of each simulation subtask, and determines the required number of simulation modules based on the total computational load or total estimated task time of the simulation subtasks.

[0047] Figure 3 A flowchart illustrating a method 400 for monitoring the running status of multiple simulation modules during the execution of a feature extraction task using a system according to an embodiment of this application is shown. The following will be combined with... Figure 1 The system description shown Figure 3 The specific steps of the described method 400.

[0048] like Figure 3 As shown, in step 401, the control module 101 acquires communication information with the simulation modules 201, 202, and 203. This communication information includes, but is not limited to: the average time spent executing each task calculated by the simulation modules 201, 202, and 203 after executing multiple simulation sub-tasks (“average task time”); the number of times the simulation sub-tasks that failed to execute by the simulation modules 201, 202, and 203 were successfully executed in other simulation modules; the number of times the simulation modules 201, 202, and 203 failed or timed out during the execution of simulation sub-tasks within a specified time period; the time elapsed since the simulation modules 201, 202, and 203 last responded to the control module 101; the number of times the simulation modules 201, 202, and 203 successfully executed simulation sub-tasks within a specified time period; the time elapsed since the simulation modules 201, 202, and 203 last sent simulation sub-tasks to the control module 101; and the remaining estimated time for each simulation sub-task executed by the simulation modules 201, 202, and 203.

[0049] It should be noted that the "specified time period" mentioned in the above communication information listing can be the time elapsed since the start of the feature extraction task, or the time the system has been running until now. In some embodiments, the "specified time period" can also be a preset time period. In some embodiments, the duration of the preset time period can be selected from 2 hours to 25 hours, preferably 5 to 20 hours. For example, the preset "specified time period" can be proportional to the estimated total time of the feature extraction task, preferably 1 / 5 to 1 / 3 of the estimated total time of the feature extraction task. In addition, the preset "specified time period" can also be dynamically adjusted along with the operation of the task, such as being proportional to the real-time estimated total time of the feature extraction task currently estimated by the system. Similarly, the specific number of multiple simulation subtasks used to calculate the "average task time" mentioned in the above communication information listing can also be the number of simulation subtasks executed by simulation modules 201, 202, and 203 from the start of the feature extraction task to the present. In some embodiments, the number of simulation subtasks can also be the number of simulation subtasks executed by the simulation module since the system has been running. In other embodiments, the specific number of simulated subtasks used to calculate the "average task time" can also be a preset number of tasks, for example, selected from 5 to 50, preferably 10 to 25.

[0050] Continue to refer to Figure 1 and 3In step 402, the control module 101 compares the average task time of multiple (e.g., 5) simulation subtasks of the simulation module 201 with a task time threshold. When the average task time is greater than the task time threshold, the control module 101 determines that the simulation module 201 is in an invalid state. The task time threshold here can be a preset value, for example, selected from 10 to 150 seconds, preferably 15 to 110 seconds, and can be set according to the actual complexity of the simulation task and / or the computing power of the sub-simulator. In some embodiments, the task time threshold can also be determined by the average task time of other previously determined simulation modules, for example, 2 to 5 times the average task time of other previously determined simulation modules. Excessively long task times usually indicate that there may be a problem with the operation of the simulation module. Step 402 considers the parallel task times of multiple simulation subtasks and adopts the above-set task time threshold, thereby avoiding the potential impact of differences in the complexity of different simulation subtasks.

[0051] In step 403, the control module 101 compares the number of times the simulation subtasks that failed to execute in simulation module 201 were successfully executed in other simulation modules (e.g., simulation module 202 or simulation module 203) with a retry success threshold. Figure 1 Taking the system described above as an example, assume that simulation subtask A1 is assigned to simulation module 201. After the sub-simulator 212 of simulation module 201 fails to execute simulation subtask A1, it sends the failure result to control module 101. Subsequently, control module 101 reassigns simulation subtask A1 to simulation module 202 or 203 for execution. If simulation module 202 or 203 successfully executes simulation subtask A1, the number of times simulation module 201 failed but other simulation modules succeeded is incremented by 1. When the number of times the simulation subtask that failed to execute in simulation module 201 is successfully executed in other simulation modules 202 or 203 exceeds the retry success count threshold, simulation module 201 is determined to be in an invalid state. The retry success count threshold can be a preset value. In some embodiments, the retry success count threshold can be selected from 2 to 20 times, preferably 3 to 8 times. The failure of a simulation module to execute a simulation subtask may mean that there is a problem with the simulation module's operation, but the failure may also be caused by the simulation subtask itself (e.g., incorrect parameters). Therefore, step 403 considers the success of other simulation modules in executing the simulation subtask and compares the number of such occurrences with the selected retry success threshold, thereby effectively avoiding interference from the task itself and occasional events.

[0052] In step 404, the control module 101 compares the number of times the simulation module 201 failed or timed out during the execution of the simulation subtask within a specified time period with a task failure or timeout threshold. As mentioned above, this specified time period can be the time elapsed since the start of the feature extraction task, the time the system has been running, or a pre-set time period. For example, in combination with... Figure 1 and Figure 3 In this embodiment, the simulation module 201 is assigned to execute simulation subtasks A1, B1, and B2. Since B1 and B2 both fail to execute successfully, the number of failures or timeouts is 2. The task failure or timeout threshold can be a preset value. In some embodiments, this threshold can be selected from 2 to 20 times, preferably 3 to 8 times. The selection of the above-mentioned task failure or timeout threshold takes into account the influence of occasional factors, thereby more accurately determining the actual operating status of the simulation module.

[0053] Continue to refer to Figure 1 and 3 In step 405, the control module 101 compares the elapsed time since the last response from the simulation modules 201, 202, and 203 to the no-feedback time threshold. For example, if the simulation module 201 does not provide any further feedback to the control module 101 within 6 minutes after confirming receipt of simulation subtask A2, and if 6 minutes exceeds the preset no-feedback time threshold, then the simulation module 201 is determined to be in an invalid state. The no-feedback time threshold can be a preset value. For example, in some embodiments, the no-feedback time threshold can be 1.5 to 6 times the estimated task time of the simulation subtask, preferably 2 to 4 times. In some embodiments, the no-feedback time threshold is a fixed preset value, selected from 2 to 9 minutes, preferably 3 to 5 minutes. In other embodiments, the no-feedback time threshold can be 1.5 to 6 times the average task time of multiple simulation modules within the specified time period mentioned above, preferably 2 to 4 times. It should be noted that although the last response of the simulation module 201 in the above embodiment is to confirm the receipt of the simulation subtask A2, in other embodiments it may also be other content or form of communication between the simulation module 201 and the control module 101, such as reporting the execution status of the simulation subtask or the remaining task time.

[0054] In step 406, in response to the determination that simulation module 201 is in an invalid state, control module 101 no longer sends simulation sub-tasks to simulation module 201, sends stop commands to simulation module 201, or refuses to process information sent by simulation module 201. In some embodiments, control module 101 may also execute two or more of the above steps simultaneously. In step 407, control module 101 is further configured to start a new simulation module in response to the determination that simulation module 201 is in an invalid state to ensure the timely completion of the feature extraction task. Through steps 406 and 407, control module 101 can promptly identify simulation modules in an invalid state, thereby effectively improving the system's execution efficiency for specific simulation sub-tasks and saving the total time required for standard cell library feature extraction.

[0055] In addition, since the control module 101 can determine the specific operating status of multiple simulation modules, it can also determine the estimated remaining total time for the feature extraction task based on the number of currently effective simulation modules and the sum of the estimated task times for the remaining simulation subtasks. The control module 101 can start or terminate one or more simulation modules based on this estimated remaining total time, thereby saving system resources or ensuring system efficiency. In some embodiments, the control module 101 can also be configured to perform this operation at specified time intervals, presenting information such as the estimated task time to the user, allowing the user to understand the overall progress of the feature extraction task of the standard cell library in real time and adjust the requirements of the feature extraction task accordingly based on the remaining total time and other information. Simultaneously, in some embodiments, the control module 101 can repeat method 400 at the aforementioned specified time intervals to ensure a stable number of simulation modules to complete the feature extraction task of the standard cell library on time.

[0056] Figure 4 A flowchart is shown of a method 500 for extracting features of a standard cell library using a system according to an embodiment of this application. The steps of method 500 are similar to... Figure 2 The steps in method 300 shown are identical to those in method 300 and will not be repeated here. Similarly, combining... Figure 1 The system shown illustrates method 500.

[0057] In step 501, the control module 101 determines the required number of simulation modules based on multiple simulation subtasks and the estimated task time, and starts the corresponding number of simulation modules. As described above, in some embodiments, the control module 101 may estimate the number of simulation modules required to complete the feature extraction task before step 301 based on the specific parameters and configuration of the received feature extraction task, such as the number of standard units and the task type.

[0058] Continuing with step 502, control module 101 arranges the multiple simulation subtasks created in task queue 132 and allocates them to multiple simulation modules 201, 202, and 203 according to the order of the task queue. Specifically, control module 101 parses the feature extraction task of one or more standard units through the main simulator 120 and creates multiple simulation subtasks. The created subtasks are stored in thread pool 131 through task management module 130, and some of the simulation subtasks are extracted and arranged sequentially in task queue 132 (e.g., ...). Figure 1 (As shown). By sorting the simulation subtasks in task queue 132, the overall task time of the entire feature extraction task is minimized, thereby effectively improving the overall efficiency of the system.

[0059] In some embodiments, the task management module 130 is configured to sort the estimated task times of a plurality of determined simulation subtasks in descending order of estimated task times. For example, in... Figure 1 In the illustrated embodiment, the estimated task times of A1, A2, B1, A3, and B2 gradually decrease. This setting can effectively achieve dynamic load balancing and prevent the simulation subtask B2, which has a shorter estimated task time, from being executed first, which could lead to idle or redundant simulation modules.

[0060] In some embodiments, when multiple idle modules exist during the allocation of simulation subtasks (e.g., simulation subtask B2) by the task management module 130, such as simulation modules 201, 202, and 203 all being idle, the task management module 130 can determine the allocation of simulation subtask B2 by pre-obtaining the execution time of the currently idle simulation modules within a specified time period. Specifically, when the task management module 130 confirms that the total execution time of simulation module 201 when the system begins executing the feature extraction task of the multiple standard units is 340 seconds, the corresponding time for simulation module 202 is 45 seconds, and the corresponding time for simulation module 203 is 145 seconds, the task management module 130 will allocate simulation subtask B2 to simulation module 202, which currently has the shortest execution time, thereby achieving reasonable allocation and utilization of system resources.

[0061] In some embodiments, the task management module 130 further arranges retries or reassignments of failed simulation subtasks based on the execution results of the simulation subtasks. Assuming simulation subtask A1 is initially assigned to simulation module 201 for execution, in step 503, the execution result information sent by simulation module 201 determines whether the execution result of its sub-simulator 212 on simulation subtask A1 is a failure. When the determination result is success, step 506 is executed, where the execution result is further summarized to finally generate the model feature file of the standard cell in the standard cell library.

[0062] If, in step 503, it is determined that the execution result of the sub-emulator 212 on the simulation subtask A1 has failed, then step 504 is further executed, whereby the control module 101 compares the number of failed executions of the simulation subtask A1 with the execution failure threshold. If the number of failed executions of the simulation subtask A1 is less than the execution failure threshold, then step 502 is returned, and the simulation subtask A1 is reordered into the task queue 132. In some embodiments, when the task management module 130 reassigns the simulation subtask A1, it avoids assigning the task to the simulation module 201 that previously executed the task, and instead assigns it to the simulation module 202 or 203 that has not executed the task. Conversely, if the determination result of step 504 is greater than the execution failure threshold, the result of the task execution failure may be due to a problem with the simulation subtask itself. Therefore, the task management module 130 proceeds to step 505, stopping the execution of the simulation subtask A1. Specifically, the control module 101 may stop adding the simulation subtask A1 to the task queue, or it may stop further allocation or execution of the simulation subtask A1, and retain relevant task logs for subsequent investigation. In other embodiments, the control module 101 may also send real-time reminders to the user regarding the aforementioned task execution failure, allowing the user to determine whether to continue allocating or executing the simulation subtask. It should be noted that the task execution failure threshold can be any pre-set value, for example, selected from 2 to 100 times, preferably 3 to 15 times. Due to the above task management method, the system of this application can effectively identify problems with the simulation task itself, thereby avoiding waste of system computing resources.

[0063] It should be noted that although several modules or sub-modules of the system have been mentioned in the detailed description above, this division is merely exemplary and not mandatory. In fact, according to embodiments of this application, the features and functions of two or more modules described above can be embodied in one module. Conversely, the features and functions of one module described above can be further divided and embodied by multiple modules.

[0064] Those skilled in the art will understand and implement other modifications to the disclosed embodiments by studying the specification, the disclosure, the drawings, and the appended claims. In the claims, the word "comprising" does not exclude other elements and steps, and the words "a" or "an" do not exclude a plurality. In practical application of this application, a single part may perform the function of multiple technical features referenced in the claims. Any reference numerals in the claims should not be construed as limiting the scope.

Claims

1. A system for feature extraction of standard cell libraries, characterized in that, The system includes: A control module, configured to receive and parse a feature extraction task for at least one standard unit, and to establish multiple simulation subtasks based on the feature extraction task; and Multiple simulation modules initiated by the control module, each of which is configured to receive and execute simulation subtasks assigned by the control module, and send the execution results of the assigned simulation subtasks to the control module; The control module is further configured to determine the operating status of the simulation module based on communication information with the simulation module. The communication information between the control module and the simulation module includes the average task time taken by the simulation module to execute multiple simulation sub-tasks, the number of times the simulation sub-tasks that failed to be executed by the simulation module were successfully executed in other simulation modules, the number of times the simulation module failed or timed out when executing simulation sub-tasks within a specified time period, and the time elapsed since the simulation module last responded to the control module. The control module is configured to determine the operating status of the simulation module based on communication information with the simulation module in the following manner: The number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules is compared with a retry success threshold; and in response to the number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules being greater than the retry success threshold, the simulation module is determined to be in an invalid state.

2. The system of claim 1, wherein, The control module is configured to determine the operating status of the simulation module based on communication information with the simulation module in the following manner: The simulation module is compared with a task time threshold when it executes multiple simulation subtasks; and in response to the average task time being greater than the task time threshold, the simulation module is determined to be in an invalid state.

3. The system of claim 1, wherein, The control module is configured to determine the operating status of the simulation module based on communication information with the simulation module in the following manner: The number of times the simulation module failed or timed out during the execution of simulation subtasks within a specified time period is compared with a task failure or timeout threshold; and If the number of failures or timeouts exceeds the task failure or timeout threshold, the simulation module is determined to be in an invalid state.

4. The system of claim 1, wherein, The control module is configured to determine the operating status of the simulation module based on communication information with the simulation module in the following manner: Compare the time elapsed since the simulation module last responded to the control module with the no-feedback time threshold. as well as If the time elapsed since the simulation module last responded to the control module is greater than the no-feedback time threshold, the simulation module is determined to be in an invalid state.

5. The system of any one of claims 2 to 4, wherein, The control module is configured to, in response to determining that the simulation module is in an invalid state, cease sending simulation subtasks to the simulation module, send stop commands to the simulation module, and / or refuse to process information sent by the simulation module.

6. The system of any one of claims 2 to 4, wherein, The control module is configured to start a new simulation module in response to determining that the simulation module is invalid.

7. The system of any one of claims 2 to 4, wherein, The control module is configured to be based on The estimated total remaining time for the feature extraction task is determined by considering the number of currently active simulation modules and the estimated time for multiple unexecuted simulation subtasks.

8. The system of claim 7, wherein, The control module is further configured to start or terminate one or more simulation modules based on the estimated remaining total time.

9. The system of claim 1, wherein, The control module is further configured to arrange the plurality of simulation subtasks in a task queue, and to assign simulation subtasks to the plurality of simulation modules according to the order of the task queue.

10. The system of claim 9, wherein, The multiple simulation subtasks are arranged in the task queue to minimize the overall task time of the feature extraction task.

11. The system of claim 9, wherein, The control module is configured to arrange the plurality of simulation subtasks in a task queue in the following manner: Determine the estimated task time for the multiple simulation subtasks; as well as The multiple simulation subtasks are sorted in descending order of estimated task time.

12. The system of claim 9, wherein, The control module is configured to operate in the following manner Assign simulation subtasks to the multiple simulation modules according to the order of the task queue: Get the execution time of the simulation module that is currently idle within a specified time period; And assign the simulation subtask to the simulation module with the shortest execution time.

13. The system according to claim 11, characterized in that, The control module is further configured to, when the execution result of the received simulation subtask is an execution failure, re-enter the failed simulation subtask into the task queue and assign it to a simulation module that has not executed the failed simulation subtask.

14. The system of claim 13, wherein, The control module is further configured to record the number of execution failures for each simulation subtask, and to prevent simulation subtasks with a number of execution failures exceeding the execution failure threshold from being added to the task queue.

15. The system of claim 1, wherein, The control module is further configured to determine the required number of simulation modules based on the number of the plurality of simulation subtasks and the estimated task time, and to start the corresponding number of simulation modules based on the determined number of simulation modules.

16. The system of claim 15, wherein, The system is a distributed system and the plurality of simulation modules include at least one remote simulation module. The control module is further configured to determine whether the remote simulation module needs to be invoked based on the number of the plurality of simulation subtasks, the estimated task time, and the hardware resources of the system.

17. The system of claim 1, wherein, The control module is further configured to summarize the execution results of the simulation subtasks to generate model parameter feature files for one or more standard cells in the standard cell library.

18. A method of feature extraction of a standard cell library using a system comprising a control module and a plurality of simulation modules initiated by the control module, characterized in that, The method includes: The control module receives and parses the feature extraction task of at least one standard unit, and establishes multiple simulation subtasks based on the feature extraction task. The control module initiates multiple simulation modules and assigns multiple simulation subtasks to the simulation modules; the simulation modules receive and execute the simulation subtasks assigned by the control module and send the execution results of the assigned simulation subtasks to the control module; the communication information between the control module and the simulation modules includes the average task time taken by the simulation module to execute multiple simulation subtasks, the number of times the simulation subtasks that failed to execute by the simulation module were successfully executed in other simulation modules, the number of times the simulation module failed or timed out when executing simulation subtasks within a specified time period, and the time elapsed since the simulation module last responded to the control module; Specifically, based on the communication information between the control module and the simulation module, the control module determines the operating status of the simulation module, compares the number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules with a retry success threshold; and in response to the number of times a simulation subtask that failed to execute in the simulation module was successfully executed in other simulation modules being greater than the retry success threshold, the simulation module is determined to be in an invalid state.

19. The method of claim 18, wherein, The assignment of the multiple simulation subtasks to the multiple simulation modules further includes: The control module arranges the multiple simulation subtasks in a task queue and assigns simulation subtasks to the multiple simulation modules according to the order of the task queue.

20. The method of claim 18, wherein, The method further includes: The required number of simulation modules is determined based on the number of simulation subtasks and the estimated task time, and the corresponding number of simulation modules are started based on the determined number of simulation modules.