A design system provides data structures to store parameters of physical structures that can be viewed and modified through a graphical design interface. Certain of the structures of the physical system may be partitioned into a subsystem such that the data describing the subsystem includes physical topology data defining relative locations of the structures in the physical system. The physical topology data is back-annotated into a logical topology, such as in accordance with a predefined logical topology template. The logical data abstraction of the circuit design is kept synchronized with the physical data and presented in a logical topology that is kept legible through the prudent selection of logical topologies representing the physical subsystem design.
|
27. A non-transitory machine-readable medium having encoded thereon instructions that, when executed by a user-operated machine, performs a method comprising:
partitioning subsystem design data of at least one subsystem of a physical system from the design data, the partitioned subsystem design data establishing a physical topology by which a location of each component that is a member of the subsystem defined by the subsystem design data is specified;
selecting a topology template from a plurality of predefined topology templates, each defining a schematic topology specifying relative locations of graphical representations of the member components of the subsystem in a schematic data abstraction of the subsystem design data;
generating a logical topology by mapping the location of each member component in the physical topology to a location in the schematic topology, and rearranging one or more of the physical topology components according to the selected topology template, the logical topology defining an interconnection of components, having a relative placement of components different from the physical topology, and including a mixture of representations for the components in schematic and physical topology forms, where the corresponding graphical representation of each member component is located in accordance with the selected topology template;
including as a data item of the subsystem design data the mapped locations of each of the member components; and
displaying to the user the generated logical topology on a display device.
1. An apparatus to design a physical system of components, the design of the physical system including modifiable design data that, when compliant with established design criteria, describe a realization of the physical system, the apparatus comprising:
a database to store the design data defining physical structure of each of the components and defining a physical topology specifying a location in the physical system of each of the components, the database further to store a plurality of predefined topology templates, each defining a schematic topology specifying relative locations of graphical representations of the components in a schematic data abstraction of the design data;
a user interface to accept design instructions from a user including a selection of a topology template from the predefined topology templates; and
a processor executing to generate a logical topology by mapping the location of each component in the physical topology to a location of the graphical representation of the corresponding one of the components in the schematic topology, and rearranging one or more of the physical topology components according to the selected topology template;
the processor further executing to store the mapped locations of each of the components in the design data;
the logical topology defining an interconnection of the components, having a relative placement of components different from a relative placement of the components in the physical topology, and including a mixture of representations for the components in schematic and physical topology forms.
17. A method executed by a user-operated machine to design a physical system of components, the design of the physical system including modifiable design data that, when compliant with established design criteria, describe a realization of the physical system, the method comprising:
partitioning subsystem design data of at least one subsystem of the physical system from the design data, the partitioned subsystem design data establishing a physical topology by which a location of each of the components that are members of the subsystem defined by the subsystem design data is specified;
selecting a topology template from a plurality of predefined topology templates, each defining a schematic topology specifying relative locations of graphical representations of the member components of the subsystem in a schematic data abstraction of the subsystem design data;
generating a logical topology by mapping the location of each member component in the physical topology to a location in the schematic topology, and rearranging one or more of the physical topology components according to the selected topology template, the logical topology defining an interconnection of components, having a relative placement of components different from the physical topology, and including a mixture of representations for the components in schematic and physical topology forms, where the corresponding graphical representation of each member component is located in accordance with the selected topology template;
including as a data item of the subsystem design data the mapped locations of each of the member components; and
displaying to the user the generated logical topology on a display device.
2. The apparatus as recited in
3. The apparatus as recited in
4. The apparatus as recited in
5. The apparatus as recited in
6. The apparatus as recited in
7. The apparatus as recited in
8. The apparatus as recited in
9. The apparatus as recited in
10. The apparatus as recited in
11. The apparatus as recited in
12. The apparatus as recited in
13. The apparatus as recited in
a circuit data processor to partition extended net design data from the physical topology of the design data to form an extended net of the electrical circuit, the extended net design data including structure data of each of respective electrical structures that are members of the extended net, connection data describing connectivity of the electrical structures of the extended net, and an address by which the extended net design data is linked to the design data of the electrical circuit; and
a topology processor to execute the mapping of the location of each member electrical structure of the extended net in the physical topology to a location of the graphical representation of the corresponding one of the electrical structures in the logical topology as defined in the selected schematic topology template, the topology processor further to store the mapped locations of each of the member electrical structures in the extended net design data.
14. The apparatus as recited in
15. The apparatus as recited in
an annotation processor to back-annotate the logical data abstraction of the design data of the electrical circuit other than the electrical circuit from which the extended net was partitioned upon an indication that the member electrical structures described by the extended net design data are added to the layout data abstraction of the design data of the other electrical circuit.
16. The apparatus as recited in
18. The method as recited in
displaying to the user a listing of the predefined topology templates stored in a non-transitory machine-readable medium, the listing including an identifiable characteristic conveyed by the logical topology defined in each of the predefined topology templates, the identifiable characteristic being understood by the user in the context of the design of the physical system; and
selecting the topology template in which the identifiable characteristic corresponds to at least one characteristic of the subsystem.
19. The method as recited in
storing the mapped subsystem design data in a non-transitory machine-readable medium.
20. The method as recited in
constructing a drawing sheet data structure for the subsystem design data of each of a plurality of subsystems partitioned from the physical system;
storing the mapped subsystem design data of each of the subsystems in a corresponding drawing sheet data structure such that a data addressing operation by the user-operated machine to access a data item of one of the mapped subsystem designs retrieves from the tangible machine-readable medium the corresponding drawing sheet data structure in which the data item is stored.
21. The method as recited in
modifying the physical data abstraction of the design data corresponding to at least one of the components of the physical system;
retrieving the drawing sheet data structure containing the subsystem design data affected by the modification;
performing a corresponding modification to the logical data abstraction of exclusively the subsystem design data contained in the retrieved drawing sheet.
22. The method as recited in
indicating the modification in the logical data abstraction of the mapped subsystem design data in accordance with a graphical code indicative of a manner in which the design data was modified.
23. The method as recited in
presenting a user control on a user interface of the user-operated machine to request from the user whether modifications to the design data as indicated by the graphical indicators are to be committed to the design data; and
committing the changes to the design data only upon user confirmation to do so by activation by the user of the user control.
24. The method as recited in
selecting one of the components from the physical topology of the design data;
adding the component data and connection data of the selected one of the components to the subsystem design data, the connection data defining connectivity of the selected component with other components in the physical system;
selecting a next one of the components as the selected one of the components; and
repeating the method at the adding of the component data and the connection data until a user operating the machine affirms that the subsystem is a suitable partition of the physical system.
25. The method as recited in
establishing the physical system as an electrical circuit, a physical structure of each of the components as that of a corresponding electrical structure, and the topology templates as schematic topology templates that define the relative locations of the graphical representation of electrical components formed by the electrical structures;
encountering an electrical device during the selecting, the adding, and the repeating of the partitioning of the subsystem design data, the electrical device produced by a fabrication process other than the fabrication process by which the electrical structures are produced; and
adding the electrical device to the subsystem design data according to an instruction to do so provided by the user.
26. The method as recited in
establishing the fabrication process by which the electrical structures are produced to be one that produces radio frequency transmission line segments, and the fabrication process of the electrical device to be one that produces active electronic devices or encapsulated passive devices.
|
The general inventive concept described herein pertains to engineering design of physical systems by way of machine operations and by interaction with the machine by a user, typically a system designer. As used herein, a physical system is a set of components interconnected in a particular configuration so as to interoperate in a common purpose. It is to be understood that a system may include sub-systems that themselves meet the criteria of a physical system.
Engineering design, broadly, across the many engineering disciplines, involves the selective interconnection of various system components to transfer energy, or equivalently, to transport matter, therebetween so as to compel a system behavior satisfying a specified design goal. To that end, designers create, modify and analyze a system design in a design environment, such as a computer-aided design (CAD) system, a computer-aided engineering (CAE) system or an electronic design automation (EDA) system through a number of different data abstractions. As used herein, a data abstraction is a mechanism by which a data set is reduced or filtered so that the designer works with an appropriate subset of the data at any one time. For example, certain design tasks require only a subset of a complete data set that corresponds to a context in which the tasks are performed. Accordingly, each design task may have a context in which to perform the task and a data abstraction corresponding to the context in which the task is performed. It is to be understood that design element data underlying different data abstractions thereof refer to the same design element in the system design, but the different data abstractions reveal aspects of the design element that more readily assists the designer to perform different design tasks. For example, designers of electrical circuits may define logical connections and component parameters in a schematic entry context through a logical data abstraction, such as data abstraction presented as a schematic diagram, and may define component placement and physical connections in a layout context through a physical data abstraction, such as a data abstraction presented as a collection of footprints, i.e., the spatial occupancy of the components of the design, laid out as when the components are physically fabricated or assembled. Specific design contexts for physical systems other than electric circuits have corresponding data abstractions that present data in a manner consistent with the physical system or particular engineering design discipline. Generally, logical data abstractions, by which symbolic data of a physical system can be manipulated and physical data abstractions, by which spatial data of the physical system can be manipulated, are implemented in a suitable manner across many physical system design platforms.
As used herein, an operational domain is a set of operating conditions in which and/or by which the physical system is designed to operate. An operational domain may be, for example, atmospheric conditions established by a specific temperature and pressure, or may be a specific operational mode in which the physical system is driven, such as a specific range of electrical signal frequencies driving an electrical circuit. Selection of the operational domain is essential in physical system design since elements from which the physical system is constructed exhibit vastly different behavior across operational domains. Wire segments in an electric circuit, for example, behave according to distributed circuit parameters at frequencies over 500 MHz (referred to collectively herein as radio frequencies, or RF, although the RF operational domain, per se, includes frequencies that are lower than 500 MHz, and frequencies in modern RF circuitry greatly exceed 500 MHz) and behave according to lumped parameters at lower frequencies. As another example, the conduits of a thermodynamic system may have specific dynamic behavior in a particular operational domain, such as high temperature or pressure, which does not manifest itself in other operational domains, such as under standard temperature and pressure (STP) conditions. In varied operational domains, certain parameters of such components, such as the physical dimensions, shape and material from which the components are constructed, have an effect on the energy transfer from one component to another. As such, where these components could be represented in a design system by low-dimensional data (e.g., a single connection between components) in one operational domain, the component data should represent multidimensional properties in an operational domain wherein the components require definition of added parameters in order to function properly in the operational domain. Thus, an automated system design apparatus should afford the system designer with design tools by which the designer may modify the response behavior of components of the physical system, such as by changing the physical structure thereof and/or its surrounding structures. Of course, in doing so, the members connected to the modified components may also require modification so that the system function, as a whole, stays within designed operating tolerances once the change has been made. The design parameters assigned to various elements of a physical system affect system behavior and such assignment is thus an integral part of the design process.
As physical systems become more complex, which is certainly the case for electrical circuits, other design tools are required in a design platform so that the design data is not overwhelming to the designer. Indeed, whereas task automation, for example, has ameliorated certain onerous manual design operations, the designer remains, even today, the key component in a design process. Thus, the degree to which the designer can seamlessly interact with the design apparatus dictates the design time and the expense inherent thereto.
A physical system design typically starts as a concept 110 in the mind of the designer, or designers, represented by designer 115. The designer 115 may interact with a design system 120 to perform various design tasks, as illustrated at interactions 117. By way of the interactions 117 with design system 120, the designer may construct, modify, and verify design data 125 of the physical system 150 that may be ultimately used to fabricate or construct the physical system 150. The design system 120 may be a data processing apparatus executing processing instructions to perform computational, transformational and data presentation processes as directed by the designer 115. Accordingly, a primary function of the design system 120 is to accept input data and design instructions, and present a current state of the design by way of the interactions 117 in a manner that assists the designer in performing the design tasks without losing sight of the design concept 110.
As is illustrated in
As is known, a machine, in this case the design and fabrication system 118, is not capable of conceptualizing a design 110. Conversely, the designer 115 is not capable of fabricating a complex physical system design, especially when the physical structures forming the physical system are, for example, microscopic, as is the case with modern electrical circuits, without automated processes provided by the machine 100. Thus, a high level of cooperation between a designer 115 and the machine 100 is required to produce complex physical systems. Ultimately, it is in the design of the machine 100 and the mechanisms by which data are transferred between the designer 115 and the machine 100 that dictates the level to which the cooperation is achieved.
Various modern physical systems are extremely complex—comprising numerous complex subsystems spanning multiple technologies. Thus, it is preferable, and often necessary, to partition the overall design into manageable portions. Doing so, however, presents certain challenges, such as synchronizing portions of the design when another portion has been modified and performing simulations and verifications on subsystem designs that rely on other portions of the design still in an earlier design stage. Hence, an incremental design approach, where the portions of the design can be partitioned into small subsystems that are efficiently synchronized with, but verified independently of other portions of the design, can not only decrease the design time, but may also generate reusable portions of the design.
As stated above, certain systems, such as RF circuitry, are performance sensitive to the operational domain in which they operate. In RF circuitry specifically, the physical dimensions and shapes of component structures establish the frequency response of the structure. Thus, prudently designed conductor patterns are used to form functional components in RF circuits, such as capacitors and inductors. In certain design systems, these structures are defined by quantities established during layout. However, functional components are more easily entered into a design during the logical design phase. Moreover, interconnect structures between functional components, at RF frequencies, behave in accordance with parameters established at design time and, as such, incorporating such design elements into a design is more efficiently achieved by way of parameterized components in a schematic data abstraction. Given these mechanisms, the data defining RF circuit designs, and physical systems with analogous requirements, are efficiently managed when partitioned into small sub-circuits, and when the data specifying the sub-circuits can be manipulated through a logical data abstraction thereof.
The inventive concept described herein pertains to user interaction with a data processing machine to control the presentation of display data, where such interaction is interpreted and used by a data processor or computer architecture having system level elements of computation or data processing techniques prior to use with or in a specific display system. The display data are presented and edited in physical and logical topological contexts.
Additional aspects and utilities of the present inventive concept may be achieved by providing a user-operated machine and concomitant processes to design a physical system of components that interoperate by energy transfer amongst the components. Subsystem design data of at least one subsystem of the physical system may be partitioned from the design data, the partitioned subsystem design data establishing a physical topology specifying the location of each of the member components of the subsystem. A topology template is selected from a plurality of predefined topology templates; each template defines a logical topology specifying relative locations of symbols representing the member components of the subsystem in a logical data abstraction of the subsystem design data. The location of each member component in the physical topology is mapped to a location in the logical topology at which the corresponding symbol is to be located according to the selected topology template. The mapped data may be subsequently stored in a tangible storage medium and/or displayed on a display device.
The inventive concept disclosed herein is described in conjunction with the accompanying drawings, of which:
Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. It is to be understood that the term invention, when used herein, refers to the general inventive concept underlying the exemplary embodiments described below, and that the inventive concept is not limited to such illustrative embodiments themselves.
The present invention may be implemented as a part of a physical system production process, such as of the circuit production process 100 described above. It is to be understood that the present invention is limited neither to any fabricated product nor to any particular production process or the implementation details thereof. Additionally, any suitable fabrication data format may be used with the without deviating from the spirit and intended scope of the present invention.
The present invention will be described now in terms of electrical system design, but it is to be understood that the present invention may be utilized in numerous other physical system design contexts. That is, in the embodiments to be described herein, the system components are electrical components that modify the charge transport therethrough, and the charge is transported from one system component to another system component through structures in a physical medium that, for example, maximize such transport in a given operational domain. It is to be understood that, as used herein, the terms electrical circuit, electrical component, electrical structure, and the like, encompass circuits, components, and structures referred to as electronic circuits, components, and structures and/or active circuits, components, and structures. The present invention, as described below with reference to such electrical systems, may be used to design other systems that have analogous structure and/or design requirements. For example, in a design system to design the mechanical infrastructure of a building, for example, is used to design an electrical subsystem, where the energy is transferred through wires to various lighting fixtures, motors, and elevators, to name a few, and a heating, ventilation, and air conditioning (HVAC) subsystem, where the energy is transferred through ducts and pipes to the heating and cooling load of various rooms in the building, heat exchangers, and heat pumps, for example. In similar fashion to electrical circuits, the mechanical infrastructure may be represented in a physical data abstraction, such as to define the occupancy of various spaces through which the ducts, pipes, wires, etc. are routed, and a logical data abstraction of a topology that is other than that of the physical topology. Moreover, the logical topologies of the various subsystems of the mechanical infrastructure may be such as to convey some user-identifiable characteristic thereof, such as a specific thermodynamic configuration of components of a heat exchange/heat pump heating and cooling system. The skilled artisan will recognize the analogous principles of operation of the mechanical infrastructure described above, and other physical systems, to those of an electrical circuit. As such, the inventive concept described below is applicable to systems to design analogous physical systems in a manner similar to the circuit design system described herein. The scope of the present invention is intended to embrace such application in other design contexts and environments.
Collectively, the underlying data common to all data abstractions of a particular electrical circuit will be referred to herein as circuit data, or, alternatively, design data, and, in the exemplary embodiment of
It is to be understood that an action on one data abstraction 210, 240, and 270 is an action on the underlying data 200 as a whole and other data abstractions 210, 240, and 270 may have to be updated to reflect the action. Such an update is referred to as forward-annotation when information is provided from a data abstraction corresponding to an earlier design stage, such as a schematic entry design stage, to a data abstraction corresponding to a later design stage, such as a layout design stage. Conversely, back-annotation refers to providing information from a data abstraction corresponding to later stages of the design process to earlier stages of the design process.
The data abstractions 210, 240, and 270 may be presented to a designer through, for example, graphic elements displayed on a user interface of an EDA system. It is to be understood that while the data abstractions 210, 240, 270 may be illustrated and described in terms of their respective graphical representations, reference to the data underlying the graphical representations is implied. A description herein of an action on graphical representations impliedly refers to a suitable and corresponding machine-implemented action on the underlying data. It is to be understood also that data abstractions may be rendered in memory, such as by image data, without being presented graphically to the designer. Further, the underlying circuit data 200 may include data items that are not presented to the designer in abstractions illustrated and described herein. For example, data abstractions other than those illustrated and described herein may be implemented with the present invention, and the underlying circuit data 200 would include data items for those abstractions. Additionally, it is to be understood that data items, such as pin numbers, component and part designations, signal names, etc., other than those illustrated herein may be displayed in any and all of the graphic representations of the data abstractions, but may be omitted from the drawings herein for purposes of clarity in the figures.
Referring first to the simple schematic data abstraction 210, it is to be noted that the circuit 200 includes several components: an inductor 212, capacitors 214, 218, and a transistor 216. The components 212, 214, 216, and 218 are interconnected through a plurality of connections, representatively illustrated at connection 222 forming a plurality of nets, representatively illustrated at net 224. A net, as used herein, is a description of a connection of pins, i.e., points of connection on a circuit component, between components in a design. For example, as is illustrated through simple schematic data abstraction 210, the net 224 connects the base of transistor 216, the anode of capacitor 214, and the source node 223, all of which are ultimately interconnected by conductor segments in a fabrication process of the physical circuit. In certain embodiments of the invention, the net 224 is stored in a data structure constructed in a memory device, such as that described further below. In addition to points of connections on circuit components, a pin may define a connection between conductor segments, in which case the connection will be referred to herein as a node, such as is illustrated at node 215. A pin may also define a connection between different layers of a design (not illustrated), in which case the connection will be referred to herein as a via.
The circuit 200 may form a sub-circuit of a broader electrical circuit such as an extended net. As used herein, an extended net, or, alternatively, an XNet, is a set of nets having member nets that are interconnected through a predetermined set of components. In certain embodiments of the present invention, a designer may include any number of components independently of component type into an XNet, even across multiple levels of a circuit design hierarchy. Accordingly, for purposes of description and without loss of generality, the circuit 200 will also be referred to hereinafter as the XNet 200. The XNet 200, for example, includes the nets that interconnect the inductor 212, the capacitors 214 and 218, and the transistor 216. An XNet may be defined in accordance with a wide range of selection criteria, such as convenient size, an input/output relationship of signals processed thereby, common properties of components, and others. For example, an RF XNet includes any net that interconnects components that are designed to operate in accordance with requirements of an RF operational domain. An RF XNet may be further defined by other criteria, such as by the input/output relationship of the input and output nets of the sub-circuit.
The simple schematic data abstraction 210 includes a graphic symbol of each component 212, 214, 216, and 218 as well as a graphic representation of the connections between the components. The connections 220, 222, as presented in the simple schematic data abstraction 210, reveal only what components are connected, and at which pins, without specific physical circuit realization details, such as to how the connections are routed between structures in the circuit design and the dimensions of components and connections when fabricated in a physical circuit. The components and connections in the simple schematic data abstraction 210 may be arranged to reveal pertinent information regarding characteristics and/or behaviors of the circuit 200, which may otherwise be obscured in an arrangement of the physical components and connections as fabricated in a physical medium. For example, the skilled artisan will readily recognize from the simple schematic data abstraction 210 that the circuit 200 is a Collpitts oscillator circuit, where such identification is not readily forthcoming from the layout data abstraction 270 of the same circuit 200.
In certain EDA design flows, which may be implemented in conjunction with the present invention, the data entered by way of a schematic entry interface to produce the simple schematic data abstraction 210 undergoes automatic machine operations, as well as manual user operations, collectively illustrated at flow arrow 225, to generate a physical layout of the circuit 200. Operations 225 may include, among others, creating a netlist, component placement, autorouting, and manual routing of connections. The present invention, and more particularly, the processes 225 used therewith, is not limited to any particular technique or process by which a physical layout of the circuit 200 is created from a simple schematic data abstraction 210 thereof. It is to be understood, however, that the simple schematic data abstraction 200 need not be physically generated as part of the design process to practice the present invention. The electrical circuit 200 may simply reside as the concept 110 in the mind of the designer 115 and may be entered into the design data by way of the logical data abstraction 240 or the layout data abstraction 270, such as by the exemplary processes described below.
The exemplary layout data abstraction 270 includes, among other things, the geometric shapes, physical dimensions, and the relative placement of the physical structures by which the circuit 200 is fabricated in a physical medium. For example, the physical structure of the inductor 212 is represented in the layout data abstraction 270 as inductor pattern 212′, the capacitors 214 and 218 are represented in the layout data abstraction 270 as capacitor patterns 214′ and 218′, respectively, and transistor 216 is represented in the layout data abstraction 270 as transistor symbol 216′. It is to be noted that, as is depicted by the graphical representation of the layout data abstraction 270, the inductor 212 and the capacitors 214, 218 are fabricated from conductive patterns formed on the physical medium according to the patterns 212′, 214′, and 218′, respectively, as opposed to being implemented by distinct packaged components. The layout data abstraction 270 presents, further, data defining the structures forming the connections 220 and 224 at connections 220′ and 224′, respectively. The connections 220′ and 224′ may be ultimately constructed, and represented as, for example, transmission line (TL) segments, representatively illustrated at TL segment 274. It is to be understood that the structures forming the circuit 200 may be constructed from multiple layers of material, and only certain layers may be presented to a user in a view of layout data abstraction 270 at any one time. The present invention is not limited to any particular presentation technique by which different physical layers are presented to a user.
As used herein, any design operation following the operations 225, i.e., a design operation performed at or subsequent to the components and connections being geometrically established in the layout, is referred to as a back-end process, where, conversely, any operation performed prior to such geometric establishment is referred to herein as a front-end process. The physical layout produced by operations 225 may be viewed and modified via the layout data abstraction 270 through a user interface of an EDA system. Typical back-end processes include design verification processes, such as one or more design rule check (DRC) processes that, for example, determine whether any specified design tolerances are violated in the layout of the circuit 200. Additionally, traditional back-end processes may include a layout-versus-schematic (LVS) process that, for example, determines whether the layout data abstraction 270 is logically and functionally equivalent to the simple schematic data abstraction 210.
In accordance with the present invention, the logical data abstraction 240 may be captured in a schematic entry process and/or derived from either the simple schematic data abstraction 210 or the layout data abstraction 270. The logical data abstraction 240 includes data items pertaining to the structure of the XNet 200, but in a manner by which the data may be presented in logical schematic form. For example, the logical data abstraction 240 includes data defining TL segments, such as illustrated by the representation of the TL segment 244, and data defining the circuit components, such as illustrated by the inductor representations 212″, capacitor representations 214″, 218″, and transistor representation 216″. The designer may manipulate the data underlying the respective representations presented in the logical data abstraction 240 to define the circuit behavior of the respective components 212, 214, 216, and 218, through representations 212″, 214″, 216″, and 218″, respectively. Additionally, the designer may define the circuit behavior of the TL segments 220′ and 224′ through representations 220″ and 224″. Such behavior definition, as well as the modification thereof, may be achieved through user interaction with a user interface, such as that described below, and/or by automated machine operations, such as those described below, or a combination of both.
As stated above, the logical data abstraction 240 may be derived from the simple schematic data abstraction 210 through one or more processes 230, or from the layout data abstraction 270 through one or more processes 260. For example, processes 230 may include a process that converts one-dimensional connection data, i.e., data that defines only a connection between pins, to multi-dimensional data that defines structure, such as the representations of TL segments 244. Beneficially, in accordance with certain embodiments of the present invention, with the TL segments 244 defined in the logical data abstraction 240, various verification processes, such as certain DRC processes may be performed as front-end processes. For example, a DRC process may determine whether the component data of connected components, such as the components 242, prescribe a structure, such as a contiguous transmission line structure, that is consistent with design requirements of the operational domain, such as to minimize RF signal reflections at the interface of abutting components. Thus, a designer may design and verify a greater number of system behaviors without reliance on the layout data abstraction 270. Additionally, certain errors identified by the front-end verification processes can be corrected in a schematic entry interface, which is generally more efficient for a designer. One or more processes 265 may be used with the present invention to generate the layout data abstraction 270 from the logical data abstraction 240, such as, among others, component placement, component pattern generation, such as the inductor pattern 212′, autorouting, and manual routing of connections.
Processes 260 may include topological extraction of component data, back-annotation of the component data, and arrangement of components into a topology other than the topology of the layout data abstraction 270. The relative placement of symbolic data of the logical data abstraction 240 is referred to herein as a logical topology, represented as logical topology 241, and spatial data of the layout data abstraction 270 is referred to herein as a physical topology, represented as physical topology 271. In certain embodiments of the present invention, the topologies 270 and 271 are mutually independent, allowing the logical data abstraction 240 to be arranged in a topology other than that of the layout data abstraction 270.
The mechanisms described with reference to
Illustrated in
Drawing sheet 290 illustrates exemplary content that can be utilized in embodiments of the present invention. Exemplary drawing sheet 290 includes data structures 292 and 294 containing data describing corresponding XNets. As used herein, descriptive data is a set of quantifiable attributes or parameters by which an object is represented to a machine, such as a data processing apparatus, in a manner sufficient to satisfy one or more predetermined objectives. For example, dimensions of structures, symbols representative of structures, and coordinates defining relative placement of structures, among others, are data describing an XNet.
Each of the XNet data structures 292 and 294 may include logical data 295, by which the logical data abstraction 240 of the corresponding XNet may be formed, and physical data 297, by which a physical data abstraction 270 of the corresponding XNet may be formed. In certain embodiments of the invention, the logical data 295 includes logical topology data 241 to define a relative placement of symbolic representations of electrical structures in the logical data abstraction, and the physical data 297 includes physical topology data 271 to define the placement of the electrical structures in the physical data abstraction, which corresponds to the placement of the electrical structures in a physical medium once the XNet is fabricated.
In certain embodiments of the present invention, the XNet data structures 292 and 294 include one or more addresses, representatively illustrated at address 296, by which the XNet is linked to other portions of the circuit design 280. For example, the data in XNet data structure 294 can be incorporated in circuit data 287 at incorporation point 285, as indicated by the incorporation process arrow 289, by providing the address of address data field 296 in the address data field 284, and vice versa, and providing the address of address data field 298 in the address data field 286, and vice versa. Thus, when incorporation point 285 is accessed by way of a machine-implemented process, the data in data structure 294 will be provided to the machine-implemented process.
The drawing sheet 290 may include a sheet address field 299 by which the drawing sheet 290 may be inserted at a specific location among the drawing sheets 283 and 289. Drawing sheet ordering is a feature that allows the designer to organize the circuit data 280 according to the designer's preference.
It is to be understood that the data content of a drawing sheet 290 can vary in accordance with the application of the present invention. In the examples that follow, the drawing sheet 290 will be constructed to store data of one or more RF XNets, and will be referred to herein as an RF sheet.
The exemplary data processing apparatus 300 of the embodiment illustrated in
A storage unit 340 may be utilized to store data and processing instructions on behalf of the exemplary data processing apparatus 310 of
The data processing apparatus 300 may include a persistent storage system 330 to store data and processing instructions across processing sessions. The persistent storage system 330 may be implemented in a single persistent memory device, such as a hard disk drive, or may be implemented in multiple persistent memory devices, which may be interconnected by a communication network.
It is to be understood that the number and respective assignment of functions to the functional modules illustrated in
The exemplary CDS 350 includes a process controller 360 to coordinate and control the interoperations of the functional modules of the CDS 350 so as to achieve a fully operational data processing system. For example, the process controller 360 may receive data corresponding to user manipulations of the user interface 365 (to be described below), may format the data into a command and/or data location in memory, and may convey such information to the applicable functional module of the CDS 350. The process controller 360 may subsequently receive processed data from the applicable functional module and forward the data to another functional module, as well as to indicate such processing on the user interface 365. The process controller 360 will perform other coordination and control operations according to the implementation of the CDS 350, and such other operations, as well as the implementation thereof, can be embodied by a wide range of well-known process control methods and apparatuses. The present invention is intended to encompass all such alternatives of the process controller 360, including multi-threaded and distributed process control methodologies.
As indicated above, the CDS 350 may include a user interface 365 through which a user interacts with the CDS 350. The user interface 365 may be implemented by a combination of hardware devices and suitably programmed processing instructions executed by the processor 310. The user interface 365 may be used to present data to the user in a meaningful form on a display interface 367, such as through graphical representations of circuit schematics, circuit layout diagrams, circuit test bench interfaces, and of data management interfaces such as file directories, circuit hierarchy diagrams, and other images recognized by the user. The user interface 365 may interpret user manipulations of any HIDs thereof into signals, messages and instructions that can be recognized by the process controller 360. The user interface 365 may include a plurality of user controls 369 to afford the user interactivity with and control over the CDS 350. The user controls 369 may include the HIDs described above, and may also include software implemented controls on the display interface 367, such as toolbars and/or buttons, menus of commands, text command entry blocks, and other suitable software controls. The foregoing description of the user interface 365 may be met by a suitably configured graphical user interface (GUI), the implementation details of such will be omitted in the interest of conciseness.
The CDS 350 may include a design database 387 of circuit objects that maintain all the data necessary to design, analyze, modify, and fabricate an electric circuit per the specifications of a circuit designer. As used herein, a circuit object is a data structure that can be stored in a memory device to contain data of a circuit element so that the circuit element can be viewed, modified, logically connected with other circuit elements, and analyzed in one or more circuit design contexts selected by a user. A circuit object may also contain graphical abstraction information so that a particular circuit element may be presented on the display interface 367 as, for example, a schematic symbol in a schematic entry design context, presented as a footprint in a layout design context, presented as a routing component in a circuit routing design context, and provided as a component model in a circuit analysis and design verification context. A circuit object may also be hierarchical, whereby a circuit object contains other circuit objects of circuit elements interconnected to form a component that has a schematic symbol, layout footprint, and a terminal characteristics model used as a single element in a circuit. An example of such a circuit object is that of an operational amplifier.
As illustrated in
The exemplary component data structure 440 includes a component designator 441, a canonical path reference 442 in the circuit design to a location in a logical hierarchy of the circuit design at which the component is assigned, a rotation angle 443 of the component, a physical coordinate location 444 of the electrical structure, and data field 445 establishing whether the component is flipped in mirror fashion. It is to be understood that other data regarding a particular electrical structure may be stored in component data structure 440 to sufficiently store a physical state of the corresponding component.
The component data structure 440 may include a parameter data structure 450 containing data fields that define the shape of the electrical structure. The number and types of data fields will depend on the type of electrical structure being defined. The exemplary data fields illustrated in
The exemplary component data structure 440 includes a connections data structure 460 that identifies the nets to which the pins of the component are connected. The number of data fields defining the pin connections corresponds to the number of pins on the component. The butterfly stub 416 has two ports, and therefore only two pins, and only two data fields 462 assigning the net connections to the component ports. On the other hand, the coupled line component 414 of
Design database 387 may store drawing sheets that may be inserted into the circuit design, as described above with reference to
The exemplary CDS 350 includes a template database 383 in which to store schematic topology templates. As used herein, a schematic topology template is a data structure to store data defining a spatial arrangement of logically connected schematic symbols of the logical data abstraction. By such templates, the logical topology of the schematic diagram may be other than the physical topology of the layout of the circuit, which can beneficially provide greater readability of the circuit data and convey greater meaning to the designer.
The exemplary schematic topology template 500 includes a data structure 520 that contains one or more device definitions 530 to respectively define the types of components and the placement and orientation of the components in the schematic topology. For example, data structure 530 describes the inductor 594 of the schematic topology 590, and data structure 540 describes the capacitor 598 of the schematic topology 590. Exemplary data structure 532 defines the relative placement and orientation of the inductor 594 and data structure 534 defines the connections of the inductor 594. As is illustrated in
The device definitions 530 and 540 are correlated with corresponding circuit components of the XNet to which the template is being applied, as is described with reference to
In certain embodiments of the present invention, an XNet data structure 576 is formed to contain the component data of components that are members of the XNet, as illustrated in
As illustrated in
It is to be understood that the design database 387 may interoperate closely with the template database 383, such as when circuit objects are shared therebetween. As such, the template database 383 and design database 387 may be considered, and indeed constructed, as a single database 380. The present invention is not limited to the manner in which the database 380 is constructed, and numerous possibilities of storing circuit data objects and related template objects can be used with the present invention without departing from the spirit and intended scope thereof.
The exemplary CDS 350 includes a circuit data processor 373 to perform general processing tasks on circuit objects, such as, among others, electrical structures, circuit components, XNets, and drawing sheets. Such processing tasks may include, among others, formatting circuit objects as entered by a user, generating data abstractions from circuit objects, modifying underlying circuit data in accordance with changes to a particular data abstraction, and rendering graphical representations of data abstractions for display. Additionally, the circuit data processor 373 may extract XNets from the circuit data, either from a layout or a schematic. The extracted XNets may be, among other things, incorporated into a drawing sheet, stored, modified, and reused as needed, even across different circuit designs.
In operation 615, it is determined whether the selected component is an RF component. Whether a component is considered an RF component may be established by predetermined settings in the CDS 350. In certain embodiments of the present invention, a mechanism to override the default selection of only components constructed from RF TL segments is provided so that, for example, active components and discrete encapsulated passive components may be included in an RF XNet. Such override mechanism is useful to include components constructed by alternative fabrication technologies. For example, in RF XNets described herein, the fabrication technology used to construct the electrical structures is that by which RF TL segments are produced, such as by a printed circuit process. Components not produced by the TL segment fabrication technology, such as integrated circuit fabrication processes used to form active components such as transistors, and discrete component encapsulation process used to construct discrete devices, such as surface mount inductors and capacitors, may be included in the XNet. Referring to
In operation 630, it is determined whether the RF XNet is being extracted from a schematic data abstraction. If so, a representation of a TL circuit object that serves to connect RF components is inserted into the RF XNet data structure. As is illustrated in
In certain embodiments of the present invention, operation 630 may include schematic data entry in conjunction with the RF XNet extraction operation. For example, the designer may indicate a connection 719 between components (not illustrated), such as by a mouse operation, representatively illustrated at cursor 720. Upon the connection 719 being entered into the design, a placeholder symbol, such as the box 721, may be inserted in the connection, such as the connection 716. Subsequently, the designer may be presented with options by which the type of component may be selected. For example, upon the completed mouse operation 720 to indicate the connection 719, the placeholder symbol 721 is inserted in the connection 719 (not illustrated for purposes of clarity), and a menu control, such as menu control 750 may be presented to the user on the user interface 365. The menu control 750 may be activated by a mouse operation, illustrated at the cursor 720, from which the appropriate RF component may be selected such as at menu selection 752. The selected component 752 then replaces the placeholder symbol 721 in the logical data abstraction of the XNet, as illustrated at microstrip line 739. Similarly, the designer may select a symbol in data abstraction 730, such as by cursor 720, and then may select an alternative structure from menu 750. The parameters of a specifying the specific shape, dimensions, and cross-sectional structure, for example, of any instance of an electrical structure, such as TL segment 739 may be set by the designer once the TL segment has been inserted into the RF XNet.
As components are added to the RF XNet, including TL segments that are extracted from the layout or inserted in operation 635, the logical connections between components are inserted in operation 640. Such insertion is illustrated in
It is determined at exemplary operation 645 whether predetermined stopping criteria have been reached, such as whether the extent of the RF XNet satisfies a particular preference of the designer. If the stopping criteria have been met, the process exits. If, however, the stopping criteria have not been met, the process returns to operation 610, whereby a new component is selected. By way of the exemplary RF XNet extraction process 600, an RF XNet can be of arbitrary size and contain components that are other than RF shapes, such as the active components and discretely packaged passive components described above. The process 600 may be repeated to form other XNets from the same layout data, even to the extent that the entire circuit is partitioned into a plurality of XNets.
In certain embodiments of the present invention, an RF XNet may be inserted into a design as an RF drawing sheet. A graphical representation of exemplary RF sheet 800 is illustrated in
Referring to
In certain embodiments of the present invention, instances of electrical structures are used repeatedly, parameterized in accordance with a context in which individual instances are placed, and organized in a hierarchy of design data. Such hierarchy may be implanted through suitable hardware description language macros so as to relieve the designer of arduous graphical manipulations that would otherwise be required.
Illustrated in
In certain embodiments of the present invention, an XNet 910 includes components 935 that reside across multiple levels of the hierarchical circuit design 900. Additionally, the logical topology of the XNet 910 may be such as to convey a user-identifiable characteristic, such as by application of a schematic topology template described with reference to
In
In accordance with an embodiment of the present invention, the assignments of the added electrical structures 940′, 945′, 950′, 955′ and 960′ to the hierarchical levels 915, 920, 925, and 930 are made through automated machine operations of the CDS 350, based on the connectivity of the added electrical structures 940′, 945′, 950′, 955′ and 960′. For example, the placement of electrical structure 940′ is such that one connection thereto is via the interface connection 936, and the opposing connection thereto is via a non-interface connection to electrical structure 935′. In the exemplary embodiment of the present invention, automated machine operations place a component in the scenario demonstrated by the placement of electrical structure 940′ at the hierarchical level corresponding to the non-interface connection. Accordingly, the representation 940 of electrical structure 940′ is placed in hierarchical level 920, as illustrated in
The addition of electrical structures 945′, 950′, and 955′ present a slightly different scenario. Whereas the placement of representation 945 corresponding to added electrical structure 945′ is placed in accordance with the same placement determination as that of representation 940, the complete connectivity of representation 950, i.e., which pin of the representation 950 is connected to a non-interface connection and which, if any, are not, cannot be known prior to the hierarchical placement of representation 955. Accordingly, representation 955 may be placed prior to the placement determination of representation 950. Since electrical structure 955′ is connected via a non-interface connection to electrical structure 926′, the representation 955 is placed at the hierarchical level 925 of the non-interface connection. Added electrical structure 950′ is then determined to have a non-interface connection to electrical structure 955′ and an interface connection to the electrical structure 945′, the representation 950 is placed at hierarchical level 925.
Added electrical structure 960′ is a set of microstrip asymmetrical coupled lines, or MACLIN, connected to microstrip line segment 937′, or MLIN, at the hierarchical level 930 and to MLIN 926′ at another hierarchical level 925. Thus, given the connectivity of MACLIN 960, the representation 960 thereof may be validly placed at any one of the hierarchical levels 915, 925, and 930. Thus, the placement of representation 960 is ambiguous. In certain embodiments of the present invention, ambiguous symbol placement is set to the lowest common ancestor level of the hierarchy, which in the illustrated example, is the top-most level 915. To maintain the hierarchical interface connectivity, the original interface connections 916 and 918 remain in place, as is illustrated in
The representations 940, 945, 950, 955 and 960 of the added electrical structures 940′, 945′, 950′, 955′ and 960′ may be assigned to drawing sheet data structures, as illustrated in
The exemplary CDS 350 includes a front-end verification processor 379 to perform design verification processes on the schematic abstraction of the data. Such verification affords correction of structural errors as a front-end process prior to computationally intensive geometric processing of the circuit data into a layout. An exemplary front-end design verification process 1000 is illustrated in
In operation 1015, a logical connection between RF components is selected and in operation 1020, the structural parameters assigned to the components connected by the selected logical connection are obtained from the extended schematic data abstraction. Such parameters may be those described with reference to the topology file 430 described above such as, for example, microstrip line width. In operation 1025, the parameters are used to determine whether there is a structural match between the logically connected components. For example, a microstrip line should have like width as a mitered bend to which it is connected so as to form a contiguous electrical structure. If it is determined that there is a structural error between components, such is reported to the user in operation 1030 and a correction therefor is either sought from the user, or may be automatically corrected in accordance with predefined rules. For example, widths may be corrected to form a contiguous electrical structure or a via may be added to connect disparate structures, such as connecting a strip line with a microstrip line. In certain embodiments of the present invention, the user may set a system parameter that informs the system to correct certain simple errors, such as width mismatches, without prompting the user. In operation 1035, it is determined whether all logical connections have been traversed and, if not, the process 1000 iterates from operation 1015. Otherwise, the process 1000 exits.
The exemplary CDS 350 includes a topology processor 377 to rearrange the physical topology of the defined in the layout data abstraction to a topology that lends itself to be more easily read and understood by a designer. A logical schedule that retains the topology of the corresponding physical schedule may be essentially unreadable when presented to a designer. The topology processor 377 may execute automated machine instructions to implement the template application process described with reference to
The exemplary CDS 350 includes an annotation processor 375 to perform back-annotation processes to synchronize a logical data abstraction with changes to the corresponding physical data abstraction and to perform forward-annotation process to synchronize the physical data abstraction with changes to the corresponding logical data abstraction. In certain embodiments of the present invention, the back-annotation process, and similarly the forward-annotation process, updates structural parameters in the logical data abstraction across sub-circuits in the design. For example, if changes to an RF XNet in one portion of a design require corresponding changes to, for example, another RF XNet in a separate RF sheet of the design, the annotation processor 375 performs suitable back-annotation processes to update the RF sheet based on the changes to the changes to the RF XNet.
The annotation processor 375 may also implement functions by which previously created RF topologies may be inserted into a circuit design. For example, as discussed with reference to
In certain embodiments of the present invention, the annotation processor 375 includes a preview mechanism by which updated data circuit may be previewed prior to committing the change to the design. The preview mechanism may be achieved by, for example, suitable graphical coding, such as color coding on a display whereby changes to parameters of a component are presented in respective colors. For example, as illustrated in
The exemplary work space 397 is provided to temporarily store data, including temporary file structures, during various data processing procedures. For example, various data abstractions of the circuit data may be rendered into the work space 397 prior to being presented to the designer on the user interface 365. The work space 397 may be allocated from, for example, data memory 344. The present invention is limited neither by the construction of the work space 397 nor by the manner in which the work space 397 is allocated. Any number of suitable data storage techniques may be used with the present invention without deviating from the spirit or intended scope thereof.
Certain embodiments of the present invention provide for functional components thereof to be manufactured, transported, marketed and/or sold as machine instructions encoded on machine-readable media. The present general inventive concept, when so embodied, can be practiced regardless of the processing platform on which the machine instructions are executed and regardless of the manner by which the machine instructions are encoded on the machine-readable medium.
It is to be understood that the machine-readable medium discussed in the paragraph above may be any medium on which the instructions may be encoded and then subsequently retrieved, decoded and executed by a processor, including electrical, magnetic and optical storage devices, and wired, wireless, optical and acoustical communication channels. The machine-readable medium may be a computer-readable medium that includes either or both of persistent storage, referred to herein as “computer-readable recording media” and as spatiotemporal storage, referred to herein as “computer-readable transmission media”. Examples of computer-readable recording media include, but not limited to, read-only memory (ROM), random-access memory (RAM), and other electrical storage; CD-ROM, DVD, and other optical storage; and magnetic tape, floppy disks, hard disks and other magnetic storage. The computer-readable recording media may be distributed across components, to include such distribution through storage systems interconnected through a communication network. The computer-readable transmission media may transmit encoded instructions on electromagnetic carrier waves or signals, or as acoustic signals through acoustically transmissive media. Moreover, the processor instructions may be derived from algorithmic constructions of the present general inventive concept in various programming languages, the mere contemplation of which illustrates the numerous realizable abstractions of the present general inventive concept.
The descriptions above are intended to illustrate possible implementations of the present inventive concept and are not restrictive. Many variations, modifications and alternatives will become apparent to the skilled artisan upon review of this disclosure. For example, components equivalent to those shown and described may be substituted therefore, elements and methods individually described may be combined, and elements described as discrete may be distributed across many components. The scope of the invention should therefore be determined not with reference to the description above, but with reference to the appended claims, along with their full range of equivalents.
Gupta, Nikhil, Kukal, Taranjit Singh, Khanna, Vikrant, Durrill, Steve, Xiao, Dingru
Patent | Priority | Assignee | Title |
10489549, | Dec 22 2017 | Cadence Design Systems, Inc. | Tree-routing for specific areas of an electronic design |
10521097, | Sep 29 2017 | Cadence Design Systems, Inc. | User interface to implement topology integrity throughout routing implementations |
10551431, | Dec 22 2017 | Cadence Design Systems, Inc. | EM-compliance topology in a tree router |
10817641, | Sep 29 2017 | Cadence Design Systems, Inc. | Method and system to implement topology integrity throughout routing implementations |
9223915, | Aug 05 2014 | Cadence Design Systems, INC | Method, system, and computer program product for checking, verifying, or testing a multi-fabric electronic design spanning across multiple design fabrics |
9280621, | Aug 05 2014 | Cadence Design Systems, INC | Methods, systems, and articles of manufacture for analyzing a multi-fabric electronic design and displaying analysis results for the multi-fabric electronic design spanning and displaying simulation results across multiple design fabrics |
9286421, | Aug 05 2014 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for back annotating and visualizing parasitic models of electronic designs |
9348960, | Aug 05 2014 | Cadence Design Systems, INC | Method, system, and computer program product for probing or netlisting a multi-fabric electronic design spanning across multiple design fabrics |
9361415, | Aug 05 2014 | Cadence Design Systems, INC | Method, system, and computer program product for implementing a multi-fabric electronic design spanning across multiple design fabrics |
9449130, | Aug 05 2014 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for back annotating and visualizing parasitic models of electronic designs |
9779193, | Mar 31 2015 | Cadence Design Systems, Inc.; Cadence Design Systems, INC | Methods, systems, and computer program product for implementing electronic design layouts with symbolic representations |
9881119, | Jun 29 2015 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for constructing a simulation schematic of an electronic design across multiple design fabrics |
9881120, | Sep 30 2015 | Cadence Design Systems, Inc.; Cadence Design Systems, INC | Method, system, and computer program product for implementing a multi-fabric mixed-signal design spanning across multiple design fabrics with electrical and thermal analysis awareness |
9934354, | Jun 30 2016 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for implementing a layout-driven, multi-fabric schematic design |
Patent | Priority | Assignee | Title |
6920620, | Jan 16 2002 | Synopsys, Inc | Method and system for creating test component layouts |
20050120319, | |||
20050278670, | |||
20070245274, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 08 2009 | XIAO, DINGRU | Cadence Design Systems, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022539 | /0849 | |
Apr 12 2009 | DURRILL, STEVE | Cadence Design Systems, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022539 | /0849 | |
Apr 13 2009 | Cadence Design Systems, Inc. | (assignment on the face of the patent) | / | |||
Apr 13 2009 | KUKAL, TARANJIT SINGH | Cadence Design Systems, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022539 | /0849 | |
Apr 13 2009 | GUPTA, NIKHIL | Cadence Design Systems, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022539 | /0849 | |
Apr 13 2009 | KHANNA, VIKRANT | Cadence Design Systems, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022539 | /0849 |
Date | Maintenance Fee Events |
May 25 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
May 25 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 25 2017 | 4 years fee payment window open |
May 25 2018 | 6 months grace period start (w surcharge) |
Nov 25 2018 | patent expiry (for year 4) |
Nov 25 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 25 2021 | 8 years fee payment window open |
May 25 2022 | 6 months grace period start (w surcharge) |
Nov 25 2022 | patent expiry (for year 8) |
Nov 25 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 25 2025 | 12 years fee payment window open |
May 25 2026 | 6 months grace period start (w surcharge) |
Nov 25 2026 | patent expiry (for year 12) |
Nov 25 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |