A schematic diagram detailing a circuit that was reverse engineered from a plurality of images taken of the circuit is provided. The schematic diagram includes at least one circuit element that was represented as an object in at least one of the plurality of images, such that signal continuity information was determined through local tracing of connectivity between a first image and a second image of the plurality of images. A method of tracing the connectivity within the plurality of images to produce the schematic diagram is also disclosed.
|
1. A method of tracing connectivity within a mosaic of images to derive a data structure representative of a schematic diagram of the connectivity, the mosaic comprising a first object having a first portion in a first image, a second portion in a second image, and a third portion in a region of overlap between the first image and the second image, the first portion having a source of the first object, the method being performed by a computing device having one or more processors, the method comprising steps of:
(a) placing a representation of the first portion in a queue;
(b) marking the source;
(c) taking the representation of the first portion from the queue;
(d) marking the first portion and the third portion, wherein the first portion comprises the source and the third portion is connected to the first portion;
(e) placing a representation of the third portion in the queue;
(f) taking the representation of the third portion from the queue; and
(g) marking the third portion and the second portion, the third portion being connected to the second portion on the second image; and
(h) marking the first portion to provide a connectivity trace from the first portion to the second portion.
2. The method according to
4. The method according to
wherein the method further comprises determining signal continuity information of the circuit element through local tracing.
|
This application claims priority to Canadian Application No. 2,605,234, filed Oct. 3, 2007, which for purposes of disclosure is incorporated herein by specific reference.
1. The Field of the Invention
The present invention generally relates to image analysis techniques and more particularly relates to a method and apparatus for tracing connectivity in a mosaic of images.
2. The Relevant Technology
When analyzing objects using high magnification imaging techniques it is often the case where the area of interest for analysis exceeds the field of view of the imaging device. In such a situation, the area of interest is imaged in a so-called step-and-repeat fashion, whereby multiple images are acquired in a grid pattern that is organized as a series of rows and columns with intentional overlap between adjacent images. The images are then arranged to produce a composite or mosaic of the area of interest.
The analysis of integrated circuits (IC's) is a particular case where a mosaic of high magnification images may be required for purposes including reverse engineering, circuit analysis or quality control. As IC's generally include multiple layers of interconnected circuitry, such a mosaic of the entire circuit would require images from each layer of the IC. A single large image or model is then assembled by stitching together adjacent images of the mosaic using translational and/or rotational movements thereof. This model can generally have either two or three dimensions, where a two-dimensional (2D) model is constructed from mosaics from a single level within the IC, and where a three-dimensional (3D) model is constructed from mosaics from different levels within the IC.
Numerous techniques have been developed for the generation of a 2D/3D model from a mosaic. If one is given a pair of images with overlap between them, it is typically possible to stitch them together using a procedure called pair-wise registration, which is a well-known technique in the art. Pair-wise registration is used to digitally stitch together the images on a common plane by minimizing registration errors. Pair-wise registration accomplishes this through calculation of the relative image coordinates of a pair of images, and the selection of a single pair of corresponding points between the two images. More images may be pair-wise registered by applying a similar technique to another image and the previously registered image pair. Such a registration can be performed by techniques described in the paper “A survey of image registration techniques” by L. Brown, ACM Computing Surveys, Vol. 24, Issue 4, 1992, incorporated by reference herein.
However, there are drawbacks in using the above-noted techniques when there are more than three images in the mosaic. If, for example, there are four images, e.g., images 1 through 4, with each image located in the corner of a square, there are four overlap areas that need to be aligned. One might ideally stitch the seams of image pairs (1,2) and (1,3) using translation only. However, by so doing, it would not be possible to stitch seams (2,4) and (3,4). Depending on the position of image 4, generally only one of image pairs (2,4) and (3,4) can be aligned without errors. If only one pair can be aligned, a bundle adjustment procedure may be performed to find an acceptable distribution of error, such that the error in each overlap area is within a certain tolerable range.
Briefly, bundle adjustment procedures implement energy minimization techniques to select appropriate transformations of images where overall (e.g., sum or maximum) alignment error is minimized globally for all overlap areas. In the simplest form, for 2 dimensional grids where only image movement in the X and Y directions is allowed, a simple least squares procedure can be used.
Bundle adjustment techniques can be implemented, not only for the production of a model, but they can also be used to detect an overlap region in which the alignment information introduces excessive errors to the model. An implementation of bundle adjustment techniques can be found in the applicant's co-pending U.S. patent application publication no. 2006/0257051, disclosed by Vyacheslav Zavadsky et al.
While most of the literature on bundle adjustment deals with the more complicated problem of producing a 2D/3D model in the case of a moving camera, the same methods can be applied to producing global stitching of an image mosaic after mathematical reduction to the model as described in, for example, B. Triggs, P. McLauchlan, R. Hartley, and A. Fitzgibbon, “Bundle Adjustment—A Modern Synthesis” in B. Triggs, A. Zisserman, and R. Szeliski, Vision Algorithms: Theory & Practice (Springer-Verlag, 2000).
A further complication in stitching images together arises when the pair of images depicts objects in a highly repetitive area, such as, for example, within a memory array. In this case, distinctive features may be too small or masked by overall noise.
In cases where the imaging of 3D objects is performed while either the object or the camera is moving, modeling may require running a complicated stereovision algorithm to form a 3D model of the stitched object. However, it will be apparent to the skilled artisan that the computational requirements for model building can become very large. For ICs, the minimum feature size is continually decreasing due to advances in the manufacturing processes. These decreases in turn increase the number of images that have to be aligned to produce the required 2D/3D model. As such, the computational resources required to produce a global 2D/3D model are becoming too large. Further, there is considerable overall implementation complexity, including factors to consider such as considerable research-level engineering, and familiarity with image processing, energy minimization (bundle adjustment), and robust statistics fields. Therefore, alternate methods of circuit analysis are quickly becoming important.
The discussion so far has considered the development of a 2D/3D model for a circuit. For an IC, there is a second stage of tracing connectivity that provides for signal continuity throughout the model. The various known techniques of the art have taken the approach that, first, a 2D/3D model of the IC is constructed, and then, second, connectivity is traced. The accuracy of the generated 2D/3D model will generally determine whether the connectivity tracing requires manual intervention, or if it can be advantageously performed in an automated fashion.
An exemplary prior art method is presented in
Although most implementations of the method 100 perform step 102 independently for each image, object detection can alternatively be performed on an aligned model that is produced at step 106. In this case, step 102 and cycle 103 would be combined into a step of detecting objects in the aligned model produced at step 106.
There are also variations on how step 106 is implemented in the art. In
In published U.S. Patent application publication no. 2005/0226521, disclosed by A. Lachance and Z. Blaxell, the portion of method 200 ending at step 209 is replaced by a step of producing a coarse alignment for each mosaic. Step 212, i.e., the step of finding points of alignment between overlapped mosaics is performed by matching the ends of wires to vias. As a result, each image in a given mosaic is moved according to average displacements found during matching. However, while the images are being moved for inter-layer displacement, the intra-layer mosaic may be broken.
U.S. Pat. No. 6,249,616, issued to Hashimoto, discloses a method of aligning a single image mosaic when the images thereof are taken from different positions/different angles, which would require 3D model. The patent discloses a simplification for a bundle adjustment model because of the challenges faced in the art to perform the bundle adjustment on the entire model. As such, approaches for simplifying the bundle adjustment models are considered. However, these approaches presumably increase the likelihood of alignment errors in the overlap areas. It also presents a method for aligning a single image mosaic when the images of the mosaic are taken from different positions/different angles. However, this approach requires the production of 3D model, which adds to the level of complexity in aligning images because a 3D model must first be produced.
A paper by M. Brown and D. G. Lowe, “Recognizing Panoramas” Proceedings of the 9th International Conference on Computer Vision (ICCV2003) (Nice, France: October 2003), 1218, presents a method of aligning a single mosaic of images into panoramic view. Points of interest (Scale Invariant Feature Transform (SIFT) features) are detected, and then matched to each other based on pair-wise alignment. Spurious points of correspondence are deleted using the Random Sample Consensus (RANSAC) approach and the panorama is stitched using global bundle alignment. The author suggests that the method can be used for aligning multiple mosaics, however the bundle adjustment suggested produces some visible artifacts.
In applicant's co-pending U.S. patent application publication no. 2006/0257051, which is herein incorporated by reference, applicant discloses a method for providing an aligned 3D model of multiple mosaics as would be appropriate for automated connectivity tracing. This application teaches that step 206 (shown in
As such, there is no known technique in the art that is capable of producing a combined 3D model of multi-mosaic images with precision sufficient for automated signal tracing.
As such, it would be advantageous to have a method of automating connectivity tracing in a manner that does not require the prior generation of a highly accurate 2D/3D model. Therefore, there is a need for a method that can perform automated connectivity tracing without forming a global 2D/3D model of the aligned mosaics. Furthermore, there is a need for a method of providing connectivity tracing that is independent of the scale of the IC.
The invention seeks to overcome at least one of the prior art drawbacks of image analysis techniques used in the generation of a schematic diagram of an IC.
Embodiments of the invention seek to enable connectivity to be traced separately in each overlap area thereby avoiding the need to provide a global 3D model.
One embodiment is a schematic diagram detailing an integrated circuit (IC) that was reverse engineered from a plurality of images of the IC, the schematic diagram comprising: at least one circuit element represented as an object, a portion of the object being in at least one of the images in the plurality of images; at least one location attribute specifying the location of the circuit element in the IC with which the at least one location attribute is associated; and signal continuity information determined through local tracing of connectivity between a first image and a second image of the plurality of images.
Another embodiment is a diagram detailing a network of connected elements that was reverse engineered from a plurality of images of the network, the diagram comprising: at least one element that was represented as an object in at least one of the images in the plurality of images; and signal continuity information determined through local tracing of connectivity between a first image and a second image of the plurality of images.
Another embodiment is a method of automated tracing of connectivity within a plurality of images having at least a first image and a second image, the first image and the second image being aligned such that there is a region of overlap therebetween, the method comprising steps of: (a) detecting at least a first object in the first image; (b) putting a representation of the first object in a data structure; (c) detecting at least a second object in the second image; (d) putting a representation of the second object in the data structure; and (e) merging the representation of the first object with the representation of the second object into the data structure if the first object and the second object are linked in the area of overlap between the first and the second image.
Another embodiment is a method of tracing connectivity within a mosaic of images, the mosaic having at least a first image and a second image, and the mosaic having a first object, the first object having a first portion in the first image, a second portion in the second image, and a third portion in a region of overlap between the first image and the second image, the first portion having a source, the method comprising steps of: (k) placing a representation of the first portion in a queue; (l) marking the source; (m) taking the representation of the first portion from the queue; (n) marking the first portion and third portion, wherein the first portion comprises the source and the third portion is connected to the first portion; (o) placing a representation of the third portion in the queue; (p) taking the representation of the third portion from the queue; and (q) marking the second portion to provide a connectivity trace from the first portion to the third portion.
Another embodiment is a method of tracing connectivity within a mosaic of images, the images as a whole having at least one object and having a region of overlap therebetween, the method comprising steps of: (s) tracing connectivity within each image of the mosaic of images; (t) creating a model from the mosaic; (u) creating a connectivity graph; and (v) changing the connectivity graph if there is at least one error in alignment of an object in the overlap region between the first and second image.
Other aspects and advantages of the invention, as well as the structure and operation of various embodiments of the invention, will become apparent to the skilled artisan upon review of the following description of the invention in conjunction with the accompanying drawings.
The invention will be described with reference to the accompanying drawings, wherein:
For purposes of explanation, specific embodiments are set forth to provide a thorough understanding of the present invention. However, it will be understood by the skilled artisan that the invention may be practiced without all of the specific details set out in this detailed description. Moreover, well-known elements, devices, process steps and the like are not set forth in detail in order to avoid obscuring the scope of the invention described.
Embodiments of the invention are primarily directed to a method (process) for tracing connectivity separately in each overlap area, as well as a product derived from that method, namely a schematic diagram. While the various embodiments of the invention will be described in regard to ICs, it will be apparent to the skilled artisan that the methods of the various embodiments are equally applicable to other fields where there is a need to trace connectivity or undertake a similar analysis. These other fields, which are within the scope of the invention include, but are not limited to, tracing flow capacities, tracing of roads in aerial and/or satellite photography mosaics, and medical imaging. Additional solutions for the tracing of connectivity include, for example, the computation of flow capacities, and the calculation of the shortest/fastest/longest paths. Other fields will be apparent to the skilled artisan.
When directed to the field of IC analysis the various embodiments of the invention allow for the automated local tracing of connectivity without requiring the prior development of a high precision 2D/3D model incorporating all of the analyzed objects. Differences between the local tracing of connectivity and global tracing of connectivity, as is performed in traditional methods of connectivity tracing, can be appreciated with reference to
With reference to
A method 300 for tracing connectivity according to an embodiment of the invention is presented in
The various embodiments of the invention implement disjoint sets as a means of representing a data structure. The nature of data structures for disjoint sets will be apparent to the skilled artisan. They are described in detail in the following reference: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduction to Algorithms—2nd Edition, (Cambridge: MIT Press, 2001) c. 21. To briefly explain, given a set of elements, it is often useful to break them up or partition them into a number of separate, non-overlapping sets. A disjoint-set data structure keeps track of such partitioning. For example, in relation to ICs, the electrical signals are partitioned into sets of objects to denote that the signals within each set are connected, but to also denote that there is no connection between the respective sets of signals.
It should be mentioned that the term object as used in the various embodiments is used generically. The term object can represent, but is not limited to, an individual pixel of an image identified as belonging to an object of interest, a group of pixels of an image representing detected primitives (e.g., a line or arc), a group of pixels of the image representing a complicated object, a vector model for the primitive or complicated object, etc. Appropriate connectivity models for each of the above broad categories of objects would be apparent to the skilled artisan (e.g., 4 or 8 connectivity for pixels, line intersections, etc.).
Referring now to
As previously mentioned, steps 320 through 350 are repeated until all of the images have been considered and a final disjoint set is produced.
With all of the individual images analyzed the overlap areas between images are now considered. For each pair of mosaic images having inter- or intra-mosaic overlap areas, step 360 determines which objects in respective regions are connected in overlap regions. For all connected objects, step 360 merges these connected objects into the same disjoint set. Step 360 is repeated for each pair of mosaic images having inter- or intra-mosaic overlap areas through cycle 370.
By way of reference to the example shown in
With reference
Next, step 360 is repeated at cycle 370 for the next pairs of overlap regions between images A 602 and C 606, C 606 and D 608, and D 608 and B 604. According to the present example, for the pair of images C 606 and D 608, step 360 determines which objects are connected within the overlap area and merges the objects within the disjoint set. The resulting disjoint set for pairs C 606 and D 608 is represented as the disjoint set 617, {4, 4, 4, 7}, because objects B are connected to object 6. Once pairs A 602 and B 604, A 602 and C 606, C 606 and D 608, and D 608 and B 604 have been merged by step 360, a resulting disjoint set is represented as the final disjoint set 619, {0, 0, 0, 3, 0, 0, 0, 3}.
It should be mentioned that the order in which the pairs are selected for step 360 is not relevant due to the nature of the disjoint set data structure. It is obvious to a skilled artisan that a specific order may be implemented for more efficient processing.
Thus, at the end of the method 300, the connectivity is traced between all images of the mosaic, where the mosaic may represent a localized section of circuitry, or it might represent the entire circuit being analyzed.
An alternative embodiment of method 300 is presented in
Step 360, of
Referring to
With reference to
For the next cycle of steps 406 through to cycle 415, step 408 takes a representation of the overlap region EF 580 as the next first element in the queue. At step 410, all objects within the region EF 580 that are connected to the already marked object are marked. At step 414, a representation of the image F 540 is now placed in the queue as the portion of feature 560 within the overlap region 560 that has been marked also lies within the image F 540. The method 400 returns to step 406 and the image F 540 is processed. The method continues to cycle until all of the regions of the feature 560 have been marked, which results in the tracing of the connectivity provided by the feature 560. At the end of the method the queue will be empty. It shall be understood that the term queue is used generically. It can be implemented using a First In, First Out (FIFO) queue, giving rise to a Breadth First Search (BFS) visiting pattern. The queue in methods 400 and 450 (to be discussed below) allows the algorithm to follow a Breadth First Search (BFS) graph search algorithm, which will be known to the skilled artisan as a reasonably efficient means for determining connectivity. With this approach images and overlap areas where new connectivity information could be discovered are queued. Once queued, they can be processed in a defined way. The above approach is more efficient and less prone to errors than manual approaches that may have been traditionally implemented by an operator while tracing connectivity in a maze of potential connections.
The embodiments of the present invention also contemplate utilizing a Last In, First Out (LIFO) queue, as opposed to the FIFO queue, giving rise to a Depth-first search (DFS) visiting pattern or some sort of priority queue to achieve the desired performance for the underlying data structure, or some data structure to allow for multiple processors.
Further, the use of a queue for holding images prior to processing allows the automated system to provide forward-looking insight into the direction of processing. As such the system may go between levels and follow different directions. In the embodiment shown in
In an alternative embodiment,
In an alternative embodiment of the invention connectivity tracing is performed on a coarse 3D model, then error correction is implemented in any areas that have either a large error or are user selected. The method 700 according to this embodiment is shown in
With object detection completed, a global 2D or 3D model is created at step 708. At step 710, the global dynamic connected components are initialized. Step 710 creates a connectivity graph with consideration to the connectivity that was traced within each image. The vertices of the graph created at step 710 are either individual objects detected within images, or disjoint sets detected within each image. If the vertices are individual objects, step 706 is not required.
Next, the connectivity graph is changed with consideration to errors that may have occurred in specific overlap areas. Therefore, each overlap area that has either a large error after bundle adjustment, or that is spotted by an operator as being misaligned are selected and a correction procedure is performed at step 714. The correction procedures performed at step 714 include old edge removal, changing of alignment, and adding new edges. The above error correction procedures are not to be seen as limiting the scope of the embodiments of the invention. Any error correction procedures as will be apparent to the skilled artisan are within the scope of the invention.
The method 700 presented in
In the discussion of the various embodiments with reference to the drawings, the term “overlap area” has been referred to describe an area of overlap between two images where the images lie on the same plane. It will be apparent to the skilled artisan that the term is also applicable to overlap between images on different planes as might be found in a 3D model.
The various embodiments have considered the local tracing of connectivity. Once connectivity information is established, there are numerous possibilities applicable for deriving a schematic diagram. For example, an advanced schematics editor, such as that disclosed in U.S. Pat. No. 7,013,028, can be utilized to assist user to visualize the connectivity information while manually drawing schematics. Alternatively, U.S. Pat. No. 6,907,583, teaches means for automated extraction of connectivity information by calculating vector layout representation of image data and by computing the netlist of extracted gates using this connectivity information.
It should be mentioned that the schematic diagram produced according to embodiments of the present invention, i.e., through local tracing of connectivity, is distinguishable from schematic diagrams produced from global tracing, i.e., by producing a global model. For example, schematic diagrams may contain location attributes which specify the physical location and layer of various objects (component, pin, wire) in the layout. Based on the location as indicated by the attribute within the layout or mosaic, the method utilized for signal tracing—local or global—may be deduced. That is, if inconsistencies are present in these attributes, it may be concluded that a method of local signal tracing was used to trace connectivity between images.
It is within the scope of the present invention to apply the methods of the various embodiments to fields beyond the field of reverse engineering of ICs. Namely the methods of tracing connectivity may be applied to physically connected elements that have some sort of communication therebetween. In alternative embodiments, the methods could be applied to fields including, but not limited to, infrastructure such as roads and gas pipelines. In the above examples, the communication of signals may be replaced by the flow of traffic along roads or the flow of gas within a pipeline, whereby signal continuity allows for the flow of these signals between locations within a city or ends of the pipeline, respectively. In these examples, connectivity would be traced from a plurality of aerial photographs, whereby the local tracing is performed on pairs of aerial photographs. In the case of roads, the shortest distance between two locations or elements may be determined through local tracing of roads. The end result of this analysis would be a diagrammatic representation of the system having both the elements that are interconnected, as well as signal continuity information related to these elements. As in the case of schematic diagram, location attributes may be associated with the various elements in the diagram, such that these attributes indicate from what photographs the information was derived.
In an alternative embodiment of the invention a system that is suitable for performing the methods outlined in various embodiments of the invention is provided.
While the invention has been described according to what is presently considered to be the most practical and preferred embodiments, it must be understood that the invention is not limited to the disclosed embodiments. Those ordinarily skilled in the art will understand that various modifications and equivalent structures and functions may be made without departing from the spirit and scope of the invention as defined in the claims. Therefore, the invention as defined in the claims must be accorded the broadest possible interpretation so as to encompass all such modifications and equivalent structures and functions.
Keyes, Edward, Zavadsky, Vyacheslav L.
Patent | Priority | Assignee | Title |
9070285, | Jul 25 2011 | UtopiaCompression Corporation | Passive camera based cloud detection and avoidance for aircraft systems |
Patent | Priority | Assignee | Title |
5694481, | Apr 12 1995 | TECHINSIGHTS INC | Automated design analysis system for generating circuit schematics from high magnification images of an integrated circuit |
5825191, | Mar 16 1995 | Advantest Corporation | IC fault location tracing apparatus and method |
6236746, | Oct 01 1997 | TECHINSIGHTS INC | Method to extract circuit information |
6249616, | May 30 1997 | HANGER SOLUTIONS, LLC | Combining digital images based on three-dimensional relationships between source image data sets |
6289116, | Sep 26 1997 | TECHINSIGHTS INC | Computer-assisted design analysis method for extracting device and interconnect information |
6453063, | Jan 28 1998 | TECHINSIGHTS INC | Automatic focused ion beam imaging system and method |
6563943, | Mar 23 1999 | FUJIFILM Corporation | Connection processing method for radiation images |
6907583, | Oct 12 2001 | TECHINSIGHTS INC | Computer aided method of circuit extraction |
7013028, | Aug 09 2000 | TECHINSIGHTS INC | Advanced schematic editor |
20030084409, | |||
20050060287, | |||
20050226521, | |||
20060257051, | |||
CA2497592, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Feb 02 2008 | ZAVADSKY, VYACHESLAV L | SEMICONDUCTOR INSIGHTS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020491 | /0719 | |
Feb 05 2008 | KEYES, EDWARD | SEMICONDUCTOR INSIGHTS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 020491 | /0719 | |
Feb 11 2008 | Semiconductor Insights, Inc. | (assignment on the face of the patent) | / | |||
Aug 21 2014 | SEMICONDUCTOR INSIGHTS INC | TECHINSIGHTS INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033941 | /0692 | |
Aug 16 2017 | TECHINSIGHTS INC | STELLUS CAPITAL INVESTMENT CORPORATION, AS ADMINISTRATIVE AGENT | NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS | 043571 | /0385 | |
Nov 09 2021 | STELLUS CAPITAL INVESTMENT CORPORATION, AS ADMINISTRATIVE AGENT | TECHINSIGHTS INC | RELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS | 058096 | /0558 | |
Nov 09 2021 | TECHINSIGHTS INC | CAPITAL ONE, NATIONAL ASSOCIATION | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 058096 | /0721 | |
Nov 09 2021 | VLSI RESEARCH INC | CAPITAL ONE, NATIONAL ASSOCIATION | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 058096 | /0721 |
Date | Maintenance Fee Events |
Jan 29 2014 | ASPN: Payor Number Assigned. |
Apr 24 2017 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 08 2021 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Dec 10 2016 | 4 years fee payment window open |
Jun 10 2017 | 6 months grace period start (w surcharge) |
Dec 10 2017 | patent expiry (for year 4) |
Dec 10 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 10 2020 | 8 years fee payment window open |
Jun 10 2021 | 6 months grace period start (w surcharge) |
Dec 10 2021 | patent expiry (for year 8) |
Dec 10 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 10 2024 | 12 years fee payment window open |
Jun 10 2025 | 6 months grace period start (w surcharge) |
Dec 10 2025 | patent expiry (for year 12) |
Dec 10 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |