Communication method and system of EDA tool
The interconnection between different EDA tools is achieved through the EDA tool communication platform, solving the cumbersome operation problems caused by tool independence and improving operational efficiency.
Patent Information
- Application Number
- CN202410361746.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-26
- Filing Date
- 2024-03-27
- Publication Date
- 2025-07-29
AI Technical Summary
The existing EDA tools are independent of each other, which causes designers to frequently switch tools when designing chips, which is cumbersome to operate, which affects the efficiency of job completion.
The interconnection between different EDA tools is realized through the EDA tool communication platform, allowing real-time interaction of information between the first EDA tool and the second EDA tool, so that the second EDA tool can automatically perform corresponding operations based on the operation information.
It reduces the operation complexity during the operation process, improves the overall completion efficiency of the operation, and simplifies the operation process between tools.
Smart Images

Figure CN120390022A_ABST
Abstract
Description
[0001] This application claims the priority of a Chinese patent application with the application number 202410114537.4 and the application title "An Information Exchange Method, System, Device, and Storage Medium", which was filed with the China National Intellectual Property Administration on January 26, 2024. The entire content of this Chinese patent application is incorporated herein by reference. Technical Field
[0002] Embodiments of this application relate to the field of electronic design automation technology, and in particular, to a communication method and system for EDA tools. Background Art
[0003] In the current field of EDA (Electronic Design Automation) tools, each EDA tool is independent of each other. When designing a chip, designers usually switch between multiple EDA tools, which is cumbersome to operate and affects the efficiency of completing tasks. Summary of the Invention
[0004] This application provides a communication method and system for EDA tools, which can realize the interconnection between EDA tools.
[0005] In a first aspect, this application provides a communication method for EDA tools. The method includes: The EDA tool communication platform establishes a connection between a first EDA tool and a second EDA tool according to a connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool based on the connection. The first EDA tool sends operation information to the second EDA tool in response to a target operation on a first file by the user, and the operation information is associated with the target operation on the first file by the first EDA tool. The second EDA tool performs a target operation on a second file in the second EDA tool according to the operation information, and the first file is associated with the second file. In this way, the first EDA tool and the second EDA tool in this application can realize the interconnection between EDA tools through the EDA tool communication platform. After the EDA tools are interconnected, operation information can be interacted in real time between the tools, so that the receiving EDA tool can automatically execute corresponding operations in the local file based on the operation information, reducing the operation complexity during the task process and further improving the overall task completion efficiency.
[0006] Exemplarily, the second EDA tool may include one or more EDA tools. That is, the first EDA tool can be interconnected with one or more EDA tools.
[0007] Exemplarily, the EDA tool communication platform can be deployed on a cloud management platform.
[0008] In a possible implementation, the first EDA tool and the second EDA tool are one of a layout tool or a schematic tool. In this way, through the EDA tool communication method in this application, the operation interconnection between different types of EDA tools can be realized, enabling real-time interaction of operation information between different tools.
[0009] In a possible implementation, the first EDA tool and the second EDA tool are different types of EDA tools. In this way, based on the communication method of the EDA tool in this application, different types of EDA tools in the EDA tool chain can achieve operation interconnection to interact operation information in real time and realize the interconnection between cross-type tools.
[0010] Optionally, the first EDA tool and the second EDA tool can be any tools in the EDA tool chain.
[0011] In a possible implementation, the EDA tool communication platform establishes a connection between the first EDA tool and the second EDA tool according to the connection request sent by the first EDA tool, including: the EDA tool communication platform obtains the communication information of the first EDA tool and sends the communication information of the first EDA tool to the second EDA tool. The EDA tool communication platform obtains the communication information of the second EDA tool and sends the communication information of the second EDA tool to the first EDA tool. In this way, the EDA tool communication platform exchanges the communication information of the EDA tools, enabling the EDA tools to establish an operation interconnection channel based on the communication information of the peer end, thereby realizing the operation interconnection between the EDA tools. Moreover, through the EDA tool communication platform for communication information exchange, the security of the communication information can be ensured, and the security in the process of establishing the communication connection between the EDA tools can be improved.
[0012] In a possible implementation, the first EDA tool is deployed in the first computing instance, and the second EDA tool is deployed in the second computing instance. In this way, this application can realize the interconnection between EDA tools in different computing instances and improve the richness of application scenarios.
[0013] Exemplarily, the computing instance can be software resources such as virtual machines or hardware resources such as terminals.
[0014] In a possible implementation, before establishing the connection between the first EDA tool and the second EDA tool according to the connection request sent by the first EDA tool, the method further includes: the EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance. The EDA tool communication platform obtains the connection request sent by the first EDA tool. The connection request includes a first identifier, and the first identifier is used to indicate the second EDA tool. The connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance. In this way, the EDA tool communication platform can provide an interconnection function for any EDA tool in the EDA tool chain, enabling the EDA tool to perform operation interconnection with its designated second EDA tool through the EDA tool communication platform.
[0015] In a possible implementation, the operation information includes operation type information and operation object information. The operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation. In this way, through the method of the present application, after the first EDA tool and the second EDA tool establish a connection, they can exchange operation information, thereby simplifying the cumbersome operations in scenarios such as searching, improving the operation efficiency, and accelerating the operation progress.
[0016] In a possible implementation, the target operation is a click operation on the first device in the first file or a modification operation on the second device. The operation information includes first operation information or second operation information. The first operation information includes the identification information of the first device and the click operation type information, and the second operation information includes the identification information of the second device and the modification operation type information. The second EDA tool performs the target operation on the second file in the second EDA tool according to the operation information, including: the second EDA tool performs a click operation on the first device in the second file based on the first operation information; or, the second EDA tool performs a modification operation on the second device in the second file based on the second operation information. In this way, the real-time operation in the first EDA tool is transmitted to the second EDA tool in the form of operation information through the connection with the second EDA tool. The second EDA tool can perform a specified operation on the specified device in the file based on the operation information, thereby realizing real-time operation interconnection between multiple EDA tools through information transmission. The second EDA tool can execute the corresponding operation based on the received operation information, reducing the operation complexity, improving the operation execution efficiency, and further enhancing the overall operation completion efficiency.
[0017] Second aspect, the present application provides a communication system for an electronic design automation (EDA) tool, including: an EDA tool communication platform for establishing a connection between a first EDA tool and a second EDA tool according to a connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool based on the connection; the first EDA tool for sending operation information related to a target operation on a first file to the second EDA tool in response to a user's target operation on the first file, where the operation information is associated with the target operation on the first file by the first EDA tool; the second EDA tool for performing the target operation on a second file in the second EDA tool according to the operation information, and the first file is associated with the second file.
[0018] In a possible implementation, the first EDA tool and the second EDA tool are one of a layout tool or a schematic tool.
[0019] In a possible implementation, the first EDA tool and the second EDA tool are different types of EDA tools.
[0020] In a possible implementation, the EDA tool communication platform is used to obtain communication information of the first EDA tool and send the communication information of the first EDA tool to the second EDA tool; the EDA tool communication platform is used to obtain communication information of the second EDA tool and send the communication information of the second EDA tool to the first EDA tool.
[0021] In a possible implementation, the first EDA tool is deployed in a first computing instance, and the second EDA tool is deployed in a second computing instance.
[0022] In a possible implementation, the EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance; the EDA tool communication platform is further used to obtain a connection request sent by the first EDA tool, where the connection request includes a first identifier for indicating the second EDA tool, and the connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance.
[0023] In a possible implementation, the operation information includes operation type information and operation object information, where the operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation.
[0024] In a possible implementation, the target operation is a click operation on the first device in the first file or a modification operation on the second device. The operation information includes first operation information or second operation information. The first operation information includes the identification information of the first device and the click operation type information. The second operation information includes the identification information of the second device and the modification operation type information. The second EDA tool is used to perform a click operation on the first device in the second file based on the first operation information; or perform a modification operation on the second device in the second file based on the second operation information.
[0025] In a third aspect, the present application provides a communication device for an electronic design automation (EDA) tool, which is applied to an EDA tool communication platform and includes: an interconnection module, configured to establish a connection between the first EDA tool and the second EDA tool according to a connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool according to the connection; the first EDA tool sends operation information related to the target operation on the first file to the second EDA tool in response to a user's target operation on the first file; the second EDA tool performs the target operation on the second file in the second EDA tool according to the operation information, and the first file is associated with the second file.
[0026] In a possible implementation, the first EDA tool and the second EDA tool are one of a layout tool or a schematic tool.
[0027] In a possible implementation, the first EDA tool and the second EDA tool are different types of EDA tools.
[0028] In a possible implementation, the EDA tool communication device further includes an acquisition module, configured to acquire the communication information of the first EDA tool. A sending module, configured to send the communication information of the first EDA tool to the second EDA tool. The acquisition module is further configured to acquire the communication information of the second EDA tool, and the sending module is further configured to send the communication information of the second EDA tool to the first EDA tool.
[0029] In a possible implementation, the first EDA tool is deployed in the first computing instance, and the second EDA tool is deployed in the second computing instance.
[0030] In a possible implementation, the EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance; the acquisition module is further configured to acquire a connection request sent by the first EDA tool, and the connection request includes a first identifier, the first identifier is used to indicate the second EDA tool, and the connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance.
[0031] In a possible implementation, the operation information includes operation type information and operation object information. The operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation.
[0032] In a possible implementation, the target operation is a click operation on a first device in a first file or a modification operation on a second device. The operation information includes first operation information or second operation information. The first operation information includes the identification information of the first device and the click operation type information, and the second operation information includes the identification information of the second device and the modification operation type information. The second EDA tool performs the target operation on a second file in the second EDA tool according to the operation information, including: the second EDA tool performs a click operation on the first device in the second file based on the first operation information; or, the second EDA tool performs a modification operation on the second device in the second file based on the second operation information.
[0033] In a fourth aspect, an embodiment of the present application provides a computing device cluster, including at least one computing device. Each computing device includes a processor and a memory. The processor of at least one computing device is configured to execute instructions stored in the memory of at least one computing device, so that the computing device cluster executes the method in the first aspect or any possible implementation manner of the first aspect.
[0034] In a fifth aspect, an embodiment of the present application provides a computer program product including instructions, characterized in that when the instructions are run by a computing device cluster, the computing device cluster executes the method in the first aspect or any possible implementation manner of the first aspect.
[0035] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, characterized in that it includes computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method in the first aspect or any possible implementation manner of the first aspect. Description of the Drawings
[0036] Figure 1 A schematic structural diagram of a cloud system shown for illustration purposes;
[0037] Figure 2 A schematic flowchart of an EDA tool communication method shown for illustration purposes;
[0038] Figure 3 A schematic flowchart of communication between EDA tools shown for illustration purposes;
[0039] Figure 4 A schematic user interface diagram shown for illustration purposes;
[0040] Figures 5a - 5d Schematic diagram of a user interface shown exemplarily;
[0041] Figure 6a and Figure 6b Schematic diagram of a user interface on the layout design tool side shown exemplarily;
[0042] Figure 7 Schematic diagram of a user interface shown exemplarily;
[0043] Figure 8 Schematic diagram of a user interface shown exemplarily;
[0044] Figure 9 Schematic diagram of a user interface shown exemplarily;
[0045] Figure 10 Schematic diagram of the process of communication between EDA tools shown exemplarily;
[0046] Figures 11a - 11b Schematic diagram of a user interface shown exemplarily;
[0047] Figure 12 Schematic diagram of a connection interface shown exemplarily;
[0048] Figure 13 Schematic diagram of the structure of an EDA tool communication platform shown exemplarily;
[0049] Figure 14 Schematic diagram of the structure of a computing device shown exemplarily;
[0050] Figure 15 Schematic diagram of the structure of a computing device shown exemplarily;
[0051] Figure 16 Schematic diagram of the structure of a computing device cluster shown exemplarily. Detailed implementation manners
[0052] Next, the technical solutions in the embodiments of the present invention will be described in conjunction with the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, rather than all of the embodiments.
[0053] In the description of this specification, "one embodiment" or "some embodiments" etc. mean that in one or more embodiments of this specification, specific features, structures or characteristics described in conjunction with the embodiment are included. Thus, statements such as "in one embodiment", "in some embodiments", "in a possible implementation manner", "in other some embodiments", "in still other embodiments" etc. that appear in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all of the embodiments", unless otherwise specifically emphasized in other ways.
[0054] Among them, in the description of this specification, unless otherwise specified, " / " means "or". For example, A / B may mean A or B. "And / or" herein is merely an association relationship describing associated objects, indicating that three relationships may exist. For example, A and / or B may mean: A exists alone, A and B exist simultaneously, and B exists alone. In addition, in the description of the embodiments of this specification, "a plurality of" means two or more than two.
[0055] In the description of this specification, the terms "first" and "second" are only used for descriptive purposes and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, the features defined with "first" and "second" may explicitly or implicitly include one or more of such features. The terms "include", "comprise", "have" and their variants all mean "including but not limited to", unless otherwise specifically emphasized in other ways.
[0056] Before explaining the technical solutions of the embodiments of this application, first, a brief introduction to the background technology involved in the embodiments of this application is given:
[0057] Public cloud is a cloud platform provided by a third-party public cloud provider for a large number of individuals or enterprises. In a public cloud, the hardware, software, and other structures are all owned and managed by the third-party public cloud provider.
[0058] Private cloud is a dedicated cloud platform provided for an enterprise or organization. The private cloud can be operated internally by the corresponding enterprise or organization. The private cloud is mainly for enterprise users and is also called enterprise cloud.
[0059] Hybrid cloud refers to a cloud platform formed by different cloud platforms. A hybrid cloud includes at least two cloud platforms and is also called a multi-cloud platform or multi-cloud. Optionally, a hybrid cloud integrates a public cloud and a private cloud. For security reasons, some enterprise users are more willing to store data in a private cloud, but at the same time hope to obtain the computing resources of the public cloud. In this case, hybrid clouds including public clouds and private clouds are increasingly adopted. The hybrid cloud mixes and matches the public cloud and the private cloud to obtain good usage effects.
[0060] In the embodiments of this application, the cloud involved is described by taking the public cloud as an example. In other embodiments, it may also be a private cloud and / or a hybrid cloud, which is not limited in this application. That is to say, the tool interconnection method in the embodiments of this application can also be applied to a private cloud or a hybrid cloud, which is not limited in this application.
[0061] Figure 1 For the structural schematic diagram of the cloud system shown exemplarily, please refer to Figure 1, specifically including but not limited to: public cloud and client. Exemplarily, the public cloud includes but not limited to: cloud management platform and infrastructure.
[0062] The cloud infrastructure is the hardware device used to implement various cloud services provided by the public cloud system externally. It may include multiple data centers (DCs) set in different geographical regions. Each data center contains multiple physical servers, and each server can be used to support various cloud services such as virtual machines (VMs), containers (docker), bare-metal servers, and cloud hard disks. In addition, the cloud management platform is communicatively connected to the cloud infrastructure device, so the cloud management platform can provide various cloud services supported by the cloud infrastructure to tenants for use.
[0063] The cloud management platform, which can also be called the cloud platform or simply the cloud management platform, is a software system for cloud technology (also known as cloud computing technology) services provided by a cloud provider and is used to manage the infrastructure for providing cloud services. Specifically, the cloud management platform provides an interface related to cloud services for tenants to remotely access cloud services. Tenants can log in to the cloud management platform on the cloud service access page through a pre-registered account password. After successful login, tenants can select and purchase corresponding cloud services on the cloud service access page. In the embodiments of this application, a tenant includes at least one user. A tenant has a main account, and a user has a sub-account. In the embodiments of this application, tenants and users can be arbitrarily replaced, and this will not be repeated hereinafter.
[0064] Exemplarily, the cloud management platform can provide various interfaces such as a login interface and a data processing interface for the client of the tenant (such as the terminal device used by the tenant or the browser on the terminal device used by the tenant, etc.) to access. Exemplarily, the terminal of the tenant, which can be called an electronic device, a user device, or a terminal device, is not limited in this application. The terminal includes but not limited to: mobile phones, tablets (Pad), computers, personal computers (PCs), devices in the Internet of Things (IoT) system, etc.
[0065] Exemplarily, the cloud management platform can receive the account password, etc. input by the tenant through the client through the login interface to authenticate the client of the tenant. After successful authentication, the client of the tenant is allowed to log in to the cloud management platform.
[0066] In the embodiments of the present application, the cloud management platform also provides a user interface (also referred to as a tool interconnection interface, which is not limited in this application) through which the EDA tool in the client can interact with the cloud management platform for data, such as transmitting request information and job data. The specific interaction method will be described in detail below.
[0067] Cloud services include computing services, storage services, virtual machine services, network services, etc. Any device or function that a user device can access through the cloud management platform can be considered a service provided by the public cloud.
[0068] Cloud resources are hardware resources (also referred to as cloud infrastructure or infrastructure) and software resources (also referred to as public cloud services) used to provide services. For example, the hardware resources corresponding to software resources such as computing services, storage services or network services include computing resources, storage resources or network resources. Optionally, computing resources include central processing unit (CPU) resources, memory resources and / or hard disk resources. For example, a user (also referred to as a tenant) purchases a large number of virtual machine resources, and a large number of applications (also referred to as cloud applications) are deployed on the virtual machine resources. In this instance, the virtual machine and the applications in the virtual machine all belong to the cloud service (i.e., software resources), and the server and other equipment to which the virtual machine belongs are the corresponding hardware resources.
[0069] Electronic Design Automation, or EDA for short, is a general term for the process of using computer software to implement PCB (Printed Circuit Board) design (including schematics, layout, and design rule checking), simulation verification, and even manufacturing. While EDA in a narrow sense only provides automation tools for chip or PCB design, in a broader sense, it encompasses automation tools for all stages of the process, from chip design and packaging to chip testing, PCB design, and board manufacturing to testing.
[0070] The EDA tool chain includes tools for multiple stages, from design and simulation to manufacturing. Traditional EDA software vendors often independently develop or acquire one or more of these tools, ignoring the data communication process between single-point tools. This data communication process is often reflected on the user side through manual operations such as importing, exporting, saving, and searching. Common single-point tools include but are not limited to: schematic design tools, PCB design tools, simulation tools, and computer-aided manufacturing tools. The following is a brief introduction to these tools:
[0071] The schematic design tool is an EDA software used for designing circuit schematics. Common schematic design tools include Altium Designer, Cadence OrCAD, Mentor Graphics PADS, Eagle PCB, etc. These tools provide rich component libraries, drawing tools, simulation tools, output tools, etc., which can help engineers design circuit schematics quickly and accurately.
[0072] The PCB design tool is an EDA software used for designing printed circuit boards (PCBs) of electronic circuits. These tools allow electronic engineers to create circuit diagrams, layouts, and design PCBs, as well as generate the files required for manufacturing. Common PCB design tools include Altium Designer, Eagle PCB, KiCAD, PADS, etc. These tools usually have functions such as automatic routing, component library management, 3D model preview, design rule checking, etc., which can help engineers complete PCB design faster and more accurately.
[0073] The simulation tool is a computer-aided design software that can simulate and analyze the behavior and performance of various systems, and it is an auxiliary design method used in the electronics industry. The simulation tool can help engineers quickly discover and fix problems in the design, and improve the quality of electronic products. EDA field simulation generally includes the following aspects of tools and technologies: circuit simulation, radio frequency system simulation, digital system modeling and verification, combinatorial optimization tools, etc.
[0074] The Computer-Aided Manufacturing (CAM) tool is a software tool used to convert a Computer Aided Design (CAD) model into machine instructions for operations such as machining, milling, drilling, cutting, etc. by a numerically controlled machine tool or other machines. The CAM tool can generate information such as cutting paths, tool paths, machining parameters, etc., to help machine operators and programmers better control the machine, improve production efficiency and product quality. Common CAM tools include Mastercam, SolidCAM, PowerMill, etc.
[0075] In the embodiments of the present application, at least one EDA tool in the EDA tool chain can be deployed on a cloud server or on the user's client, and the present application does not make a limitation. Optionally, different EDA tools can be deployed in the same client or in different clients, and the present application does not make a limitation.
[0076] The design of chips or PCBs is the cornerstone of the semiconductor industry. Chips are the core of electronic devices, and PCBs are the carriers of hardware, known as the "mother of electronic products." Hardware development of electronic products involves many roles, such as power supply, structure, thermal design, etc. During the entire hardware development process, the work of different roles may refer to each other or continue based on the work of the previous stage. That is to say, there is usually a need for interaction between different roles (which can also be understood as different engineers).
[0077] The following is a simple description of the interaction scenarios of different roles:
[0078] 1. Independent work scenario.
[0079] In the independent work scenario, an engineer uses multiple different tools to complete the work simultaneously. Taking the scenario where a PCB engineer (or can be called a designer, this application does not make a limitation, and will not be repeated hereinafter) uses multiple tools as an example, when the PCB engineer performs PCB layout or wiring for a module on a certain page of the schematic diagram, the engineer will open the schematic diagram design tool and the PCB design tool simultaneously. First, the engineer needs to search and locate the corresponding elements (components, pins, networks, etc.) of this page of the schematic diagram on the PCB in the PCB design tool, and then refer to the schematic diagram to perform corresponding operations (move, rotate, highlight, etc.) on these elements in the work displayed by the PCB design tool.
[0080] 2. Collaborative work scenario.
[0081] The collaborative work scenario includes scenarios where multiple engineers use the same tool to complete the work and scenarios where multiple engineers use multiple tools to complete the work.
[0082] The collaborative work scenario where multiple engineers use the same tool to complete the work: With the development of the miniaturization and portability of electronic devices, the integration level of PCBs is getting higher and higher. The traditional design mode where one person is responsible for the design of a certain operation or even multiple operation processes of a PCB board gradually fails to meet the delivery requirements. Therefore, there is a situation where multiple people are responsible for the same operation process. For example, multiple people design a schematic diagram simultaneously, divide the design scope according to one page or one module for each engineer, and then the main engineer or the corresponding engineering role merges them, and multiple people jointly deliver a complete schematic diagram design.
[0083] The collaborative work scenario where multiple engineers use multiple tools to complete the work: Generally speaking, after completing the work of the current stage, a hardware engineer will save or export the work results (files) of the current stage in the corresponding single-point tool (i.e., EDA tool, such as the schematic diagram design tool), and then manually transfer them to the hardware engineer of the next stage through methods such as email and chat tools. After receiving them, the engineer of the next stage imports them into another tool to continue the work.
[0084] For example, the implementation of the PCB operation interaction process based on a single-point EDA tool is as follows:
[0085] 1. Schematic design end:
[0086] a) The hardware engineer completes the schematic design in the schematic design tool;
[0087] b) Export the netlist file through the schematic design tool and transfer it to the client of the interconnection engineer via email, chat tools, etc.;
[0088] c) Export the netlist file through the schematic design tool and transfer it to the client of the circuit simulation engineer via email, chat tools, etc.;
[0089] d) Export the schematic engineering file through the schematic design tool and save the schematic engineering file on a public server such as a project or department, and / or save it on the local client.
[0090] 2. Structural design end:
[0091] a) The structural engineer completes the structural design in the structural design tool;
[0092] b) Export the structural element diagram file through the structural design tool and transfer it to the client of the interconnection engineer via email, chat tools, etc.
[0093] c) Export the structural engineering file through the structural design tool and save it on a public server such as a project or department, and / or save it on the local client.
[0094] 3. PCB design end:
[0095] a) The interconnection engineer imports the pre-operation results such as the netlist and structural element diagram received and saved by the client into the PCB design tool and completes the PCB design;
[0096] b) Export general engineering files of types such as ODB++ and Gerber through the PCB design tool and transfer them to the client of the simulation engineer via email, chat tools, etc.;
[0097] c) Export manufacturing-related files of types such as Gerber and IPC2581 through the PCB design tool and transfer them to the client of the CAM engineer via email, chat tools, etc.;
[0098] d) Export the PCB engineering file through the PCB design tool and save it on a public server such as a project or department, and / or save it on the local client.
[0099] 4. Simulation engineering end:
[0100] a) The simulation engineer imports the pre-operation results such as the netlist and general engineering files received by the client into the simulation tool and completes the simulation operation.
[0101] b) Export the simulation result file through the simulation tool and transfer it to the simulation expert via email, chat tool, etc. for result review and output of simulation conclusions.
[0102] c) Export the simulation result file through the simulation tool and transfer it to the hardware and interconnect engineers via email, chat tool, etc. for design correction and optimization.
[0103] 5. CAM Engineering Side:
[0104] a) The engineer imports the pre-operation results such as the simulation result file and general engineering file into the CAM-related tool and completes tasks such as defect inspection and design optimization.
[0105] b) Export the result file after inspection through the CAM-related tool and load it into the manufacturing-related software or equipment for PCB manufacturing or PCB assembly.
[0106] In the above PCB operation process based on single-point EDA tools, there are several problems, which are reflected in:
[0107] Low efficiency in complex designs: Engineers need to refer to a large number of previous design inputs, search and locate back and forth, and synchronize operations, which greatly affects the delivery progress of design work.
[0108] Low efficiency in file transfer: Engineering files need to be distributed via email or instant messaging, and the security of permission control is relatively low, with poor confidentiality.
[0109] Poor engineering traceability: The files stored on the client or public server are generally generated after multiple rounds of archiving and transfer, and it is impossible to trace design defects and troubleshoot design problems in a timely manner.
[0110] The embodiment of the present application provides a communication method for EDA tools, which can realize the sharing of operation information and data information between different EDA tools and effectively improve the operation completion efficiency.
[0111] Figure 2 For the schematic diagram of the communication method process of the EDA tool shown exemplarily, please refer to Figure 2 , which specifically includes but is not limited to the following steps:
[0112] S201, The first EDA tool sends a communication request message to the EDA tool communication platform.
[0113] In the embodiments of the present application, the EDA tool communication platform is deployed on the cloud management platform, that is, on the server side. The EDA tool communication platform is connected to the first EDA tool and the second EDA tool, that is, communication can be carried out between the EDA tool communication platform and the first EDA tool and the second EDA tool through the connection. The first EDA tool and the second EDA tool can be deployed in the same computing instance or in different computing instances. For example, the first EDA tool is deployed in the first computing instance and the second EDA tool is deployed in the second computing instance. Optionally, the computing instance can be a software resource such as a virtual machine or a hardware resource such as a terminal, which is not limited in the present application.
[0114] In the embodiments of the present application, the first EDA tool provides a user interface, and the user (i.e., the tenant, which will not be repeated hereinafter) triggers the interconnection process through the user interface. In response to the received user operation, the first EDA tool determines itself as the initiating end (which can also be called the interconnection initiating end) to initiate interconnection between tools to other EDA tools. The first EDA tool sends communication request information to the EDA tool communication platform, and the communication request information is used to indicate interconnection with the second EDA tool.
[0115] Exemplarily, the communication request information includes but is not limited to at least one of the following: connection type information, tool information of the first EDA tool, user information, job information, etc.
[0116] The connection type information is used to indicate the interconnection type requested by the first EDA tool.
[0117] The tool information of the first EDA tool includes but is not limited to at least one of the following: the type of the first EDA tool, etc., for example, a schematic design tool.
[0118] The user information includes but is not limited to: user name, user ID, user role (for example, a schematic design engineer), user's affiliated department, user's affiliated project team, etc.
[0119] The job information is used to describe the job running in the first EDA tool, including but not limited to: job type (for example, a schematic design job), job progress, etc., which can be set according to actual needs and is not limited in the present application.
[0120] In the embodiments of the present application, the interconnection types between EDA tools include but are not limited to: operation interconnection type and data interconnection type. Among them, the operation interconnection type, which can also be called the real-time communication type, is used to indicate operation interconnection between EDA tools to interact operation information or operation data. The data interconnection type, which can also be called the asynchronous communication type, is used to indicate data interconnection between EDA tools to interact data information or job data.
[0121] In one example, the operation interconnection type supports real-time end-to-end communication between two or more different types of EDA tools running on the same client (or electronic device). Application scenarios include, but are not limited to: between browser tabs (in the same browser), between browser tabs (in different browsers), between a browser tab and a client tool, between client tools, and other interaction scenarios.
[0122] In another example, the operation interconnection type supports real-time end-to-end communication between EDA tools running on different clients (or electronic devices). Application scenarios include, but are not limited to: within the same local area network segment, across local area network segments, public network, and other scenarios.
[0123] In yet another example, the operation interconnection type also supports network communication between two or more EDA tools. Application scenarios include, but are not limited to: star network formation, mesh network formation, and other network formation scenarios.
[0124] Exemplarily, the data interconnection type supports non-real-time sharing of data information such as work messages, documents, files, etc. between different EDA tools, including but not limited to: end-to-end, or one-to-many, and other sharing scenarios. Among them, end-to-end is optionally data interconnection between a first EDA tool and a second EDA tool to share data. The one-to-many scenario is optionally data interconnection between a first EDA tool and multiple second EDA tools to share data.
[0125] In the embodiments of the present application, the user can indicate the corresponding interconnection type on the user interface to indicate that the first EDA tool and the second EDA tool are interconnected in the interconnection type specified by the user. Correspondingly, the communication request information sent by the first EDA tool to the EDA tool communication platform includes connection type information, and the connection type information is used to indicate the interconnection type between the first EDA and the second EDA.
[0126] In one example, if the user indicates that the interconnection type is the operation interconnection type, in this example, the first EDA tool determines to be operationally interconnected with the second EDA tool in response to the received user operation. The first EDA tool sends communication request information to the EDA tool communication platform, and the communication request information includes, but is not limited to, connection type information, and the connection type information is used to indicate operational interconnection with the second EDA.
[0127] In another example, if the user indicates that the interconnection type is a data interconnection type, in this example, the first EDA tool determines data interconnection with the second EDA tool in response to the received user operation. The first EDA tool outputs the currently drawn EDA job as an EDA job with a target job type, where the target job type conforms to the second EDA tool. The first EDA tool sends communication request information to the EDA tool communication platform. The communication request information includes connection type information and the EDA job (which can also be referred to as EDA job data or EDA design data, etc., and this application does not make a limitation). The connection type information is used to indicate data interconnection with the second EDA. In this way, in the data interconnection scenario of this application embodiment, as the initiating end, the first EDA tool can automatically output data to the EDA tool communication platform in response to the user's indication to achieve data interconnection with other EDA tools. Moreover, the EDA job output by the first EDA tool is of a target type, that is, a type of job that meets the requirements of the second EDA, thereby achieving version compatibility for data interconnection between tools. After the first EDA tool transmits the data to the EDA tool communication platform, all EDA tools that need to perform data interconnection with it can automatically obtain the EDA job of the first EDA tool from the EDA tool communication platform, which can ensure the version consistency of data transmission between different EDA tools.
[0128] Optionally, in response to the received user operation, the first EDA tool can output all the currently drawn completed jobs to the EDA tool communication platform, or can output some of the drawn jobs to the EDA tool communication platform. It should be noted that the "all jobs" mentioned above refers to the part currently drawn by the user, rather than the complete job. For example, if the user has currently completed 80% of the principle design drawing, the first EDA tool outputs all the currently drawn completed jobs (that is, the 80% jobs currently drawn) to the EDA tool communication platform in response to the received user operation.
[0129] In the embodiments of this application, the data transmission between the EDA tool and the EDA tool communication platform (including operation information and / or job data, etc.) can be encrypted for transmission, thereby ensuring the security and confidentiality of the data. In addition, when the EDA tool and the EDA tool communication platform interact with data, data distortion can be avoided, and the data transmission quality can be improved.
[0130] In the embodiments of the present application, the first EDA can be any EDA tool. For example, it can be a schematic design tool, and the present application does not make any limitations. As the interconnection initiator, the first EDA can provide options for the user to start or stop the interconnection, so that the user can indicate to start or stop the interconnection on the user interface. The options can be in the form of buttons or dropdown boxes, etc., which can be set according to actual needs, and the present application does not make any limitations. The first EDA can start or stop the interconnection in response to the received user operation.
[0131] In the embodiments of the present application, the second EDA tool can be any EDA tool in the system. Optionally, multiple interconnected EDA tools (such as the first EDA tool and the second EDA tool in the present application) are in the same department or project team to cooperate in completing EDA operations.
[0132] In a possible implementation manner, the first EDA tool can determine the second EDA tool interconnected with it in response to the received user operation. That is to say, the second EDA tool can be specified by the user. For example, the user can specify another EDA (i.e., the second EDA) for interconnection with the first EDA on the user operation interface. Correspondingly, the communication request sent by the first EDA tool also includes, but is not limited to, the tool information of the second EDA tool, which is used to indicate the interconnection with the specified EDA tool. That is to say, in this example, only the EDA tool specified by the first EDA tool can be interconnected with it.
[0133] In another possible implementation manner, the first EDA tool may not specify the EDA tool interconnected with it. That is to say, as the interconnection initiator, the first EDA can wait for the response of the second EDA tool that needs to be interconnected with it, and then interconnect with it.
[0134] S202. The EDA tool communication platform sends connection request information to the second EDA tool in response to the communication request.
[0135] Exemplarily, the EDA tool communication platform receives the communication request sent by the first EDA tool. The EDA tool communication platform determines that the first EDA tool requests to initiate an interconnection in response to the communication request, and the EDA tool communication platform sends connection request information to the second EDA tool.
[0136] Specifically, the EDA tool communication platform establishes an interconnection event of a corresponding type based on a communication request, which can also be referred to as a collaboration event, and this application does not make a limitation. Exemplarily, the EDA tool communication platform obtains connection type information, tool information of the first EDA tool, user information, job information, etc. based on the communication request. The EDA tool communication platform establishes an interconnection event corresponding to the interconnection type indicated by the connection type information based on the connection type information. The interconnection event also includes, but is not limited to, tool information of the first EDA tool, user information, job information, etc.
[0137] In a possible implementation manner, after the EDA tool communication platform establishes the interconnection event, the EDA tool communication platform may send connection request information to the EDA tools running on the clients of all users within the project team (or department) to which the user belongs based on the user information of the first EDA tool, so as to instruct the first EDA tool to initiate an interconnection.
[0138] In another possible implementation manner, after the EDA tool communication platform establishes the interconnection event, as described above, the first EDA tool may specify the EDA tool to be interconnected with it, that is, the tool information of the second EDA tool is also included in the communication request information. Correspondingly, the EDA tool communication platform may send connection request information to the specified second EDA tool based on the tool information of the second EDA tool, so as to instruct the second EDA tool to be interconnected with the first EDA tool.
[0139] Optionally, in the above two connection methods, the second EDA tool can automatically respond to the connection request information of the EDA tool communication platform and be interconnected with the first EDA tool, that is, execute S203. Optionally, the second EDA tool can also be interconnected with the first EDA tool after receiving the user confirmation operation, that is, execute S203, and this application does not make a limitation. For example, after the second EDA tool receives the connection request information, it can prompt that there is a current interconnection request on the user interface, and the user can click on the interconnection interface to view the corresponding connection request information. After the second EDA tool receives the user's click on "Accept" (or other operations), it is then interconnected with the first EDA tool.
[0140] In yet another possible implementation, after the EDA tool communication platform establishes an interconnection event, other clients in the same project team or department as the client to which the first EDA tool belongs, or the second EDA tool running on the client, can view one or more established interconnection events on the EDA tool communication platform by accessing the EDA tool communication platform. Specifically, taking the second EDA tool as an example to view the interconnection event, in response to the received user operation (indicating to view the interconnection event), the second EDA tool sends a query request to the EDA tool communication platform, which is used to indicate to query the interconnection events established on the cloud management platform. Optionally, the query request includes, but is not limited to, the tool information and user information of the second EDA tool, etc. In response to the query request, the EDA tool communication platform queries the interconnection events corresponding to the project team or department to which the second EDA tool belongs based on the tool information and user information of the second EDA tool, etc. For example, the EDA tool communication platform can traverse the project information in each interconnection event based on the project team information to query at least one interconnection event corresponding to the project team. And the EDA tool communication platform can further query the interconnection event with the second EDA tool as the interconnection object. The EDA tool communication platform sends query response information to the second EDA tool, and the query response information includes, but is not limited to, the relevant information of the interconnection event. For example: the creation event of the interconnection event, the interconnection type, the tool information of the initiating end (i.e., the first EDA tool), etc. Optionally, as described above, if the EDA tool communication platform queries the interconnection event with the second EDA tool as the interconnection object, the query response information fed back by the EDA tool communication platform may further include connection request information.
[0141] After receiving the query response information, the second EDA tool can display the relevant information of the interconnection event on the user interface. Exemplarily, for the interconnection event with the second EDA tool as the interconnection object, in response to the connection request information in the query response information, the second EDA tool may include "Accept" or "Interconnect" options in its corresponding interconnection event in the user interface. If the current user expects to use the second EDA tool to interconnect with the first EDA tool, the user can click the "Accept" option or other means to indicate that the second EDA tool (i.e., the second EDA tool) responds to the interconnection event of the first EDA tool. In response to the received user operation, the second EDA tool interconnects with the first EDA tool, that is, executes S203.
[0142] S203, the second EDA tool interconnects with the first EDA tool in response to the connection request information.
[0143] In the embodiments of the present application, the interconnection between the second EDA tool and the first EDA tool may include real-time interconnection and / or non-real-time interconnection.
[0144] In one example, real-time interconnection, which can also be referred to as end-to-end interconnection, is the type of operation interconnection described in the above embodiments. When the interconnection type between the first EDA tool and the second EDA tool is the operation interconnection type, the first EDA tool and the second EDA tool establish an end-to-end communication connection (which can also be referred to as an operation interconnection channel, not limited in this application) through the EDA tool communication platform. It can also be understood that the client of the first EDA tool and the client of the second EDA tool establish an end-to-end communication connection. The first EDA tool and the second EDA tool can interact operation information (or can be referred to as operation data, not limited in this application) through the operation interconnection channel.
[0145] Specifically, the EDA tool communication platform can obtain the communication information of the first EDA tool. The communication information is used to indicate the information required for communicating with the first EDA tool (or can be understood as establishing end-to-end communication). For example, it includes but is not limited to: the address information of the client (such as IP address information, port number, etc.), the characteristic information of the first EDA tool (such as characteristic code, process number, etc.), the key information (such as public key), etc., not limited in this application.
[0146] In the embodiments of this application, the communication information of the first EDA tool can be carried in the communication request information sent by the first EDA tool, or can be obtained from the first EDA tool at any time after the EDA tool communication platform receives the communication request information, not limited in this application. For example, after the EDA tool communication platform receives the communication request information of the first EDA tool and determines that the interconnection type initiated by the first EDA tool is the operation interconnection type, the EDA tool communication platform can request the communication information of the first EDA tool from the first EDA tool. Optionally, the communication information of the tool can be considered as one type of information in the tool information, not limited in this application.
[0147] The EDA tool communication platform obtains the communication information of the second EDA tool. Exemplarily, the communication information of the second EDA tool can be carried in the connection response information. Optionally, it can also be requested by the EDA tool communication platform from the second EDA tool after the EDA tool communication platform receives the connection response information of the second EDA tool, not limited in this application.
[0148] The EDA tool communication platform sends the communication information of the first EDA tool to the second EDA tool, and sends the communication information of the second EDA tool to the first EDA tool. In one example, the connection request information sent by the EDA tool communication platform to the second EDA tool may include the communication information of the first EDA tool. After the EDA tool communication platform obtains the communication information of the second EDA tool, it may send a communication response information to the first EDA tool, and the communication response information is used to indicate that the second EDA tool agrees to initiate an interconnection with the first EDA tool. Optionally, the communication response information may include the communication information of the first EDA tool. In another example, the EDA tool communication platform may also send the communication information of the peer tool to the first EDA tool and the second EDA tool respectively through separate messages, which is not limited in this application.
[0149] The first EDA tool is interconnected with the second EDA tool. Specifically, based on the communication information of the second EDA tool, and the second EDA is based on the communication information of the first EDA tool, an operation interconnection channel is established. The operation interconnection channel between the first EDA tool and the second EDA tool may follow any feasible communication protocol, which is not limited in this application. For example, the operation interconnection channel may be a Wi-Fi path, which is not limited in this application. Correspondingly, based on different communication protocols, the information included in the communication information of the tool may be the same or different, which can be set according to actual needs, and is not limited in this application. Optionally, in the embodiment of this application, starting from the first EDA tool sending a communication request, it can be considered that the first EDA tool is interconnected with the second EDA tool. That is, through the communication method provided by this application, the first EDA tool and the second EDA tool can communicate with each other through the EDA tool communication platform.
[0150] Exemplarily, the first EDA tool and the second EDA tool can interact operation information through an operation interconnection channel. Among them, the operation information is associated with the target operation performed by the first EDA tool on the first file (i.e., the EDA file running in the first EDA tool), and can also be understood as being used to describe the target operation performed by the first EDA tool on the first file. For example, the first EDA tool generates operation information in response to the received user's target operation on the EDA file. For example, the target operation is an operation of clicking on device A. The operation information includes, but is not limited to: the operation type (i.e., the click operation) and the operation object (i.e., the identification information of device A). The first EDA tool sends the operation information to the second EDA tool through the operation interconnection channel. The second EDA tool receives the operation information and performs the corresponding operation in the job displayed by the second EDA tool based on the operation information. The second EDA tool can search for the image or information of the corresponding device in the current job based on the operation object (i.e., the identification information of device A) and perform a click operation on the device. That is to say, when the user clicks on device A in the first EDA tool, the second EDA tool also performs a click operation on device A in the job. Correspondingly, the clicked device A can be highlighted in the job displayed by the second EDA tool. Again, for example, the target operation is an operation of modifying device B, and operation information is generated. Among them, the modification operation can include, but is not limited to: adding, deleting, updating, etc., which can be set according to actual needs and are not limited in this application. In this example, the modification operation is taken as the deletion operation, that is, the user deletes device B in the EDA file of the first EDA tool. Correspondingly, the operation information includes, but is not limited to: the operation type (i.e., the modification operation, specifically the deletion operation) and the operation object (i.e., the identification information of device B). The first EDA tool sends the operation information to the second EDA tool through the operation interconnection channel. The second EDA tool receives the operation information and performs the corresponding operation in the job displayed by the second EDA tool based on the operation information. Specifically, the second EDA tool can search for the image or information of the corresponding device in the current job based on the operation object (i.e., the identification information of device B) and perform a modification operation on device B (which is the deletion operation in this example). That is to say, when the user deletes device B in the first EDA tool, the second EDA tool also performs a deletion operation on device B in the job.
[0151] Exemplarily, in an operating interconnected scenario, a first file in a first EDA tool is associated with a second file in a second EDA tool. That is to say, the second file in the second EDA tool is generated (or drawn) based on the first file. It can also be understood that the devices in the second file correspond to the devices in the first file. Optionally, the first EDA tool can transmit the data information corresponding to the first file to the second EDA through data interconnection. In this way, the second file and the first file have the same operation object, and the second EDA tool can synchronously execute the target operation performed on the target object in the first file by the first EDA tool.
[0152] In another example, non-real-time interconnection is the type of data interconnection described in the above embodiments. When the interconnection type between the first EDA tool and the second EDA tool is the data interconnection type, the first EDA tool and the second EDA tool interact with job data or data information through the EDA tool communication platform.
[0153] In this example, the EDA tool communication platform obtains the job data of the first EDA tool. Optionally, the communication request information sent by the first EDA tool may include all or part of the job data that the first EDA tool has currently completed. Optionally, the EDA tool communication platform may also request job data from the first EDA tool through a separate message after receiving the communication request information of the first EDA tool, which is not limited in this application.
[0154] Exemplarily, after the EDA tool communication platform obtains the job data of the first EDA tool, the EDA tool communication platform establishes a data interconnection event. The data interconnection event includes, but is not limited to: the tool information and job information of the first EDA tool. And the data interconnection event is stored corresponding to the job data of the first EDA tool.
[0155] After the second EDA tool determines that the first EDA initiates data interconnection by actively querying or after the EDA tool communication platform actively sends a connection request message, the user interface of the second EDA tool displays relevant information about the data interconnection event and an "Accept" option. In response to the received operation of the user clicking the "Accept" option, the second EDA tool determines to interconnect with the first EDA tool. The second EDA tool sends a connection response message to the EDA tool communication platform. The connection response message includes, but is not limited to, the tool information, user information, and identification information of the interconnection event of the second EDA tool, etc. Among them, the identification information of the interconnection event is used to indicate that the object to be interconnected by the second EDA tool is the initiator of the interconnection event, and can also be understood as the job data corresponding to the interconnection event identified by the identification information of the interconnection event requested by the second EDA tool. In response to the received connection response message, the EDA tool communication platform searches for the corresponding interconnection event based on the tool information, user information, and identification information of the second EDA tool, and sends the job data corresponding to the interconnection event to the second EDA.
[0156] It should be noted that in the embodiments of this application, only the second EDA tool is taken as an example for illustration. In actual applications, the second EDA tool may include multiple EDA tools. That is, the first EDA tool can be interconnected with multiple EDA tools, and the implementation method is the same as above, and this application will not repeat the description.
[0157] The following uses specific embodiments to Figure 2 describe the method in detail. It should be noted that in the scenarios of the following embodiments, the schematic design tool is taken as the first EDA tool and the layout design tool is taken as the second EDA tool for illustration. In other embodiments, the first EDA tool and the second EDA tool can be any tool in the EDA tool chain, and this application does not make any limitations.
[0158] Scenario 1:
[0159] In this scenario, an example is given of a scenario where a single user (such as an interconnection engineer) operates and interconnects using a schematic design tool (i.e., the first EDA tool) and a layout design tool (i.e., the second EDA tool). Among them, a single user means that a user runs the schematic design tool and the layout design tool on the client. Of course, it can also be that a user runs the schematic design tool and the layout design tool on two clients respectively, and this application does not make any limitations.
[0160] Exemplarily, before starting to draw a PCB job, an interconnection engineer will first obtain the design requirements and pre-design inputs (such as schematic netlists, structure element diagrams, etc.). Then, referring to the structure element diagram, the interconnection engineer initializes structure-related elements such as the PCB board frame, structure devices, and mechanical holes in the layout design tool. Next, referring to the schematic netlist, the interconnection engineer initializes elements such as devices, packages, and networks in the layout design tool. Subsequently, referring to the module division of the schematic diagram page, the interconnection engineer performs detailed PCB layout and wiring operations in the layout design tool. In this scenario, when the interconnection engineer uses the layout design tool for design (i.e., drawing the job), they need to refer to the previous job, that is, the job drawn by the schematic design tool. During the reference process, the interconnection engineer usually needs to search for the corresponding device in the schematic design tool, and then refer to parameters such as the connections of the device in the schematic diagram to complete the design in the layout design tool.
[0161] The tool interconnection solution provided by the embodiments of the present application can achieve operation interconnection between different tools, that is, real-time interaction (or real-time transmission) of operation data, effectively reducing the user's usage difficulty and complexity, making the reference between different tools more simple and fast, and improving the usage efficiency of EDA tools and the job completion efficiency.
[0162] Figure 3 For the schematic diagram showing the process of communication between tools shown exemplarily, please refer to Figure 3 , which specifically includes but is not limited to the following steps:
[0163] S301, the first EDA tool (i.e., the schematic design tool) sends a communication request message to the EDA tool communication platform.
[0164] Exemplarily, the schematic design tool (i.e., the first EDA tool described in the embodiments of the present application) initiates operation interconnection in response to the received user operation.
[0165] Specifically, Figure 4 For the schematic diagram showing the user interface shown exemplarily, please refer to Figure 4 , the user interface 400 includes but is not limited to: an option box 401 and a job display interface 402 (which can also be called a design display interface, not limited in the present application). Among them, the option box 401 includes multiple options (or controls), including but not limited to editing options, interconnection options, setting options, etc. The job display interface 402 is used to display the schematic job designed by the user. The job content is only for illustrative purposes and is not limited in the present application.
[0166] Exemplarily, the user clicks on the interconnection option, and the schematic design tool displays an interconnection option box in response to the received user operation. The interconnection option box (which can also be referred to as a first-level option box) includes, but is not limited to, interoperability interconnection options, data interconnection options, etc. The user can select the corresponding interconnection type. In this example, the case where the user selects the operation interconnection type is taken as an example for illustration. The original schematic design tool displays an operation interconnection option box (which can also be referred to as a second-level option box) in response to the received user operation of clicking on the operation interconnection option. The operation interconnection option box includes, but is not limited to, a start option and a disconnection option. If the user clicks on the start option, the schematic design tool starts the operation interconnection process. If the user clicks on the disconnection option, the schematic design tool disconnects the currently started operation interconnection process.
[0167] Exemplarily, the user clicks on the start option, which is used to indicate starting the operation interconnection process. The schematic design tool determines to start the operation interconnection process in response to the received user operation of clicking on the start option. Figures 5a - 5d For the user interface schematic diagram, please refer to Figure 5a , the schematic design tool displays an operation interconnection interface 403. The operation interconnection interface 403 includes, but is not limited to, a connection option 4031. Please refer to Figure 5b , the schematic design tool displays a connection option box in response to the received user operation of clicking on the link option 4031. The option box includes, but is not limited to: the operation interconnections that the schematic design tool can connect to, and, a new option, etc. Among them, the operation interconnections that the schematic design drawing tool can connect to refer to the operation interconnections initiated by other tools, for example, it can be the operation interconnections initiated by other users within the project team corresponding to the user of the schematic design drawing tool.
[0168] In this example, the case where the user clicks on the new connection, that is, the schematic design tool is used as the operation interconnection initiator, is taken as an example for illustration. Please refer to Figure 5c , the user clicks on the new connection, and the schematic design tool displays the relevant information of the new connection in response to the received user operation, including, but not limited to: the connection name of the operation interconnection (for example, it is connection 2), etc. Among them, the connection name is automatically generated by the EDA tool communication platform. Optionally, in other embodiments, information such as the connection name of the operation interconnection can also be set by the user, and this application does not make any limitations.
[0169] In a possible implementation manner, after the user clicks on the new connection, the schematic design tool can send a new connection request to the EDA tool communication platform. The EDA tool communication platform generates information such as a connection name in response to the received new connection request, and sends a new connection response message to the schematic design tool. The response message includes, but is not limited to, information such as the connection name.
[0170] Still referring to Figure 5c, Exemplarily, the user can click to initiate a connection option. In response to the received operation of clicking to initiate the connection option, the schematic design tool sends communication request information (which can also be referred to as connection request information) to the EDA tool communication platform. The communication request information includes, but is not limited to: tool information of the schematic design tool, communication information, user information, job description information, connection information, etc.
[0171] Among them, the connection information includes, but is not limited to: connection name and connection type information. The connection type information is used to indicate that the initiated interconnection type is the operation interconnection type.
[0172] The communication information includes, but is not limited to: address information of the client (such as IP address, etc.), feature information of the first EDA tool (such as process number, feature code, etc.), key information (such as public key), etc., which are not limited in this application.
[0173] The tool information of the schematic design tool includes, but is not limited to, tool type information, etc. The tool type information is used to indicate that the initiating end of the operation interconnection is the schematic design tool.
[0174] The user information includes, but is not limited to: user name, user ID, user role (such as a schematic design engineer), user's affiliated department, user's affiliated project team, etc.
[0175] The job information, which is used to describe the job running in the schematic design tool, includes, but is not limited to: job type (such as a schematic design job), job progress, etc., and can be set according to actual needs, which are not limited in this application.
[0176] In a possible implementation manner, the communication request information may further include the identification information of the second EDA tool, which is used to indicate the connection between the first EDA tool and the second EDA tool. That is to say, in this example, the first EDA tool can also specify at least one second EDA tool for operation interconnection with it. Correspondingly, the EDA tool communication platform can establish a communication connection between the first EDA tool and the second EDA tool based on the identification information.
[0177] As Figure 3 shown, in the embodiment of this application, in response to the communication request information (which can also be referred to as a connection request) of the first EDA tool, a connection between the first EDA tool and the second EDA tool is established. The first EDA tool can communicate with the second EDA tool through the connection. The connection establishment process includes, but is not limited to, the following steps:
[0178] S302, The EDA tool communication platform establishes an operation interconnection event.
[0179] Exemplarily, the EDA tool communication platform receives communication request information. Based on the communication information, user information, job information, connection type information, tool information, etc. in the communication request information, the EDA tool communication platform establishes an operation interconnection event. The operation interconnection event includes, but is not limited to, the above information, and is used to indicate that an operation interconnection event associated with the above information has been established currently.
[0180] In a possible implementation manner, the EDA tool communication platform can set the validity period of the operation interconnection event, for example, 1 minute. The specific duration can be set according to actual requirements, and this application does not make a limitation. Exemplarily, within this validity period, the operation interconnection event takes effect, that is, other EDA tools can establish an operation interconnection with the schematic design tool. After exceeding this duration and without other EDA tools responding to this operation interconnection event, the EDA tool communication platform deletes this operation interconnection event. Optionally, as Figure 5d shown, after the schematic design tool sends the communication request information, a prompt message can be displayed on the user interface to prompt that it is waiting for a connection, and the waiting duration is 1 minute. Correspondingly, in this example, the user needs to use the layout design tool to respond to this interconnection event within 1 minute.
[0181] S303a, the EDA tool communication platform sends connection request information to the second EDA tool (i.e., the layout design tool).
[0182] Exemplarily, after the EDA tool communication platform establishes an operation interconnection event, based on the user information corresponding to the operation interconnection event, it sends connection request information to the EDA tools corresponding to all users within the project group to which the user belongs. In this embodiment, only an example is given that the EDA tool communication platform responds to the communication request information and actively sends connection request information to the tools that can perform operation interconnection with the first EDA tool (i.e., the schematic design tool) (for example, the tools corresponding to the users in the same project group as the users of the schematic design tool).
[0183] Exemplarily, the connection request information includes, but is not limited to: the connection information for operation interconnection and the communication information of the schematic design tool. Optionally, the connection request information can also include other information of the operation interconnection event, such as user information, job information, etc. This application does not make a limitation, so that the layout design engineer can query the relevant information corresponding to the operation interconnection event through the layout design tool to select the corresponding connection.
[0184] S303b, the second EDA tool sends connection response information to the EDA tool communication platform.
[0185] Figure 6a and Figure 6b For the schematic diagram of the user interface on the side of the layout design tool shown exemplarily, please refer to Figure 6a, the layout design engineer performs Figure 4 and Figure 5a processes. The layout design tool displays a connection option box 4031 in response to the received user operation. The connection option box 4031 includes connection 2. That is, the layout design tool saves the connection information and communication information in the connection request information in response to the received connection request information. After receiving the operation of the user clicking the connection option, based on the connection information, the corresponding connection information is displayed in the connection option box, such as the connection name of the operation interconnection, that is, connection 2.
[0186] Please refer to Figure 6b . Exemplarily, the user clicks on connection 2 and clicks the start option. The layout design tool determines to establish an operation interconnection with the initiating end corresponding to connection 2 in response to the received user operation. The layout design tool sends connection response information to the EDA tool communication platform. The connection response information includes, but is not limited to: the tool information, communication information, user information, connection information, etc. of the layout design tool. Among them, the connection information is the connection name, which is used to indicate that the layout design tool responds to the operation interconnection event corresponding to this connection information, and can also be understood as responding to the initiating end corresponding to this connection.
[0187] Exemplarily, the EDA tool communication platform receives the connection response information and determines that the layout design tool responds to this operation interconnection event based on the connection information. The EDA tool communication platform can save the tool information, user information, communication information, etc. of the layout design tool corresponding to this operation interconnection event to indicate that it currently responds to this interconnection event, and can also be understood as that the layout design tool is interconnected with the initiating end of this interconnection event.
[0188] In a possible implementation manner, the EDA tool communication platform can also send the communication information of the schematic design tool to the layout design tool after receiving the connection response information, which is not limited in this application.
[0189] Exemplarily, as Figure 3 shown, the embodiment of the present application also provides another interaction method between the second EDA tool and the EDA tool communication platform, that is, Figure 3 the interaction method 2 in
[0190] S303c, the second EDA tool sends a query request information to the EDA tool communication platform.
[0191] Exemplarily, the layout design tool can also receive the user clicking the connection option (refer to Figure 5bAfter the description), a connection option query request is sent to the EDA tool communication platform. The query request includes, but is not limited to, tool information of the layout design tool, user information, operation interconnection query information, etc. The query request is used to query the operation interconnections that the layout design tool can connect to.
[0192] S303d, the EDA tool communication platform sends connection request information to the second EDA.
[0193] Exemplarily, in response to the received query request, the cloud management queries the operation interconnections that the layout design tool can connect to based on the tool information, user information, and operation interconnection query information of the layout design tool. The EDA tool communication platform sends connection request information to the layout design tool. For related descriptions, reference can be made to the above, and details will not be elaborated here.
[0194] S303e, the second EDA tool sends connection response information to the EDA tool communication platform.
[0195] Exemplarily, based on the connection request information, the second EDA tool displays at least one operation interconnection that can be connected on the user interface, and the user can click to connect to the specified operation interconnection. In response to the received user operation, the layout design tool sends connection response information to the EDA tool communication platform, which is used to indicate the operation interconnection to be connected, and can also be understood as being used to indicate the operation interconnection event to which it responds.
[0196] Optionally, the connection response information may include the communication information of the layout design tool. In another example, the communication information of the layout design tool may also be included in the query request information, which is not limited in this application.
[0197] The EDA tool communication platform can determine the operation interconnection event to which the layout design tool responds based on the connection response information.
[0198] S304, the EDA tool communication platform sends communication response information to the first EDA tool.
[0199] Exemplarily, the EDA tool communication platform sends communication response information to the schematic design tool. The communication response information includes, but is not limited to, tool information, communication information, etc. of the layout design tool.
[0200] The schematic design tool receives the communication response information, determines to establish an operation interconnection with the layout design tool, and saves the tool information, communication information, etc. of the layout design tool.
[0201] S305, the first EDA tool and the second EDA tool establish an operation interconnection channel.
[0202] Exemplarily, as described above, the schematic design tool has obtained the communication information of the layout design tool, and the layout design tool has obtained the communication information of the schematic design tool. The schematic design tool can establish an operation interconnection channel based on the communication information of the layout design tool, and the layout design tool can establish an operation interconnection channel based on the communication information of the schematic design tool. The establishment process of the operation interconnection channel may include multiple handshake processes, and the specific interaction can refer to the existing communication protocol, which is not limited in this application.
[0203] Exemplarily, after the operation interconnection channel is established, a connection success prompt can be displayed on the user interfaces of the schematic design tool and the layout design tool, such as Figure 7 shown.
[0204] S306a, the first EDA tool sends operation information to the second EDA tool.
[0205] Exemplarily, after the schematic design tool and the layout design tool establish an operation interconnection channel, they can start to perform operation interconnection, that is, interact with operation information. Taking the high - light synchronization operation from schematic design to layout design as an example, the operations in the schematic design tool can be synchronized to other layout design tools in real - time.
[0206] Specifically, Figure 8 For the schematic user interface diagram shown exemplarily, please refer to Figure 8 , the schematic design tool receives the operation of the user clicking on the R1 device in the schematic file (i.e., the first file in the embodiments of this application) (i.e., the target operation of the user on the first file described in the embodiments of this application). The schematic design tool executes corresponding operations based on the received user operation, such as highlighting the R1 device on the interface. The schematic design tool generates an operation event based on the user operation. The operation event includes but is not limited to the operation type and the operation object, etc. In the embodiments of this application, the operation type may include but is not limited to: click, drag, double - click, etc. The operation object includes but is not limited to any object in the job such as a device, a network, a pin, etc. For example, in the Figure 8 scene shown, the operation information includes but is not limited to: click operation (i.e., the operation type), the identification information of the R1 device (i.e., the operation object, for example, the reference designator of the R1 device is the identification information).
[0207] The schematic design tool sends the operation information to the layout design tool through the operation interconnection channel. The encapsulation format of the operation information conforms to the protocol regulations of the operation interconnection channel.
[0208] S306b, the second EDA tool executes corresponding operations based on the operation information.
[0209] Exemplarily, the layout design tool receives operation information and performs corresponding operations in the layout design tool based on the operation information. It can also be understood as performing target operations (or operations associated with the target operation) in the second file (i.e., the layout file) in the layout design tool. Still referring to Figure 8 , the layout design tool receives operation information and performs a click operation (i.e., the operation type) on the R1 device (i.e., the operation object) based on the operation type and the operation object. Correspondingly, the layout design tool highlights the R1 device. It can be understood that the layout design tool performs the same operations on the layout file (i.e., the second file) as the schematic design tool performs on the schematic file (i.e., the first file).
[0210] In a possible implementation, an engineer can select to disconnect the current operation interconnection in the schematic design tool or the layout design tool. For example, the user can click the disconnect option (which can be referred to the description in Figure 4 ). The schematic design tool, in response to the received user operation, sends a disconnect indication to the EDA tool communication platform and the layout design tool. The disconnect indication includes, but is not limited to, connection information, such as the connection name, etc.
[0211] The EDA tool communication platform, in response to the disconnect indication, determines that the schematic design tool disconnects the current operation interconnection, and the EDA tool communication platform can delete the corresponding operation interconnection event. The layout design tool, in response to the disconnect indication, disconnects the operation interconnection channel with the schematic design tool.
[0212] In another possible implementation, if the schematic design tool and the layout design tool do not exchange operation data within a certain period of time (which can be set according to actual needs and is not limited in this application), that is, the user does not perform any operations on the schematic design tool and / or the layout design tool within a certain period of time, the schematic design tool and the layout design tool can automatically disconnect the operation interconnection channel to reduce network and device loads.
[0213] Exemplarily, after the schematic design tool and the layout design tool are disconnected, the user interfaces of the schematic design tool and / or the layout design tool display a disconnection prompt message, as shown in Figure 9 .
[0214] It should be noted that in this example, only the case where the schematic design tool transmits operation information to the layout design tool is used for illustration. In other embodiments, the layout design tool can also transmit operation information to the schematic design tool, which is not limited in this application.
[0215] In this example, the EDA tools interact with each other through the EDA tool communication platform for control information (such as communication request information, connection request information, response information, etc.), so as to establish an operation interconnection channel for the user to transmit operation information between the EDA tools. The EDA tools can interact with each other through the operation interconnection channel, and the operation information does not need to be forwarded by the cloud server, which can reduce the network transmission pressure on the server side and reduce the transmission delay of the operation information, achieving the millisecond-level interaction effect of the operation information. Especially for relatively frequent operation scenarios, the operation data transmission efficiency can be further improved to enhance the overall job completion efficiency.
[0216] Scenario 2:
[0217] In this scenario, take the scenario where User 1 (such as a schematic engineer) uses a schematic design tool (i.e., the first EDA tool) to interconnect with the layout design tool (i.e., the second EDA tool) used by User 2 (such as a layout engineer) as an example for illustration.
[0218] For a PCB design team with a division of labor, after an engineer completes the work in the current stage, it is necessary to transfer the design results to the engineer in the next operation stage. Based on the data interconnection solution of this application, there is no need for the engineer to import and export back and forth and manually transfer the design files. The engineer only needs to trigger the data interconnection to reach the destination with one key, which greatly improves the transfer efficiency and reduces problems such as file loss and leakage.
[0219] Figure 10 For the schematic diagram of the communication process between the tools shown by way of example, please refer to Figure 10 , which specifically includes but is not limited to the following steps:
[0220] S1001, the first EDA tool (i.e., the schematic design tool) sends communication request information to the EDA tool communication platform.
[0221] Exemplarily, the schematic design tool (i.e., the first EDA tool described in the embodiment of this application) initiates data interconnection in response to the received user operation.
[0222] Specifically, Figure 11a For the schematic diagram of the user interface shown by way of example, please refer to Figure 11a , the user interface 1100 includes but is not limited to: an option box 1101 and a job display interface 1102 (which can also be called a design display interface, not limited in this application). Among them, the option box 1101 includes multiple options (or controls), including but not limited to an edit option, an interconnection option, a setting option, etc. The job display interface 1102 is used to display the schematic job designed by the user. The job content is only for illustrative purposes and is not limited in this application.
[0223] Exemplarily, when the user clicks on the interconnection option, the schematic design tool displays an interconnection option box in response to the received user operation. The interconnection option box (which can also be referred to as a first-level option box) includes, but is not limited to, interoperability interconnection options, data interconnection options, etc. The user can select the corresponding interconnection type. In this example, the case where the user selects the data interconnection type is used for illustration. The original drawing design tool displays a several-open interconnection option box (which can also be referred to as a second-level option box) in response to the received user operation of clicking on the data interconnection option. The data interconnection option box includes, but is not limited to, the initiate interconnection option (which can also be referred to as the initiate data interconnection option, and this application does not make a limitation) and the query interconnection option.
[0224] In one example, if the user clicks on the initiate interconnection option, the schematic design tool starts the data interconnection process. In another example, if the user clicks on the query interconnection option, the schematic design tool queries the EDA tool communication platform for the data interconnections that the tool can currently perform.
[0225] Exemplarily, the user clicks on the initiate interconnection option to indicate starting the data interconnection process. The schematic design tool determines to start the data interconnection process in response to the received user operation of clicking on the initiate interconnection option. Figure 11b For the schematic user interface diagram shown exemplarily, please refer to Figure 11b , the schematic design tool displays a data interconnection parameter configuration interface, which includes, but is not limited to: project name configuration item, receiving domain configuration item, type configuration item, receiver configuration item, description configuration item, cancel option, confirmation option, etc.
[0226] Among them, the project name configuration item is the name corresponding to the project to which the user belongs, which can usually be filled in by default by the EDA tool communication platform or selected from a dropdown list, and this application does not make a limitation.
[0227] The receiving domain configuration item is used to indicate the receiving end of the data interconnection. For different receiving ends, the generated job types may be different. Optionally, the receiving end indicated in this configuration item is the designated second EDA described in the above embodiments. That is to say, only the second EDA indicated in the receiving domain configuration item can respond to the data interconnection initiated by the first EDA (such as the schematic design tool).
[0228] A type configuration item is used to indicate the type of the output job. For example, in this instance, the output is in the netlist type. The input job type meets the type requirements of the receiving end (i.e., the second EDA tool, such as a layout design tool). In this instance, the output job type being a netlist is used as an example for illustration. In other embodiments, the job types corresponding to different initiating ends and receiving ends are different. For example, as described above, the job type output from the structural design end to the PCB design end is a structural element diagram file, and the job type output from the PCT design end to the simulation engineering section is a general engineering file. The specific type can be set according to actual requirements, and this application does not make any limitations.
[0229] Exemplarily, according to different job types, some optional items can also be configured. For example Figure 11b options such as whether to retain the assigned reference designator values shown in can be set according to actual requirements, and this application does not make any limitations.
[0230] Exemplarily, after the user configures the parameters, the confirmation option is clicked. The schematic design tool, in response to the received user operation, obtains the corresponding configuration parameters. Based on the type configuration item, etc., the schematic design tool outputs the current schematic job as a netlist (i.e., the job data of the target type).
[0231] The schematic design tool sends a communication request message to the EDA tool communication platform. The communication request message includes, but is not limited to: the tool information of the schematic design tool, the netlist (i.e., the job data), the configuration parameters (including Figure 11b all the parameters set in ), the user information, the job description information, etc.
[0232] S1002, the EDA tool communication platform establishes a data interconnection event.
[0233] Exemplarily, the EDA tool communication platform receives the communication request message and establishes a data interconnection event. The data interconnection event includes, but is not limited to: the tool information of the schematic design tool, the netlist (i.e., the job data), the configuration parameters, the user information, the job description information, etc.
[0234] S1003a, the EDA tool communication platform sends a connection request message to the second EDA tool.
[0235] Exemplarily, the EDA tool communication platform can determine that the receiving end of the data interconnection is the layout design tool based on the received domain information. The EDA tool communication platform can send a connection request message to the layout design tool. The connection request message includes, but is not limited to: at least one of the tool information of the schematic design tool, the user information, and the job description information.
[0236] S1003b, the second EDA tool sends a connection response message to the EDA tool communication platform.
[0237] Exemplarily, the layout design tool receives connection request information and saves the corresponding information. When the user clicks to display the connection interface, the corresponding information is displayed. Figure 12 For a schematic diagram of the exemplary connection interface shown, please refer to Figure 12 , specifically, when the user clicks the data interconnection option, the layout design tool, in response to the received user operation, displays the "Received by Me" option and the "Sent by Me" option. In one example, if the user clicks the "Received by Me" option, the layout design tool displays the data interconnection with the layout design tool as the receiving end. In another example, if the user clicks the "Sent by Me" option, the layout design tool displays the data interconnection initiated by the layout design tool.
[0238] In this example, taking the user clicking the "Received by Me" option as an example, the data interconnection with the layout design tool as the receiving end is displayed, that is, the layout design tool obtains the relevant information of the saved data interconnection and displays it. Figure 12 The content in [[ ]] is only for illustrative purposes, and actually may include more relevant information on data interconnection. Correspondingly, all relevant information is obtained by the EDA tool communication platform from the initiating end (i.e., the schematic design tool) and sent to the layout design tool.
[0239] Exemplarily, when the user clicks the accept option, the layout design tool, in response to the received user operation, can pop up a prompt box to further determine whether to execute the accept operation. If the user clicks the confirm option, the layout design tool, in response to the received user operation, determines to perform data interconnection with the schematic design tool. That is, it accepts the job data output by the schematic design tool. The layout design tool sends a connection response information to the EDA tool communication platform. The connection response information includes, but is not limited to: the tool information of the layout design tool, etc., for indicating the reception of job data.
[0240] Exemplarily, similar to [[ ]] Figure 3 , another interaction method is also provided between the second EDA tool and the EDA tool communication platform, that is Figure 10 the interaction method 2 in [[ ]], which specifically includes the following steps:
[0241] S1003c, the second EDA tool sends a query request information to the EDA tool communication platform.
[0242] Exemplarily, after receiving the user's click on the "Received by Me" option, the layout design tool can send a query request to the cloud management platform to query the data interconnection with the layout design tool as the receiving end. The query request includes, but is not limited to: the tool information of the layout design tool, user information, data interconnection query information, etc.
[0243] S303d, the EDA tool communication platform sends a connection request message to the second EDA.
[0244] Exemplarily, in response to the received query request, the cloud management queries the data interconnection that the layout design tool can connect to based on the tool information, user information, and data interconnection query information of the layout design tool. The EDA tool communication platform sends a connection request message to the layout design tool. For related descriptions, refer to the above, and details are not repeated here.
[0245] S303e, the second EDA tool sends a connection response message to the EDA tool communication platform.
[0246] Exemplarily, based on the connection request message, the second EDA tool displays at least one data interconnection that can be connected on the user interface, and the user can click the "Receive" option to connect to the specified data interconnection. In response to the received user operation, the layout design tool sends a connection response message to the EDA tool communication platform, which is used to indicate the data interconnection to be connected, and can also be understood as indicating the data interconnection event corresponding to its response.
[0247] The EDA tool communication platform can determine the data interconnection event corresponding to the response of the layout design tool based on the connection response message.
[0248] S1004, the EDA tool communication platform sends job data to the layout design tool.
[0249] Exemplarily, in response to the received connection response message, the EDA tool communication platform sends the job data (i.e., netlist) of the saved schematic design tool to the layout design tool.
[0250] The layout design tool receives the job data and automatically imports it into the layout design tool.
[0251] In a possible implementation, the schematic engineer can initiate data interconnection multiple times to transfer the jobs completed in different stages to other EDA tools. Optionally, the EDA tool communication platform can save the data interconnection time and job data corresponding to each data interconnection. The receiving end (such as the layout design tool) can select the job data in different stages to be received according to different data interconnection initiation times (correspondingly, the connection request message can include the initiation time of the data interconnection). In this way, through staged storage, the tool side can trace back the job data in different stages to obtain the job data in different stages. Moreover, the job data in the embodiments of the present application is saved in the cloud, which can effectively reduce the storage pressure on the client side.
[0252] In another possible implementation, the data interconnection event can be set with an aging time (which can be set according to actual requirements and is not limited in this application). If the data interconnection time exceeds the aging time, the data interconnection event and the corresponding job data are deleted.
[0253] In another possible implementation, the solutions in Scenario 1 and Scenario 2 can be used in combination. For example, the schematic design tool can transmit the job data that has been completed at the current stage to the layout design tool through the data interconnection solution in Scenario 2, and then perform operation interconnection with the layout design tool based on the operation interconnection solution in Scenario 1.
[0254] This application provides an EDA tool communication device. Figure 13 For the structural schematic diagram of the exemplary EDA tool communication device 1300, please refer to Figure 13 , the platform includes: an interconnection module 1301, configured to establish a connection between the first EDA tool and the second EDA tool according to a connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool based on the connection; the first EDA tool sends operation information to the second EDA tool in response to a target operation of the user on the first file, and the operation information is associated with the target operation of the first EDA tool on the first file; the second EDA tool performs a target operation on the second file in the second EDA tool according to the operation information, and the first file is associated with the second file.
[0255] In one possible implementation, the first EDA tool and the second EDA tool are one of a layout tool or a schematic tool.
[0256] In one possible implementation, the first EDA tool and the second EDA tool are different types of EDA tools.
[0257] In one possible implementation, the EDA tool communication device further includes an acquisition module 1302, configured to acquire communication information of the first EDA tool. A sending module 1303, configured to send the communication information of the first EDA tool to the second EDA tool. The acquisition module 1302 is further configured to acquire communication information of the second EDA tool, and the sending module 1303 is further configured to send the communication information of the second EDA tool to the first EDA tool.
[0258] In one possible implementation, the first EDA tool is deployed in the first computing instance, and the second EDA tool is deployed in the second computing instance.
[0259] In a possible implementation, the EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance; the obtaining module 1302 is further configured to obtain a connection request sent by the first EDA tool, where the connection request includes a first identifier, the first identifier is used to indicate the second EDA tool, and the connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance.
[0260] In a possible implementation, the operation information includes operation type information and operation object information, where the operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation.
[0261] Among them, the above modules can be implemented by software or by hardware. Among them, as an example of a software functional unit, the above modules can include code running on a computing instance. The computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above computing instance can be one or more. For example, the detection task sending module can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers for running this code can be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers for running this code can be distributed in the same availability zone (AZ) or in different AZs, and each AZ includes one data center or multiple geographically proximate data centers. Usually, one region can include multiple AZs.
[0262] Similarly, the multiple hosts / virtual machines / containers for running this code can be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Usually, one VPC is set within one region. For cross-region communication between two VPCs within the same region and between VPCs in different regions, a communication gateway needs to be set in each VPC, and the interconnection between VPCs is achieved through the communication gateway.
[0263] As an example of a hardware functional unit, the above-mentioned module may include at least one computing device, such as a server, etc. Alternatively, the above-mentioned module may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). Among them, the above-mentioned PLD may be implemented by a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0264] The multiple computing devices included in the above-mentioned module may be distributed in the same region or in different regions. The multiple computing devices included in the above-mentioned module may be distributed in the same availability zone (AZ) or in different AZs. Similarly, the multiple computing devices included in the above-mentioned module may be distributed in the same virtual private cloud (VPC) or in multiple VPCs. Among them, the multiple computing devices may be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0265] It should be noted that in other embodiments, the above-mentioned module may be used to execute Figure 2 the corresponding steps therein to implement all the functions of the cloud management platform.
[0266] This application also provides a computing device 1400. As Figure 14 shown, the computing device 1400 includes: a bus 1402, a processor 1404, a memory 1406, and a communication interface 1408. The processor 1404, the memory 1406, and the communication interface 1408 communicate with each other through the bus 1402. The computing device 1400 may be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 1400.
[0267] The bus 1402 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus may be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience of representation, Figure 14It is represented by only one s-line in the figure, but it does not mean that there is only one bus or one type of bus. The bus 1402 may include a path for transmitting information between various components of the computing device 1400 (e.g., the memory 1406, the processor 1404, the communication interface 1408).
[0268] The processor 1404 may include any one or more of processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0269] The memory 1406 may include a volatile memory, such as a random access memory (RAM). The processor 1404 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0270] The memory 1406 stores executable program codes, and the processor 1404 executes the executable program codes to respectively implement the functions of the foregoing interconnection module, acquisition module, and sending module, so as to implement Figure 2 the EDA tool communication method in. That is, the memory 1406 stores instructions for executing the EDA tool communication method.
[0271] The communication interface 1408 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement the communication between the computing device 1400 and other devices or communication networks.
[0272] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0273] As Figure 15 shown, the computing device cluster includes at least one computing device 1500. The same instructions for executing may be stored in the memory 1506 of one or more computing devices 1500 in the computing device cluster Figure 2Instructions for the EDA tool communication method shown
[0274] In some possible implementation manners, in the memories 1506 of one or more computing devices 1500 in the computing device cluster, there may also be stored respectively some instructions for performing access right management. In other words, the combination of one or more computing devices 1500 can jointly execute the instructions for performing the EDA tool communication method.
[0275] It should be noted that the memories 1506 in different computing devices 1500 in the computing device cluster can store different instructions, which are respectively used to perform some functions of the cloud management platform device. That is, the instructions stored in the memories 1506 of different computing devices 1500 can implement the functions of the interconnection module, the acquisition module, and the sending module.
[0276] In some possible implementation manners, one or more computing devices in the computing device cluster can be connected through a network. Among them, the network can be a wide area network or a local area network, etc. Figure 16 A possible implementation manner is shown. As Figure 16 shown, two computing devices 1600A and 1600B are connected through a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this type of possible implementation manners, in the memory 1606 of the computing device 1600A, there are stored instructions for performing the function of the interconnection module. At the same time, in the memory 1606 of the computing device 1600B, there are stored instructions for performing the functions of the acquisition module and the sending module.
[0277] It should be understood that Figure 16 the function of the computing device 1600A shown in
[0278] This application embodiment also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster can be similarly referred to the connection manner shown in FIG. 11 and Figure 16 the connection manner of the said computing device cluster. The difference is that in the memories 1606 of one or more computing devices 1600 in this computing device cluster, there may be stored the same instructions for performing the EDA tool communication method.
[0279] In some possible implementation manners, in the memories 1606 of one or more computing devices 1600 in the computing device cluster, there may also be stored respectively some instructions for performing the EDA tool communication method. In other words, the combination of one or more computing devices 1600 can jointly execute the instructions for performing the EDA tool communication method.
[0280] It should be noted that the memories 1606 in different computing devices 1600 in the computing device cluster may store different instructions for performing some functions of the cloud management platform. That is, the instructions stored in the memories 1606 in different computing devices 1600 can implement the functions of one or more devices in the cloud management platform.
[0281] An embodiment of this application also provides a computer program product containing instructions. The computer program product may be software or a program product containing instructions that can run on a computing device or be stored in any available medium. When the computer program product runs on at least one computing device, it causes the at least one computing device to execute the EDA tool communication method in the foregoing embodiment.
[0282] An embodiment of this application also provides a computer-readable storage medium. The computer-readable storage medium may be any available medium that a computing device can store or a data storage device such as a data center containing one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive), etc. The computer-readable storage medium includes instructions that direct the computing device to execute the EDA tool communication method in the foregoing embodiment.
[0283] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments, or perform equivalent replacements for some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A communication method for an electronic design automation (EDA) tool, characterized in that, Including: The EDA tool communication platform establishes a connection between the first EDA tool and the second EDA tool according to the connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool based on the connection; The first EDA tool sends operation information to the second EDA tool in response to a target operation on a first file by a user, and the operation information is associated with the target operation on the first file by the first EDA tool; The second EDA tool performs the target operation on a second file in the second EDA tool according to the operation information, and the first file is associated with the second file.
2. The method according to claim 1, wherein The first EDA tool and the second EDA tool are one of a layout tool or a schematic tool.
3. The method according to claim 2, wherein The first EDA tool and the second EDA tool are different types of EDA tools.
4. The method according to any one of claims 1 to 3, characterized in that, The EDA tool communication platform establishing the connection between the first EDA tool and the second EDA tool according to the connection request sent by the first EDA tool includes: The EDA tool communication platform obtains the communication information of the first EDA tool and sends the communication information of the first EDA tool to the second EDA tool; The EDA tool communication platform obtains the communication information of the second EDA tool and sends the communication information of the second EDA tool to the first EDA tool.
5. The method according to claim 1, characterized in that The first EDA tool is deployed in a first computing instance, and the second EDA tool is deployed in a second computing instance.
6. The method according to claim 5, characterized in that, Before establishing the connection between the first EDA tool and the second EDA tool according to the connection request sent by the first EDA tool, the method further includes: The EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance; The EDA tool communication platform obtains the connection request sent by the first EDA tool, and the connection request includes a first identifier for indicating the second EDA tool, and the connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance.
7. The method according to any one of claims 1 to 6, characterized in that The operation information includes operation type information and operation object information, where the operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation.
8. The method according to any one of claims 1 to 7, characterized in that The target operation is a click operation on a first device in a first file or a modification operation on a second device, and the operation information includes first operation information or second operation information. The first operation information includes the identification information of the first device and click operation type information, and the second operation information includes the identification information of the second device and modification operation type information; The second EDA tool performing the target operation on the second file in the second EDA tool according to the operation information includes: The second EDA tool performs a click operation on a first device in the second file based on the first operation information; Or, The second EDA tool performs a modification operation on a second device in the second file based on the second operation information.
9. A communication system for an Electronic Design Automation (EDA) tool, characterized in that, Including: An EDA tool communication platform for establishing a connection between the first EDA tool and the second EDA tool according to a connection request sent by the first EDA tool, and the first EDA tool communicates with the second EDA tool according to the connection; The first EDA tool is used to send operation information related to a target operation on a first file by the first EDA tool to the second EDA tool in response to a user's target operation on the first file; The second EDA tool is used to perform the target operation on a second file in the second EDA tool according to the operation information, and the first file is associated with the second file.
10. The system according to claim 9, wherein, The first EDA tool and the second EDA tool are one of a layout tool or a schematic tool.
11. The system according to claim 10, wherein, The first EDA tool and the second EDA tool are different types of EDA tools.
12. The system according to any one of claims 9 to 11, wherein The EDA tool communication platform is used to obtain communication information of the first EDA tool and send the communication information of the first EDA tool to the second EDA tool; The EDA tool communication platform is used to obtain communication information of the second EDA tool and send the communication information of the second EDA tool to the first EDA tool.
13. The system according to claim 9, wherein The first EDA tool is deployed in a first computing instance, and the second EDA tool is deployed in a second computing instance.
14. The system according to claim 13, wherein The EDA tool communication platform deployed on the server connects the first EDA tool deployed in the first computing instance and the second EDA tool deployed in the second computing instance; The EDA tool communication platform is further used to obtain the connection request sent by the first EDA tool, and the connection request includes a first identifier for indicating the second EDA tool, and the connection request is used to indicate connecting the first EDA tool in the first computing instance and the second EDA tool in the second computing instance.
15. The system according to any one of claims 9 to 14, characterized in that The operation information includes operation type information and operation object information, the operation type information is used to indicate the operation type of the target operation, and the operation object information is used to indicate the execution object of the target operation.
16. The system according to any one of claims 9 to 15, characterized in that The target operation is a click operation on a first device in the first file or a modification operation on a second device, the operation information includes first operation information or second operation information, the first operation information includes identification information of the first device and click operation type information, and the second operation information includes identification information of the second device and modification operation type information; The second EDA tool is specifically used for: Performing a click operation on a first device in the second file based on the first operation information; or, Based on the second operation information, perform a modification operation on the second device in the second file.
17. A cluster of computing devices, characterized in that, Comprising at least one computing device, each computing device including a processor and a memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1 to 8.
18. A computer program product containing instructions, characterized in that, When the instructions are run by the computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 8.
19. A computer-readable storage medium, characterized in that, Comprising computer program instructions, when the computer program instructions are executed by the computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 8.