[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN117272877B - Correlation updating method, system and medium for EDA model modeling - Google Patents

Correlation updating method, system and medium for EDA model modeling Download PDF

Info

Publication number
CN117272877B
CN117272877B CN202311551733.XA CN202311551733A CN117272877B CN 117272877 B CN117272877 B CN 117272877B CN 202311551733 A CN202311551733 A CN 202311551733A CN 117272877 B CN117272877 B CN 117272877B
Authority
CN
China
Prior art keywords
model
modeling
command
updating
association
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311551733.XA
Other languages
Chinese (zh)
Other versions
CN117272877A (en
Inventor
蒋历国
胡训
代文亮
堵云竹
罗彬�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinhe Semiconductor Technology Shanghai Co ltd
Original Assignee
Xinhe Semiconductor Technology Shanghai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinhe Semiconductor Technology Shanghai Co ltd filed Critical Xinhe Semiconductor Technology Shanghai Co ltd
Priority to CN202311551733.XA priority Critical patent/CN117272877B/en
Publication of CN117272877A publication Critical patent/CN117272877A/en
Application granted granted Critical
Publication of CN117272877B publication Critical patent/CN117272877B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention discloses a correlation updating method, a correlation updating system and a correlation updating medium for EDA model modeling, and belongs to the field of EDA modeling. Aiming at the problem that the efficiency and performance of the existing EDA modeling cannot be simultaneously considered, the invention provides a correlation updating method for EDA model modeling, which comprises the steps of respectively creating a model and a modeling command; classifying modeling commands; creating a mapping relation table between the model and the modeling command; creating a model mapping relation table of the association command; when a modeling command is created, updating geometric data of a model; and carrying out association updating on the model. According to the method, the modeling commands are classified, the mapping relation of the modeling commands of different types is constructed, and the searching efficiency of the association model is improved; setting tagID for modeling command to define the time sequence of modeling operation, avoiding ring structure when breadth-first searching, and causing dead loop which may cause system to enter deadlock state or unable to operate normally; and the overall performance and efficiency are both considered.

Description

Correlation updating method, system and medium for EDA model modeling
Technical Field
The invention belongs to the technical field of EDA modeling, and particularly relates to a correlation updating method, a correlation updating system and a correlation updating medium for EDA modeling.
Background
The associated update in EDA model modeling is an important technology, and plays a key role in realizing the consistency of the model and the data update. The association update ensures that the data in the model always keeps synchronous and accurate by processing related events and association relations. While there are many advantages to association updating, there are some potential problems and challenges with existing association updating methods, which face performance and efficiency challenges for handling complex models with a large number of associations and data interactions. When the association relationship is large and the data amount is huge, the update process becomes time-consuming. The complexity of locating and updating the relevant data may lead to performance degradation. Performance optimization and reasonable data structure design are needed to improve the efficiency of association update. The association in the model may sometimes form a loop dependency, where an update of one entity may trigger an update of another entity, which may trace back to the first entity, thus forming an infinite loop. Circular dependencies may cause the system to enter a deadlock state or fail to operate properly. A design mechanism is needed to handle the loop dependencies and ensure the stability of the system.
For example, chinese patent application number CN201810759464.9, publication date is 2019, month 2, and day 19, discloses a system and method for controlling a guiding and controlling system based on dynamic modeling, wherein the system includes: the guide and adjustment module is used for generating a model creation command and transmitting the model creation command to the simulation engine; the model creation command carries a model mark and model parameters; the simulation engine is used for: receiving a model creation command transmitted by the pilot module, and creating a target model instance according to a model identifier and model parameters carried in the model creation command; and based on the model identification, acquiring an associated model identification parameter relation corresponding to the model identification, generating a running model parameter list of an associated model corresponding to the associated model identification according to the associated model identification parameter relation, updating parameters of the associated model by using the model parameter list, and simultaneously putting a target model instance into operation. The disadvantage of this patent is that: although the model can be dynamically created, the accuracy and stability are still to be considered.
Disclosure of Invention
1. Problems to be solved
Aiming at the problem that the efficiency and the performance of the existing EDA modeling cannot be simultaneously considered, the invention provides a correlation updating method, a correlation updating system and a correlation updating medium for EDA modeling. According to the method, the modeling commands are classified, the mapping relation of the modeling commands of different types is constructed, and the searching efficiency of the association model is improved; meanwhile, a tagID is set for modeling commands to define the time sequence of modeling operation, so that the situation that a ring structure appears in breadth-first searching, and the system possibly enters a deadlock state or cannot normally run due to dead circulation is avoided; and the overall performance and the efficiency are considered, and the user operation experience is improved.
2. Technical proposal
In order to solve the problems, the invention adopts the following technical scheme.
An association updating method for EDA model modeling comprises the following steps:
creating a model and modeling commands, respectively: wherein each model has a unique ID and a body ID; each modeling command has a unique ID and tagID;
classifying modeling commands; the modeling command comprises an ontology command only changing the model itself; and the model itself generates associated commands associated with other models;
creating a mapping relation table between the model and the modeling command;
creating a model mapping relation table of the association command;
when a modeling command is created, updating geometric data of a model;
and carrying out association update on the model: starting from the initial model, acquiring all associated models according to a model mapping relation table of the associated commands; obtaining mapping relation tables between all the association models and modeling commands according to the mapping relation tables between the models and the modeling commands; and then updating all the association models until all the association models are updated.
Still further, the association command includes a copy type command and a boolean type command; the body commands include a create type command, a matrix type command, and a Surface type command.
Further, the specific operation of updating the model geometry data is as follows: constructing a 4*4 matrix when carrying out translation, rotation, mirroring and scaling operations on the model, and updating geometric data of the model; and when the operation parameters are updated, the geometric state backtracking is carried out by utilizing the rectangle, and then the matrix is reconstructed to update the model geometric data.
Furthermore, the model is updated in a correlation mode based on breadth-first search of the directed graph.
Further, updating all the association models includes: sequencing according to tagID of the last modeling command associated with the model, sequentially updating all acquired associated models through a mapping relation table between the associated models and the modeling command; and marking the updated model as accessed and adding it to the queue for the next access; repeating the steps until all the association models are updated.
A system applying the association update method of EDA model modeling as claimed in any one of the above claims, comprising:
the preparation module: the method comprises the steps of creating a model and a modeling command, classifying the modeling command, creating a mapping relation table between the model and the modeling command, and creating a model mapping relation table of an associated command;
model geometry data updating module: when the modeling command is used for creating the modeling command operation, the geometric data of the model is updated;
model association update module: for performing an association update on the model.
A computer readable storage medium storing a computer program which when executed by a processor implements an association update method of EDA model modeling according to any one of the preceding claims.
3. Advantageous effects
Compared with the prior art, the invention has the beneficial effects that:
(1) According to the method, modeling commands are classified, mapping relations of different types of modeling commands are constructed, and the searching efficiency of the association model is improved; meanwhile, a modeling command is set with tagId for defining the time sequence of modeling operation, so that the situation that a ring structure appears in breadth-first search, and the system possibly enters a deadlock state or cannot normally run due to dead circulation is avoided; the whole method can quickly update the geometric data of the complex model with a large number of association relations and data interaction, and improves the user operation experience, so that the efficiency and the performance of association update are considered;
(2) The system can ensure the consistency of data, improve the maintainability and expansibility of the system, and the association updating system can better cope with complex scene and requirement change by accurately and efficiently processing the association relation and the data updating, so that the quality and the reliability of the system are improved; in addition, the association updating system can also better support concurrency and parallel processing, so that the system can better cope with high concurrency scenes.
Drawings
FIG. 1 is a schematic flow chart of the present invention;
FIG. 2 is a diagram illustrating the data structure and associated data mapping intent of the present invention.
Detailed Description
The invention is further described below in connection with specific embodiments and the accompanying drawings.
Example 1
Referring to fig. 1 and 2, fig. 1 is a schematic flow chart of the present application; FIG. 2 is a diagram of a data structure and associated data mapping representation of the present application.
As shown in fig. 1 and 2, in this embodiment, an association updating method for EDA model modeling includes the following steps:
s1: creating a model (shape) and a modeling command (cmd) respectively: wherein each model has a unique ID and a body ID; each modeling command has a unique ID and tagID;
it is described that each model has a unique ID, and the ID is used for identifying each model; the body ID is the main body ID and is mainly used for indexing geometric data, so that quick association is facilitated, and the efficiency is improved; the ID of the modeling command is also the identification of each modeling command, and tagID is the index identification information, which is used to represent the state of the modeling command. For tagID, the tagID of each modeling command (cmd) is related to a global self-increasing static variable, for example, when no modeling command is performed on a model, the initial value of the static variable is 0, when a modeling command operation is performed on a certain model, a modeling command (cmd) is created, the tagID of the modeling command (cmd) is assigned to the static variable, that is, the tagID value is 0, then the static variable is self-increased by one, the value of the static variable itself becomes 1, and when a modeling command is performed on a subsequent model, the tagID of the newly created modeling command (cmd) is assigned to the value of the current static variable, that is, the tagID value of 1, and so on, the time sequence of the modeling operation can be represented by the size relationship of the tagID of each modeling command (cmd).
S2: classifying modeling commands; the modeling command comprises an ontology command only changing the model itself; and the model itself generates associated commands associated with other models;
specifically, the associated command comprises a copy type command and a Boolean type command; boolean commands, such as sub/unite/split, etc.; copy commands, such as move+/rotate+/mirror+ and the like, which generate new shapes and influence the new shapes after the geometric changes of the shapes bound with the commands;
the body commands comprise a creation type command, a matrix type command and a Surface type command; a create command such as a creation command of a line facet; matrix commands, such as move/mirror/rotate/scale, update of shape geometry data only needs to perform matrix conversion and does not interact with other shapes; surface type commands, commands that rely on the geometry data of the shape themselves, operate to cause changes in the shape's geometry data itself, such as moveFaces, sweepFace commands, and the like.
S3: creating a mapping relation table between the model and the modeling command;
each model has a one-to-many mapping relation with modeling commands, the mapping relation is stored in the map, and each modeling command stores relevant parameters during operation, so that follow-up tracking is facilitated;
s4: creating a model mapping relation table of the association command;
specifically, creating the model mapping relation table of the association command includes creating a model mapping table of the copy association: in the modeling process, one shape is possibly created by carrying out translation copy, mirror image copy, rotary copy or scaling copy on another shape, and the clone of the copied shape is updated along with the update of the geometric data of the copied shape, so that the clone can be quickly indexed by establishing a shape mapping relation of copy association, and the effect of quick update is achieved;
and creating a model mapping table in which boolean associations exist: in the modeling process, one shape (blank shape) may be obtained by performing boolean operations with other shape (tool shapes), such as sub, unite, split or imprint, and the geometric data of tool shapes are updated so that the blank shape is updated accordingly, so that the blank shape and the tool shape can be quickly indexed by establishing a shape mapping relation of boolean association, thereby achieving the effect of quick updating.
S5: when a modeling command is created, updating geometric data of a model;
specifically, the specific operation of updating the model geometry data is as follows: constructing a 4*4 matrix when carrying out translation, rotation, mirroring and scaling operations on the model, and updating geometric data of the model; when the operation parameters are updated, geometrical state backtracking is carried out by utilizing the rectangle, and then the matrix is reconstructed to update the model geometrical data;
s6: and carrying out association update on the model: starting from the initial model, acquiring all associated models according to a model mapping relation table of the associated commands; obtaining mapping relation tables between all the association models and modeling commands according to the mapping relation tables between the models and the modeling commands; and then updating all the association models until all the association models are updated.
Specifically, in the step, a mode of breadth first search based on a directed graph is adopted to update the model in an associated mode, and all associated models are obtained from a starting model according to a model mapping relation table of an associated command, namely a copy associated model mapping table and a Boolean associated model mapping table; obtaining a relation mapping table between all the associated models and modeling commands according to the relation mapping table of the models and the modeling commands;
sequencing according to tagID of the last modeling command associated with the model, sequentially updating all acquired associated models through a mapping relation table between the associated models and the modeling command; it is illustrated here that because the association update of a model involves updating a number of associated models, i.e. associated models; when the associated models are updated, the updating sequence is consistent with the creation sequence of the models, the tagIDs of all modeling commands have a size relationship, the descending-to-ascending ordering sequence of the tagIDs represents the creation sequence of the modeling commands, and therefore, the tagID size relationship of the last modeling command of all the associated models represents the creation sequence of the models; so in order to ensure the sequency of the model association update, the tagID of the last modeling command of the model is utilized for sorting, so that the model is updated, and the purposes of good model updating effect and order assurance are achieved; and marking the updated model as accessed and adding it to the queue for the next access; repeating the steps until all the association models are updated.
According to the method, modeling commands are classified, mapping relations of different types of modeling commands are constructed, and the searching efficiency of the association model is improved; meanwhile, a tagID is set for modeling commands to define the time sequence of modeling operation, so that the situation that a ring structure appears in breadth-first searching, and the system possibly enters a deadlock state or cannot normally run due to dead circulation is avoided; the whole method can quickly update the geometric data of the complex model with a large number of association relations and data interaction, and improves the user operation experience, so that the efficiency and the performance of association update are both considered.
Example 2
A system applying the association update method of EDA model modeling as claimed in any one of the above claims, comprising:
the preparation module: the method comprises the steps of creating a model and a modeling command, classifying the modeling command, creating a mapping relation table between the model and the modeling command, and creating a model mapping relation table of an associated command;
model geometry data updating module: when the modeling command is used for creating the modeling command operation, the geometric data of the model is updated;
model association update module: for performing an association update on the model.
The system can ensure the consistency of data, improve the maintainability and expansibility of the system, and the association updating system can better cope with complex scene and requirement change by accurately and efficiently processing the association relation and the data updating, so that the quality and the reliability of the system are improved; in addition, the association updating system can also better support concurrency and parallel processing, so that the system can better cope with high concurrency scenes.
Example 3
A computer readable storage medium storing a computer program which when executed by a processor implements an association update method of EDA model modeling according to any one of the preceding claims. It should be noted that, for a person skilled in the art, it is fully possible to implement the same program in the form of logic gates, switches, application specific integrated circuits, programmable logic controllers, embedded microcontrollers, etc. by logic programming the method steps, except for implementing the system and the respective modules provided in the present application in a pure computer readable program code. Therefore, the system and each module thereof provided in the present application may be regarded as a hardware component, and the modules included therein for implementing various programs may be regarded as structures in the hardware component, and the modules for implementing various functions may be regarded as structures in both the hardware component and the software program for implementing the method.
The examples of the present invention are merely for describing the preferred embodiments of the present invention, and are not intended to limit the spirit and scope of the present invention, and those skilled in the art should make various changes and modifications to the technical solution of the present invention without departing from the spirit of the present invention.

Claims (7)

1. An associated updating method for EDA model modeling, which is characterized by comprising the following steps: the method comprises the following steps:
creating a model and modeling commands, respectively: wherein each model has a unique ID and a body ID; each modeling command has a unique ID and tagID; the body ID is a body ID, which is used to index geometric data; tagID is index identification information, which is used for representing the state of a modeling command;
classifying modeling commands; the modeling command comprises an ontology command only changing the model itself; and the model itself generates associated commands associated with other models;
creating a mapping relation table between the model and the modeling command;
creating a model mapping relation table of the association command;
when a modeling command is created, updating geometric data of a model;
and carrying out association update on the model: starting from the initial model, acquiring all associated models according to a model mapping relation table of the associated commands; obtaining mapping relation tables between all the association models and modeling commands according to the mapping relation tables between the models and the modeling commands; and then updating all the association models until all the association models are updated.
2. The method for updating associations of EDA model modeling of claim 1, wherein: the associated commands include copy type commands and boolean type commands; the body commands include a create type command, a matrix type command, and a Surface type command.
3. The method for updating associations of EDA model modeling of claim 1, wherein: the specific operation of updating the model geometric data is as follows: constructing a 4*4 matrix when carrying out translation, rotation, mirroring and scaling operations on the model, and updating geometric data of the model; and when the operation parameters are updated, the geometric state backtracking is carried out by utilizing the rectangle, and then the matrix is reconstructed to update the model geometric data.
4. The method for updating associations of EDA model modeling of claim 1, wherein: and carrying out association updating on the model by adopting a breadth-first search mode based on the directed graph.
5. The method for updating associations of EDA model modeling of claim 4 wherein: updating all the association models includes: sequencing according to tagID of the last modeling command associated with the model, sequentially updating all acquired associated models through a mapping relation table between the associated models and the modeling command; and marking the updated model as accessed and adding it to the queue for the next access; repeating the steps until all the association models are updated.
6. A system applying the correlation update method of EDA model modeling according to any of claims 1-5, characterized in that: comprising the following steps:
the preparation module: the method comprises the steps of creating a model and a modeling command, classifying the modeling command, creating a mapping relation table between the model and the modeling command, and creating a model mapping relation table of an associated command;
model geometry data updating module: when the modeling command is used for creating the modeling command operation, the geometric data of the model is updated;
model association update module: for performing an association update on the model.
7. A computer-readable storage medium storing a computer program, characterized by: the computer program, when executed by a processor, implements an association update method for EDA model modeling according to any of claims 1-5.
CN202311551733.XA 2023-11-21 2023-11-21 Correlation updating method, system and medium for EDA model modeling Active CN117272877B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311551733.XA CN117272877B (en) 2023-11-21 2023-11-21 Correlation updating method, system and medium for EDA model modeling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311551733.XA CN117272877B (en) 2023-11-21 2023-11-21 Correlation updating method, system and medium for EDA model modeling

Publications (2)

Publication Number Publication Date
CN117272877A CN117272877A (en) 2023-12-22
CN117272877B true CN117272877B (en) 2024-01-30

Family

ID=89218069

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311551733.XA Active CN117272877B (en) 2023-11-21 2023-11-21 Correlation updating method, system and medium for EDA model modeling

Country Status (1)

Country Link
CN (1) CN117272877B (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444603B1 (en) * 2006-12-15 2008-10-28 Xilinx, Inc. Transformation of graphs representing an electronic design in a high modeling system
EP2830010A2 (en) * 2013-07-26 2015-01-28 Honeywell International Inc. Methods and systems for providing intuitive direction for populating complex model content into a database
WO2015036817A1 (en) * 2013-09-15 2015-03-19 Yogesh Chunilal Rathod Structured updated status, requests, user data & programming based presenting & accessing of connections
CN109359792A (en) * 2018-07-11 2019-02-19 北京联创众升科技有限公司 It is a kind of that tune control system and method are led based on dynamic modeling
CN114416058A (en) * 2022-01-21 2022-04-29 江苏徐工工程机械研究院有限公司 Cloud model storage method and system suitable for engineering machinery industry modeling language
CN115238338A (en) * 2022-06-29 2022-10-25 广联达科技股份有限公司 Component model updating method and device and electronic equipment
CN115329578A (en) * 2022-08-19 2022-11-11 南京邮电大学 Three-dimensional modeling system and modeling method based on multi-mode fusion

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IN2013MU03243A (en) * 2013-10-15 2015-07-17 Tata Consultancy Services Ltd
US11636110B1 (en) * 2021-10-29 2023-04-25 Snowflake Inc. Metadata search via N-Gram index

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7444603B1 (en) * 2006-12-15 2008-10-28 Xilinx, Inc. Transformation of graphs representing an electronic design in a high modeling system
EP2830010A2 (en) * 2013-07-26 2015-01-28 Honeywell International Inc. Methods and systems for providing intuitive direction for populating complex model content into a database
WO2015036817A1 (en) * 2013-09-15 2015-03-19 Yogesh Chunilal Rathod Structured updated status, requests, user data & programming based presenting & accessing of connections
CN109359792A (en) * 2018-07-11 2019-02-19 北京联创众升科技有限公司 It is a kind of that tune control system and method are led based on dynamic modeling
CN114416058A (en) * 2022-01-21 2022-04-29 江苏徐工工程机械研究院有限公司 Cloud model storage method and system suitable for engineering machinery industry modeling language
CN115238338A (en) * 2022-06-29 2022-10-25 广联达科技股份有限公司 Component model updating method and device and electronic equipment
CN115329578A (en) * 2022-08-19 2022-11-11 南京邮电大学 Three-dimensional modeling system and modeling method based on multi-mode fusion

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Event Data Association via Robust Model Fitting for Event-based Object Tracking;Haosheng Chen;《Computer Vision and Pattern Recognition》;第1-30页 *
基于特征域和结构组件的CAD/CAE集成建模方法;覃斌;阎春平;刘飞;;计算机集成制造系统(第07期);第55-61页 *

Also Published As

Publication number Publication date
CN117272877A (en) 2023-12-22

Similar Documents

Publication Publication Date Title
CN110209728B (en) Distributed heterogeneous database synchronization method, electronic equipment and storage medium
US20100013833A1 (en) System and method for modifying features in a solid model
CN109033729B (en) Product design information management method and system
CN103544343A (en) Serialized and parameterized modeling method of power chuck
US8694286B2 (en) Modifying a parametrically defined model with an explicit modeler
CN113434482A (en) Data migration method and device, computer equipment and storage medium
CN107067200B (en) Operation method and device for bill of material data
US10621288B2 (en) Interoperable hierarchical model for conducting multiuser CAx operations
CN110795835A (en) Three-dimensional process model reverse generation method based on automatic synchronous modeling
CN105373621A (en) Rapid database-system-across data increment migration method
CN102930026A (en) Method and device for converting computer-aided design (CAD) model
CN117272877B (en) Correlation updating method, system and medium for EDA model modeling
CN111475602B (en) Multi-version knowledge graph storage method and device, storage medium and electronic equipment
KR20230117765A (en) Process mining for multi-instance processes
CN112667236B (en) Workflow realization method, system and medium for gridding layout
Ullah et al. Template-based automatic code generation for web application and APIs using class diagram
CN110968342B (en) Version comparison method, device and system
CN115525268A (en) SONiC command line implementation method, equipment and medium
CN112584985A (en) Simulated signature key for robot simulation
CN108304636A (en) BIM family parameter systems
CN104678898A (en) Automatic programming system for movement track of ball slice cutting robot based on CAD (computer-aided design)
Shah Key technology of CADDCAM integration for complex parts of marine diesel engine
CN115495442B (en) Database operation file generation method, device, equipment and storage medium
CN116911642B (en) Multi-dimensional multi-state oriented hydroelectric generating set equipment index calculation system and method
Lee Recent generalization development and road ahead

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant