Interacting method across eda software
By establishing communication connections between EDA software, the problem of difficult interaction between different EDA software is solved, thereby improving the integration level and user efficiency of the EDA system.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHANGXIN MEMORY TECH INC
- Filing Date
- 2023-04-04
- Publication Date
- 2026-06-26
AI Technical Summary
The lack of dedicated communication interfaces between different EDA software makes it difficult to achieve interaction, affecting the integration of EDA systems and user efficiency.
By calling external commands in the first EDA software to start the second EDA software, obtaining connection identification information, creating a communication interface, and sending a connection request based on the interaction information file, a communication connection is established, enabling interaction between different EDA software.
It improves the integration of EDA systems and user efficiency, enabling EDA software from different vendors to interact.
Smart Images

Figure CN116401078B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of software interaction technology, and to, but is not limited to, an interaction method across EDA software. Background Technology
[0002] Electronic Design Automation (EDA) refers to a design method that uses computer-aided design software to complete the functional design, synthesis, verification, and physical design processes of very large-scale integrated circuit chips.
[0003] In related technologies, since different EDA software often come from different vendors and run on different hosts, users need to switch back and forth between different EDA software to complete different tasks. At this time, if the EDA software does not have a dedicated communication interface, it is difficult for the EDA software to interact with each other, which is not conducive to the integration of the EDA system. Summary of the Invention
[0004] In view of this, embodiments of this disclosure provide an interaction method across EDA software.
[0005] In a first aspect, embodiments of this disclosure provide an interaction method across EDA software, applied to a first host running a first electronic design automation (EDA) software, the method comprising:
[0006] The second EDA software is started by calling an external command from the first EDA software.
[0007] Obtain the connection identification information of the first target host; wherein, the first target host is the host running the second EDA software;
[0008] Turn on the interaction switch in the first host, and obtain the interaction information file corresponding to the first target host based on the connection identification information. The interaction information file includes the host number and the connection port number.
[0009] A first communication interface is created, and a connection request is sent to the first target host based on the interaction information file, thereby establishing a communication connection with the first target host through the first communication interface.
[0010] In some embodiments, after establishing a communication connection with the first target host through the first communication interface, the method further includes:
[0011] The first host sends a message instruction to the first target host through the first communication interface in the first host; the message instruction includes at least cross-probing, anti-annotation, highlighting, locating, and searching.
[0012] The system receives the execution result corresponding to the message instruction from the first target host and feeds back the execution result to the user.
[0013] In some embodiments, the connection identification information includes: the host number and the process number;
[0014] The step of obtaining the interaction information file corresponding to the first target host based on the connection identification information includes:
[0015] Based on the connection identification information, locate and receive an interactive information file in a specified directory of the first target host that includes at least the connection port number; wherein the interactive information file is named with the host number and the process number.
[0016] In some embodiments, sending a connection request to the first target host and establishing a communication connection with the first target host through the first communication interface includes:
[0017] The connection request is sent to the first target host using the host number and the connection port number as parameters.
[0018] Receive a response message from the first target host indicating that the communication connection has been successfully established through the first communication interface;
[0019] The first communication interface is a socket interface, and the first target host is either the first host or the second host.
[0020] Secondly, embodiments of this disclosure provide another method for cross-EDA software interaction, applied to a second host running second EDA software, the method comprising:
[0021] Receive an external command from the first EDA software and start the second EDA software;
[0022] Send connection identification information to the second target host; wherein, the second target host is the host running the first EDA software;
[0023] Obtain the connection port number of the second host;
[0024] Create a second communication interface, bind the connection port number to the second communication interface, and listen for request information received by the second communication interface;
[0025] The second communication interface is used to receive connection requests sent by the second target host and establish a communication connection with the second target host.
[0026] In some embodiments, after establishing a communication connection with the second target host, the method further includes:
[0027] The second host receives message instructions sent by the second target host through the second communication interface, and transmits the instruction information to the background service program of the second host; the message instructions include at least cross-probing, anti-annotation, highlighting, positioning, and searching;
[0028] The background service program executes the message instruction and sends the execution result to the second target host.
[0029] In some embodiments, obtaining the connection port number of the second host includes:
[0030] On the second host, obtain an available port number and use the available port number as the connection port number;
[0031] After obtaining the connection port number of the second host, the method further includes:
[0032] An interactive information file is generated in a specified directory of the second host, so that the second target host can locate and obtain the interactive information file based on the connection identification information;
[0033] The interactive information file uses the host number and process number as its filename and stores the host number and the connection port number; the connection identification information includes the host number and the process number.
[0034] In some embodiments, receiving a connection request sent by the second target host through the second communication interface and establishing a communication connection with the second target host includes:
[0035] Listen for and receive connection requests sent by the second target host through the second communication interface;
[0036] Establish a communication connection with the second target host and send a successful communication connection establishment response message to the second target host;
[0037] The second communication interface is a socket interface, and the second target host is either the first host or the second host.
[0038] Thirdly, embodiments of this disclosure provide yet another method for interaction across EDA software, the method comprising:
[0039] The first EDA software runs on the first host, and the second EDA software is started by calling an external command from the first EDA software.
[0040] The target host where the second EDA software is located returns its connection identification information to the first EDA software;
[0041] The target host creates a second communication interface for the second EDA software, obtains a connection port number for the second EDA software, binds the connection port number to the second communication interface, and listens for request information received by the second communication interface;
[0042] The first EDA software turns on the interaction switch and obtains the interaction information file corresponding to the second EDA software based on the connection identification information;
[0043] The first host creates a first communication interface for the first EDA software and sends a connection request to the second communication interface based on the interaction information file;
[0044] The target host receives the connection request through the second communication interface and establishes a communication connection between the second EDA software and the first EDA software.
[0045] In some embodiments, after establishing a communication connection between the second EDA software and the first EDA software, the method further includes:
[0046] The first EDA software sends message commands to the second EDA software through the first communication interface;
[0047] The second EDA software receives the message instruction through the second communication interface and transmits the instruction information to the background service program of the second EDA software;
[0048] The background service program of the second EDA software executes the message instruction and sends the execution result to the first EDA software through the second communication interface;
[0049] The first EDA software will feed back the execution result corresponding to the message instruction to the user;
[0050] The target host is either the first host or the second host.
[0051] Fourthly, embodiments of this disclosure provide an electronic device, including a memory and a processor, wherein the memory stores an application program, and the processor runs the application program stored in the memory to perform the cross-EDA software interaction method described in any of the above embodiments.
[0052] Therefore, this disclosure provides a cross-EDA software interaction method. It enables a first EDA software to invoke an external command to start a second EDA software and obtain connection identification information of a first target host, where the first target host is the host running the second EDA software. Then, it activates the interaction switch on the first host and obtains the corresponding interaction information file for the first target host based on the connection identification information. This interaction information file includes a host number and a connection port number. Finally, it creates a first communication interface and sends a connection request to the first target host based on the interaction information file, establishing a communication connection through the first communication interface. This allows for the creation of communication interfaces for different EDA software, enabling interaction between EDA software from different vendors. This improves the integration of the EDA system and enhances user efficiency. Attached Figure Description
[0053] In the accompanying drawings (which are not necessarily drawn to scale), similar reference numerals may describe similar parts in different views. Similar reference numerals with different letter suffixes may indicate different examples of similar parts. The drawings illustrate, by way of example and not limitation, the various embodiments discussed herein.
[0054] Figure 1 A flowchart illustrating an interaction method across EDA software provided in this embodiment of the disclosure. Figure 1 ;
[0055] Figure 2 A flowchart illustrating an interaction method across EDA software provided in this embodiment of the disclosure. Figure 2 ;
[0056] Figure 3 This is a schematic diagram illustrating the interaction between different EDA software provided in the embodiments of this disclosure;
[0057] Figure 4 A flowchart illustrating another cross-EDA software interaction method provided in this disclosure embodiment. Figure 1 ;
[0058] Figure 5 A flowchart illustrating another cross-EDA software interaction method provided in this disclosure embodiment. Figure 2 ;
[0059] Figure 6 A flowchart illustrating yet another cross-EDA software interaction method provided in this disclosure embodiment. Figure 1 ;
[0060] Figure 7 A flowchart illustrating yet another cross-EDA software interaction method provided in this disclosure embodiment. Figure 2 ;
[0061] Figure 8 A flowchart illustrating another cross-EDA software interaction method provided in an embodiment of this disclosure;
[0062] Figure 9 This is a schematic diagram illustrating an application scenario for cross-EDA software communication provided in an embodiment of this disclosure;
[0063] Figure 10 A schematic diagram of the structure of the first host provided in an embodiment of this disclosure;
[0064] Figure 11 A schematic diagram of the structure of the second host provided in an embodiment of this disclosure;
[0065] Figure 12 This is a schematic diagram of a hardware entity of an electronic device according to an embodiment of this disclosure. Detailed Implementation
[0066] The present disclosure will be further described in detail below with reference to the accompanying drawings and embodiments.
[0067] It should be understood that the embodiments provided herein are merely illustrative of this disclosure and are not intended to limit this disclosure. Furthermore, the embodiments provided below are partial embodiments for implementing this disclosure, and not all embodiments for implementing this disclosure. Unless otherwise specified, the technical solutions described in the embodiments of this disclosure can be implemented in any combination.
[0068] In the following description, the terms "first, second, etc." are used only to distinguish different objects and do not imply that the objects have the sameness or relationship.
[0069] It should be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. The term "connection," unless otherwise specified, includes both direct and indirect connections.
[0070] Before providing a detailed description of the embodiments of this disclosure, the terms and concepts used in these embodiments are explained, and they are to be interpreted as follows:
[0071] EDA refers to a design method that uses computer-aided design software to complete the functional design, synthesis, verification, and physical design (including placement, routing, layout, design rule checking, etc.) of very large-scale integrated circuit chips.
[0072] Load Sharing Facility (LSF) is a distributed cluster management system software responsible for managing computing resources, scheduling batch jobs, monitoring, and analyzing the load on networked computers. Through centralized monitoring and allocation, it fully shares the computer's central processing unit (CPU), memory, disk, and other resources.
[0073] bsub is the command to submit to an LSF job.
[0074] Linux, short for GNU / Linux, is a POSIX-based multi-user, multi-tasking operating system that supports multi-threading and multi-CPU. EDA software is typically installed on a Linux operating system.
[0075] A socket is a network communication interface that enables communication between computer network processes. The socket interface describes Internet Protocol (IP) addresses and ports, acts as a handle to a communication link, and is the basic operational unit supporting Transmission Control Protocol (TCP) network communication. It is an abstract representation of endpoints in network communication. Through this socket interface convention, a computer can receive data from other computers and send data to other computers. Socket interface functions return an integer socket interface descriptor, and subsequent connection establishment, data transmission, and other operations are implemented through this socket interface.
[0076] An Application Programming Interface (API) is a set of predefined functions designed to provide applications and developers with the ability to access a set of routines based on certain software or hardware, without needing to access the source code or understand the details of the internal workings.
[0077] The following is a detailed description of an interaction method across EDA software provided by the present disclosure, with reference to the accompanying drawings.
[0078] This disclosure provides an interaction method across EDA software, applied to a first host running the first EDA software. Figure 1 This is a flowchart illustrating the cross-EDA software interaction method provided in an embodiment of this disclosure, as shown below. Figure 1 As shown, the interaction method across EDA software includes steps S101 to S104.
[0079] S101, the second EDA software is started by calling an external command in the first EDA software.
[0080] In this embodiment of the disclosure, the second EDA software can be started by calling an external command through a job monitoring system within the first EDA software; wherein, the job monitoring system can be an LSF or a local system. For example, the first and second EDA software can be operated through a Linux operating system, and the first EDA software can start the second EDA software by calling the command bsub through LSF.
[0081] It should be noted that the second EDA software can run on a local (server) host or on another server host via LSF. When the second EDA software runs on the local host, the job monitoring system can be the local system; when the second EDA software runs on another host, the job monitoring system can be LSF. Here, the local system refers to the system on which the first EDA software runs, i.e., the system on the first host.
[0082] S102, obtain the connection identification information of the first target host; wherein, the first target host is the host running the second EDA software.
[0083] In this embodiment of the disclosure, the first host can obtain the connection identification information of the first target host through the first EDA software.
[0084] In this embodiment of the disclosure, the first target host can be either a first host or a second host. For example, when the first EDA software and the second EDA software run on the same host, the first target host can be the first host; or when the first EDA software and the second EDA software run on different hosts, the first target host can be the second host.
[0085] In this embodiment, the connection identification information includes a host number and a process ID. The host number is the identifier of the first target host. The process ID (PID) is the process created in the operating system during interaction, and this process has a unique process ID. Since the first EDA software and the second EDA software may not run on the same host, and there may be more than one of the first EDA software and the second EDA software running, the first EDA needs to obtain the host number of the host where the second EDA software is located and the process ID of the second EDA software, that is, obtain the host number of the first target host and the corresponding process ID of the second EDA software, and use the host number and process ID as the unique identifier for the first EDA software and the second EDA software to establish interaction.
[0086] S103, turn on the interaction switch in the first host, and obtain the interaction information file corresponding to the first target host based on the connection identification information. The interaction information file includes the host number and the connection port number.
[0087] In some embodiments, S103 may be performed by the following steps: after turning on the interaction switch in the first host, based on the connection identification information, searching for and receiving an interaction information file in a specified directory of the first target host that includes at least the connection port number; wherein the interaction information file is named with the host number and the process number.
[0088] In this embodiment, the interactive information file is named using a host number and a process ID. That is, the interactive information file is named using the host number of the first target host obtained in S102 and the corresponding process ID of the second EDA software. Since the host number and process ID are unique, after receiving the host number of the first target host and the corresponding process ID of the second EDA software, the first EDA software can locate the interactive information file in a specified directory on the first target host. The interactive information file can be named using a host number and a process ID. For example, an interactive information file named using the host number and process ID of the first target host can be named... <host> _ <pid>.info; where, <host>For host number, <pid>This is the process ID.
[0089] In this embodiment of the disclosure, the file content of the interactive information file includes the host number and connection port number of the first target host, that is... <host> : <port>;in, <port>The connection port number is an available port number on the first target host, and the communication interface of the second EDA software is bound to the connection port number.
[0090] S104, create a first communication interface and send a connection request to the first target host based on the interaction information file, and establish a communication connection with the first target host through the first communication interface.
[0091] In this embodiment of the disclosure, the first host creates a first network communication interface through the first EDA software, which can realize the communication connection between the first EDA software and the second EDA software in the first target host. The first communication interface can be a socket interface.
[0092] In some embodiments, after creating the first communication interface, S104 may perform the following steps: send a connection request to the first target host with the host number and connection port number as parameters; and receive a response message from the first target host indicating that the communication connection has been successfully established through the first communication interface.
[0093] In this embodiment of the disclosure, the port that the first EDA software needs to connect to can be determined by the host number and connection port number of the first target host, so that a connection request can be sent to the connection port of the first target host; after the first EDA software receives the response message of successful communication connection returned by the connection port of the first target host through the first communication interface, the connection between the first host and the first target host is realized through the first EDA software, that is, the connection between the first EDA software and the second EDA software is realized. After the connection between the first EDA software and the second EDA software is established, the interaction between the first EDA software and the second EDA software in the subsequent steps can be realized.
[0094] It should be noted that, in this embodiment of the disclosure, since the first EDA software runs on the first host and the second EDA software runs on the first target host, the interaction between the first EDA software and the second EDA software also refers to the interaction between the first host and the first target host.
[0095] It is understood that, in this embodiment of the present disclosure, the host where the second EDA software is located can be used as the target host. The second EDA software is started through the first EDA software and the connection identification information of the target host is obtained. Then, the interaction information file corresponding to the target host is obtained based on the connection identification information. Finally, a first communication interface is created and a connection request is sent to the target host based on the interaction information file, thereby establishing a communication connection.
[0096] This allows for the creation of communication interfaces for different EDA software, enabling interaction between EDA software from different vendors. Consequently, it improves the integration of the EDA system and enhances user efficiency.
[0097] In some embodiments, such as Figure 2 As shown, after S104, the interaction method across EDA software further includes steps S105 and S106.
[0098] S105, send a message command to the first target host through the first communication interface in the first host; the message command includes at least cross-probe, back-annotation, highlighting, positioning, and searching.
[0099] In this embodiment, the user can determine the type of message command through the control terminal in the first host. For example, the message command can be cross-probing, back-annotating, highlighting, locating, searching, etc. Simultaneously, the message command is sent to the first target host through the first communication interface in the first host. That is, the message command is sent to the second EDA software through the first communication interface of the first EDA software, thereby enabling the first EDA software to control the second EDA software to execute the corresponding service program.
[0100] S106: Receive the execution result corresponding to the message instruction from the first target host and feed the execution result back to the user.
[0101] In this embodiment of the disclosure, the execution result of the second EDA software in the first target host is received through the first communication interface, and the execution result is fed back to the user through a typical configuration interface (Console interface), thus realizing the interaction between the first EDA software and the second EDA software.
[0102] In this embodiment, the first EDA software acts as a client, and the second EDA software acts as a server. The control terminals of the first and second EDA software establish a network connection via an API based on a socket interface to achieve interaction. This allows the user to send commands through the interface of the first EDA software to control the second EDA software to execute corresponding service programs.
[0103] Figure 3 This is a schematic diagram illustrating the interaction between different EDA software provided in the embodiments of this disclosure, such as... Figure 3 As shown, the two interacting EDA software programs are EDA1 and EDA2, which are two independent EDA software programs from different vendors and running on host 1 and host 2 respectively. Since this embodiment utilizes the secondary development environment provided by the EDA software, including typical configuration interfaces and APIs, users can customize the EDA software based on this environment. Furthermore, communication between computer network processes can be achieved through the socket interface in the EDA software; therefore, based on the socket interface, one of the two interacting EDA software programs can act as a server, customizing its background service program through its API and starting a listener in the console, while the other EDA software acts as a client, customizing commands and sending requests to achieve interaction between the two. This improves the integration of the EDA system and enhances user efficiency.
[0104] This disclosure provides another method for interaction across EDA software, applied to a second host running a second EDA software. Figure 4 A flowchart illustrating another cross-EDA software interaction method provided in this disclosure embodiment is shown below. Figure 4 As shown, the interaction method across EDA software includes steps S201 to S205:
[0105] S201: Receive an external command from the first EDA software and start the second EDA software.
[0106] In this embodiment of the disclosure, the second EDA software can be started by calling an external command through a job monitoring system within the first EDA software; wherein, the job monitoring system can be an LSF or a local system. For example, the first and second EDA software can be operated through a Linux operating system, and the first EDA software can start the second EDA software by calling the command bsub through LSF.
[0107] It should be noted that the second EDA software can run on a local (server) host or on another server host via LSF. When the second EDA software runs on a local host, the job monitoring system can be the local system; when the second EDA software runs on another host, the job monitoring system can be LSF. Here, the local system refers to the system on which the first EDA software runs.
[0108] S202, Send connection identification information to the second target host; wherein, the second target host is the host running the first EDA software.
[0109] In this embodiment of the disclosure, the second host sends connection identification information to the second target host, that is, the second EDA software sends connection identification information to the first EDA software.
[0110] In this embodiment of the disclosure, the second target host can be either the first host or the second host. For example, when the first EDA software and the second EDA software run on the same host, the second target host can be the second host; or when the first EDA software and the second EDA software run on different hosts, the second target host can be the first host.
[0111] In this embodiment, the connection identification information includes a host number and a process ID, where the host number is the identifier of the second host. The process ID is the process created in the operating system during interaction, and this process has a unique process ID. Since the first EDA software and the second EDA software may not run on the same host, and there may be more than one of the first EDA software and the second EDA software running, the first EDA needs to obtain the host number of the host where the second EDA software is located and the process ID of the second EDA software, that is, obtain the host number of the second host and the corresponding process ID of the second EDA software, and use the host number and process ID as the unique identifier for the first EDA software and the second EDA software to establish interaction.
[0112] S203, obtain the connection port number of the second host.
[0113] In some embodiments, S203 may be performed by the following steps: on the second host, obtain an idle port number and use the idle port number as the connection port number.
[0114] Specifically, a free and available port number is obtained on the second host, and this port number is used as the connection port number. In this way, the host number and connection port number of the second host are obtained.
[0115] In some embodiments, after obtaining the connection port number of the second host, the cross-EDA software interaction method further includes: generating an interaction information file in a specified directory of the second host, so that the second target host can find and obtain the interaction information file based on the connection identification information; wherein, the interaction information file uses the host number and process number as the file name, and stores the host number and connection port number.
[0116] In this embodiment, the filename of the interactive information file is named using the host number and process ID of the second host in S202. The file content includes the host number of the second host and the connection port number obtained in S103. Since the host number and process ID of the second host are unique, after the second target host obtains the host number and connection port number of the second host through the first EDA software, it can find the interactive information file in the specified directory of the second host using the host number and process ID, thereby finding the port to be connected. The interactive information file is named using the host number and process ID; for example, an interactive information file named using the host number and process ID of the second host can be named... <host> _ <pid>The .info file contains the host number and connection port number of the first target host. <host> : <port> ; <host>For host number, <pid>The process ID. <port>This is the connection port number.
[0117] S204, Create a second communication interface, bind the connection port number to the second communication interface, and listen for request information received by the second communication interface.
[0118] In this embodiment of the disclosure, after creating the second communication interface, by binding the connection port number to the second communication interface, the second target host can find the second communication interface through the first EDA software using the host number and the connection port number.
[0119] In this embodiment of the disclosure, after binding the connection port number to the second communication interface, the second communication interface starts listening, waiting for the first EDA software in the second target host to connect. The second communication interface can be a socket interface.
[0120] S205, receive the connection request sent by the second target host through the second communication interface, and establish a communication connection with the second target host.
[0121] In some embodiments, S205 may be performed by the following steps: listening for and receiving connection requests sent by the second target host through the second communication interface; determining that a communication connection has been established with the second target host, and sending a response message to the second target host indicating that the communication connection has been successfully established.
[0122] In this embodiment of the disclosure, the second host receives a connection request sent by the first EDA software in the second target host through the second communication interface in the second EDA software, and then sends a response message indicating that the communication connection has been successfully established to the first EDA software in the second target host, thereby realizing the connection between the second network communication interface and the second target host, that is, realizing the connection between the first EDA software and the second EDA software through the second communication interface.
[0123] In some embodiments, such as Figure 5 As shown, after executing S205, the cross-EDA software interaction method further includes steps S206 and S207.
[0124] S206, through the second communication interface in the second host, receives message instructions sent by the second target host, and transmits the instruction information to the background service program of the second host; the message instructions include at least cross-probing, anti-annotation, highlighting, positioning, and searching.
[0125] In this embodiment of the disclosure, the background service program can execute instructions such as cross-probing, reverse labeling, highlighting, locating, and searching.
[0126] S207 executes message commands through a background service program and sends the execution results to the second target host.
[0127] In this embodiment of the disclosure, the execution result of the second host can be sent to the first EDA software in the second target host through the second communication interface, thereby realizing the interaction between the first EDA software and the second EDA software.
[0128] It is understood that, in the embodiments of this disclosure, the host where the first EDA software is located can be used as the target host. After the second EDA software is started by the first EDA software, connection identification information is sent to the target host. Then, the connection port number is obtained and a second communication interface is created. Finally, the second communication interface is bound to the second communication interface, and the connection request sent by the target host is received through the second communication interface, thereby establishing a communication connection.
[0129] This allows for the creation of communication interfaces for different EDA software, enabling interaction between EDA software from different vendors. Consequently, it improves the integration of the EDA system and enhances user efficiency.
[0130] This disclosure provides yet another method for cross-EDA software interaction, applicable to a first EDA software and a second EDA software. Figure 6 A flowchart illustrating another cross-EDA software interaction method provided in this disclosure embodiment is shown below. Figure 6 As shown, the interaction method across EDA software includes steps S301 to S306.
[0131] S301, the first EDA software runs in the first host, and the second EDA software is started by calling an external command in the first EDA software.
[0132] In this embodiment of the disclosure, the second EDA software can be started by calling an external command through a job monitoring system within the first EDA software; wherein, the job monitoring system can be an LSF or a local system. For example, the first and second EDA software can be operated through a Linux operating system, and the first EDA software can start the second EDA software by calling the command bsub through LSF.
[0133] It should be noted that the second EDA software can run on a local (server) host or on another server host via LSF. When the second EDA software runs on a local host, the job monitoring system can be the local system; when the second EDA software runs on another host, the job monitoring system can be LSF. Here, the local system refers to the system on which the first EDA software runs. S302, the target host where the second EDA software resides returns its connection identification information to the first EDA software.
[0134] In this embodiment of the disclosure, the target host can be a first host or a second host. For example, when the first EDA software and the second EDA software run on the same host, the target host can be the first host; or when the first EDA software and the second EDA software run on different hosts, the target host can be the second host.
[0135] In this embodiment, the connection identification information includes a host number and a process ID, where the host number is the identifier of the target host. The process ID is the process created in the operating system during interaction, and this process has a unique process ID. Since the first EDA software and the second EDA software may not run on the same host, and there may be more than one of the first EDA software and the second EDA software running, the second EDA software needs to return the host number of the target host and the process ID of the second EDA software to the first EDA software, and use this host number and process ID as a unique identifier for the first EDA software and the second EDA software to establish interaction.
[0136] In this embodiment, a free and available port number is obtained on the target host and used as the connection port number. Thus, the second EDA software obtains the host number and connection port number of the target host. The second EDA software then returns the host number and connection port number of the target host to the first EDA software via LSF.
[0137] In this embodiment of the disclosure, after S302, the cross-EDA software interaction method further includes: generating an interaction information file in a specified directory of the host on which the target host is running, wherein the filename of the interaction information file is named by the host number of the target host and the process number of the second EDA software. For example, the filename of the interaction information file can be named as follows: <host> _ <pid>The .info file contains the target host's hostname and connection port number. <host> : <port>.
[0138] S303, The target host creates a second communication interface for the second EDA software, obtains a connection port number for the second EDA software, binds the connection port number to the second communication interface, and listens for request information received by the second communication interface.
[0139] In this embodiment of the disclosure, after creating the second communication interface, the first EDA software can locate the second communication interface by binding the connection port number to the second communication interface, using the host number and the connection port number. After binding the connection port number to the second communication interface, the target host listens for request information received by the second communication interface, waiting for the first EDA software to connect. The second communication interface can be a socket interface.
[0140] S304, the first EDA software turns on the interaction switch and obtains the interaction information file corresponding to the second EDA software based on the connection identification information.
[0141] In this embodiment of the disclosure, after the first EDA software turns on the interaction switch, it searches for the interaction information file in the specified directory of the target host based on the connection identification information (i.e., host number and process number) and obtains the host number and connection port number of the target host in the interaction information file.
[0142] S305, the first host creates a first communication interface for the first EDA software and sends a connection request to the second communication interface based on the interactive information file.
[0143] In this embodiment of the disclosure, the first host creates a first communication interface for the first EDA software, wherein the first communication interface may be a socket interface. By using the host number and connection port number of the target host, the port (i.e., the second communication interface) that the first EDA software needs to connect to can be determined, thereby allowing a connection request to be sent to the second communication interface of the second EDA software.
[0144] S306, the target host receives a connection request through the second communication interface and establishes a communication connection between the second EDA software and the first EDA software.
[0145] In this embodiment of the disclosure, the second communication interface in the second EDA software receives a connection request sent by the first EDA software, and then sends a response message indicating that the communication connection has been successfully established to the first EDA software, thereby realizing the connection between the first EDA software and the second EDA software.
[0146] In some embodiments, such as Figure 7 As shown, after performing step S306, the cross-EDA software interaction method further includes steps S307 and S310.
[0147] S307, the first EDA software sends message instructions to the second EDA software through the first communication interface.
[0148] In this embodiment of the disclosure, the user can determine the type of message instruction through the control terminal in the first EDA software and send the message instruction to the second EDA software; wherein, the message instruction may be cross-probing, back-annotation, highlighting, positioning, searching, etc.
[0149] In this embodiment of the disclosure, the message instruction is sent to the target host through the first communication interface in the first host. That is, the message instruction is sent to the second EDA software through the first communication interface of the first EDA software, thereby enabling the first EDA software to control the second EDA software to execute the corresponding service program.
[0150] S308, the second EDA software receives message instructions through the second communication interface and transmits the instruction information to the background service program of the second EDA software.
[0151] In this embodiment of the disclosure, receiving a message instruction sent by the first host through the second communication interface in the target host where the second EDA software is located means that the second EDA software in the target host receives a message instruction sent by the first EDA software through the second communication interface.
[0152] S309, the background service program of the second EDA software executes the message instruction and sends the execution result to the first EDA software through the second communication interface.
[0153] In this embodiment, the second EDA software executes instructions such as cross-probing, back-annotation, highlighting, locating, and searching in the background service program of the target host. Then, the second EDA software sends the execution results of the background service program to the first EDA software through a second communication interface, thus realizing the interaction between the first and second EDA software.
[0154] S310, the first EDA software feeds back the execution result corresponding to the message command to the user.
[0155] In this embodiment of the disclosure, the execution result of the second EDA software in the target host is received through the first communication interface, and the execution result is fed back to the user through a typical configuration interface, thus realizing the interaction between the first EDA software and the second EDA software.
[0156] It should be noted that when there are more than three EDA software programs interacting with each other, the interaction method is similar to that of the two programs mentioned above. For example, when there are three EDA software programs interacting with each other, the host where one EDA software program is located can be used as the server and the hosts where the other two EDA software programs are located can be used as clients.
[0157] It should also be noted that the cross-EDA software interaction method provided in this disclosure embodiment is similar to the cross-EDA software interaction method in the above embodiments. For technical features not disclosed in detail in this disclosure embodiment, please refer to the above embodiments for understanding, and will not be repeated here.
[0158] This disclosure provides a method for cross-EDA software interaction, enabling interaction between multiple independent EDA software programs on different hosts. It can be applied to various scenarios, such as cross-probing, back-annotation, highlighting, positioning, and searching. This improves the integration of the EDA system and facilitates secondary development of EDA software.
[0159] This disclosure also provides a method for cross-EDA software interaction. Please refer to [link / reference]. Figure 8 In this process, EDA1 (corresponding to the first EDA software in the above embodiments) executes S401, S404, S405, S407, and S410. EDA2 (corresponding to the second EDA software in the above embodiments) executes S402, S403, S406, S408, and S409.
[0160] S401, Start EDA2 from EDA1.
[0161] In this embodiment of the disclosure, an external command is called in EDA1 to start EDA2. EDA2 can be run on the local machine or on another server Host2 via LSF. The host number and process number of EDA2 are returned to EDA1. After startup, S402 and S403 are executed in the Console of EDA2 immediately.
[0162] S402, Get an available port number.
[0163] In this embodiment of the disclosure, a free and available port number is obtained on the host running EDA2.
[0164] S403: Create a socket interface, bind the port, and start listening.
[0165] In this embodiment, a server socket interface object is created, a port number is bound, and listening begins, waiting for EDA1 to connect. Simultaneously, an interaction information file is generated in a specified directory, with the filename being the host number of the host where EDA2 resides plus the process ID of EDA2; for example, [filename would be inserted here]. <host> _ <pid>The .info file writes the available port number to the interaction information file, which includes... <host> : <port>The host number of the host where EDA2 is located and the free port number are used as unique identifiers for this interaction phase so that EDA1 can obtain them.
[0166] S404, turn on the interactive switch.
[0167] In this embodiment of the disclosure, the interaction switch is turned on in EDA1, and the interaction information file is found according to the host number and process number returned by S401. The host and port number of EDA2 are obtained from the file, and preparation is made to interact with EDA2.
[0168] S405, Create a socket interface and request a connection.
[0169] In this embodiment of the disclosure, a server socket interface object is created, and the host and port number obtained in the previous step are used as parameters to send a connection request to EDA2.
[0170] S406, Receive connection request.
[0171] In this embodiment of the disclosure, a connection request is received from EDA1, and EDA1 and EDA2 are successfully connected.
[0172] S407, Send message command.
[0173] In this embodiment of the disclosure, message commands are sent from the control terminal of EDA1 to EDA2. Customized application interfaces can be provided, such as cross-probing, back-annotation, highlighting, positioning, and searching.
[0174] S408, receive message command.
[0175] In this embodiment of the disclosure, a message instruction from EDA1 is received and transmitted to a background service program.
[0176] S409 executes the instruction and responds with the result.
[0177] In this embodiment, the EDA2 background service program executes instructions and returns the execution results to EDA1. Services such as cross-checking, back-annotation, highlighting, location, and search can be provided through a customized background service program.
[0178] S410, receive response.
[0179] In this embodiment of the disclosure, the execution result from EDA2 is received and fed back to the user through the console.
[0180] In this embodiment of the disclosure, a socket interface can be created in the EDA software. One of the two EDA software programs that interact with each other can act as a server, customize a background service program through its API, and start listening in the console. The other EDA software can act as a client, customize instructions, and send requests. This enables the interaction between the two.
[0181] It should be noted that in the interaction method provided in this embodiment, the number of EDA software programs can be two or more (e.g., three). The above embodiment uses two EDA software programs as an example for illustration. Next, an example of interaction between three EDA software programs will be provided.
[0182] like Figure 9 As shown, the Schematic Viewer Tool, Waveform Tool, and Report Viewer are EDA software programs that run independently on different hosts (host 1, host 2, and host 3, respectively). Through the interaction method disclosed herein, organic interaction between the Schematic Viewer Tool, Waveform Tool, and Report Viewer can be achieved. This allows the Schematic Viewer Tool (i.e., the EDA software on host 3) to use the interaction method disclosed herein to call and view data from the Schematic Viewer Tool and Waveform Tool (i.e., the EDA software on hosts 1 and 2).
[0183] Specifically, through customization, users can directly select a signal in the report viewer interface and click a button to find and highlight the signal in the schematic viewer tool or explore the signal in the waveform tool. For example, a user can select the net A signal in the report viewer interface to find and highlight the net A signal in the schematic viewer tool or explore the net A signal in the waveform tool. The operation methods for net B and net C signals are similar to those for net A signals, and will not be repeated here.
[0184] In addition, embodiments of this disclosure also provide a first host running first EDA software, such as Figure 10 As shown, the first host 800 includes:
[0185] Module 801 is configured to invoke external commands within the first EDA software to start the second EDA software.
[0186] The first acquisition module 802 is configured to acquire the connection identification information of the first target host; wherein the first target host is a host running the second EDA software; to turn on the interaction switch in the first host, and to acquire the interaction information file corresponding to the first target host based on the connection identification information, the interaction information file including the host number and the connection port number;
[0187] The first creation module 803 is configured to create a first communication interface and send a connection request to the first target host based on the interaction information file, and establish a communication connection with the first target host through the first communication interface.
[0188] In some embodiments, the first host 800 further includes: a first sending module 804, configured to send a message instruction to a first target host through a first communication interface in the first host; the message instruction includes at least cross-probing, back-annotation, highlighting, locating, and searching; and a first execution module 805, configured to receive the execution result corresponding to the message instruction from the first target host and feed the execution result back to the user.
[0189] In some embodiments, the connection identification information includes a host number and a process number; the first acquisition module 802 is further configured to search for and receive an interactive information file that includes at least a connection port number in a specified directory of the first target host based on the connection identification information; wherein the interactive information file is named with the host number and the process number.
[0190] In some embodiments, the first creation module 803 is further configured to send a connection request to the first target host with a host number and a connection port number as parameters; and receive a response message from the first target host indicating that the communication connection has been successfully established through the first communication interface; the first communication interface is a socket interface, and the first target host is a first host or a second host.
[0191] This disclosure also provides a second host running a second EDA software, such as... Figure 11 As shown, the second host 900 includes:
[0192] The startup module 901 is configured to receive external commands called by the first EDA software and start the second EDA software;
[0193] The second sending module 902 is configured to send connection identification information to the second target host; wherein the second target host is a host running the first EDA software;
[0194] The second acquisition module 903 is configured to acquire the connection port number of the second host;
[0195] The second creation module 904 is configured to create a second communication interface, bind the connection port number to the second communication interface, and listen for request information received by the second communication interface.
[0196] The first receiving module 905 is configured to receive a connection request sent by the second target host through the second communication interface and establish a communication connection with the second target host.
[0197] In some embodiments, the second host 900 further includes: a second receiving module 906, configured to receive message instructions sent by the second target host through a second communication interface in the second host, and transmit the instruction information to the background service program of the second host; the message instructions include at least cross-probing, back-annotation, highlighting, positioning, and searching; and a second execution module 907, configured to execute the message instructions through the background service program and send the execution result to the second target host.
[0198] In some embodiments, the second acquisition module 903 is further configured to acquire an idle port number on the second host and use the idle port number as the connection port number; the second host 900 further includes: a generation module 908, configured to generate an interaction information file in a specified directory of the second host, so that the second target host can search for and acquire the interaction information file based on the connection identification information; wherein, the interaction information file is named with the host number and process number, and stores the host number and the connection port number; the connection identification information includes: the host number and the process number.
[0199] In some embodiments, the first receiving module 905 is further configured to listen for and receive connection requests sent by the second target host through the second communication interface; determine that a communication connection has been established with the second target host, and send a response message to the second target host indicating that the communication connection has been successfully established; the second communication interface is a socket interface, and the second target host is either the first host or the second host.
[0200] In some embodiments, the first host and the second host can be the same host, in which case the first EDA software and the second EDA software can run on the same host; or, the first host and the second host can be different hosts, in which case the first EDA software and the second EDA software can run on the first host and the second host respectively.
[0201] In addition, embodiments of this disclosure provide an electronic device 700, such as... Figure 12 As shown, the electronic device 700 includes a memory 701 and a processor 702. The memory 701 stores an application program, and the processor 702 runs the application program stored in the memory, performing the cross-EDA software interaction method of any of the above embodiments.
[0202] In this embodiment of the disclosure, the memory 701 is configured to store instructions and applications executable by the processor 702, and can also cache data to be processed or already processed by the processor 702 and various modules in the electronic device (e.g., image data, audio data, voice communication data and video communication data), which can be implemented by flash memory or random access memory (RAM).
[0203] It should be understood that the phrase "an embodiment" or "one embodiment" throughout the specification means that a specific feature, structure, or characteristic related to the embodiment is included in at least one embodiment of this disclosure. Therefore, "in one embodiment" or "one embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics can be combined in any suitable manner in one or more embodiments. It should be understood that in the various embodiments of this disclosure, the sequence numbers of the above-described processes do not imply a sequential order of execution; the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of this disclosure. The sequence numbers of the above-described embodiments are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0204] In the several embodiments provided in this disclosure, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely illustrative.
[0205] The methods disclosed in the several method embodiments provided in this disclosure can be arbitrarily combined to obtain new method embodiments without conflict. The features disclosed in the several method or device embodiments provided in this disclosure can be arbitrarily combined to obtain new method embodiments or device embodiments without conflict.
[0206] The above description is merely a preferred embodiment of this disclosure and is not intended to limit the scope of protection of this disclosure. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.< / port> < / host> < / pid> < / host> < / port> < / host> < / pid> < / host> < / port> < / pid> < / host> < / port> < / host> < / pid> < / host> < / port> < / port> < / host> < / pid> < / host> < / pid> < / host>
Claims
1. A cross-EDA software interaction method, applied to a first host running the first EDA software, characterized in that, The method includes: The second EDA software is started by calling an external command from the first EDA software. Obtain the connection identification information of the first target host; wherein, the first target host is a host running the second EDA software; Turn on the interaction switch in the first host, and obtain the interaction information file corresponding to the first target host based on the connection identification information. The interaction information file includes the host number and the connection port number. A first communication interface is created, and a connection request is sent to the first target host based on the interaction information file, thereby establishing a communication connection with the first target host through the first communication interface; The connection identification information includes: the host number and the process number; The step of obtaining the interaction information file corresponding to the first target host based on the connection identification information includes: Based on the connection identification information, locate and receive an interactive information file in a specified directory of the first target host that includes at least the connection port number; wherein the interactive information file is named with the host number and the process number; Sending a connection request to the first target host and establishing a communication connection with the first target host through the first communication interface includes: The connection request is sent to the first target host using the host number and the connection port number as parameters. Receive a response message from the first target host indicating that the communication connection has been successfully established through the first communication interface; The first communication interface is a socket interface, and the first target host is either the first host or the second host.
2. The interaction method according to claim 1, characterized in that, After establishing a communication connection with the first target host through the first communication interface, the method further includes: The first host sends a message instruction to the first target host through the first communication interface in the first host; the message instruction includes at least cross-probing, anti-annotation, highlighting, locating, and searching. The system receives the execution result corresponding to the message instruction from the first target host and feeds back the execution result to the user.
3. A cross-EDA software interaction method, applied to a second host running a second EDA software, characterized in that, The method includes: Receive an external command from the first EDA software and start the second EDA software; Send connection identification information to the second target host; wherein, the second target host is the host running the first EDA software; Obtain the connection port number of the second host; Create a second communication interface, bind the connection port number to the second communication interface, and listen for request information received by the second communication interface; The second communication interface is used to receive connection requests sent by the second target host and establish a communication connection with the second target host. The step of receiving a connection request sent by the second target host through the second communication interface and establishing a communication connection with the second target host includes: Listen for and receive connection requests sent by the second target host through the second communication interface; Establish a communication connection with the second target host and send a successful communication connection establishment response message to the second target host; The second communication interface is a socket interface, and the second target host is either the first host or the second host.
4. The interaction method according to claim 3, characterized in that, After establishing a communication connection with the second target host, the method further includes: The second host receives message instructions sent by the second target host through the second communication interface, and transmits the instruction information to the background service program of the second host; the message instructions include at least cross-probing, anti-annotation, highlighting, positioning, and searching; The background service program executes the message instruction and sends the execution result to the second target host.
5. The interaction method according to claim 3, characterized in that, Obtaining the connection port number of the second host includes: On the second host, obtain an available port number and use the available port number as the connection port number; After obtaining the connection port number of the second host, the method further includes: An interactive information file is generated in a specified directory of the second host, so that the second target host can locate and obtain the interactive information file based on the connection identification information; The interactive information file is named with the host number and process number, and stores the host number and the connection port number; the connection identification information includes the host number and the process number.
6. A cross-EDA software interaction method, characterized in that, The method includes: The first EDA software runs on the first host, and the second EDA software is started by calling an external command from the first EDA software. The target host where the second EDA software is located returns its connection identification information to the first EDA software; The target host creates a second communication interface for the second EDA software, obtains a connection port number for the second EDA software, binds the connection port number to the second communication interface, and listens for request information received by the second communication interface; The first EDA software turns on the interaction switch and obtains the interaction information file corresponding to the second EDA software based on the connection identification information; The first host creates a first communication interface for the first EDA software and sends a connection request to the second communication interface based on the interaction information file; The target host receives the connection request through the second communication interface and establishes a communication connection between the second EDA software and the first EDA software.
7. The interaction method according to claim 6, characterized in that, After establishing a communication connection between the second EDA software and the first EDA software, the method further includes: The first EDA software sends message commands to the second EDA software through the first communication interface; The second EDA software receives the message instruction through the second communication interface and transmits the instruction information to the background service program of the second EDA software; The background service program of the second EDA software executes the message instruction and sends the execution result to the first EDA software through the second communication interface; The first EDA software will feed back the execution result corresponding to the message instruction to the user; The target host is either the first host or the second host.