A method for implementing EDA models by dividing Nets according to connected domains
By screening valid data and using the breadth-first traversal algorithm to identify the conductor connectivity network, combined with manual operations, the problem of automatic and manual grouping of Nets in the EDA model is solved, the automatic identification and grouping of conductor connectivity is realized, and the efficiency and accuracy of model checking are improved.
Patent Information
- Application Number
- CN202311309361.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-10
- Publication Date
- 2025-09-26
- Estimated Expiration
- 2043-10-10
AI Technical Summary
Existing EDA models are not flexible and comprehensive enough in terms of automatic and manual Nets segmentation functions, and cannot effectively identify and handle open circuit and short circuit problems in the model.
By screening valid data, using the breadth-first traversal algorithm to identify conductors and form a connected network, deduplication and merging of Nets are performed. Combined with manual operations, Nets are added, merged, and deleted, while keeping the original type and name unchanged, and the Net attributes and colors of components are updated.
It realizes automatic identification and grouping of model conductor connectivity, supports manual setting of connectivity domains, assists in checking and judging model data, clearly displays open or short circuit conditions, and improves design efficiency.
Smart Images

Figure CN117217024B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a field, and in particular to a method for implementing an EDA model by dividing it into Nets according to connected domains. Background Art
[0002] Netting by connected domains is a key feature in EDA model data simulation. It automatically identifies conductors, and multiple conductors that are in contact are identified as a single net. Designers can design and verify electronic device connectivity by highlighting, changing net colors, and hiding nets. With tens of thousands of EDA models for electronic devices, the netting feature greatly helps designers identify connected networks within the model, check for opens and shorts, and accelerate product launch. Hermes, the 3D electromagnetic field simulation software from CoreHe, offers excellent support for this functionality, not only automatically sorting nets but also creating, deleting, and merging nets. Automatic netting uses a breadth-first traversal algorithm to rapidly calculate the structural relationships between electronic device traces, pins, pads, drills, vias, and shapes, forming a network of nets. It then removes duplicates and merges them, ensuring that the original net types (ground, power, and signal) remain unchanged. The result is a group of independent connected nets, making it easy for designers to review and design. Creating, deleting, and merging Nets supports manually adding Nets, deleting existing Nets structures, and merging two or more existing Nets to form a Nets connected network group.
[0003] Existing technologies sometimes only support automatic net division or manual net addition, lacking flexibility and comprehensiveness. Hermes, the 3D electromagnetic field simulation software from CoreHe, supports automatic net division of EDA model data, automatically checking for connected domains within the model, and providing methods for detecting open and short circuits. If a model's automatic net division splits into two or more nets, which should be a single connected net, this indicates an open circuit. If two or more connected nets are automatically divided into a single net, this indicates a short circuit. Furthermore, Hermes allows users to show and hide each net individually, change its color, add, delete, and merge nets, and easily zoom in and view connected nets. These features eliminate the need for users to individually determine the material type of electronic components or zoom in on conductors to determine if two conductors are connected. Instead, the model automatically determines the conductors and divides the connected nets into single, single operations, while preserving the original net types and names, greatly facilitating design. Summary of the Invention
[0004] In view of the above problems, the present invention is proposed to provide a method for implementing the division of EDA models into Nets according to connected domains, which overcomes the above problems or at least partially solves the above problems.
[0005] According to one aspect of the present invention, a method for implementing an EDA model by dividing it into Nets according to connected domains is provided, the method comprising:
[0006] Step S1: Screening valid data;
[0007] Step S2: traverse the valid data;
[0008] Step S3: Deduplication and merging of Nets;
[0009] Step S4: Determine whether the original Nets exists. If yes, go to step S5; otherwise, go to step S6;
[0010] Step S5: Use the original Nets data to set the data of the automatic Nets division;
[0011] Step S6: Setting the sub-Nets data that has not been set according to the rules;
[0012] Step S7: Update the Net attributes and colors of the components and update the view.
[0013] Optionally, the step S1: screening valid data specifically includes: screening valid data according to material type, and adding only when the material is a conductor to the set S1 to be searched.
[0014] Optionally, the step S2: traversing the valid data specifically includes:
[0015] Step S21: traverse the valid data;
[0016] Step S22: Determine whether the valid data has been searched. If so, return to step S2; otherwise, continue to step S4;
[0017] Step S23: adopt BFS breadth-first traversal;
[0018] Step S24: Add to the list of automatically divided Nets;
[0019] Step S25: Determine whether the traversal operation is completed. If so, execute step S3; otherwise, continue back to step S2.
[0020] Optionally, the step S3: performing deduplication and merging of Nets specifically includes: operations of adding, merging and deleting Nets.
[0021] Optionally, the newly added Net specifically includes:
[0022] The user manually adds a Net group and specifies the Net name and type;
[0023] Select the target structure, specify the Net group of the target structure as a newly added Net, and add a connected domain.
[0024] Optionally, the operation of merging Nets specifically includes: a user can manually merge two or more Nets into one Net to form a connected domain.
[0025] Optionally, the operation of deleting Nets allows the user to delete Nets in batches, and delete them from the design drawing together with the electronic components.
[0026] The present invention provides a method for implementing the division of EDA models into Nets according to connected domains, the method comprising: step S1: screening valid data; step S2: traversing the valid data; step S3: deduplicating and merging Nets; step S4: determining whether original Nets exist, and if so, executing step S5; otherwise, executing step S6; step S5: setting the data for automatically divided Nets using the original Nets data; step S6: setting the unset divided Nets data according to the rules; step S7: updating the Net attributes and colors of the components and updating the view. The method automatically identifies and groups the conductor connectivity of the model, and also allows for manual setting of connected domain groups, merging, deleting, and adding connected domains. This assists in the inspection and judgment of model data.
[0027] The above description is only an overview of the technical solution of the present invention. In order to more clearly understand the technical means of the present invention, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of the present invention more obvious and easy to understand, the specific implementation methods of the present invention are specifically listed below. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.
[0029] Figure 1 A flowchart of a method for implementing an EDA model that divides Nets according to connected domains provided by an embodiment of the present invention;
[0030] Figure 2 A schematic diagram of a breadth-first search process according to an embodiment of the present invention;
[0031] Figure 3 A schematic diagram of setting automatic Nets data using original Nets data provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0032] Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. Rather, these embodiments are provided to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art.
[0033] The terms "comprises" and "comprising" and any variations thereof in the description, embodiments, claims and drawings of the present invention are intended to cover non-exclusive inclusions, for example, including a series of steps or units.
[0034] The technical solution of the present invention is further described in detail below with reference to the accompanying drawings and embodiments.
[0035] like Figure 1 As shown in FIG, a method for implementing an EDA model by dividing Nets according to connected domains includes:
[0036] Step S1: Screening valid data;
[0037] Step S2: traverse the valid data;
[0038] Step S3: Deduplication and merging of Nets;
[0039] Step S4: Determine whether the original Nets exists. If yes, go to step S5; otherwise, go to step S6;
[0040] Step S5: Use the original Nets data to set the data of the automatic Nets division;
[0041] Step S6: Setting the sub-Nets data that has not been set according to the rules;
[0042] Step S7: Update the Net attributes and colors of the components and update the view.
[0043] Automatic Nets operation: Filter valid data according to material type. Only when the material is a conductor, add it to the set S1 to be searched, traverse each element in the set S1, and use the breadth-first traversal algorithm to find all connected traces, pins, pads, drills, vias, and shapes to form nets.
[0044] Figure 2This is a diagram of the search process for a breadth-first traversal algorithm. Data S1 contains 16 device data items: A, B, C, D, E, ..., O, P. To avoid repeated searches and improve algorithm efficiency, previously searched data is marked as found. For example, starting the search from A, data A is added to the queue to be searched, QueueKeys. A loop then checks whether there are any elements in QueueKeys. If there are no elements, the search starting from A has concluded. If there are elements, the search is incomplete, and there are still contact structures to be searched.
[0045] The specific process is as follows:
[0046] 2.1 Extract data A from the queue to be found and find data A, B, and C connected to A. Data A is now marked as found and added to the already found dataset, AlreadySet. Data B and C are determined not to have been found, meaning they do not exist in AlreadySet. Therefore, data B and C are added to the queue to be found, QueueKeys. At this point, element A remains in AlreadySet, and elements B and C remain in QueueKeys.
[0047] 2.2 Continue to retrieve data B from the queue to be searched, QueueKeys, and find data B, D, and E whose material type is conductor. Data B is now marked as found and added to the already found dataset, AlreadySet. Check data D and E. If they do not exist in AlreadySet, add them to the queue to be searched, QueueKeys. At this point, AlreadySet contains elements A and B, and QueueKeys contains elements C, D, and E.
[0048] 2.3 Continuing to retrieve data C from the queue to be found, QueueKeys finds no other elements that touch C. Data C is now marked as found, removed from the queue to be found, and added to the already found dataset, AlreadySet. AlreadySet now contains elements A, B, and C, and QueueKeys contains elements D and E.
[0049] 2.4 Continue to retrieve data D from the queue to be searched, QueueKeys, and find data D, B, and F whose material type is conductor. Data D is now marked as found and added to the already found dataset, AlreadySet. Check data B and F. If data F does not exist in AlreadySet, add data F to the queue to be searched, QueueKeys. Data B has already been searched, so no further data processing is performed. At this point, AlreadySet contains elements A, B, C, and D, and QueueKeys contains elements E and F.
[0050] 2.5 Continue to retrieve data E from the queue to be searched, QueueKeys, and find data E, B, and F whose material type is conductor. Data E is now marked as found and added to the already found dataset, AlreadySet. Check data B and F. If data F does not exist in AlreadySet, add data F to the queue to be searched, QueueKeys. Data B has already been searched, so no further data processing is performed. At this point, AlreadySet contains elements A, B, C, D, and E, and QueueKeys contains element F.
[0051] 2.6 Continue to retrieve data F from the queue to be searched, QueueKeys, and find data F, D, and E whose material type is conductor. Data F is now marked as found and added to the already found data set, AlreadySet. Data D and E are already in AlreadySet, so no further data processing is performed. At this point, the remaining elements in AlreadySet are A, B, C, D, E, and F, and there are no remaining elements in QueueKeys.
[0052] After steps 2.1 to 2.6, the final result of the search starting from A in S1 is to find a connection network AutoNet1 formed by the six data A to F.
[0053] S1 contains 16 elements. The previous step has already searched for data A. When searching for the remaining elements, we find that elements B, C, D, E, and F have all been searched and can be skipped, improving efficiency and shortening search time. The following search, following the method in step 2, can find AutoNet2, AutoNet3, and AutoNet4.
[0054] Merge and deduplicate AutoNet1, AutoNet2, AutoNet3, and AutoNet4. If two nets share common elements, merge them into a single net. The resulting network is a connected network with no common elements between the nets. Each auto-partitioned net contains a component list, DataListAuto. Create a mapping table, MapAuto, between the auto-partitioned nets and the component list, DataListAuto.
[0055] If the model already has Nets data, the original Nets type and name must remain unchanged after automatic Net division. The original Nets network is recorded as NetList. Each original Net contains a component list DataList. Create a mapping table MapOld between the original Nets and the component list DataList. Use the original Nets data NetList to set the MapAuto data. The specific steps are as follows:
[0056] 5.1 Figure 3 This is a diagram of the original Net and the newly generated data from the automatically sorted Net. MapOld is traversed, and for each original Net, its corresponding DataList is checked to see if it contains any element in the DataListAuto of the automatically sorted Nets. If so, a mapping relationship is established between the original Net and the automatically sorted Net. If multiple DataListAuto elements of the automatically sorted Net are included, the one with the largest number of DataListAuto elements is selected.
[0057] like Figure 3 In the example, each original Net eventually has a corresponding new Net, and the generated mapping data contains key-value pairs of Net1-AutoNet1, Net2-AutoNet2, and Net3-AutoNet2. The mapping table MapOldAuto is constructed based on these mapping relationships.
[0058] 5.2 Traverse NetList and find the corresponding automatic subnet through MapOldAuto. Set the name, type, and color information of the original net to the automatic subnet. If the automatic subnet has been set, it will not be overwritten. Figure 2 In the example, AutoNet1 will be set to be consistent with the name, type, color and other data of Net1, and AutoNet2 will be set to be consistent with the data of Net2.
[0059] 5.3 Traverse the automatically assigned Net data using MapAuto. If the Net has already been set up in the previous step and no Net with the same name exists, no data modification is required. Otherwise, the automatically assigned Net will be named and typed. The naming convention is "unnamed-" followed by an auto-incrementing numeric suffix to ensure uniqueness. The type is uniformly set to Signal.
[0060] 5.4 Finally, according to the results of the automatic Net data setting based on the original Nets data, the color and Net attributes of the components are uniformly modified and the design view is updated.
[0061] 6. Add, Merge, and Delete Nets: Adding a Net manually adds a Net group, specifies the Net name and type, selects the target structure, and specifies the newly added Net group as the target structure's Net group. This creates a new connected domain. Merging Nets combines two or more Nets into a single Net, creating a connected domain. Deleting Nets allows you to delete Nets in batches, removing them from the design view along with the electronic components.
[0062] Beneficial Effects: This invention automatically identifies and groups the connectivity of conductors in a model. It also allows for manual grouping of connected domains, merging, deleting, and adding connected domains. This assists in the inspection and judgment of model data. It provides a clear and intuitive display of open or short circuit conditions in the model, giving designers a clear understanding. This eliminates the need to inspect and judge each component individually in complex model designs.
[0063] The above specific implementation methods further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above are only specific implementation methods of the present invention and are not intended to limit the scope of protection of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the scope of protection of the present invention.
Claims
1. A method for implementing an EDA model by dividing it into Nets according to connected domains, characterized in that: The implementation method includes: Step S1: Screening valid data; Step S2: traverse the valid data to form an automatic Net; Step S3: Deduplication and merging of Nets, specifically including: adding, merging, and deleting Nets; Step S4: Determine whether the original Net exists. If so, execute step S5; otherwise, execute step S6; Step S5: Use the original Net data to set the automatically divided Net data; Each automatically divided Net contains a component list DataListAuto. A mapping table MapAuto is established between the automatically divided Net and the component list DataListAuto. The original Net network is recorded as NetList. Each original Net contains a component list DataList. A mapping table MapOld is established between the original Net and the component list DataList. The data of MapAuto should be set using the original Net data NetList. The specific steps are as follows: 5.1 Traverse MapOld and for each original Net, find out whether its corresponding DataList has an inclusion relationship with any element of the DataListAuto in the automatic Net. If the inclusion relationship is satisfied, establish a mapping relationship between the original Net and the automatic Net. If elements in multiple DataListAuto of the automatic Net are included, select the one with the largest number of DataListAuto. Finally, each original Net has a corresponding new Net, and the mapping table MapOldAuto is constructed based on these mapping relationships; 5.2 Traverse NetList, find the corresponding automatic subnet through MapOldAuto, and set the name, type, and color information of the original net to the automatic subnet; if the automatic subnet has been set, it will not be overwritten; 5.3 Traverse the automatically divided Net data MapAuto. If the Net has been set in the previous step and there is no Net with the same name, no data modification is required. Otherwise, the automatically divided Net will be named and typed. The naming rule is "unnamed-" plus an auto-incrementing numeric suffix to ensure uniqueness of the name. The type is uniformly set to Signal. 5.4 Finally, according to the result of the automatic Net data setting of the original Net data, the color and Net attributes of the components are uniformly modified and the design view is updated; Step S6: Set the sub-net data that has not been set according to the rules; Step S7: Update the Net attributes and colors of the components and update the view.
2. The method for implementing the EDA model by dividing it into Nets according to connected domains according to claim 1, characterized in that: The step S1: screening valid data specifically includes: screening valid data according to material type, and adding only when the material is a conductor to the set to be searched.
3. The method for implementing the EDA model by dividing it into Nets according to connected domains according to claim 2, characterized in that: The step S2: traversing the valid data specifically includes: Step S21: traverse each valid data in the set; Step S22: Determine whether the valid data has been searched. If yes, return to step S21; otherwise, continue to step S23; Step S23: adopt BFS breadth-first traversal; Step S24: Add to the list of automatically divided Nets; Step S25: Determine whether the traversal operation is completed. If so, execute step S3; otherwise, return to step S2.
4. The method for implementing the EDA model by dividing it into Nets according to connected domains according to claim 1, characterized in that: The newly added Net specifically includes: The user manually adds a Net group and specifies the Net name and type; Select the target structure, specify the Net group of the target structure as a newly added Net, and add a connected domain.
5. The method for implementing the EDA model by dividing it into Nets according to connected domains according to claim 1, characterized in that: The merging Net operation specifically includes: when different sub-Net data have common elements, the user can manually merge two or more Nets into one Net to form a connected domain.
6. The method for implementing the EDA model by dividing it into Nets according to connected domains according to claim 1, characterized in that: The operation of deleting Net is that the user can delete Net in batches, and delete them together with the electronic components from the design drawing.
Citation Information
Patent Citations
Mesh classification display method for EDA (Electronic Design Automation) model
CN115358123A
Method for checking odd geometric inner rings in double exposure of physical layout of integrated circuit
CN116560183A