Circuit simulation method and circuit simulation system

CN122221765BActive Publication Date: 2026-09-04上海芯源创新中心
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202610659853.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-05-13
Publication Date
2026-09-04
Estimated Expiration
2046-05-13

AI Technical Summary

Technical Problem

然而,目前多种EDA工具往往由不同的公司或机构独立开发,它们各自形成了独立的生态系统和用户习惯,不同EDA工具之间的兼容性差,导致仿真难度的增大

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122221765B_ABST
    Figure CN122221765B_ABST
Patent Text Reader

Abstract

The present disclosure provides a circuit simulation method and a circuit simulation system. The circuit simulation method comprises: obtaining simulation configuration information, wherein the simulation configuration information indicates one or more simulation modules used to perform a simulation workflow and a running order of the one or more simulation modules; and performing the following operations for each simulation module in the running order: reading simulation input data associated with the simulation module from a database into the simulation module through a first interface module communicatively connected to the simulation module, running the simulation module to generate simulation output data according to the simulation input data, and storing the simulation output data generated by the simulation module into the database through a second interface module communicatively connected to the simulation module.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of electronic circuit technology, and more specifically, to a circuit simulation method and a circuit simulation system. Background Technology

[0002] In the design process of electronic circuits, Electronic Design Automation (EDA) tools are generally used to simulate the circuit at one or more levels to ensure the correctness and reliability of the circuit performance. However, currently, various EDA tools are often independently developed by different companies or institutions, each forming its own independent ecosystem and user habits. Poor compatibility between different EDA tools increases the difficulty of simulation. Therefore, it is necessary to improve the circuit simulation method. Summary of the Invention

[0003] One of the purposes of this disclosure is to provide a circuit simulation method and a circuit simulation system.

[0004] According to a first aspect of this disclosure, a circuit simulation method is provided, comprising: Obtain simulation configuration information, wherein the simulation configuration information indicates one or more simulation modules used to execute the simulation workflow and the execution order of the one or more simulation modules; and, According to the described execution sequence, perform the following operations for each simulation module: The simulation input data associated with the simulation module is read from the database and entered into the simulation module through a first interface module that is communicatively connected to the simulation module. Run the simulation module to generate simulation output data based on the simulation input data, and The simulation output data generated by the simulation module is stored in the database through a second interface module that is communicatively connected to the simulation module.

[0005] In some embodiments, the one or more simulation modules are configured to communicatively connect to the same database to read simulation input data from the database and store simulation output data into the database; and / or, The first interface module is configured to read multiple sets of simulation input data in parallel from the database; and / or, The second interface module is configured to store multiple sets of simulation output data in parallel into the database.

[0006] In some embodiments, reading simulation input data associated with the simulation module from the database into the simulation module via a first interface module that is communicatively connected to the simulation module includes performing the following operations via the first interface module: Send a first query request to the database; Read the corresponding simulation input data from the database according to the first query request; Determine whether the read simulation input data conforms to the first format requirements corresponding to the simulation module; If the read simulation input data conforms to the first format requirement, the read simulation input data is provided to the simulation module; and, If the read simulation input data does not meet the first format requirements, the read simulation input data is converted according to the first format requirements, and the converted simulation input data is provided to the simulation module.

[0007] In some embodiments, storing the simulation output data generated by the simulation module into the database via a second interface module communicatively connected to the simulation module includes performing the following operations via the second interface module: Determine whether the generated simulation output data conforms to the second format requirements corresponding to the database; If the generated simulation output data conforms to the second format requirements, the generated simulation output data is stored in the database; and, If the generated simulation output data does not meet the second format requirements, the generated simulation output data is converted according to the second format requirements, and the converted simulation output data is stored in the database.

[0008] In some embodiments, the circuit simulation method further includes: The initial input data associated with the simulation module is stored in the database through a third interface module that is communicatively connected to the simulation module, wherein the simulation input data associated with the simulation module is generated at least in part based on the initial input data associated with the simulation module.

[0009] In some embodiments, storing initial input data associated with the simulation module into the database via a third interface module communicatively connected to the simulation module includes performing the following operations via the third interface module: Determine whether the initial input data conforms to the third format requirements corresponding to the database; If the initial input data meets the third format requirements, the initial input data will be stored in the database. If the initial input data does not meet the requirements of the third format, determine whether the initial input data is convertible; and, If the initial input data is convertible, the initial input data is format-converted according to the third format requirements, and the converted initial input data is stored in the database. If the initial input data is not convertible, the initial input data is stored in the database.

[0010] In some embodiments, storing initial input data associated with the simulation module into the database via a third interface module communicatively connected to the simulation module includes performing the following operations via the third interface module: Send a second query request to the database; According to the second query request, the input data template associated with the initial input data is read from the database; and, Initial input data is obtained based on the input data template, and the obtained initial input data is stored in the database.

[0011] In some embodiments, the simulation configuration information is stored in a simulation configuration file, and the simulation configuration file can be automatically parsed to drive the one or more simulation modules to run automatically in the specified running order.

[0012] In some embodiments, the simulation configuration file is generated based on a module configuration file corresponding to each of the one or more simulation modules, wherein the module configuration file includes at least one of the following information for the corresponding simulation module: The module identifier, module name, and module icon are configured to uniquely indicate at least one of the simulation module; and, At least one of the run commands and run files configured to cooperate with the operation of the simulation module.

[0013] In some embodiments, the one or more simulation modules include at least one of the following: The materials simulation module is configured to simulate the materials used in the circuit. The process simulation module is configured to simulate the manufacturing process of the circuit. The device simulation module is configured to simulate the devices contained in the circuit; and, The architecture simulation module is configured to simulate the architecture of the circuit.

[0014] In some embodiments, the circuit simulation method further includes: A graphical user interface is provided, wherein the graphical user interface is configured to display at least part of the simulation configuration information or at least part of the simulation input data, and to edit at least part of the simulation configuration information or at least part of the simulation input data through the graphical user interface.

[0015] According to a second aspect of this disclosure, a circuit simulation system is provided, including a memory and a processor, wherein the memory stores instructions that, when executed by the processor, implement the operation of the circuit simulation method as described above.

[0016] According to a third aspect of this disclosure, a non-transitory computer-readable storage medium is provided, wherein instructions are stored on the non-transitory computer-readable storage medium, and when executed by a processor, the instructions implement the operation of the circuit simulation method described above.

[0017] According to a fourth aspect of this disclosure, a computer program product is provided, including instructions that, when executed by a processor, implement the operation of the circuit simulation method described above.

[0018] Other features and advantages of this disclosure will become clearer from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description

[0019] The accompanying drawings, which form part of this specification, illustrate embodiments of this disclosure and, together with the specification, serve to explain the principles of this disclosure.

[0020] This disclosure will become clearer with reference to the accompanying drawings and the following detailed description, wherein: Figure 1 A schematic flowchart of a circuit simulation method according to an exemplary embodiment of the present disclosure is shown; Figure 2 A schematic diagram illustrating the interaction between the simulation module and the database in a circuit simulation method according to a specific embodiment of the present disclosure is shown. Figure 3 A schematic diagram of the structure of a circuit simulation system according to an exemplary embodiment of the present disclosure is shown.

[0021] Note that in the embodiments described below, the same reference numerals are sometimes used across different figures to denote the same parts or parts having the same function, and repeated descriptions are omitted. In this specification, similar reference numerals and letters are used to denote similar items; therefore, once an item is defined in one figure, it does not need to be discussed further in subsequent figures.

[0022] For ease of understanding, the positions, dimensions, and extents of the structures shown in the accompanying drawings and other materials may not represent actual positions, dimensions, and extents. Therefore, the disclosed invention is not limited to the positions, dimensions, and extents disclosed in the accompanying drawings and other materials. Furthermore, the drawings are not necessarily drawn to scale, and some features may be enlarged to show details of specific components. Detailed Implementation

[0023] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that, unless otherwise specifically stated, the relative arrangement, numerical expressions, and values ​​of the components and steps set forth in these embodiments do not limit the scope of the present disclosure.

[0024] The following description of at least one exemplary embodiment is merely illustrative and is in no way intended to limit this disclosure or its application or use. Those skilled in the art will understand that they merely illustrate exemplary ways that can be used to implement this disclosure, and are not exhaustive.

[0025] Techniques, methods, and equipment known to those skilled in the art may not be discussed in detail, but where appropriate, such techniques, methods, and equipment should be considered part of the specification.

[0026] In the field of microelectronics, there are various heterogeneous simulation tools (also referred to as simulation modules in this paper). In order to adapt to the integration and data collaboration of these simulation tools, this disclosure proposes a circuit simulation method that can build an scalable and highly compatible unified data interface engine based on a unified interface standard specification and exchange protocol. It supports the structured encapsulation, storage and parsing of various types of knowledge base data, and supports the conversion and transfer of input and output files between multiple tools, thereby realizing the integrated data interface technology of the entire simulation process.

[0027] In one exemplary embodiment of this disclosure, such as Figure 1 As shown, the circuit simulation method may include: step S110, obtaining simulation configuration information.

[0028] The simulation configuration information indicates one or more simulation modules used to execute the simulation workflow and their execution order. As mentioned above, these simulation modules can also be referred to as simulation tools, such as various EDA tools, which can simulate materials, processes, devices, architectures, etc., in a circuit. Accordingly, one or more simulation modules may include at least one of a material simulation module, a process simulation module, a device simulation module, and an architecture simulation module. They can perform simulations based on data from the material knowledge base, process knowledge base, device knowledge base, and architecture knowledge base, respectively. The material simulation module can be configured to simulate the materials used in the circuit, the process simulation module can be configured to simulate the circuit's manufacturing process, the device simulation module can be configured to simulate the devices included in the circuit, and the architecture simulation module can be configured to simulate the circuit's architecture. Depending on the specific simulation needs, one or more of the above simulation modules can be selected to complete the desired simulation workflow, or other simulation modules can be used; no restrictions are placed here. In the simulation workflow, one or more simulation modules can be called in the order of execution. Furthermore, in some embodiments, the simulation output data of a previously running simulation module may be used as the simulation input data for a subsequently running simulation module. In a specific example, in a simulation workflow, the materials simulation module, process simulation module, device simulation module, and architecture simulation module can be run sequentially to achieve a complete simulation of the electronic circuit. It is understood that in other embodiments, one or more simulation modules may be called in a different running order as needed, and this is not limited thereto.

[0029] In some embodiments, simulation configuration information can be stored in a simulation configuration file. This configuration file can be automatically parsed to drive one or more simulation modules to run automatically in the specified order. In other words, the automated orchestration of the entire simulation workflow can be achieved through the simulation configuration file. As will be explained in detail below, data in the simulation workflow can be automatically transmitted through corresponding interface modules, allowing users to simplify the simulation process and improve efficiency by eliminating the need to manually configure each simulation module. In some embodiments, a simulation configuration file can be generated based on a module configuration file corresponding to each of the one or more simulation modules. The module configuration file can include at least one of the following information for the corresponding simulation module: a module identifier (ID) configured to uniquely indicate the simulation module, a module name, and a module icon; and at least one of the following: a run command and a run file (e.g., a run template file, a predefined file, or a post-processing file) configured to run in conjunction with the simulation module. In a specific example, simulation modules (or point tools) integrated into the simulation workflow can be numbered to generate a unique module identifier. This identifier, along with the module name, module icon, and the execution commands, template files, predefined files, and post-processing files required for the simulation module, is stored in a module configuration file (e.g., a ToolSetting.json file). Alternatively, the simulation configuration file can also be in JSON format. By writing the module identifiers from the module configuration file sequentially into the simulation configuration file according to the execution order, the simulation workflow can be created. Then, by loading the configured simulation configuration file into the simulation engine, the simulation module chain and detailed task information can be viewed. Users can add parameters to any simulation module in the chain as needed, and the simulation engine can automatically combine these parameters to generate experimental groups. After completing the entire simulation task chain, the impact of various experimental parameters on the overall performance of processes such as materials simulation, process simulation, device simulation, and architecture simulation can be investigated.

[0030] return Figure 1 The circuit simulation method disclosed herein may further include performing the following operations for each simulation module in the order of execution: step S121, reading simulation input data associated with the simulation module from the database into the simulation module through a first interface module that is communicatively connected to the simulation module; step S122, running the simulation module to generate simulation output data based on the simulation input data; and step S123, storing the simulation output data generated by the simulation module into the database through a second interface module that is communicatively connected to the simulation module.

[0031] In other words, in this disclosure, an interface module can be used as a bridge between the simulation module and the database, responsible for the storage, reading, parsing, and format adaptation of all input and output data. In some embodiments, one or more simulation modules involved in the simulation workflow can be configured to communicate with the same database to read simulation input data from the database and store simulation output data in the database. By using the database as the sole trusted data source and as the core hub for all data interactions, data involved in all simulation modules can be read from the database through the corresponding interface module and written to the database through the corresponding interface module, thereby realizing the free flow and reuse of data at any location in the simulation workflow. In some specific examples, a unified structured encapsulation format and exchange rules can be established for data in the material knowledge base, process knowledge base, device knowledge base, and architecture knowledge base. This can specify in detail the description and transmission methods of various parameters such as standard cells, dimensions, and process variables, ensuring the consistency of data semantics. In terms of specific interface coverage, this protocol can fully adapt to key links in semiconductor manufacturing and advanced packaging. For example, at the process level, 21 process model interfaces can be defined and implemented, fully covering not only core front-end processes such as growth (e.g., atomic layer deposition, epitaxy), patterning (e.g., photolithography, dry / wet etching), and doping (e.g., ion implantation), but also supporting 2.5D / 3D advanced packaging processes such as through-silicon vias (TSVs) and RDLs, including deep reactive ion etching (DRIE), copper plating, and redistribution layer (RDL) microbumps. Each process model corresponds to an actual process. At the device level, the protocol clearly specifies six typical device model interfaces, providing a unified paradigm for parameter transfer of devices such as metal-oxide-semiconductor field-effect transistors (MOSFETs), diodes, and bipolar junction transistors (BJTs). At the architecture level, the protocol fully supports the entire data interaction process for multi-core microsystems, from architecture planning, physical layout and routing, electrical parameter extraction, to electromagnetic, thermal, and other multi-physics simulation verification, ensuring seamless and efficient data transfer between tools in the design chain. This protocol forms the syntactic foundation for automated and unambiguous data communication between all tools.

[0032] In some embodiments, such as Figure 2As shown, the first interface module 221, which is communicatively connected to the simulation module 230, reads simulation input data associated with the simulation module 230 from the database 210 and into the simulation module 230. This may include the following operations performed by the first interface module 221: sending a first query request (Query1) to the database 210; reading simulation input data from the database 210 according to the first query request (Query1); determining whether the read simulation input data conforms to a first format requirement corresponding to the simulation module; providing the read simulation input data to the simulation module 230 if the read simulation input data conforms to the first format requirement; and converting the read simulation input data according to the first format requirement if the read simulation input data does not conform to the first format requirement, and providing the converted simulation input data to the simulation module 230. The first format requirement can be specifically determined by the corresponding simulation module 230 according to its needs in performing the simulation process, and is not limited here. To conserve storage resources, the format of simulation input data stored in database 210 may differ from the format of simulation input data directly called by simulation module 230. In this case, format conversion can be used to ensure the normal operation of subsequent simulations. Furthermore, in some specific examples, the desired format conversion can be achieved through predefined files or scripts as described above. For example, before each run of a corresponding simulation module, the corresponding predefined file or script can be executed, for example, through an Application Programming Interface (API) to complete any necessary format conversions. When reading data, the API initiates independent transactions on a task-by-task basis to ensure the atomicity of operations within the task. In some embodiments, the database can be implemented using SQLite3, and the function interface can be implemented using Python 3, loaded as a module upon software startup. This interface can be open-source code, for example, it can be one of four classes: process class (IFCPDK), material class (IFCMaterial), device class (IFCDevice), and architecture class (IFCArch), allowing users to update and maintain it in real time without recompiling the software each time, thus meeting users' needs for faster design iterations, more diverse simulation requirements, and usage scenarios.

[0033] Furthermore, in some embodiments, such as Figure 2As shown, the first interface module 221 also has high-concurrency access support capabilities. That is, the first interface module 221 can be configured to read multiple sets of simulation input data from the database 210 in parallel to ensure data consistency and operational independence during large-scale parallel simulation. For example, the reading of each set of simulation input data can be performed in a corresponding thread, and scheduling can ensure the orderly execution of multiple threads. By supporting parallel access, each simulation module may have N sets of simulations reading the database in parallel through the interface. The interface engine can avoid storage or reading errors caused by race conditions during high concurrency, ensuring that each operation is independent. Its advantages include a unified database foundation for storing and reading data from all nodes in the entire chain; support for input and output files within and outside standard specifications and protocols; support for storing various types of variables and binary files; encapsulated format conversion code for on-demand use; an open interface for users to quickly edit and update without recompilation; and support for concurrent reading and storage.

[0034] After receiving simulation input data from the database, the corresponding simulation module can be run to generate simulation output data. In some embodiments, simulation module 230 can execute multiple simulation tasks in parallel (e.g., such as...). Figure 2 Simulation Task 1, Simulation Task 2, and Simulation Task 3 shown in the figure, and generate corresponding simulation output data (e.g., such as...). Figure 2 The simulation output data shown is 1, 2, and 3. As mentioned above, the simulation output data here can be the final simulation result, provided to the user for analysis; or it can be provided to subsequent simulation modules in the simulation workflow via database 210 for further simulation analysis in those modules.

[0035] In some embodiments, such as Figure 2As shown, storing the simulation output data generated by the simulation module 230 into the database 210 via a second interface module 222 communicatively connected to the simulation module 230 may include performing the following operations: determining whether the generated simulation output data conforms to the second format requirements corresponding to the database 210; storing the generated simulation output data into the database 210 if the generated simulation output data conforms to the second format requirements; and converting the generated simulation output data according to the second format requirements if the generated simulation output data does not conform to the second format requirements, and storing the converted simulation output data into the database 210. The second format requirements can be specifically determined by the database 210 according to its storage needs, and are not limited here. The second format requirements may be the same as or different from the first format requirements described above. If the second format requirements differ from the first format requirements of the corresponding simulation module 230, storage can be guaranteed through format conversion. In some embodiments, the database 210 may initiate the writing of simulation output data by providing a third query request (Query3) to the corresponding simulation module 230. Furthermore, in some specific examples, the desired format conversion can be achieved through post-processing files or post-processing scripts as described above. For example, after each run of a simulation module, the corresponding post-processing file or script can be executed, such as via an API, to perform any necessary format conversions. Similarly, when writing data, the API initiates independent transactions on a task-by-task basis to ensure the atomicity of operations within each task.

[0036] Furthermore, in some embodiments, such as Figure 2 As shown, the second interface module 222 can also support high-concurrency access, meaning it can be configured to store multiple sets of simulation output data in parallel to the database 210, ensuring data consistency and operational independence during large-scale parallel simulation. For example, the writing of each set of simulation input data can be performed in a corresponding thread, and scheduling can ensure the orderly execution of multiple threads.

[0037] In some embodiments, such as Figure 2 As shown, the circuit simulation method may further include: storing initial input data associated with the simulation module 230 into a database 210 via a third interface module 223 communicatively connected to the simulation module 230, wherein the simulation input data associated with the simulation module 230 is generated at least in part based on the initial input data associated with the simulation module 230. For example, initial input data from a user can be written into the database 210 so that, during subsequent simulation processes, the simulation module 230 can read the simulation input data required for simulation, generated at least in part based on the initial input data, from the database 210.

[0038] In some embodiments, to address the complex tool ecosystem, three data storage and processing methods can be integrated. Specifically, storing the initial input data associated with the simulation module into the database via a third interface module that is communicatively connected to the simulation module may include the following operations: determining whether the initial input data conforms to the third format requirements corresponding to the database; storing the initial input data into the database if the initial input data conforms to the third format requirements; determining whether the initial input data is convertible if the initial input data does not conform to the third format requirements; and, if the initial input data is convertible, performing format conversion on the initial input data according to the third format requirements and storing the converted initial input data into the database; and storing the initial input data into the database if the initial input data is not convertible. In other words, the three data storage and processing methods may include direct storage, conversion, and third-party methods. The direct storage method is for files that fully comply with the standard protocol of this solution, and can directly call the API for efficient storage and retrieval. The conversion method provides an automated format conversion mechanism. When the existing storage format cannot meet the input requirements of the target simulation module, it can drive the built-in function to convert the file into a compliant standard format or a specific format required by the simulation module. The third-party method supports direct storage of files outside the standard specifications and protocols without processing. Whether it is a text file or a binary file, it can be stored and read to maximize the compatibility with mainstream simulation tools at home and abroad, and also take into account the compatibility of future independently developed and alternative tools.

[0039] In some embodiments, in order to provide users with the necessary guidance for initial input data, such as Figure 2 As shown, storing the initial input data associated with the simulation module 230 into the database 210 via the third interface module 223, which is communicatively connected to the simulation module 230, may include performing the following operations: sending a second query request (Query2) to the database 210; reading the input data template associated with the initial input data from the database 210 according to the second query request; and obtaining the initial input data based on the input data template and storing the obtained initial input data into the database. In other words, the database 210 can provide the user with an input data template to help the user better provide initial input data. Furthermore, in some embodiments, the user may also directly provide initial input data based on their known input data template, without limitation. Moreover, it is understood that multiple sets of initial data can be based on corresponding input data templates (e.g., such as...). Figure 2The input data templates 1, 2, and 3 shown are written to database 210 in parallel to ensure data consistency and operational independence during large-scale parallel simulation. For example, the writing of each set of initial input data can be performed in a corresponding thread, and scheduling can be used to ensure the orderly execution of multiple threads.

