Electronic design automation inspection method, system, cluster, medium and program product
By establishing mapping relationships between design drawings in the EDA system and automatically correlating and transmitting inspection messages, the problem of inefficient design drawing inspection in the prior art is solved, and collaborative inspection and message delivery between upstream and downstream design drawings is realized, which improves the Check efficiency and safety.
Patent Information
- Application Number
- CN202311325546.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-07-24
- Filing Date
- 2023-10-12
- Publication Date
- 2025-01-14
AI Technical Summary
The existing electronic design automation (EDA) inspection method has low message transmission efficiency between upstream and downstream design drawings, which is prone to errors or omissions, and the stand-alone EDA tools are incompatible and have limited interoperability, resulting in inefficient design drawing inspection. .
By establishing a mapping relationship between design drawings on the server side, the inspection messages are automatically associated with the upstream design drawings and pushed to relevant accounts to realize coordinated inspection and message delivery between design drawings, ensuring timely feedback and accurate positioning of inspection opinions.
It improves the efficiency of design drawing inspection, enhances the security and traceability of the design process, realizes the interconnection between upstream and downstream design drawings, and ensures the accurate transmission and processing of inspection opinions.
Smart Images

Figure CN119312768A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computers, and more specifically, to a cloud-native inspection method, system, computer device cluster, computer storage medium, and program product for electronic design automation. Background Art
[0002] Electronic design automation (EDA) is a general term for a series of processes that use computer-aided software to implement large-scale integrated circuits, from design (including schematics, layouts, design rule checking, etc.) to simulation verification and even production and manufacturing. Generally, EDA can include automation tools for chip / printed circuit board (PCB) design, while EDA in a broad sense can include automation tools for chip design, chip packaging, chip testing, PCB design, single board manufacturing, testing, etc.
[0003] At each stage of the EDA process, a series of design drawings are generated, such as circuit schematics and PCB layouts for electronic products. In order to ensure that the design drawings meet production requirements, relevant experts need to review the design drawings and provide review opinions so that the design drawings can be corrected and improved. The ultimate goal of schematic and layout review is to ensure that both achieve single board specifications, such as tolerance, fault tolerance, reliability, testability, manufacturability, maintainability, etc.
[0004] The circuit schematic and PCB layout design of electronic products can be reviewed in a step-by-step manner from multiple aspects such as circuit standardization, unit circuit functional integrity, and single board performance indicators. As an example, the overall structure of the single board can be reviewed first, such as whether the module division is reasonable, whether the single board external interface design is correct, and whether the bus topology design is feasible; then, the module circuit design standardization can be reviewed, such as whether it meets the company's relevant preferred circuits; further, the circuit specification design requirements and relevant design guidelines can be combined to monitor the unit circuit modules and their interfaces and chip applications for the basic functions of the single board; finally, the reliability of the single board can be reviewed in combination with device application, device derating, and safety and environmental design requirements. Summary of the invention
[0005] In a first aspect, a review method for electronic design automation is provided. The method includes: receiving a review message for a first group of elements in a first design drawing; based on a mapping relationship between the first design drawing and the second design drawing, associating the review message with a second group of elements in the second design drawing, the first group of elements and the second group of elements are associated, and the first design drawing and the second design drawing are different types of design drawings; and pushing the review message to a first account associated with the second design drawing. Thus, the review opinions on specific elements in the design drawing can be fed back to the personnel related to another design drawing associated with the design drawing in a timely manner, ensuring an accurate and controllable message transmission range and supporting the accurate positioning of the problem indicated by the review message, thereby improving the review efficiency and improving the safety in the design process.
[0006] In some embodiments of the first aspect, the second design drawing is a circuit schematic diagram of an electronic product, and the first design drawing is a printed circuit board layout of the electronic product. Thus, the coordinated review of upstream and downstream design drawings in the circuit board design process of the electronic product can be achieved, so that the review opinions on the downstream layout can be fed back to the personnel related to the upstream design drawing that constrains the layout in a timely manner.
[0007] In some embodiments of the first aspect, the method further includes: causing the inspection message to be displayed on an interface of the first terminal logged in by the first account; and in response to receiving a selection of the inspection message from the interface, causing the second group of elements in the second design drawing to be highlighted on the interface. Thus, the location of the inspection problem in the design drawing can be intuitively presented, so that the designer can quickly find the location that needs to be checked in the design drawing to prevent omission.
[0008] In some embodiments of the first aspect, the interface also displays a first design drawing, and the method further includes: based on the selection of the second group of elements received from the interface, highlighting the first group of elements on the interface. Thus, the designer can collaboratively view the corresponding elements on the design drawings associated with each other, facilitating the designer's comparative editing of the file.
[0009] In some embodiments of the first aspect, the method further includes: receiving a reply message to the review message; associating the reply message with the first design drawing based on the mapping relationship; and in response to the reply message being associated with the first design drawing, pushing the reply message to the second account and the third account, wherein the second account is associated with the first design drawing and the review message comes from the third account. Thus, the handling opinions on the review message can be delivered to the relevant personnel in a timely and accurate manner, and regardless of whether the user who puts forward the review opinion is the designer of the downstream design drawing, it can also be ensured that the user obtains the handling opinions of the upstream designer on the relevant issues in a timely manner, and the handling opinions can then be used as a reference for the designer to provide support for the subsequent handling of the corresponding issues in the downstream design drawing.
[0010] In some embodiments of the first aspect, the method further includes: in response to receiving an instruction to close the processing flow of the review message, closing the processing flow of the review message. Thus, the user can be allowed to actively end the processing of the review message, so that it can be excluded in the subsequent judgment of the progress of the review flow.
[0011] In some embodiments of the first aspect, the method further includes: a review message is initiated in a created review task, and the method further includes: in response to receiving an instruction to end the review task, determining whether there is an unprocessed review message in the review task; and when it is determined that there is an unprocessed review message in the review task, generating a first prompt about the unprocessed review message. In this way, it can be ensured that all review messages have been processed when the review task is ended.
[0012] In some embodiments of the first aspect, the method further includes: in response to receiving an instruction to start the next stage of the production line for the first design drawing, determining whether there is an unprocessed review message for the first design drawing; and when it is determined that there is an unprocessed review message for the first design drawing, generating a second prompt about the unprocessed review message. In this way, it is possible to avoid the situation where there are still discovered but unprocessed problems when the design drawing is moved to the next stage of the production line.
[0013] In some embodiments of the first aspect, the method further includes: in response to receiving a first update to the second design drawing, sending a notification to a second account associated with the first design drawing, the notification indicating that the second design drawing has been updated; receiving a second update to the first design drawing from the second account; and updating the mapping relationship between the first design drawing and the second design drawing based on the first update and the second update. Thus, it can be ensured that the mapping relationship between the first design drawing and the second design drawing is consistent with the updated version of the design drawing, which is convenient for subsequent collaborative review.
[0014] In a second aspect, a review system for electronic design automation is provided. The system includes: a receiving module configured to receive a review message for a first group of elements in a first design drawing; an association module configured to associate the review message with a second group of elements in the second design drawing based on a mapping relationship between the first design drawing and the second design drawing, the first group of elements and the second group of elements being associated, and the first design drawing and the second design drawing being different types of design drawings; and a push module configured to push the review message to a first account associated with the second design drawing.
[0015] In some embodiments of the second aspect, the second design drawing is a circuit schematic of the electronic product, and the first design drawing is a printed circuit board layout of the electronic product.
[0016] In some embodiments of the second aspect, the system also includes: a display module configured to display a review message on an interface of a first terminal logged in by a first account; and a first highlight module configured to highlight a second group of elements in a second design drawing on the interface in response to receiving a selection of the review message from the interface.
[0017] In some embodiments of the second aspect, a first design diagram is also displayed on the interface, and the system further includes: a second highlighting module configured to highlight the first group of elements on the interface based on a selection of the second group of elements received from the interface.
[0018] In some embodiments of the second aspect, the system also includes: a reply receiving module, configured to receive a reply message to a review message; a reply associating module, configured to associate the reply message with the first design drawing based on a mapping relationship; and a reply pushing module, configured to push the reply message to the second account and the third account in response to the reply message being associated with the first design drawing, the second account being associated with the first design drawing, and the review message coming from the third account.
[0019] In some embodiments of the second aspect, the system further includes: a closing module configured to close the processing flow of the review message in response to receiving an instruction to close the processing flow of the review message.
[0020] In some embodiments of the second aspect, the review message is initiated in a created review task, and the system also includes: a first determination module, configured to determine whether there are any unprocessed review messages in the review task in response to receiving an indication to end the review task; and a first generation module, configured to generate a first prompt about the unprocessed review message when it is determined that there are unprocessed review messages in the review task.
[0021] In some embodiments of the second aspect, the system also includes: a second determination module, configured to determine whether there is an unprocessed review message for the first design drawing in response to receiving an indication to start the next stage of the production line for the first design drawing; and a second generation module, configured to generate a second prompt about the unprocessed review message when it is determined that there is an unprocessed review message for the first design drawing.
[0022] In some embodiments of the second aspect, the system also includes: a notification module, configured to, in response to receiving a first update to the second design drawing, issue a notification to a second account associated with the first design drawing, the notification indicating that the second design drawing has been updated; an update receiving module, configured to receive a second update to the first design drawing from the second account; and an update module, configured to update the mapping relationship between the first design drawing and the second design drawing based on the first update and the second update.
[0023] In a third aspect, a computing device cluster is provided, characterized in that it includes at least one computing device, each computing device includes a processor and a memory; the processor of at least one computing device is used to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster performs operations according to the method in the above-mentioned first aspect or any one of its embodiments.
[0024] In a fourth aspect, a computer program product comprising instructions is provided, wherein when the instructions are executed by a computing device cluster, the computing device cluster performs operations according to the method in the first aspect or any one of its embodiments.
[0025] In a fifth aspect, a computer-readable storage medium is provided, characterized in that it includes computer program instructions. When the computer program instructions are executed by a computing device cluster, the computing device cluster performs operations according to the method in the above-mentioned first aspect or any one of its embodiments. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The above and other features, advantages and aspects of the embodiments of the present application will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings. In the accompanying drawings, the same or similar reference numerals represent the same or similar elements, wherein:
[0027] Figure 1 A schematic diagram showing an example environment in which various embodiments of the present application can be implemented;
[0028] Figure 2 A flowchart showing an example method of electronic design automation inspection according to some embodiments of the present application is shown;
[0029] Figure 3 A schematic interaction diagram showing a process of processing a design drawing review message according to some embodiments of the present application is shown;
[0030] Figure 4 An example debug window for displaying and debugging commands for collaboratively selecting elements in multiple design drawings according to some embodiments of the present application is shown;
[0031] Figure 5 An example architecture of a cloud-native EDA online platform according to some embodiments of the present application is shown;
[0032] Figure 6 The following is a flowchart of an example design drawing review operation according to some embodiments of the present application;
[0033] Figure 7 A schematic block diagram of an electronic design automation inspection system according to some embodiments of the present application is shown;
[0034] Figure 8 A schematic block diagram showing an example device that can be used to implement embodiments of the present application;
[0035] Fig. 9 A schematic block diagram showing an example computing device cluster that can be used to implement embodiments of the present application; and
[0036] Fig.10 A schematic block diagram of an example implementation of a computing device cluster that can be used to implement embodiments of the present application is shown. DETAILED DESCRIPTION
[0037] The embodiments of the present application will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present application are shown in the accompanying drawings, it should be understood that the present application can be implemented in various forms and should not be construed as being limited to the embodiments described herein. Instead, these embodiments are provided to provide a more thorough and complete understanding of the present application. It should be understood that the drawings and embodiments of the present application are only for exemplary purposes and are not intended to limit the scope of protection of the present application.
[0038] In the description of the embodiments of the present application, the term "including" and similar terms should be understood as open inclusion, that is, "including but not limited to". The term "based on" should be understood as "based at least in part on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0039] The development of electronic product hardware involves many roles, such as hardware engineers and interconnect engineers. Hardware engineers are responsible for designing circuit schematics (hereinafter referred to as schematics) for electronic products, which is the source of EDA development. Interconnect engineers are responsible for designing PCB layouts (hereinafter referred to as layouts) as hardware carriers. In the hardware design workflow, hardware engineers first use schematic tools to complete schematic design and generate netlists that describe digital circuit connections. The designed schematics are sent to interconnect engineers. Interconnect engineers can import design drawing files (such as netlists) and use layout design tools to complete the corresponding layout design based on the design drawings. Compared with schematics, layouts are downstream of the design process, and their content is constrained by the corresponding schematics, that is, the designed layouts need to be consistent with the schematics.
[0040] In order to ensure that the design drawings meet production requirements, relevant experts need to review the schematics and layouts and provide review opinions so that designers can correct and improve the design drawings. The conventional review method mainly adopts serial review based on stand-alone EDA tools. Technical experts in various technical fields submit review opinions to the hardware engineering responsible for schematic design and the interconnection engineer responsible for layout design. In this method, after the review expert reviews the layout, the interconnection engineer needs to summarize the layout review data and send it to the hardware engineer. Then, the hardware engineer processes the relevant review opinions and feeds back to the interconnection engineer.
[0041] Such stand-alone EDA review tools may not be compatible with each other, and the review message formats generated for different design drawings on the same production line are different, with limited interoperability. Review opinions are usually communicated verbally, by email, or through instant messaging, which makes the communication of review messages inefficient. Moreover, different process design drawings on the same production line do not necessarily correspond directly, making it easy for feedback on downstream design drawings to be sent incorrectly or missed when upstream engineers are given feedback.
[0042] In order to solve the above problems and other problems, an embodiment of the present application provides a solution for electronic design automation inspection. In this solution, when a review message for a downstream design drawing is received, the review message can be automatically associated with the upstream design drawing that constrains the content of the downstream design drawing based on the mapping relationship between the downstream design drawing and the upstream design drawing. At this time or later, if it is detected that an account associated with the upstream design drawing (such as the account of the designer of the upstream design drawing) is logged in on the terminal, the review message that has been automatically associated with the design drawing through the mapping relationship is pushed to the terminal.
[0043] In this way, it is possible to provide a basis for the online collaborative method of the design drawing review process, so that the review opinions for the design drawing (e.g., downstream design drawing) constrained by another design drawing (e.g., upstream design drawing) can be fed back to the personnel related to the other design drawing in a timely and accurate manner, thereby realizing the interconnection and interoperability of the design drawing review process upstream and downstream of the production line, and effectively improving the efficiency of design drawing review. In addition, through automatic association and directional transmission of review messages, an accurate and controllable scope of review opinion communication can be achieved, thereby improving the security in the drawing design process and enhancing the end-to-end traceability of review opinions.
[0044] In addition, in some embodiments of the present application, when associating review messages with upstream design drawings, review opinions proposed for specific parts of the downstream design drawings (such as specific drawing pages, element groups, elements, etc.) can also be associated with corresponding parts in the upstream design drawings, so that upstream designers and other personnel who receive the review opinions can intuitively locate the corresponding positions in the upstream design drawings, thereby further promoting communication between upstream and downstream designers and improving review efficiency.
[0045] For the sake of convenience of explanation, this article will use schematic diagrams and layouts as examples of upstream design drawings and downstream design drawings on a production line, respectively. However, it should be understood that the embodiments of the present application are also applicable to other upstream design drawings and downstream design drawings whose contents correspond to each other, or where one of the design drawings is constrained by another design drawing in other ways.
[0046] Figure 1 A schematic diagram of an example environment 100 in which multiple embodiments of the present application can be implemented is shown. The example environment 100 includes a server 110. It should be understood that, although shown as a single device, the server 110 can also be implemented in any other form suitable for performing corresponding functions, such as multiple centralized devices, distributed devices and / or a system deployed in the cloud, etc.
[0047] In some embodiments, the server 110 may be a device of an EDA online platform operator. The server 110 may host various resources required for running EDA online collaborative design, for example, design tools for various types of design drawings (such as schematics and layouts), version management tools, design drawing data, design drawing inspection data, user data, mapping relationship data between design drawings, association data between design drawings and users, various communication resources, etc.
[0048] In some embodiments, the server 110 may include multiple logical or physical sub-servers that communicate with each other, and each of the sub-servers may support a portion of the functions of the EDA online platform and host associated data, as will be described later in conjunction with Figure 6 The server 110 can support parallel operation of electronic design projects, wherein multiple accounts can be allowed to edit and / or view the same EDA design project at the same time. To achieve this mechanism, the server 110 implements various coordination mechanisms such as version control and message passing to improve design efficiency and reduce design conflicts.
[0049] The environment 100 also includes a terminal 120-1, a terminal 120-2 ..., and a terminal 120-N. For the convenience of description below, in the embodiments of the present application, the terminal 120-1, the terminal 120-2 ..., and the terminal 120-N are collectively or individually referred to as the terminal 120. The terminal 120 can be implemented as various electronic devices such as a personal computer, a smart phone, a laptop computer, a tablet computer, etc., and the embodiments of the present application are not limited by the specific form of the terminal 120.
[0050] The terminal 120 can communicate with the server 110 to access and use the data and / or functions hosted on the server 110. In some embodiments, the terminal 120 can access all or part of the functions on the server 110 via a browser. In such an embodiment, a user can log in to an account with certain permissions on the terminal 120, thereby being allowed to use the corresponding data and / or functions. Depending on the implementation, in some embodiments, it is possible to log in via a unified portal entrance. In other embodiments, it is possible to log in via an online entrance of a specific functional module. For example, a hardware engineer and an interconnect engineer can log in to their accounts via the entrance of a schematic design tool and the entrance of a layout design tool, respectively. Nevertheless, through various coordinations via the server 110, the two can collaborate on different types of design drawings in the same design project, such as schematics and layouts for the same electronic product.
[0051] In some embodiments, the terminal 120 can be a device with an EDA client application installed, and the user can log in via the client. Similarly, depending on the implementation, in some embodiments, it is possible to log in via a unified EDA online platform client. In other embodiments, people in different roles can use different types of clients to log in, but the data they access and operate can be associated and interoperable via the coordination of the server 110. For example, hardware engineers and interconnect engineers can log in to their accounts via the schematic design client and the layout design client, respectively, and perform different operations on different design drawings of the same project. The data updates caused by these operations will be coordinated and synchronized by the server 110.
[0052] As an example, a hardware engineer may log in to account 130-1 on terminal 120-1, and an interconnect engineer may log in to account 130-2 on terminal 120-2. Account 130-1 and account 130-2 may be assigned tasks in the same electronic product design project and given different permissions. For example, account 130-1 may have permissions to use schematic design tools, permissions to add and edit schematics to the project, permissions to view other design drawings in the project, etc.
[0053] For this project, the hardware engineer can first design the schematic diagram 140 via account 130-1. The schematic diagram is a diagram showing the connection relationship between the components on the circuit board, which is used to guide the layout designer to make connections according to the connection relationship of the schematic diagram. After the schematic diagram 140 is submitted to the server 110 via account 130-1, the interconnect engineer can access the schematic diagram 140 via account 130-2, analyze the schematic diagram 140 and consider other restrictions of the circuit board to determine the component position and perform wiring, thereby obtaining the layout 150. The layout 150 is an actual component placement and wiring diagram drawn according to the schematic diagram 140, which is used to guide the installation of components to make the actual circuit board. The schematic diagram 140 and the layout 150 are located upstream and downstream of the same production line, and the downstream layout 150 is subject to the content constraints of the upstream schematic diagram 140.
[0054] In addition, the server 110 may also receive a review message for the schematic 140 or the layout 150 from an account with review permission, which includes review opinions for the corresponding design drawing. For example, the server 110 may receive a review message 160 for the layout 150 from the account 130-3 from the terminal 120-3. The review opinions may be comments on the design drawing or part thereof, indications of errors found in the design drawing, opinions on the optimization of the design drawing, and so on. In some embodiments, the review message may indicate the classification of the review opinions therein, such as whether modification is required, etc. In some embodiments, the review message may indicate the importance or severity of the review opinions therein. The server 110 may perform various actions on the review message 160 according to the method of the embodiments of the present application.
[0055] Figure 1 The devices in the communication may communicate with each other in a wired or wireless manner, and the embodiments of the present application are not limited to a specific communication method. The wired method may include, but is not limited to, optical fiber connection, universal serial bus connection, etc., and the wireless method may include, but is not limited to, cellular mobile communication, Wi-Fi, Bluetooth, point-to-point, etc.
[0056] It should be understood that the architecture and functions in the example environment 100 are described only for exemplary purposes, and do not imply any limitation on the scope of the present application. In addition, other devices, systems or components not shown may also exist in the example environment 100. In addition, the embodiments of the present application may also be applied to other environments with different structures and / or functions. For ease of explanation, the embodiments of the present application will be described below in the context of the server 110 performing actions.
[0057] Reference now Figure 2 , which shows a flowchart of an example inspection method 200 for electronic design automation according to some embodiments of the present application. The example method 200 can be, for example, Figure 1 It should be understood that the method 200 may also include additional actions not shown, and the scope of the present application is not limited in this respect. Figure 1 The method 200 is described in detail with reference to the example environment 100 of FIG.
[0058] At 210, a review message for a first group of elements in a first design is received. For example, the server 110 may receive a review message for a first group of elements in a first design. In some embodiments, the second design may be a PCB layout of an electronic product.
[0059] As a non-limiting example, the first design drawing may be for a first group of elements (here, one or more layout elements) in a layout 150 of an electronic product. The layout 150 is generated according to the content of the schematic 140 upstream of the production line, that is, the content of the layout 150 needs to match the schematic 140. The interconnect engineer may log in using an account 130-2 with relevant permissions (e.g., a layout design task of a corresponding schematic is assigned) to design the layout 150.
[0060] For example, the server 110 may accept a request from the interconnect engineer account 130-2 to visually view the schematic 140. For example, the server 110 may accept a request from the account 130-2 to import the netlist of the schematic 140 for layout design. For example, the server 110 may also allow the account 130-2 to create and edit the layout 150 based on the schematic 140, and associate the layout 150 with the schematic 140 (such as adding it to the same project). The server 110 may store the data related to the design drawing in the data repository it manages.
[0061] When the corresponding design is completed, the account with relevant permissions can review the schematic and add a review message. The server 110 can receive the review message and perform further coordination actions. For example, at 210, the server 110 can receive a review message 160 from the account 130-3, including a review opinion made for the layout 150. In some embodiments, the review process can be started in response to the server 110 receiving a request to create a review task, which will be combined later. Figure 6 Let's describe the overall process of reviewing tasks in more detail.
[0062] At 220, based on a mapping relationship between the first design and the second design, the review message is associated with a second group of elements in the second design. The first group of elements is associated with the second group of elements, and the first design and the second design are different types of designs. For example, the first design and the second design are designs with different levels of detail and / or different perspectives for the same design target (such as an electronic product), such as a principle design and a refined component design, a plane design and a three-dimensional design, and so on. Due to the different types of the two, the first design and the second design can be drawn using different drawing tools and / or stored in different computer-readable formats.
[0063] In some embodiments, the first design drawing is a design drawing at the downstream of the production line relative to the second design drawing, and its content is constrained by the content of the first design drawing. In some embodiments, when the first design drawing is a PCB layout of an electronic product, the second design drawing can be a circuit schematic of the electronic product. For example, the server 110 can associate the inspection message 160 for the first group of elements in the layout 150 received at 210 with the second group of elements in the schematic 140 (here one or more schematic elements, such as devices, networks and / or pins, or all elements in a specific drawing page) based on the mapping relationship between the layout 150 and the schematic 140.
[0064] In some embodiments, the server 110 may associate the review message 160 with the schematic 140 based on the fact that the layout 150 and the schematic 140 are design drawings for the same electronic product (e.g., indicated by annotations, tags, or the engineering to which they belong). For example, the server 110 may add a record of the association between the review message and the schematic 140 in its data repository. For example, the server 110 may create a copy of the review message 160 and store it in association with the schematic 140.
[0065] In some embodiments, during or after the creation of the layout 150, the server 110 may establish a set of mapping rules between the layout 150 and the schematic 140 based on user input and / or using automatic matching techniques. The set of mapping rules may indicate how the layout 150 corresponds to the elements in the schematic 140. Thus, the server 110 may more accurately associate the inspection message 160 with the elements of the corresponding portion in the schematic 140. The accurate matching of the inspection message 160 will be described in more detail later.
[0066] Since the layout 150 is designed based on the schematic 140, some of the problems existing in the layout 150 may be caused by problems existing in the upstream schematic 140. The correction of such problems depends on the processing of the corresponding problems in the schematic 140. Therefore, the opinions on such problems need to be fed back to the account associated with the schematic 140, for example, the account 130-1 of the hardware engineer who designed the schematic 140. In contrast, other problems existing in the layout 150 may be caused by actions related only to the layout (for example, determining the wiring position or selecting the component specifications, etc.). Such corrections do not need to involve modifications to the schematic 140.
[0067] Therefore, in some embodiments, server 110 may determine whether review message 160 is associated with the type of schematic 140 (i.e., schematic type). And, if review message 160 is associated with the type of schematic 140, server 110 will associate review message 160 with the second design drawing. For example, server 110 may provide terminal 120-3 with an option to allow receiving an indication from account 130-3 as to whether review message 160 is related to a schematic. The content of review message 160 may be sent to server 110 together with the indication. Based on the indication that review message 160 is related to a schematic, server 110 may associate review message 160 with schematic 140.
[0068] At 230 , a review message is pushed to the first account associated with the second design. For example, the server 110 may push the review message 160 that has been associated with the schematic 140 at 220 to the account 130 - 1 associated with the schematic 140 .
[0069] exist Figure 1 In the example of FIG. 1 , account 130-1 is an account used by a hardware engineer who designs schematic diagram 140 and has permission to edit schematic diagram 140. In some other embodiments, schematic diagram 140 may also be associated with another account such as a co-designer. In some embodiments, server 110 may push review message 160 to more than one account associated with schematic diagram 140.
[0070] In some embodiments, after receiving the inspection message 160 and associating it with the schematic 140, the server 110 may detect that the account 130-1 is logged in on the terminal 120-1. Therefore, the server 110 may push the inspection message 160 to the terminal 120-1 immediately. In some cases, the account 130-1 is not logged in when the server 110 receives the inspection message 160. The server 110 may record the associated information of the message 160, and may push the message 160 to the terminal where the account 130-1 is logged in when it is detected later that the account 130-1 is logged in.
[0071] Using method 200, inspection opinions on a design drawing (e.g., a downstream design drawing) associated with another design drawing (e.g., an upstream design drawing) can be fed back to personnel related to the other design drawing in a timely and targeted manner within an accurately controllable scope, and can support improved inspection efficiency and improved security in the drawing design process through a controlled message transmission scope.
[0072] After the review message for the constrained design is fed back to the account associated with the constrained design, the account owner can perform subsequent processing according to the review message, and the subsequent processing can also be coordinated by the server 110. Figure 3 , which shows a schematic interaction diagram of a processing process 300 for a design view message according to some embodiments of the present application. Process 300 involves Figure 1 The server 110, the terminal 120-1, the terminal 120-2 and the terminal 120-3 are described. In the example described in the process 300, the layout 150 is taken as an example of a constrained downstream design diagram and the design diagram 140 is taken as an example of an upstream design diagram.
[0073] At 310, the terminal 120-3 pushes a review message 160 for the layout 150 to the server 110, wherein the review message 160 is associated with the first group of elements in the layout 150. The review message may be received via the account 130-3 logged in on the terminal 120-3. At 320, the server 110 associates the received review message 160 with the schematic diagram 140 based on the mapping relationship between the layout 150 and the schematic diagram 140, as described above in conjunction with the method 200.
[0074] Then, at 330, based on the association of the review message 160 with the schematic 140, the server 110 pushes the review message 160 to the account 130-1 logged in at the terminal 120-1 at this time, and the account 130-1 is the account of the designer of the schematic 140 in this example. In some embodiments, the server 110 associates the review message 160 with the schematic 140 only when it is related to the schematic. In this way, the server 110 only pushes the layout review message related to the schematic design to the account of the schematic designer, thereby more accurately pushing the message required by the schematic designer. In addition, at 340, based on the fact that the review message 160 is for the layout 150, the server 110 also pushes the review message 160 to the account 130-2 logged in at the terminal 120-2 at this time, and the account 130-2 is associated with the layout 150, and in this example, it is the account of the designer of the layout 150.
[0075] After receiving the review message 160, the user of the account 130-1 can process the problem described in the review message 160 and reply to the review message 160. At 350, the terminal 120-1 receives the reply message to the review message 160 from the account 130-1 and pushes the reply message to the server 110 at 360.
[0076] At 370, based on the fact that the reply message is a reply to the view message 160 from the account 130-3, the server 110 pushes the view message 160 to the sender account 130-3 of the view message 160. For the sake of illustration, in this example, it is assumed that the account 130-3 is still logged in on the terminal 120-3. Therefore, the server 110 sends the reply message to the terminal 120-3.
[0077] In addition, at 380, based on the mapping relationship between the schematic diagram 140 and the layout, the server 110 associates the reply message with the layout 150. Furthermore, at 390, based on the association of the reply message with the layout 150, the server 110 also pushes the reply message to the terminal logged in to the account associated with the layout 150, which is the terminal 120-2 logged in by the account 130-2.
[0078] In this way, the reply message will be pushed to the initiator of the review message and the associated account of the design drawing that the review message was initially targeted at. Even if the review message 160 targeted by the reply message does not originate from the account 130-2 associated with the layout 150, the reply message will still be pushed to the account 130-2. Since the layout 150 is constrained by the upstream schematic 140, the processing (for example, editing) of the schematic 140 may require the layout 150 to be processed accordingly. In this way, the layout designer who is the owner of the account 130-2 will be promptly notified of the reply message about the processing of the upstream schematic 140, so that the corresponding processing can be carried out in a timely manner for the layout 150.
[0079] In some other embodiments, the initiator of the review message may also be the designer of the downstream design drawing. For example, the designer of layout 150 finds that some elements in his layout have problems that may be caused by design problems in schematic diagram 140. Therefore, the designer of layout 150 can initiate a review message for these elements. This message can be processed according to the embodiments of the present disclosure similarly to other review messages, and the designer of layout 150 will receive a reply message to the review message as the message initiator and the designer of the design drawing. In some embodiments, when it is detected that an account should receive the same reply message due to multiple roles, the server 110 may push the reply message to the account only once.
[0080] It should be understood that process 300 is described only as an example, and process 300 may also include actions not shown or may be related to Figure 3 For example, in addition to delivering the message, the server 110 may also store the message and its association with the design in a data repository of the server 110. For example, the terminal logged into by the relevant account may change, and the server 110 may change the destination of the push message accordingly.
[0081] As described herein in conjunction with method 200, the mapping relationship between layout 150 and schematic diagram 140 may include a set of mapping rules. The set of mapping rules may indicate how layout 150 corresponds to elements in schematic diagram 140. For example, one mapping rule may indicate that a certain portion of layout 150 corresponds to a certain page of schematic diagram 140. For example, another mapping rule may indicate which set of elements in layout 150 corresponds to which set of elements in schematic diagram 140.
[0082] In some such embodiments, when submitting the review message 160, the review expert may indicate (e.g., via an interface option) whether the review message is made for the project, board, layout, or routing of the layout 150. In some embodiments, the review message 160 may more specifically indicate whether the message is for one or more specific components in the layout 150.
[0083] Furthermore, in some embodiments, the server 110 may associate the review message 160 with a specific drawing page in the schematic diagram 140 based on a corresponding mapping rule in the mapping relationship between the design drawing 140 and the layout 150. In this way, when the hardware engineer receives the review message 160 via the account 130-1, he or she may quickly locate the corresponding specific drawing page, thereby improving the efficiency of upstream and downstream collaborative review.
[0084] The server 110 can associate the inspection message 160 for the first group of elements in the layout 150 with the second group of elements in the schematic 140 based on the corresponding mapping rules in the mapping relationship between the design 140 and the layout 150. Thus, the inspection message can be effectively associated with the corresponding elements in the relevant files, so that the designer can easily locate the modification points of the corresponding files for comparison, making it easier to track and repair the problems found in the inspection.
[0085] In some such embodiments, after pushing a review message 160 associated with a first set of elements in the layout 150 to an account 130-1 logged in on the terminal 120-1, the server 120 may cause the review message 160 to be displayed on the interface of the terminal 120-1, for example, as an unread associated review message of the account 130-1. Then, in response to receiving a selection of the review message 160 from the interface (e.g., a mouse click by a user, or a selection of a positioning option), the server 110 may cause a second set of elements in the schematic 140 to be highlighted on the interface. As described above, the second set of elements are elements corresponding to the first set of elements in the layout and are associated with the review message 160.
[0086] To facilitate collaborative work, the schematic designer's account can have the corresponding downstream layout viewing permission, and the layout designer can have the corresponding upstream schematic viewing permission. In some embodiments, the design tools used in the upstream and downstream of the production line can be connected into a tool chain and form a matching relationship with each other, thereby achieving two-way data transfer between tools.
[0087] In some such embodiments, in response to user interaction, the layout 150 may also be displayed together with the schematic diagram 140 on the terminal 120-1 logged in by the account 130-1. On this basis, the hardware engineer can collaboratively view the corresponding diagram elements in the two diagrams, such as the elements associated with the review message 160. In some embodiments, based on the selection of the above-mentioned second group of elements (in the schematic diagram 140) received from the interface of the terminal 120-1, the above-mentioned first group of elements (in the layout 150) may be highlighted on the terminal 120-1 interface (for example, scaling it to the center of the layout display box and / or highlighting it, etc.). For example, when a user selects a group of elements in the schematic diagram 140, the group of colors on the schematic display interface may change color, and the corresponding elements in the layout interface are collaboratively selected and highlighted with increased brightness.
[0088] Similarly, the server 110 can also make the corresponding elements in the schematic 140 collaboratively displayed on the interface based on the selection of elements in the layout 150. In addition, in some embodiments, the server 110 can also provide a similar collaborative selection and display function of multiple associated design drawings to the account 130-2 of the designer of the layout 150. Depending on the role and authority assigned to the account, the interface display for viewing the design drawings through the account may be different, but the underlying data of the schematic 140 and the layout 150 accessed through these accounts are of the same source and can be maintained by the server 110.
[0089] In some embodiments, when a group of elements in the schematic 140 are selected, in order to automatically select the corresponding elements in the layout 150, the server 110 may generate a command for selecting the corresponding elements in the layout 150 based on the selection of the group of elements in the schematic 140. The command may then be passed to a tool component for displaying the layout 150 for execution, thereby achieving highlighting of the corresponding elements in the layout 150.
[0090] Figure 4 An example debugging window 400 for displaying the generated selection command according to some embodiments of the present disclosure is shown. Figure 1 When the schematic diagram 140 and the layout 150 are viewed collaboratively on the terminal 120-1 in FIG. 1 , the debugging window 400 may be displayed together with the schematic diagram 140 and the layout 150 on the terminal 120-1. Figure 1 To describe Figure 4 Examples in .
[0091] In this example, the debug window 400 is a command debug page for the layout 150, which includes a receiving display box 410. In response to receiving the hardware engineer's account 130-1 selecting one or more elements (e.g., devices, networks, and / or pins) in the schematic 140, the server 110 can determine the corresponding elements in the layout 150 according to the relationship between the schematic 140 and the layout 150.
[0092] Then, the server 110 may generate a command for selecting the corresponding elements in the layout 150 and display it in the receiving display frame 410. Furthermore, the server 110 may cause the layout design tool to execute the selection command, thereby realizing the selection of the elements in the display frame (not shown) of the layout 150. For example, the selected corresponding element may be highlighted.
[0093] The debugging window 400 also includes a command sending box 420. In this example, in response to the user inputting a corresponding selection command in the command sending box and clicking Send, the server 110 can pass the command to a function of running a schematic diagram 140 display box (not shown), so that the corresponding element is selected in the schematic diagram 140 to be highlighted.
[0094] By using such a command generation method, the server 110 can realize the collaborative selection of elements between design drawings by providing execution input for the corresponding selection tool without changing the internal functions of the original tool. In some embodiments, a similar command debugging page can also be provided for the schematic tool to achieve the generation and sending and receiving of collaborative selection commands from the perspective of the schematic. For example, the account 120-1 of the hardware engineer and the account 130-1 of the interconnect engineer can be provided with interfaces of different perspectives according to their roles, so that they can collaboratively view multiple design drawings.
[0095] It should be understood that the server 110 is used as the action executor of the EDA online platform for the sake of illustration only. In a specific implementation, the execution logic of some functions can be shared by the terminal of the user intervention platform, so that the terminal becomes an extended part of the EDA online platform. For example, the server 110 can push the latest version of data to the client in response to the client request, so that part of the association selection logic can be executed by the terminal in its pushed local version.
[0096] When the hardware engineer logged into the account 130-1 analyzes and processes the review message 160, or for other reasons, the hardware engineer can update the schematic diagram 140. The update to the schematic diagram 140 is then submitted from the terminal 120-1 to the server 110. Since the content of the layout 150 downstream of the production line is constrained by the schematic diagram 140, the version of the layout 150 no longer matches the updated version of the schematic diagram 140, and needs to be updated accordingly.
[0097] In order to ensure that the layout 150 matches the latest version of the schematic 140, in response to receiving an update to the schematic 140, the server 110 may send a notification to the account 130-2 associated with the layout, indicating that the schematic 140 has been updated. In this way, the interconnect engineer responsible for designing the layout 150 can (for example, when logged in as the account 130-2) be informed of the update of the schematic 140 in a timely manner, regardless of whether the designer of the schematic has sent any message.
[0098] In such an embodiment, the interconnect engineer can view the updated schematic 140 via the account 130-2 and correspondingly update the layout 150. The update to the layout 150 can be submitted to the server 110 from the terminal 120-2. Then, based on the updates of both the schematic 140 and the layout 150, the server 110 can update the mapping relationship between the two design drawings. In this way, the latest mapping relationship between the schematic 140 and the layout 150 can be maintained, thereby avoiding incorrect associations caused by outdated mapping relationships in subsequent review operations.
[0099] Reference now Figure 5, which shows an example architecture 500 of a cloud-native EDA online platform according to some embodiments of the present application, in which the electronic design automation review function according to some embodiments of the present application is implemented. The architecture 500 includes a schematic tool server 510, a layout tool server 520, and a management and collaboration server 530 for electronic design data.
[0100] The schematic tool server 510 can host various design and review tools for EDA schematics, and the layout tool server 520 can host various design and review tools for layouts. EDA users can use the corresponding tools by logging into an account with corresponding permissions, without having to install and maintain these tools on a specific terminal, thus avoiding problems caused by incompatibility between stand-alone operating systems and software versions. The electronic design data management and collaboration server 530 is responsible for managing and coordinating the association and intercommunication between different types of design drawings and review opinions, maintenance and matching of data versions, and targeted instant push of various information. The three servers communicate and interconnect with each other, and can collectively implement the core functions of the EDA online platform. For example, the three servers can collectively implement Figure 1 The functions of the server 110 in.
[0101] The architecture 500 also includes a data repository 540 maintained by the management and collaboration server 530. Various user data, design data, inspection data, and associated data between various data in the EDA design process can be stored in the data repository 540. It should be understood that the data repository 540 is only used as an example of a data storage device for storing data in the EDA design platform, and the data repository 540 itself can also be a cloud-based distributed storage. In other implementations, the data repository in the EDA online platform can also have other distributions, for example, the schematic tool server 510 and the layout tool server 520 can each manage their own data repository.
[0102] Users can log in to the EDA online platform on their fixed or mobile terminals for collaborative design. For example, a hardware engineer can log in to his account via terminal 511 and use a schematic tool to complete a schematic design to generate a netlist, as shown by arrow 521. The netlist data representing the schematic is then submitted to the management and collaboration server 530, and the management and collaboration server 530 stores it in the data repository 540, as shown by arrow 522. In addition, the hardware engineer can also update the created schematic and submit an updated version. The management and collaboration server 530 has a version maintenance function for various design drawings.
[0103] The interconnect engineer can log in to his account via terminal 512 and access the layout tool server 520. After logging in, the interconnect engineer can import the data of the relevant schematic (for example, according to the task list assigned to him) into the layout tool, as shown by arrow 523. In addition, when the schematic is updated, a notification about the update will be pushed to the corresponding interconnect engineer, and the interconnect engineer can import the updated schematic data. In turn, the interconnect engineer can use the layout tool to complete the layout design, as shown by arrow 524. It should be understood that the layout data can also be pushed to the management and collaboration server 530 for storage in the data storage 540, or can be stored in a database hosted by the layout tool server or other data storage device of the EDA online platform, as long as the user of the EDA online platform can access the layout data using an account with permission.
[0104] After the hardware engineer completes the schematic design, the online review process can be started. The review expert assigned the review task can log in to his account via terminal 513 to review the design online. It should be understood that for the sake of clarity, the review expert is shown separately, but in practice, his account can also have the role of drawing designer. The review expert can open the schematic to be reviewed using the schematic tool via his user interface and add a review message for the schematic, as shown by arrow 531.
[0105] After the review message is submitted, the review message is pushed to the management and collaboration server 530 in real time, as indicated by arrow 532. The management and collaboration server 530 can then perform various coordination processes on the review message, such as storing the review message in association with the corresponding schematic version, pushing the review message to, for example, the account of the schematic designer, and so on.
[0106] The hardware engineer can then process the inspection opinions indicated in the inspection message online and reply to the inspection opinions. The reply message can be pushed to the management and collaboration server 530. The management and collaboration server 530 then pushes the reply to the associated account, such as account 513. If necessary, the hardware engineer can also update the schematic diagram and submit the update to the management and collaboration server 530 via terminal 511 for storage.
[0107] After the interconnect engineer completes the layout design according to the schematic diagram, the online collaborative review process for the layout and its corresponding schematic diagram can be started. For the sake of convenience, the account of the review expert assigned with the review task is still taken as an example to log in on the terminal 513. The review expert can use the layout tool to open the layout to be reviewed through its user interface and add a review message for the layout, as shown by arrow 533.
[0108] After the review message is submitted, it is pushed to the management and collaboration server 530 in real time, as shown by arrow 534. The management and collaboration server 530 can then perform various coordination processes on the review message, such as storing the message and pushing the message to the account of the layout designer. And similar to the review message for the schematic diagram above, the layout designer can process the review opinions indicated in the review message.
[0109] In particular, since the layout is designed based on the corresponding upstream schematic, its content is constrained by the schematic. In the review messages for the layout, some comments raise issues that originate from the corresponding schematic, and their treatment depends on the corresponding treatment of the schematic. Therefore, for example, in the previous article about Figure 2 According to the method described above, the management and collaboration server 530 can associate the review message for the layout with the corresponding schematic, and push the review message to the account of the schematic designer via the schematic tool server 520, as shown by arrows 535 and 536. In some embodiments, for example, according to the opinion type selected by the review expert, only the issues related to the schematic design during the layout review process are pushed.
[0110] When the hardware engineer receives the push of the associated view message in the layout view through his account, he can process the schematic problem involved and reply, as shown by arrow 536. The reply message can be pushed to the management and collaboration server 530 via the schematic tool server, and further pushed to the terminal logged in by the account pushed to the interconnect engineer via the layout tool server, as shown by arrows 537 to 539.
[0111] When processing the comments raised in the review message, the hardware engineer can collaboratively view the schematic diagram and layout using the schematic diagram tool and layout tool hosted by the corresponding server on the terminal 511 through the login interface of his account, as described above in conjunction with Figure 3 and Figure 4 If necessary, the hardware engineer can also update the schematic diagram and submit the update to the management and collaboration server 530 for storage via the terminal 511. The management and collaboration server 530 can notify the layout designer's account of the update so that the layout designer can update the layout accordingly.
[0112] As an example implementation structure of a cloud-native EDA online collaborative design and review platform, architecture 500 can provide a cloud-based data base and open up the review quality assurance mechanism between different tools, thereby supporting the online two-way interconnection and intercommunication of design drawings upstream and downstream of the EDA production line. In addition, architecture 500 can also flexibly control the scope of delivering drawings and transmitting review messages, thereby realizing online parallel collaborative review of EDA tools such as schematics and PCB layouts. Compared with the serial review of stand-alone EDA tools, this cloud-based collaborative review mechanism solves the problems of reliance on offline meeting reviews and inefficiency, which can save review time and improve the quality of end-to-end design reviews.
[0113] It should be understood that the structure and components of the architecture 500 are shown only as examples, and in various embodiments, the components therein may be combined, split or omitted, and the architecture 500 may also include other functional components not shown. In addition, the EDA online design and inspection functions according to the embodiments of the present application may also be implemented in other arrangements.
[0114] Figure 6 The workflow 600 of an example design drawing review operation according to some embodiments of the present application is shown. The workflow can be performed in, for example, Figure 5 The EDA online design platform shown in the figure is executed. As mentioned above, the EDA online design platform can be regarded as Figure 1 For illustration purposes, the following will combine Figure 5 The functions of the EDA online platform in the workflow are described Figure 6 .
[0115] At 610, an online inspection task for a schematic or layout can be created. In response to a user instruction, the EDA online platform can create an inspection task. For example, the EDA online platform can allow a user to create a corresponding type of inspection task from a schematic tool, a layout tool, or a separate menu bar.
[0116] At 620, the created online inspection task can be configured. For example, according to the content of the inspection task, a suitable inspection expert can be assigned to the inspection task. In this step, the EDA online platform can allow the user to enter or select the inspection expert's account from a list, and push a notification about the inspection task to the corresponding account after receiving the submitted inspection task. For example, the EDA online platform can assist the user in configuring the inspection expert, such as providing the user with recommendations of potential inspection experts based on schematic norms and similar single board defect / problem cases.
[0117] At 630, the inspection message added by the inspection expert can be received and pushed. The inspection message can be initiated, for example, by the inspection expert's account in the created inspection task. For example, the EDA online platform can provide a right-click menu to the drawing area of the user interface for the inspection expert to add an inspection message. For example, the EDA online platform can support the specification of projects, boards, design drawings, or pages to create hierarchical inspection tasks. For example, the EDA online platform can allow user input to specify the attributes of the inspection message, such as the reply person and severity. For example, the EDA online platform can support adding multiple inspection messages for the same inspection object. For example, the EDA online platform can also support users with corresponding permissions to modify and delete inspection messages.
[0118] The EDA online platform can automatically associate the review message with the location information such as the object name ID and page number. Furthermore, as mentioned above, the EDA online platform can associate the elements of the review message for one design drawing (e.g., layout) with the corresponding elements of another design drawing (e.g., the corresponding schematic diagram) based on the mapping relationship between the upstream and downstream design drawings. After the review message is submitted, the EDA online platform can push the review message to the account of the designated respondent and the designer of the associated drawing, such as in the form of a homepage to-do, email, or instant message.
[0119] At 640, the review message may be displayed to the recipient for processing by the recipient. The EDA online platform may allow the user to click on the review message in its review list to locate the graphic element corresponding to the review message (e.g., PCB signal link, component, etc.). As described above, during the initiation, viewing, and replying of the review message, the EDA online platform may allow the user to collaboratively view the graphic elements corresponding to the review message in the display frames of multiple design drawings. If necessary, the designer of the schematic or layout may modify the corresponding design drawing according to the review message.
[0120] Then, at 650, the reply to the review message can be received and pushed as a reply message. The recipient of the review message can reply to the opinions in the review message to describe the processing actions or plans for the opinions, and / or the explanations and clarifications for the opinions. After the reply message is submitted, the EDA online platform can push the reply message to the sender of the review message. As described above, the EDA online platform can also push the reply message to relevant designers other than the sender based on the mapping relationship between the design drawings to facilitate subsequent processing. For example, after the schematic designer replies to the opinions related to the schematic that are pushed in association with the layout review task, the reply can be pushed to the corresponding layout designer.
[0121] During the process of creating, transmitting and replying to review messages, the EDA Online Platform can also record and update the various states and properties of review messages, such as reply status, whether modified, etc. The EDA Online Platform can also sort the generation time of review messages and allow users to filter review messages by specifying rounds, review experts, and page number options.
[0122] In some embodiments, multiple review messages can be initiated in a created review task, and the processing flow of the processing task of each review message can be closed individually. In response to receiving an instruction to close the processing flow of a review message, EDA can close the processing flow of the review message. For example, an expert or other authorized user who initiates a review message can click a corresponding button on its interface to end the processing flow of a certain review message. After receiving a closing instruction, the EDA online platform can close the processing flow of the review message. For example, a closed message can be marked as closed, and / or no longer allowed to be replied to, etc.
[0123] At 660, the review task can be ended. The initiator of the review task can combine the review expert's opinions and the designer's replies, etc., and instruct the EDA online platform to end the review task according to the review results, such as by clicking a corresponding end button. In some embodiments, for the review task, the EDA online platform can also perform classification statistics of review messages and reply messages and export of review reports. In the EDA platform, multiple rounds of review tasks can be started in batches and in parallel.
[0124] In some embodiments, in response to receiving an instruction to end a review task, the EDA online platform may determine whether there are unprocessed review messages in the review task. When it is determined that there are unprocessed review messages in the review task, the EDA online platform may generate a prompt about the unprocessed review message. In this way, it can be ensured that all review messages in the review task are processed before the task ends. For example, depending on the specific implementation, an unprocessed review message may be a message that has not been replied to and the processing flow has not been hard closed.
[0125] The EDA online platform can also perform actions to use the design drawings for the next stage of the production line after review, thereby starting the next stage of the production line. Taking the layout as an example, such actions can be submitting the layout as a layout category to be taped out, sending corresponding notifications to the accounts of technicians at the next stage of the production line and opening access to the layout, etc.
[0126] In some embodiments, in response to receiving an instruction to start the next stage of a production line for a design (e.g., a layout), the EDA online platform can determine whether there are unprocessed review messages for the design. When it is determined that there are unprocessed review messages for the design, the EDA online platform can generate a prompt about the unprocessed review message. In this way, it can be ensured that all messages indicating potential problems are processed before the design is continued to be used for production, thereby avoiding the design that still has problems flowing to the next production stage.
[0127] Workflow 600 provides guidance for a collaborative review workflow that can be achieved according to an embodiment of the present application, in which various online collaboration functions according to an embodiment of the present application can be used to facilitate the completion of a review task.
[0128] Figure 7 : shows a schematic block diagram of an electronic design automation inspection system 700 according to some embodiments of the present application. The system 700 may be implemented as or included in the following Fig. 9 The system 700 may include multiple modules for performing, for example, Figure 2 The corresponding actions in method 200 discussed in .
[0129] like Figure 7 As shown, the system 700 includes a receiving module 710, an associating module 720, and a pushing module 730. The receiving module 710 is configured to receive a review message for a first group of elements in a first design drawing. The associating module 720 is configured to associate the review message with a second group of elements in the second design drawing based on a mapping relationship between the first design drawing and the second design drawing, wherein the first group of elements and the second group of elements are associated, and the first design drawing and the second design drawing are different types of design drawings. The pushing module 730 is configured to push the review message to a first account associated with the second design drawing.
[0130] In some embodiments, the second design drawing is a circuit schematic of an electronic product, and the first design drawing is a printed circuit board layout of the electronic product.
[0131] In some embodiments, system 700 also includes: a display module, configured to cause a review message to be displayed on an interface of a first terminal logged in by a first account; and a first highlight module, configured to cause a second group of elements in a second design drawing to be highlighted on the interface in response to receiving a selection of a review message from the interface.
[0132] In some embodiments, a first design diagram is also displayed on the interface, and the system 700 further includes: a second highlighting module configured to highlight the first group of elements on the interface based on a selection of the second group of elements received from the interface.
[0133] In some embodiments, system 700 also includes: a reply receiving module, configured to receive a reply message to a review message; a reply association module, configured to associate the reply message with the first design drawing based on a mapping relationship; and a reply push module, configured to push the reply message to the second account and the third account in response to the reply message being associated with the first design drawing, the second account being associated with the first design drawing, and the review message coming from the third account.
[0134] In some embodiments, the system 700 further includes: a closing module configured to close the processing flow of the viewing message in response to receiving an instruction to close the processing flow of the viewing message.
[0135] In some embodiments, the review message is initiated in a created review task, and the system 700 also includes: a first determination module, configured to determine whether there are any unprocessed review messages in the review task in response to receiving an indication to end the review task; and a first generation module, configured to generate a first prompt about the unprocessed review message when it is determined that there are unprocessed review messages in the review task.
[0136] In some embodiments, system 700 also includes: a second determination module, configured to determine whether there is an unprocessed review message for the first design drawing in response to receiving an indication to start the next stage of the production line for the first design drawing; and a second generation module, configured to generate a second prompt about the unprocessed review message when it is determined that there is an unprocessed review message for the first design drawing.
[0137] In some embodiments, system 700 also includes: a notification module, configured to, in response to receiving a first update to the second design drawing, issue a notification to a second account associated with the first design drawing, the notification indicating that the second design drawing has been updated; an update receiving module, configured to receive a second update to the first design drawing from the second account; and an update module, configured to update the mapping relationship between the first design drawing and the second design drawing based on the first update and the second update.
[0138] The receiving module 710, the associating module 720, and the pushing module 730 can all be implemented by software or by hardware. As an example, the implementation of the receiving module 710 is described below. Similarly, the implementation of the associating module 720 and the pushing module 730 can refer to the implementation of the receiving module 710.
[0139] As an example of a software functional unit, the receiving module 710 may include code running on a computing instance. The computing instance may be at least one of a physical host (computing device), a virtual machine, a container, and other computing devices. Furthermore, the computing device may be one or more. For example, the receiving module 710 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the application may be distributed in the same region or in different regions. The multiple hosts / virtual machines / containers used to run the code may be distributed in the same AZ or in different AZs, each AZ including a data center or multiple data centers with similar geographical locations. Typically, a region may include multiple AZs.
[0140] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed in the same VPC or in multiple VPCs. Usually, a VPC is set up in a region. For cross-region communication between two VPCs in the same region and between VPCs in different regions, a communication gateway must be set up in each VPC to achieve interconnection between VPCs through the communication gateway.
[0141] As an example of a hardware functional unit, the receiving module 710 may include at least one computing device, such as a server, etc. Alternatively, the receiving module 710 may also be a device implemented using ASIC or PLD, etc. The PLD may be implemented using CPLD, FPGA, GAL or any combination thereof.
[0142] The multiple computing devices included in the receiving module 710 can be distributed in the same region or in different regions. The multiple computing devices included in the receiving module 710 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the receiving module 710 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0143] The embodiment of the present application also provides a computing device 800. Figure 8 As shown, the computing device 800 includes: a bus 802, a processor 804, a memory 806, and a communication interface 808. The processor 804, the memory 806, and the communication interface 808 communicate through the bus 802. The computing device 800 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in the computing device 800.
[0144] The bus 802 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 The bus 804 is represented by only one line, but does not mean that there is only one bus or one type of bus. The bus 804 may include a path for transmitting information between various components of the computing device 800 (eg, the memory 806, the processor 804, and the communication interface 808).
[0145] The processor 804 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).
[0146] The memory 806 may include a volatile memory, such as a random access memory (RAM). The processor 804 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).
[0147] The memory 806 stores executable program codes, and the processor 804 executes the executable program codes to respectively implement the functions of the aforementioned receiving module 710, the association module 720, and the push module 730, thereby implementing, for example, the method 200. That is, the memory 806 may store instructions for the methods and functions involving the server 110 in any of the above embodiments.
[0148] The communication interface 808 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 800 and other devices or communication networks.
[0149] The embodiment of the present application also provides a computing device cluster 1000. The computing device cluster includes at least one computing device. The computing device can 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 can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0150] like Fig. 9 As shown, the computing device cluster includes at least one computing device 800. The memory 806 in one or more computing devices 800 in the computing device cluster may store the same instructions for executing the methods and functions involving the server 110 in any of the above embodiments.
[0151] In some possible implementations, the memory 806 of one or more computing devices 800 in the computing device cluster may also respectively store partial instructions for executing the methods and functions of the server 110 in any of the above embodiments. In other words, the combination of one or more computing devices 800 may jointly execute instructions for executing the methods and functions of the server 110.
[0152] It should be noted that the memory 806 in different computing devices 800 in the computing device cluster may store different instructions, which are respectively used to execute part of the functions of the apparatus 700. That is, the instructions stored in the memory 806 in different computing devices 800 may implement the functions of one or more modules or sub-modules in the receiving module 710, the associating module 720, and the pushing module 730 (and additional modules in some embodiments).
[0153] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig.10 A possible implementation 1000 is shown. Fig.10 As shown, two computing devices 800A and 800B are connected via a network 1010. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, for example, the memory 806 in the computing device 800A stores instructions for executing the functions of the receiving module 710 and the associating module 720. At the same time, the memory 806 in the computing device 800B stores instructions for executing the functions of the pushing module 730.
[0154] Fig.10 The connection method between the computing device clusters shown may be that considering that the method provided in this application regarding the server 110 may require storage of a large amount of data and intensive computing, it is considered that the functions implemented by the push module 730 are handed over to the computing device 800B for execution.
[0155] It should be understood that Fig.10 The functions of the computing device 800A shown in the figure can also be completed by multiple computing devices 800. Similarly, the functions of the computing device 800B can also be completed by multiple computing devices 800. The embodiment of the present application also provides a computer program product including instructions, which, when running on a computer, enables the computer to execute the method and function involving the server 110 in any of the above embodiments.
[0156] An embodiment of the present application further provides a computer-readable storage medium having computer instructions stored thereon. When a processor executes the instructions, the processor executes the methods and functions involving the server 110 in any of the above embodiments.
[0157] Generally, various embodiments of the present application can be implemented in hardware or dedicated circuits, software, logic, or any combination thereof. Some aspects can be implemented in hardware, while other aspects can be implemented in firmware or software, which can be performed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of the present application are shown and described as block diagrams, flow charts, or using some other graphical representations, it should be understood that the boxes, devices, systems, techniques, or methods described herein can be implemented as, for example, non-limiting examples, hardware, software, firmware, dedicated circuits or logic, general hardware or controllers or other computing devices, or some combination thereof.
[0158] The present application also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer executable instructions, such as instructions included in a program module, which are executed in a device on a real or virtual processor of the target to perform the process / method as described above with reference to the accompanying drawings. Typically, program modules include routines, programs, libraries, objects, classes, components, data structures, etc. that perform specific tasks or implement specific abstract data types. In various embodiments, the functions of program modules can be combined or divided between program modules as needed. Machine executable instructions for program modules can be executed in local or distributed devices. In distributed devices, program modules can be located in local and remote storage media.
[0159] The computer program code for implementing the method of the present application can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device, so that the program code, when executed by the computer or other programmable data processing device, causes the function / operation specified in the flow chart and / or block diagram to be implemented. The program code can be executed completely on a computer, partially on a computer, as an independent software package, partially on a computer and partially on a remote computer or completely on a remote computer or server.
[0160] In the context of the present application, computer program code or related data may be carried by any appropriate carrier to enable a device, apparatus or processor to perform the various processes and operations described above. Examples of carriers include signals, computer readable media, and the like. Examples of signals may include electrical, optical, radio, acoustic or other forms of propagation signals, such as carrier waves, infrared signals, and the like.
[0161] A computer-readable medium may be any tangible medium containing or storing a program for or related to an instruction execution system, apparatus or device, or a data storage device such as a data center containing one or more available media. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared or semiconductor system, apparatus or device, or any suitable combination thereof. More detailed examples of computer-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0162] In addition, although the operation of the method of the present application is described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in this specific order, or that all the operations shown must be performed to achieve the desired result. On the contrary, the steps depicted in the flow chart can change the order of execution. Additionally or alternatively, some steps can be omitted, multiple steps can be combined into one step for execution, and / or one step can be decomposed into multiple steps for execution. It should also be noted that the features and functions of two or more devices according to the present application can be embodied in one device. Conversely, the features and functions of a device described above can be further divided into being embodied by multiple devices.
[0163] The implementations of the present application have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed implementations. Many modifications and changes will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The choice of terms used herein is intended to explain the principles of the implementations, practical applications, or improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the various implementations disclosed herein.
Claims
1. A review method for electronic design automation, characterized in that: The method comprises: Receiving a view message for a first group of elements in a first design drawing; Based on a mapping relationship between the first design and the second design, associating the inspection message with a second group of elements in the second design, the first group of elements and the second group of elements are associated, and the first design and the second design are designs of different types; and The review message is pushed to a first account associated with the second design drawing.
2. The method according to claim 1, characterized in that: The second design drawing is a circuit schematic diagram of an electronic product, and the first design drawing is a printed circuit board layout of the electronic product.
3. The method according to claim 1, characterized in that The method further comprises: causing the review message to be displayed on an interface of a first terminal logged in by the first account; and In response to receiving a selection of the view message from the interface, the second group of elements in the second design are highlighted on the interface.
4. The method according to claim 3, characterized in that: The first design drawing is also displayed on the interface, and the method further includes: Based on a selection of the second group of elements received from the interface, the first group of elements is caused to be highlighted on the interface.
5. The method according to claim 1, characterized in that The method further comprises: receiving a reply message to the inspection message; Based on the mapping relationship, associating the reply message with the first design drawing; and In response to the reply message being associated with the first design drawing, the reply message is pushed to a second account and a third account, the second account being associated with the first design drawing, and the review message coming from the third account.
6. The method according to claim 1, characterized in that The method further comprises: In response to receiving an instruction to close the process of viewing the message, the process of viewing the message is closed.
7. The method according to claim 1, characterized in that The inspection message is initiated in a created inspection task, and the method further includes: In response to receiving an instruction to end the viewing task, determining whether there is an unprocessed viewing message in the viewing task; and When it is determined that the unprocessed viewing message exists in the viewing task, a first prompt about the unprocessed viewing message is generated.
8. The method according to claim 1, characterized in that The method further comprises: In response to receiving an indication to start a next stage of the production line for the first design, determining whether there is an unprocessed review message for the first design; and When it is determined that there is the unprocessed view message for the first design drawing, a second prompt regarding the unprocessed view message is generated.
9. The method according to claim 1, characterized in that: The method further comprises: In response to receiving a first update to a second design, issuing a notification to a second account associated with the first design, the notification indicating that the second design has been updated; receiving a second update to the first design from the second account; and Based on the first update and the second update, the mapping relationship between the first design diagram and the second design diagram is updated.
10. An inspection system for electronic design automation, characterized in that: include: A receiving module, configured to receive a review message for a first group of elements in a first design diagram; an associating module configured to associate the inspection message with a second group of elements in the second design drawing based on a mapping relationship between the first design drawing and the second design drawing, the first group of elements and the second group of elements being associated, and the first design drawing and the second design drawing being different types of design drawings; as well as The push module is configured to push the review message to a first account associated with the second design drawing.
11. The system according to claim 10, characterized in that The second design drawing is a circuit schematic diagram of an electronic product, and the first design drawing is a printed circuit board layout of the electronic product.
12. The system according to claim 10, characterized in that Also includes: A display module, configured to display the review message on an interface of a first terminal logged in by the first account; as well as The first highlighting module is configured to highlight the second group of elements in the second design drawing on the interface in response to receiving a selection of the viewing message from the interface.
13. The system according to claim 12, characterized in that The first design drawing is also displayed on the interface, and the system further includes: The second highlighting module is configured to highlight the first group of elements on the interface based on a selection of the second group of elements received from the interface.
14. The system according to claim 10, characterized in that Also includes: A reply receiving module, configured to receive a reply message to the inspection message; a reply associating module, configured to associate the reply message with the first design drawing based on the mapping relationship; as well as The reply push module is configured to push the reply message to a second account and a third account in response to the reply message being associated with the first design drawing, the second account being associated with the first design drawing, and the review message coming from the third account.
15. The system according to claim 10, characterized in that Also includes: The closing module is configured to close the processing flow of the viewing message in response to receiving an instruction to close the processing flow of the viewing message.
16. The system according to claim 10, characterized in that The inspection message is initiated in a created inspection task, and the system further includes: A first determining module is configured to determine whether there is an unprocessed inspection message in the inspection task in response to receiving an instruction to end the inspection task; and The first generating module is configured to generate a first prompt about the unprocessed viewing message when it is determined that the unprocessed viewing message exists in the viewing task.
17. The system according to claim 10, characterized in that Also includes: a second determination module configured to determine whether there is an unprocessed review message for the first design drawing in response to receiving an instruction to start a next stage of the production line for the first design drawing; as well as The second generating module is configured to generate a second prompt about the unprocessed viewing message when it is determined that there is the unprocessed viewing message for the first design drawing.
18. The system according to claim 10, characterized in that Also includes: a notification module configured to, in response to receiving a first update to a second design, issue a notification to a second account associated with the first design, the notification indicating that the second design has been updated; an update receiving module, configured to receive a second update to the first design drawing from the second account; as well as An updating module is configured to update the mapping relationship between the first design diagram and the second design diagram based on the first update and the second update.
19. A computing device cluster, characterized in that: comprising at least one computing device, each computing device comprising 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 9.
20. A computer-readable storage medium, characterized in that: The method comprises computer program instructions, which, when executed by a computing device cluster, perform the method according to any one of claims 1 to 9.
21. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster is caused to perform the method according to any one of claims 1 to 9.