[0040] In some embodiments, the circuit simulation method disclosed herein may further include: providing a graphical user interface (GUI), wherein the GUI can be configured to display at least some simulation configuration information or at least some simulation input data, and to allow editing of at least some simulation configuration information or at least some simulation input data through the GUI, thereby facilitating user operation. In some specific examples, multiple sub-windows can be set on the GUI, such as a process model PDK library window, a material knowledge base window (which may contain a separately displayed material database window, and may also contain material simulation-related files, etc.), a device knowledge base window, and an architecture knowledge base window. The process model PDK window can list 21 process models, each providing its parameter groups for adding, querying, deleting, and modifying data. The main content of the process simulation file can be generated with one click by stacking process parameters, and after minor modifications, it can be directly exported through the interface for use in process simulation. The material database window can list various key parameters of different materials, and new material data can be added to the database after material simulation. The material, device, and architecture knowledge base windows can all refer to the input and output file types in the interface protocol standard specification document, allowing users to intuitively interact with the knowledge base files for adding, querying, deleting, and modifying data.

[0041] According to another aspect of this disclosure, a circuit simulation system is also provided, which can be configured to perform the circuit simulation method as described above. In an exemplary embodiment, as... Figure 3 As shown, the circuit simulation system may include a memory 310 and a processor 320. The memory 310 stores instructions, and when the instructions are executed by the processor 320, they can implement the circuit simulation method described above.

[0042] Specifically, processor 320 can perform various actions and processes according to instructions stored in memory 310. Processor 320 can be an integrated circuit chip with signal processing capabilities. The processor can be a general-purpose processor, digital signal processor (DSP), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic device, or discrete hardware component. It can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of this disclosure. The general-purpose processor can be a microprocessor or any conventional processor, and can be an x86 architecture or an ARM architecture, etc.

[0043] Memory 310 stores executable instructions that, when executed by processor 320, implement the circuit emulation method described above. Memory 310 may be volatile memory or non-volatile memory, or may include both. Non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. Volatile memory may be random access memory (RAM), which serves as an external cache. By way of example, but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous linked dynamic random access memory (SLDRAM), and direct memory bus random access memory (DR RAM). It should be noted that the memory of the methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0044] This disclosure also proposes a non-transitory computer-readable storage medium storing instructions that, when executed by a processor, can implement the circuit simulation method described above.

[0045] Similarly, the non-transitory computer-readable storage media in the embodiments of this disclosure are intended to include, but are not limited to, the above and any other suitable types of memory.

[0046] This disclosure also proposes a computer program product that may include instructions that, when executed by a processor, can implement the circuit simulation method described above.

[0047] Instructions can be any set of instructions that will be executed directly by one or more processors, such as machine code, or any set of instructions that will be executed indirectly, such as a script. The terms “instruction,” “application,” “process,” “step,” and “program” used herein are interchangeable. Instructions can be stored in object code format for direct processing by one or more processors, or stored in any other computer language, including scripts or sets of independent source code modules that are interpreted on demand or compiled ahead of time. Instructions can include instructions that cause one or more processors to act as various neural networks, if any. The function, methods, and routines of instructions are explained in more detail in other parts of this document.

[0048] In the technical solution disclosed herein, by defining a unified data standard, constructing an intelligent interface engine, and implementing concurrency control and an open architecture, a unified, reliable, and scalable data hub is built for microelectronics simulation, realizing automation, reliability, and intelligence of the entire simulation chain. At least some embodiments of this disclosure may have the following advantages: First, it achieves automation and seamless integration of the entire simulation chain.

[0049] The previously error-prone, manual data transfer across tools has been transformed into an automated process based on standardized protocols, significantly improving simulation efficiency and accuracy. This disclosed technical solution defines a unified digital interface standard and provides three interface modes for various tools: direct access, intelligent conversion, and compatible storage. This allows all heterogeneous simulation tools to establish a "common language" and "adapter," thereby automatically and seamlessly connecting the entire chain of simulation tools from materials and processes to devices and architectures.

[0050] Second, ensure the reliability and consistency of data in high-concurrency simulation environments.

[0051] The unified data interface engine constructs a unified channel for data interaction between various simulation tools through standardized API interfaces and parsing and transformation modules (Parser + Translator). Centered on a unified database, all simulation tools' input and output can be completed through a unified API interface, ensuring the uniqueness and standardization of data flow paths and avoiding the risk of data inconsistency caused by multi-path access at the architectural level. Building upon this, the engine can fully utilize SQLite3's underlying transaction support. When performing database read and write operations via API in the predefined scripts and post-processing scripts of each simulation task, independent transactions are initiated on a task-by-task basis, ensuring the atomicity of operations within the task. Furthermore, for the needs of large-scale parallel simulation, the engine can centrally manage database access through a unified interface layer, avoiding data competition issues during concurrent read and write operations by multiple tools and providing a reliable guarantee for efficient exploration of the design space.

[0052] Third, it possesses high scalability and flexible adaptability.

[0053] The disclosed solution employs an open API and JSON configuration-driven approach, enabling the integration of new or self-developed simulation tools. It allows users to flexibly orchestrate simulation workflows through configuration, significantly reducing system maintenance costs and the difficulty of iterative upgrades. The open API facilitates the rapid development of adaptation scripts for new tools, the third-party compatibility mode can handle any unknown format, and the JSON configuration allows for the addition, deletion, modification, and parameter experimentation of the simulation toolchain without code modification, solely through configuration, greatly improving the system's integration efficiency with new tools and workflows.

[0054] The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “upper,” “lower,” “high,” “lower,” etc., used in the specification and claims, if present, are for descriptive purposes and not necessarily for describing unchanging relative positions. It should be understood that such terms are interchangeable where appropriate, enabling embodiments of this disclosure described herein to operate, for example, in orientations different from those shown or otherwise described herein. For example, when the device in the drawings is reversed, a feature previously described as “above” other features may now be described as “below” other features. The device may also be oriented in other ways (rotated 90 degrees or in other orientations), in which case the relative spatial relationships will be interpreted accordingly.

[0055] In the specification and claims, when an element is described as being "on top of," "attached to," "connected to," "coupled to," or "in contact with" another element, the element may be directly located on top of, directly attached to, directly connected to, directly coupled to, or directly in contact with the other element, or one or more intermediate elements may be present. Conversely, when an element is described as being "directly" located on top of, directly attached to, directly connected to, directly coupled to, or directly in contact with another element, no intermediate elements are present. In the specification and claims, when a feature is arranged "adjacent" to another feature, it may mean that a feature has a portion overlapping with the adjacent feature or a portion located above or below the adjacent feature.

[0056] As used herein, the term “exemplary” means “serving as an example, instance, or illustration” and not as a “model” to be precisely copied. Any implementation described herein by example is not necessarily to be construed as preferred or advantageous over other implementations. Moreover, this disclosure is not limited to any theory expressed or implied as given in the field of art, background art, summary of invention, or detailed description.

[0057] As used herein, the term "substantially" means any minor variation resulting from design or manufacturing defects, device or component tolerances, environmental influences, and / or other factors. The term "substantially" also allows for differences from the perfect or ideal situation due to parasitic effects, noise, and other practical considerations that may exist in the actual implementation.

[0058] Furthermore, terms such as “first,” “second,” etc., may be used in this document for reference purposes only and are not intended to be limiting. For example, unless the context clearly indicates otherwise, the words “first,” “second,” and other such numerical terms relating to structures or elements do not imply order or sequence.

[0059] It should also be understood that when the term “including / contains” is used herein, it indicates the presence of the indicated feature, whole, step, operation, unit and / or component, but does not preclude the presence or addition of one or more other features, wholes, steps, operations, units and / or components and / or combinations thereof.

[0060] In this disclosure, the term “provide” is used broadly to cover all ways of obtaining an object, and therefore “provide an object” includes, but is not limited to, “purchasing,” “preparing / manufacturing,” “arranging / setting up,” “installing / assembling,” and / or “ordering” an object.

[0061] As used herein, the term “and / or” includes any and all combinations of one or more of the listed items in association. The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of this disclosure. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise.

[0062] Those skilled in the art will recognize that the boundaries between the above operations are merely illustrative. Multiple operations may be combined into a single operation, a single operation may be distributed among additional operations, and operations may be performed with at least partial overlap in time. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be changed in various other embodiments. However, other modifications, variations, and substitutions are equally possible. Aspects and elements of all the embodiments disclosed above may be combined in any way and / or in combination with aspects or elements of other embodiments to provide multiple additional embodiments. Therefore, this specification and the accompanying drawings should be considered illustrative rather than restrictive.

[0063] While specific embodiments of this disclosure have been described in detail by way of example, those skilled in the art should understand that the examples are for illustrative purposes only and not intended to limit the scope of this disclosure. The various embodiments disclosed herein can be combined in any way without departing from the spirit and scope of this disclosure. Those skilled in the art should also understand that various modifications can be made to the embodiments without departing from the scope and spirit of this disclosure. The scope of this disclosure is defined by the appended claims.

Claims

1. A circuit simulation method, characterized in that, The circuit simulation method includes: Obtain simulation configuration information, wherein the simulation configuration information indicates multiple simulation modules used to execute the simulation workflow and the execution order of the multiple simulation modules; and According to the described execution sequence, perform the following operations for each simulation module: The simulation input data associated with the simulation module is read from the database and entered into the simulation module through a first interface module that is communicatively connected to the simulation module. Run the simulation module to generate simulation output data based on the simulation input data, and The simulation output data generated by the simulation module is stored in the database through a second interface module that is communicatively connected to the simulation module. The plurality of simulation modules are configured to communicate with the same database to read simulation input data from the database and store simulation output data in the database. The plurality of simulation modules include: a material simulation module configured to simulate the materials used in the circuit, a process simulation module configured to simulate the manufacturing process of the circuit, a device simulation module configured to simulate the components contained in the circuit, and an architecture simulation module configured to simulate the architecture of the circuit. The circuit simulation method further includes: storing initial input data associated with the simulation module into the database via a third interface module communicatively connected to the simulation module, wherein the simulation input data associated with the simulation module is generated at least in part based on the initial input data associated with the simulation module.

2. The circuit simulation method according to claim 1, characterized in that, The first interface module is configured to read multiple sets of simulation input data in parallel from the database; and / or The second interface module is configured to store multiple sets of simulation output data in parallel into the database.

3. The circuit simulation method according to claim 1, characterized in that, The simulation input data associated with the simulation module is read from the database into the simulation module through a first interface module that is communicatively connected to the simulation module. This includes performing the following operations through the first interface module: Send a first query request to the database; Read the corresponding simulation input data from the database according to the first query request; Determine whether the read simulation input data conforms to the first format requirements corresponding to the simulation module; If the read simulation input data meets the first format requirements, the read simulation input data is provided to the simulation module. as well as If the read simulation input data does not meet the first format requirements, the read simulation input data is converted according to the first format requirements, and the converted simulation input data is provided to the simulation module.

4. The circuit simulation method according to claim 1, characterized in that, The simulation output data generated by the simulation module is stored in the database through a second interface module that is communicatively connected to the simulation module, including the following operations performed by the second interface module: Determine whether the generated simulation output data conforms to the second format requirements corresponding to the database; If the generated simulation output data meets the second format requirements, the generated simulation output data will be stored in the database. as well as If the generated simulation output data does not meet the second format requirements, the generated simulation output data is converted according to the second format requirements, and the converted simulation output data is stored in the database.

5. The circuit simulation method according to claim 1, characterized in that, The initial input data associated with the simulation module is stored in the database through a third interface module that is communicatively connected to the simulation module, including performing the following operations through the third interface module: Determine whether the initial input data conforms to the third format requirements corresponding to the database; If the initial input data meets the third format requirements, the initial input data will be stored in the database. If the initial input data does not meet the requirements of the third format, determine whether the initial input data is convertible; and If the initial input data is convertible, the initial input data is format-converted according to the third format requirements, and the converted initial input data is stored in the database. If the initial input data is not convertible, the initial input data is stored in the database.

6. The circuit simulation method according to claim 1, characterized in that, The initial input data associated with the simulation module is stored in the database through a third interface module that is communicatively connected to the simulation module, including performing the following operations through the third interface module: Send a second query request to the database; The input data template associated with the initial input data is read from the database according to the second query request; and Initial input data is obtained based on the input data template, and the obtained initial input data is stored in the database.

7. The circuit simulation method according to claim 1, characterized in that, The simulation configuration information is stored in a simulation configuration file, and the simulation configuration file can be automatically parsed to drive the one or more simulation modules to run automatically in the specified running order.

8. The circuit simulation method according to claim 7, characterized in that, The simulation configuration file is generated based on a module configuration file corresponding to each of the one or more simulation modules, wherein the module configuration file includes at least one of the following information for the corresponding simulation module: Configured to uniquely indicate at least one of the following: module identifier, module name, and module icon; and At least one of the run commands and run files configured to cooperate with the operation of the simulation module.

9. The circuit simulation method according to claim 1, characterized in that, The circuit simulation method further includes: A graphical user interface is provided, wherein the graphical user interface is configured to display at least part of the simulation configuration information or at least part of the simulation input data, and to edit at least part of the simulation configuration information or at least part of the simulation input data through the graphical user interface.

10. A circuit simulation system, characterized in that, The circuit simulation system includes a memory and a processor. The memory stores instructions, which, when executed by the processor, implement the operation of the circuit simulation method according to any one of claims 1 to 9.

11. A non-transitory computer-readable storage medium, characterized in that, The non-transitory computer-readable storage medium stores instructions that, when executed by a processor, implement the circuit simulation method according to any one of claims 1 to 9.

12. A computer program product, characterized in that, The computer program product includes instructions that, when executed by a processor, implement the circuit simulation method according to any one of claims 1 to 9.

Citation Information

Patent Citations

  • Simulation result determination method and device

    CN115658241A

  • Technical method for integrated circuit design, test and measurement integration

    CN1521830A