Source: http://www.google.com/patents/US5095441?dq=No.+6,411,949&ei=AUR7T-LGJqSr0AHy2aSiBg
Timestamp: 2014-08-21 02:31:25
Document Index: 241608573

Matched Legal Cases: ['arts 700', 'art 700', 'art 700', 'art 700', 'arts 700', 'art 700', 'art 700', 'arts 700', 'art 700', 'art 700', 'arts 800', 'art 800', 'art 800', 'art 800', 'art 800', 'art 800', 'art 800', 'art 1100', 'art 1100']

Patent US5095441 - Rule inference and localization during synthesis of logic circuit designs - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign in<nobr>Advanced Patent Search</nobr>PatentsA logic method for accessing rules in a logic circuit synthesis system. Application of rules in a data base results in replacement of one or more model instances with other model instances or in alteration of values associated with the model instances or in the alteration of parameter values in the data...http://www.google.com/patents/US5095441?utm_source=gb-gplus-sharePatent US5095441 - Rule inference and localization during synthesis of logic circuit designsAdvanced Patent SearchPublication numberUS5095441 APublication typeGrantApplication numberUS 07/373,085Publication dateMar 10, 1992Filing dateJun 28, 1989Priority dateSep 12, 1986Fee statusPaidAlso published asCA2016508A1, CA2016508C, EP0405728A2, EP0405728A3Publication number07373085, 373085, US 5095441 A, US 5095441A, US-A-5095441, US5095441 A, US5095441AInventorsDonald F. Hopper, Edward G. Fortmiller, Snehamay Kundu, David F. WallOriginal AssigneeDigital Equipment CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (9), Non-Patent Citations (12), Referenced by (32), Classifications (9), Legal Events (7) External Links: USPTO, USPTO Assignment, EspacenetRule inference and localization during synthesis of logic circuit designsUS 5095441 AAbstract A logic method for accessing rules in a logic circuit synthesis system. Application of rules in a data base results in replacement of one or more model instances with other model instances or in alteration of values associated with the model instances or in the alteration of parameter values in the data base. Model instances are designated as VISIBLE or INVISIBLE, INVISIBLE model instances are ignored during logic circuit synthesis. VISIBLE model instances may be NEW or INACTIVE. All VISIBLE model instances are initially NEW. If no rule assciated with a model instance is TRUE, the model instance becomes INACTIVE. If at least one rule associated with a model instance is TRUE, one or more model instances are replaced and all inserted model instances and model instances directly connected to the inserted model instances become NEW. The number of model instances a rule will replace is called a SIZEWIN value of the rule. During synthesis, each VISIBLE, NEW model instance is paired with its associated rule having the greatest SIZEWIN value. The instance-rule pairs are grouped by SIZEWIN value and the rules of the groups having the greatest SIZEWIN value are tested first. If a model instance has been replaced by a previously executed rule, it is designated as DELETED and its associated, paired rule evaluates to FALSE.
What is claimed is: 1. A process of synthesizing a circuit design by replacing a first set of model instances stored in the data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances and by altering parameter values of objects in the data base by application of the set of rules, each of the rules having an antecedent portion and a consequence portion, the method comprising the steps of:storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or of altering parameter value of an object in the data base, and each rule having an associated SIZEWIN value representing a figure of merit; assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs; arranging the set of instance-rule pairs into groups according to the SIZEWIN values of the rules of the pairs; and applying a consequence portion of respective ones of the rules of the instance-rule pairs by group to ones of the model instances when an antecedent portion of respective ones of the rules is TRUE. 2. The process of claim 1, wherein the step of applying the rules of the instance-rule pairs by group further includes:applying the rules of a group including rules having the largest SIZEWIN value first; and applying the rules of a group including rules having the smallest SIZEWIN value last. 3. The process of claim 1, wherein the step of storing the set of rules in the data base further includes the step of:assigning a predetermined SIZEWIN value to at least one rule, wherein the predetermined SIZEWIN value represents a relative importance of the rule in comparison to the other rules. 4. The process of claim 1, wherein the step of storing the rules in the data base further includes the step of:assigning a predetermined SIZEWIN value to at least one rule, wherein the predetermined SIZEWIN value represents the number of model instances that the rule is capable of replacing. 5. The process of claim 1, wherein the step of assigning an associated rule to at least one of the model instances of the first set further includes the step of assigning an associated rule having the highest SIZEWIN value.
6. The process of claim 1, wherein each of the rules evaluates to one of TRUE and FALSE for each model instance with which it is associated, andwherein the step of assigning an associated rule to at least one of the model instances of the first set includes the step of assigning an associated rule when the rule evaluates to TRUE for the at least one model instance with which the rule is associated. 7. The process of claim 1, wherein the steps of assigning, arranging, and applying form a minor loop and the process further includes the step of iteratively performing the minor loop until no rules were assigned in the assigning step of a previous iteration.
8. The process of claim 7, further including the step of iteratively performing the testing and performing steps until all the rules of the set of instance-rule pairs have been tested.
9. The process of claim 1, wherein a rule includes an antecedent portion containing a test and a consequence portion containing an action and wherein the applying step further includes the steps of:testing the antecedent portion of one of the assigned rules; and performing the consequence portion of the assigned rule when the testing step determines that the antecedent portion evaluates to TRUE and when the model instance paired with the rule has not been replaced. 10. The process of claim 9, wherein the antecedent portion of a rule refers to a plurality of model instances, and wherein the performing step further includes the step of performing the consequence portion of the assigned rule when the antecedent portion of the assigned rule does not refer to model instances that have been replaced.
11. The process of claim 10, wherein a replaced model instance is designated as DELETED, and wherein the performing step of claim 10 further includes the step of performing the consequence portion of the assigned rule when the antecedent portion of the assigned rule does not refer to model instances that are designed as DELETED.
12. The process of claim 9, wherein a replaced model instance is designated as DELETED, and wherein the performing step further includes the step of performing the consequence portion of the assigned rule when the testing step determines that the antecedent portion evaluates to TRUE and when the model instance paired with the rule is not designated as DELETED.
13. A process of synthesizing a circuit design by replacing a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances, each of the rules having an antecedent portion and a consequence portion, the method comprising the steps of:storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or of altering a parameter value of an object in the data base; designating ones of the first set of model instances as VISIBLE; and applying a consequence portion of ones of the subsets of rules associated with the VISIBLE model instances in the first set of model instances to replace ones of the first set of model instances with model instances in the second set when an antecedent portion of respective ones of the rules is TRUE. 14. The process of claim 13, wherein the designating step further includes the steps of:designating other ones of the first set of model instances as INVISIBLE; and declining to apply the subsets of rules associated with the INVISIBLE model instances. 15. The process of claim 14, wherein the step of applying ones of the subsets of rules associated with the VISIBLE model instances further includes the steps of applying ones of the subsets of rules associated with the VISIBLE model instances to replace ones of the first set of model instances, wherein the replaced model instances include INVISIBLE model instances.
16. A process of synthesizing a circuit design by replacing a first set of model instances stored in a data base and representing the circuit design with a second set of model instanced stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances and by altering parameter values of objects in the data base by application of the set of rules, each of the rules including an antecedent portion and a consequence portion, the method comprising the steps of:storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or of altering a parameter value of an object in the data base; assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs, wherein performance of the assigning step results in other model instances of the first set lacking an assigned rule; applying the consequence portion of one of the rules of the instance-rule pairs to ones of the model instances when the antecedent portion of respective ones of the rules is TRUE; and designating as INACTIVE the model instances lacking an assigned rule. 17. The process of claim 16, further including the step of initially designating each model instance in the first set as NEW.
18. The process of claim 17, wherein the assigning step further includes the step of assigning an associated rule only to NEW model instances in the first set to provide a set of instance-rule pairs, thus causing model instances lacking an assigned rule.
19. The process of claim 18, wherein the steps of assigning, applying, and designating of claim 18 are performed in a plurality of iterations, and wherein the step of designating as INACTIVE further includes the step of designating as INACTIVE a model instance that has lacked an associated rule during at least two successive iterations.
20. The process of claim 19, wherein the step of designating as INACTIVE further includes the step of designating as SEMIACTIVE a model instance that has lacked an assigned rule during a single iteration.
21. The process of claim 18, further including the steps of:designating as NEW all model instances directly connected to a model instance replacing a current model instance. 22. An apparatus for synthesizing a circuit design by replacing a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances and by altering parameter values of objects in the data base by application of the set of rules, the rules including an antecedent portion and a consequence portion, the apparatus comprising:means for storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base, and each rule having an associated SIZEWIN value representing a figure of merit; means for assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs; means for arranging the set of instance-rule pairs into groups according to the SIZEWIN values of the rules of the pairs; and means for applying a consequence portion of the rules of the instance-rule pairs by group to replace model instances of the first set of model instances of the second set when the antecedent portion of respective ones of the rules is TRUE. 23. The apparatus of claim 22, wherein the means for storing the set of rules in the data base further includes:means for assigning a predetermined SIZEWIN value to at least one rule, wherein the predetermined SIZEWIN value represents a relative importance of the rule in comparison to the other rules. 24. The apparatus of claim 23, wherein the means for applying the rules of the instance-rule pairs by group further includes:means for applying the rules of a group including rules having the largest SIZEWIN value first; and means for applying the rules of a group including rules having the smallest SIZEWIN value last. 25. The apparatus of claim 22, wherein the means for storing the set of rules in the data base further includes:means for assigning a predetermined SIZEWIN value to at least one rule, wherein the predetermined SIZEWIN value represents the number of model instances that the rule is capable of replacing. 26. The apparatus of claim 22, wherein the means for assigning an associated rule to at least one of the model instances of the first set further includes means for assigning an associated rule having the highest SIZEWIN value.
27. The apparatus of claim 22, wherein each of the rules evaluates to one of TRUE and FALSE for each model instance with which it is associated, andwherein the means for assigning an associated rule to at least one of the model instances of the first set includes means for assigning an associated rule when the rule evaluates to TRUE for the at least one model instance with which the rule is associated. 28. The apparatus of claim 22, wherein the means for assigning, means for arranging, and means for applying perform their respective functions in iteration forming a minor loop and wherein the apparatus further includes means for ceasing performance of the minor loop when no rules were assigned by the means for assigning in a most recent iteration of the minor loop.
29. The apparatus of claim 28, further including means for ceasing performance of the testing and performing steps when all the rules of the set of instance-rule pairs have been tested.
30. The apparatus of claim 22, wherein a rule includes an antecedent portion containing a test and a consequence portion containing an action and wherein the means for applying further includes:means for testing the antecedent portion of one of the assigned rules; and means for performing the consequence portion of the assigned rule when the means for testing step determines that the antecedent portion evaluates to TRUE and when the model instance paired with the rule has not been replaced. 31. The apparatus of claim 30, wherein the antecedent portion of a rule refers to a plurality of model instances, and wherein the means for performing further includes means for performing the consequence portion of the assigned rule when the antecedent portion of the assigned rule does not refer to model instances that have been replaced.
32. The apparatus of claim 31, wherein a replaced model instance is designated as DELETED, and wherein the means for performing of claim 31 further includes means for performing the consequence portion of the assigned rule when the antecedent portion of the assigned rule does not refer to model instances that are designated as DELETED.
33. The apparatus of claim 30, wherein a replaced model instance is designated as DELETED, and wherein the means for performing further includes means for performing the consequence portion of the assigned rule when the means for testing determines that the antecedent portion evaluates to TRUE and when the model instance paired with the rule is not designated as DELETED.
34. An apparatus for synthesizing a circuit design by replacing a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances and by altering parameter values of objects in the data base by application of the set of rules, each of the rules including an antecedent portion and a consequence portion, the apparatus comprising:means for storing a set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base; means for designating ones of the first set of model instances as VISIBLE; and means for applying a consequence portion of ones of the subsets of rules associated with the VISIBLE model instances in the first set of model instances to replace ones of the first set of model instances with model instances in the second set when the antecedent portion of respective ones of the rules is TRUE. 35. The apparatus of claim 34, wherein the means for designating further includes:means for designating other ones of the first set of model instances as INVISIBLE; and means for declining to apply the subsets of rules associated with the INVISIBLE model instances. 36. The apparatus of claim 35, wherein the means for applying ones of the subsets of rules associated with the VISIBLE model instances further includes means for applying ones of the subsets of rules associated with the VISIBLE model instances to replace ones of the first set of model instances, wherein the replaced model instances include INVISIBLE model instances.
37. An apparatus for synthesizing a circuit design by replacing a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by application of a set of rules to the first set of model instances and by altering parameter values of objects in the data base by application of the set of rules, each of the rules including an antecedent portion and a consequence portion, the apparatus comprising:means for storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base; means for assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs, wherein performance of the assigning step results in other model instances of the first set lacking an assigned rule; means for applying a consequence portion of ones of the rules of the instance-rule pairs to ones of the model instances when the antecedent portion of respective ones of the rules is TRUE; and means for designating as INACTIVE the model instances lacking an assigned rule. 38. The apparatus of claim 37, further including means for initially designating each model instance in the first set as NEW.
39. The apparatus of claim 38, wherein the means for assigning further includes means for assigning an associated rule only to NEW model instances in the first set to provide a set of instance-rule pairs, thus causing model instances lacking an assigned rule.
40. The apparatus of claim 39, wherein the steps of assigning, applying, and designating of claim 39 are performed in a plurality of iterations, and wherein the means for designating model instances as INACTIVE further includes means for designating as INACTIVE a model instance that has lacked an associated rule during at least two successive iterations.
41. The apparatus of claim 40 wherein the means for designating model instances as INACTIVE further includes means for designating as SEMIACTIVE a model instance that has lacked an assigned rule during a single iteration.
42. The apparatus of claim 39, further including:means for designating as NEW all model instances directly connected to a model instance replacing a current model instance. Description
This application is a continuation-in part of U.S. application Ser. No. 06/907,303, entitled "Procedure and Data Structure for Synthesis and Transformation of Logic Circuits," filed Sept. 12, 1986.
RELATED APPLICATIONS In addition to U.S. application Ser. No. 06/907,303, the following related applications, all assigned to the assignee of the present application, are currently pending in the United States Patent and Trademark Office:
The disclosure of each of the five related applications listed above, as well as the disclosure of U.S. application Ser. No. 06/907,303, is herein expressly incorporated by reference.
A description of the desired circuit that spells out in detail the characteristics of the completed circuit is known as a high level design description. For example, a high level logic design description or, more simply, a high-level design may spell out the characteristics of a multiplier circuit. Such a description may specify one or more types of components, but does not necessarily designate specific components or how the components are connected. From the perspective of the opposite end of the design process, the required output of the process is a series of instructions which can be used by production machinery to actually form semiconductor raw materials into patterns and layers of metal and semiconductor material forming the desired circuit and to fabricate the IC device on a production line. Such a series of instructions is known as a "technology level representation" of the circuit.
Typically, the data base contains a library of logic element "model definitions" that are organized by function (e.g., Boolean components, adders, etc.) and by technology (e.g., TTL, CMOS, etc.) and a library of rules (a "rules library") for applying to specific instances of the model definitions.
The rules are then tested and applied to each model instance according to a predetermined procedure to determine if the model instance (and possibly adjacent model instances connected to the model instance via the bidirectional pointers) can be replaced with new model instances, which are more specific in either in function or technology or both. As model instances are replaced by more specific model instances through the application of the rules, bidirectional pointers are established between the new set of model instances to again define the logic design, this time at a slightly more specific level. Rules are then applied to the model definitions pointed to by this set of model instances to replace them with an even more specific set of model instances.
This iterative procedure continues until the original high level design description has been transformed to a low level description of the design implemented with circuit elements chosen from the technology (such as CMOS) targeted by the user. This low-level description constitutes a final design, which is in the form of a data structure that represents an interconnection between the actual components that are to be used to manufacture the design. The data structure can then be input to a conventional Computer Aided Manufacturing (CAM) system in the form of instruction for fabricating the synthesized logic design.
Each of the model instances has associated with it a number of "parameters," which describe such aspects of the model instance as signal timing, pinout, and technology type such as TTL. Each parameter of a model instance has a parameter value for that instance. For example, both a first model instance and a second model instance may have a parameter A, describing signal timing. The parameter of the first model instance may have a parameter A value of 10 microseconds, however, while the parameter of the second model instance has a parameter A value of 5 microseconds.
Existing logic synthesis methods use various methods to determine which rules to apply first. A first existing logic synthesis method scans through all the rules each time a rule is sought to be applied to a given model definition to find the best rule for that definition. This first method can result in relatively long synthesis processing times. A second existing logic synthesis method partitions the rules into classes and subclasses so that fewer than all of the rules are tested when a rule needs to be applied to a model definition. This second existing method uses a pattern matching scheme to compare a rule test against a single component and its properties. A third existing logic synthesis method that is satisfactory when the target technology can be defined by boolean tree cells configures the component library as a forest of logic trees and structures the rules tests in the same manner. A series of abstract pattern matches are then made to test the rules.
In existing logic synthesis methods, the rules are generally applied with respect to all model instances in the design, which leads to relatively long run times if the design is very complex or the data base is quite large. Existing logic synthesis methods continue to apply rules with respect to every model instance currently present in the design, even if all but a few of the instances have reached stable form (i.e., have reached the appropriate level of functionality and the target technology). Thus, run time is needlessly spent applying rules to model instances that will not be changed further by the application of the rules.
It is often desirable to isolate a small, but critical, area of a circuit to be synthesized and to synthesize only that small part. Run time is unnecessarily long if all parts of a circuit must be synthesized at every pass. Alternately, a user may wish to synthesize a small portion of a circuit in several different technology representations.
SUMMARY OF THE INVENTION The present invention overcomes the problems and disadvantages of the prior art by 1) designating as VISIBLE only those model instances of interest and designating all other model instances as INVISIBLE, such that only rules associated with VISIBLE model instances are applied; 2) designating model instances as NEW if they have recently had associated rules that evaluated to TRUE and designating all other model instances as INACTIVE, such that only rules associated with NEW model instances are applied; 3) designating as DELETED those model instances deleted by application of a rule and designating all other model instances as non-DELETED, such that only rules associated with non-DELETED model instances are applied; and 4) grouping model instance-rule pairs by a value called "SIZEWIN value" representing either the number of model instances replaced by the rule of each pair or a predetermined value associated with the rule of each pair, such that the groups having rules replacing the most model instances or having the highest predetermined SIZEWIN values are applied first.
In accordance with the purpose of the invention, as embodied and broadly described herein, the circuit design synthesis process of the invention relates to the replacement of a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by applying a set of rules to the first set of model instances and to altering parameter values of objects in the data base by application of the set of rules. The process comprises the steps of: storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base, and each rule having an associated SIZEWIN value representing a figure of merit; assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs; arranging the set of instance-rule pairs into groups according to the SIZEWIN values of the rules of the pairs; and applying the rules of the instance-rule pairs by group.
Further, in accordance with the purpose of the invention, as embodied and broadly described herein, the circuit design synthesis process of the invention relates to the replacement of a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by applying a set of rules to the first set of model instances and to altering parameter values of objects in the data base by application of the set of rules. The process comprises the steps of: storing a set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base; designating ones of the first set of model instances as VISIBLE; and applying ones of the subsets of rules associated with the VISIBLE model instances in the first set of model instances to replace ones of the first set of model instances with model instances in the second set.
Further, in accordance with the purpose of the invention, as embodied and broadly described herein, the circuit design synthesis process of the invention relates to the replacement of a first set of model instances stored in a data base and representing the circuit design with a second set of model instances stored in the data base and representing specific logic components of the circuit design by applying a set of rules to the first set of model instances and to altering parameter values of objects in the data base by application of the set of rules. The process comprises the steps of: storing the set of rules in the data base, subsets of the rules being associated with model instances in the first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set or to alter a parameter value of an object in the data base; assigning an associated rule to at least one of the model instances in the first set to provide a set of instance-rule pairs, wherein performance of the assigning step results in other model instances of the first set lacking an assigned rule; applying the rules of the instance-rule pairs; and designating as INACTIVE the model instances lacking an assigned rule.
FIG. 6 is a flow chart of a method of selecting and applying rules to model instances according to a preferred embodiment of the present invention;
FIGS. 7(a), 7(b), and 7(c) are flow charts further describing the method of selecting rules of FIG. 6;
FIGS. 8(a) and 8(b) are flow charts further describing the method applying rules of FIG. 6;
FIG. 10 is a diagram showing a result of FIGS. 6-9;
FIG. 11 is a flow chart further describing a method of selecting rules of FIG. 6 according to a second preferred embodiment of the present invention; and
FIG. 12 is a block diagram of a computer system which constitutes a preferred embodiment of the invention.
In the present invention, model instances in the logic circuit data base are designated as VISIBLE/INVISIBLE, NEW/INACTIVE, and DELETED/non-DELETED. It is occasionally desirable to synthesize only a portion of a desired circuit. For example, a user may wish to create several different technology representations of a small portion of a single circuit. In this case, because the synthesis procedure must be performed several times, it is advantageous to "localize" a desired portion of the high-level description and to perform the synthesis procedure only for that portion. Model instances are designated as VISIBLE by a user if the model instances are included in a portion of the circuit to be synthesized that the user wishes to localize. The VISIBLE/INVISIBLE designation of a model instance will not change throughout the synthesis procedure. A model instance replacing a VISIBLE model instance will be VISIBLE.
All model instances are initially designated as non-DELETED. A model instance is designated as DELETED when application of a rule removes it from the data base, as described above. Rules affecting DELETED model instances evaluate to FALSE. Rules associated with DELETED model instances evaluate to FALSE.
The invention comprises means for storing the set of rules in the data base, subsets of the rules being associated with model instances in a first set of model instances, each associated rule capable of being applied to replace at least one model instance in the first set with at least one new model instance in the second set, and each rule having an associated SIZEWIN value representing a figure of merit. In a preferred embodiment of the invention, this means is embodied in memory 1204 of FIG. 12.
Model definitions may be of two types. A model definition primitive 115 is a low level component with no model instances, such as an inventor. A model definition 116 is a more abstract higher level component, such as an ALU (Arithmetic Logic Unit), etc., which may have one or more model instances meeting the general requirements of the model definition, and having a more detailed description of the model definition. Each model definition 116 contains a pointer to a rules of model definition table 117 and a model instance list 118. The model instance list 118 points to all model instances in the current logic design that fit the generic description of the model definition 116. For example, a model definition for an inverter may have mode instances representing a CMOS inverter, a TTL inverter, etc. In addition, some model instances 122 have rules associated only with that specific model instance. These rules are accessed through a rules of model instance table 121 accessible by the model instance 122.
List of inputs 202 and list of outputs 203 point to port definitions 207 and 208 and to port definitions 209 and 210, respectively. Port definitions 207-210 define the inputs and outputs of the specific model definition. Each port definition 207-210 has an associated name 211, signal 212, and other attributes 213 not described here. Each signal 212 describes the connectivity between two or more model definition in the circuit and has an associated name 214 and other attributes 215, such as the signal width or the value of the most significant bit of the signal.
Each model instance 119 and 120 has an associated name 218, a pointer 219 back to the model definition 116 with which the model instance is associated, inputs 220, outputs 221, and other attributes 222. Inputs 220 and outputs 221 have associated information describing associated port instances 223 and 224. Each port instance 223 and 224 describes an instance of one of port definitions 207 or 208 and has an associated name 225, an associated signal 226, and other attributes 227, such as printout. Signal 226 describes connectivity between two or more model instances in the circuit and has an associated name 228 and other attributes 229, such as timing constraints.
The attributes of model definitions, model instances, port definitions, port instances, inputs, outputs and signals are also called "parameters." Different model instances, for example, may have different parameter, associated therewith. In addition, model instances having the same parameters may have different values for these parameters.
FIG. 3 shows an example of the bidirectional pointers established between model definitions and model instances in the data base. This relationship called "connectivity." In FIG. 3, model definitions are shown as large rectangles. Model instances and port instances are shown as circles. Other components are shown as small rectangles. Model definition 310 and model instance 330 point to respective rules 312 of rule base 314. Model definition 310 also points to port definition 320 and to model instance 330. A port instance 322 connected to model instance 330 points to port definition 320. Model instance 330 is connected to model instances 340, 350, and 360 through port instance 332 and signal 370 and through respective port instances 342, 352, and 362. Port instances 354 and 364 are unused in this example.
______________________________________(defrule "map 2-input OR""replace any 2-input OR with TECHCELL":sizewin 2:version 0:group "mapping rules"(model is OR)(count-ins is 2)&#8594;(replace *instance* with out = (TECHCELL ins))______________________________________
______________________________________(defrule "take out"   (no signals-of-outputs are present)   &#8594;   (remove *instance*)______________________________________
Another action performed during application of a rule 500 is to change the values of one or more of other attributes 222, 227, or 229 associated with a model instance. For example, a rule "modify-- syn.hi" that has the format of FIG. 5 and appears as follows:
______________________________________(defrule "modify syn.hi""modify the value of the syn.hi parameter to convert   output pin to high":version 0(syn.hi-- drive-1st-out is not-- present)(timingdebt-1st-out &gt; 0)&#8594;(modify syn.hi-- drive-1st-out with TRUE)______________________________________
FIGS. 7(a) through 7(c) are flow charts 700, 700, and 700", respectively, showing step 612 of FIG. 6 in more detail. Thus, FIGS. 7(a) through 7(c) show how the instance-rule pairs for one iteration of the minor loop of FIG. 6 are determined in accordance with a preferred embodiment of the present invention. Each model instance is paired with its associated rule that evaluates to TRUE and has the highest SIZEWIN of all the TRUE rules associated with that model instance. The steps of flow chart 700 are performed when a logic synthesis system incorporates the VISIBLE/INVISIBLE, NEW/INACTIVE, and DELETED/non-DELETED designations. The steps of flow chart 700' are performed when a logic circuit synthesis system incorporates the NEW/INACTIVE and DELETED/non-DELETED designations but not the VISIBLE/INVISIBLE designation. The steps of flow chart 700" are performed when a logic circuit synthesis system incorporates the VISIBLE/INVISIBLE and DELETED/non-DELETED designations but not the NEW/INACTIVE designation. A person skilled in the art will understand that flow charts 700' and 700" are very similar to flow chart 700 and contain common steps. Thus, the steps of flow chart 700 discussed herein are understood also to apply to flow charts 700' and 700".
Step 702 establishes a first model instance as the "current model instance." Step 704 determines if the current model instance has been designated as VISIBLE. If so, control passes to step 706 (step 708 in flow chart 700"). If not, control passes to step 714. Step 706 determines if the current model instance has been designated as NEW. If so, control passes to step 708. If not, control passes to step 714. Step 708 determines whether the current model instance has at least one associated rule that evaluates to TRUE. If more than one such rule exists, step 708 selects the associated TRUE rule with the highest SIZEWIN and control passes to step 710 where the current model instance and the selected rule are placed in an instance-rule pair. If no associated TRUE rules exist for the current model instance in step 708, control passes to step 712 (step 714 in flow chart 700"). In step 712, the current model instance is designated as INACTIVE. This step is not performed for logic synthesis systems not designating model instances as NEW/INACTIVE. Step 714 determines whether more model instances still need to be paired. If so, a new current model instance is selected in step 716 and control returns to step 704. If not, the steps of FIG. 7(a) are completed.
FIGS. 8(a) and 8(b) are flow charts 800 and 800', respectively, further describing step 616 of FIG. 6. Thus, FIGS. 8(a) and 8(b) describe the steps performed in accordance with the present invention to test and apply each rule of the instance-rule pairs. The instance-rule pair being tested is called the current pair. A rule of the current pair is called the current rule. A model instance of the current pair is called the current model instance.
The steps of flow chart 800 are performed when a logic synthesis system incorporates the NEW/INACTIVE and DELETED/non-DELETED designations. The steps of flow chart 800' are performed when a logic synthesis system incorporates the DELETED/non-DELETED designation, but not the NEW/INACTIVE designation. A person skilled in the art will understand that flow chart 800' is very similar to flow chart 800 and contains common steps. Thus, the steps of flow chart 800 discussed herein are understood to apply to flow chart 800'.
Step 801 determines whether the current model instance has been designated as DELETED. If so, control passes to step 810. Otherwise, control passes to step 804. Step 804 determines whether the antecedent portion of the current rule is TRUE. Persons skilled in the art will understand that, although step 708 of FIG. 7 determined that the current rule was TRUE when the current pair was created, subsequent applications of other rules may have caused the current rule to become FALSE. If the current rule is TRUE, the consequence portion of the current rule is performed in step 806. If the current rule is FALSE, control passes to step 810. Step 808 (FIG. 8(a) only) designates the current model instance and all model instances connected to the current model instance in the circuit as NEW. Step 810 determines if more instance-rule pairs exist. If so, control returns to step 801 and the above steps are repeated for a new instance-rule pair. Otherwise, processing for FIG. 8 is completed.
FIG. 9 is a table showing an example of instance-rule pairs and SIZEWIN groupings. A data base contains model instances i1 through i8. Model instance i1 has associated rules r1, r5, and r7. Model instance i2 has associated rules r2 and r4. Model instance i3 has associated rule r3. Model instance i4 has associated rules r2 and r4. Model instance i5 has associated rules r5, r7, and r8. Model instance i6 has associated rule r6. Model instance i7 has associated rule r7. Model instance i8 has associated rule r8. In FIG. 9, the model instances i1 through i8 have between one and three associated rules apiece.
In FIG. 9, the number in parenthesis to the right of each rule is the SIZEWIN value for that rule. Most commonly, the SIZEWIN value represents a number of model instances replaced by application of the rule. However, as discussed above, the SIZEWIN value for a rule can also be set to a predetermined value when the rule is defined. In FIG. 9, rule r1 has a SIZEWIN value of "5". Rule r2 has a SIZEWIN value of "3". Rule r3 has a SIZEWIN value of "5". Rule r4 has a SIZEWIN value of "2". Rule r5 has a SIZEWIN value of "2". Rule r6 has a SIZEWIN value of "5". Rule r7 has a SIZEWIN value of "1". Rule r8 has a SIZEWIN value of "4". In FIG. 9, the SIZEWIN values of rules r1 through r8 range between "1" and "5". It is understood, however, that SIZEWIN values may fall in any range appropriate for a specific embodiment of the present invention. For example, a logic synthesis system according to the present invention and incorporating a large number of rules may have SIZEWIN values between "0" and " 5". Similarly, a logic synthesis system according to the present invention and incorporating some medium number of rules may have a large number of possible SIZEWIN values if it is desirable to have only a few instance-rule pairs in each SIZEWIN grouping.
FIG. 9 also shows SIZEWIN groupings of instance-rule pairs of the model instances i1 through i8. For example, model instance i1 is paired with its associated TRUE rule with the highest SIZEWIN value, i.e., r5, which has a SIZEWIN of "2". Therefore, the instance-rule pair i1, r5 is placed in SIZEWIN grouping 2. Note that, although rule r5 evaluates to TRUE for model instance i1, it does not evaluate to TRUE for model instance i5. This result is included to show that one rule may be evaluated differently depending on the characteristics of the model instance with which it is associated. Because model instance i5 does not have any associated rules that evaluate to TRUE, model instance i is not placed in a pair and is not placed in a SIZEWIN grouping Note also that, in FIG. 9, no instance-rule pairs are placed in SIZEWIN grouping 0 because no pairs are formed containing a rule with a SIZEWIN value of "0."
FIG. 10 is a diagram showing the operation of the first preferred embodiment of the present invention FIG. 10 shows a "before" view of a group of model instances 1010, an "after" view of a group of model instances 1020, examples of rules associated with certain model instances 1030, and instance-rule pairs grouped by SIZEWIN 1040.
The "before" view 1010 includes model instances i1, i2, i5, i10, i11, i12, i13, i14, and i15. Model instances i10, i13, i14, and i15 are INVISIBLE (and, therefore, INACTIVE, although this is not shown in FIG. 10). Model instances i11 and i12 are VISIBLE and INACTIVE. Model instances i1, i2, and i5 are VISIBLE and NEW. Examples 1030 shows that model instance i1 has associated rules r1, r5, and r7. Model instance i2 has associated rules r2 and r4, and model instance i5 has associated rules r5, r7, and r9. Rule r1 has a SIZEWIN value of "5" and is FALSE for model instance i1. Rule r2 has a SIZEWIN value of "3" and is TRUE for model instance i2. Rule r4 has a SIZEWIN value of "2" and is TRUE for model instance i2. Rule r5 has a SIZEWIN value of "2" and is TRUE for model instance i1 and FALSE for model instance i5. Rule r7 has a SIZEWIN value of "1" and is TRUE for model instance i1 and FALSE for model instance i5. Rule r9 has a SIZEWIN value of "0" and is FALSE for model instance i5.
The rule associated with model instance i1 evaluating to TRUE and having the highest SIZEWIN value is rule r5. Thus, model instance i1 and rule r5 form a instance-rule pair in SIZEWIN group 3 of table 1040. The rule associated with model instance i2 evaluating to TRUE and having the highest SIZEWIN value is rule r2. Thus, model instance i2 and rule r2 form a instance-rule pair in SIZEWIN group 2 of table 1040. Because no rule associated with model instance i5 evaluates to TRUE, no rule-instance pair in entered in table 1040 for model instance i5.
The "after" view 1020 shows the results after performing the steps of the flow chart of FIG. 8(a) for the instance-rule pairs of table 1040. Rule-instance pair i2, r2, which is in SIZEWIN group 3, is considered first. Neither rule r2 nor rule r5 is shown in FIG. 10. Referring to the steps of FIG. 8(a), model instance i2 is not designated as DELETED and the antecedent portion of rule r2 evaluates to TRUE. Therefore, the consequence portion of rule r2 is performed for model instance i2. The consequence portion causes model instance i2 to be replaced by a new model instance i3. Model instance i2 is designated as DELETED, and model instances i1, i10, and i12, which were previously connected to model instance i2, are connected to model instance i3. Model instance i3 is designated as NEW, as are VISIBLE model instances i1 and i12 and INVISIBLE model instance i10 connected to it.
The steps of FIG. 8(a) are similarly performed for instance-rule pair i1, r5. In the current example, these steps have no effect on the "after" view 1020. Assuming that the antecedent portion of rule r5 refers to model instance i2, step 802 is FALSE because model instance i2 has been deleted previously, as described above. Therefore, the consequence portion of rule r5 is not performed.
Model instance i5 is designated as INACTIVE at the time that no associated TRUE rule is found. The steps of FIG. 8(a) are only performed for the instance-rule pairs in table 1040. Thus, the steps of FIG. 8(a) are not performed for model instance i5.
In a second preferred embodiment of the present invention, model instances are also designated as SEMIACTIVE when no TRUE associated rule has been found for them once. The VISIBLE/INVISIBLE and DELETED/non-DELETED designations are the same as the designations described in connection with the first preferred embodiment. The NEW designation is also the same.
FIG. 11 is a flow chart 1100 showing step 604 of FIG. 6 in more detail for the second preferred embodiment. Thus, FIG. 11 shows how the instance-rule pairs for one iteration of the minor loop of FIG. 6 are determined in accordance with the present invention. Each model instance is paired with its associated rule that evaluates to TRUE and has the highest SIZEWIN value of all the TRUE rules associated with that model instance. The steps of flow chart 1100 are performed when a logic synthesis system incorporates the VISIBLE/INVISIBLE, NEW/SEMIACTIVE/INACTIVE and DELETED/non-DELETED designations. A person of ordinary skill in the art would understand, however, that similar steps are performed in systems lacking the VISIBLE/INVISIBLE designation.
Step 1102 establishes a first model instance as the "current model instance." Step 1104 determines if the current model instance has been designated as VISIBLE. If so, control passes to step 1106. If not, control passes to step 1118. Step 1106 determines if the current model instance has been designated NEW or SEMIACTIVE. If so, control passes to step 1108. If not, control passes to step 1118. Step 1108 determines whether the current model instance has at least one associated rule that evaluates to TRUE. If one or more TRUE rules with identical SIZEWIN value exist, step 1108 selects one of the rules. Otherwise step 1108 selects a TRUE associated rule with a highest SIZEWIN value. Step 1109 designates the current model instance as NEW. Step 1110 forms an instance-rule pair from the current model instance and the selected rule.
If no associated TRUE rules exist for the current model instance in step 1108, control passes to step 1112. If, in step 1112, it is determined that the current model instance is designated as NEW, the designation of the current model instance is changed to SEMIACTIVE in step 1114. If, alternately, in step 1112 it is determined that the current model instance is designated as SEMIACTIVE, the designation of the current model instance is changed to INACTIVE in step 1116.
Thus, steps 1109 and 1112 act together to ensure that a model instance will not be designated as INACTIVE until the system fails to find a TRUE associated rule twice in a row. A person skilled in the art would understand, however, that other preferred embodiments could require a higher number of failures to find a TRUE associated rule before designating the current model instance INACTIVE. In addition, other preferred embodiments could include additional levels of SEMIACTIVE designations, e.g., SEMIACTIVE1, SEMIACTIVE2, etc., that a model instance must have before being designated INACTIVE.
After both steps 1114 and 1116 of FIG. 11, control passes to step 1118. Step 1118 determines whether more model instances still need to be paired. If so, a new current model instance is selected in step 1120 and control returns to step 1104. Otherwise, the steps of FIG. 11 are completed.
Other preferred embodiments of the present invention employ various combinations of the VISIBLE/INVISIBLE, NEW/ACTIVE, and DELETED/non-DELETED designations and of the SIZEWIN values. For example, The VISIBLE/INVISIBLE designations could be employed in a logic circuit synthesis system that does not employ SIZEWIN groupings, or the DELETED/non-DELETED designations could be employed in a system that does not employ SIZEWIN groupings.
FIG. 12 shows a computer system 1200 which constitutes a preferred embodiment of the invention. System 1200 is a VAX 6850 system commercially available from the Digital Equipment Corporation. System 1200 includes a central process 1202, a memory 1204 connected to central processor 1202, an input/output (I/O) subsystem 1206 connected to central processor 1202, and an external storage subsystem 1208 connected to I/O subsystem 1206. The methods set forth in the flow charts of FIGS. 6-11 are identified as application programs 1210, which are written in the LISP computer language, stored in memory 1204, and performed by central processor 1202. Computer system 1200 preferably operates under the VMS operating system. Memory 1204 also stores the database 1212 of the present invention, including the model definitions, model instances, and rules for the current rule base. Central processor uses I/O subsystem 1206 to input data base entries and to output the final technology representation from memory 1204. Rules bases and LIBRARY data not used for a particular run of the logic synthesis system are preferably stored offline in external storage subsystem 1208. It will be apparent to persons skilled in the art that other computer systems and components could be used.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4510616 *Feb 6, 1984Apr 9, 1985The Environmental Research Institute Of MichiganDesign rule checking using serial neighborhood processorsUS4554631 *Jul 13, 1983Nov 19, 1985At&T Bell LaboratoriesKeyword search automatic limiting methodUS4613940 *Nov 9, 1982Sep 23, 1986International Microelectronic ProductsMethod and structure for use in designing and building electronic systems in integrated circuitsUS4656603 *Mar 1, 1984Apr 7, 1987The Cadware Group, Ltd.Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications iconsUS4700317 *Nov 28, 1984Oct 13, 1987Hitachi, Ltd.Automatic layout planner and a method for automatically creating a layout planUS4703435 *Jul 16, 1984Oct 27, 1987International Business Machines CorporationLogic SynthesizerUS4922432 *Jan 13, 1988May 1, 1990International Chip CorporationKnowledge based method and apparatus for designing integrated circuits using functional specificationsUS4937755 *Apr 28, 1988Jun 26, 1990Hitachi, Ltd.Production system for an expert systemGB1445914A * Title not available* Cited by examinerNon-Patent CitationsReference1"Diverse Design Tools Break into Logic-Synthesis Arena", System Technology, Computer Design, Oct. 15, 1987, pp. 20-21.2Darringer et al., "A New Look at Logic Synthesis", IEEE 1980 17th Design Automation Conf., pp. 543-5483Darringer et al., "Logic Snythesis Through Local Transformation", IBM Journal, vol. 25, No. 4, Jul. 1981, pp. 272-280.4 *Darringer et al., A New Look at Logic Synthesis , IEEE 1980 17th Design Automation Conf., pp. 543 5485 *Darringer et al., Logic Snythesis Through Local Transformation , IBM Journal, vol. 25, No. 4, Jul. 1981, pp. 272 280.6 *Diverse Design Tools Break into Logic Synthesis Arena , System Technology, Computer Design, Oct. 15, 1987, pp. 20 21.7Friedman et al., "Methods Used in an Automatic Logic Design Generator (ALERT)," IEEE Trans. Computer, vol. C-18, No. 7, Jul. 1969, pp. 593-613.8Friedman et al., "Quality of Design from an Automatic Logic Generator (ALERT)," IEEE 1970, 7th Design Automation Conf., p. 71.9 *Friedman et al., Methods Used in an Automatic Logic Design Generator (ALERT), IEEE Trans. Computer, vol. C 18, No. 7, Jul. 1969, pp. 593 613.10 *Friedman et al., Quality of Design from an Automatic Logic Generator (ALERT), IEEE 1970, 7th Design Automation Conf., p. 71.11Shinsha et al., "Incremental Logic Synthesis Through Gate Logic Structure Identification", 23rd Design Automation Conference, 1986, pp. 391-397.12 *Shinsha et al., Incremental Logic Synthesis Through Gate Logic Structure Identification , 23rd Design Automation Conference, 1986, pp. 391 397.* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS5164911 *Dec 15, 1989Nov 17, 1992Hewlett-Packard CompanySchematic capture method having different model couplers for model types for changing the definition of the schematic based upon model type selectionUS5262959 *Dec 7, 1990Nov 16, 1993Hewlett-Packard Co.In a computer aided engineering systemUS5276855 *Sep 25, 1990Jan 4, 1994Kabushiki Kaisha ToshibaLogic synthesis apparatus for incorporating additional rules to the knowledge base without causing competitionUS5359537 *May 14, 1990Oct 25, 1994Vlsi Technology, Inc.Automatic synthesis of integrated circuits employing controlled input dependency during a decomposition processUS5367468 *Feb 21, 1991Nov 22, 1994Kabushiki Kaisha ToshibaDesign aid method and design aid apparatus for integrated circuitsUS5526276 *Apr 21, 1994Jun 11, 1996Quicklogic CorporationSelect set-based technology mapping method and apparatusUS5530841 *Jun 6, 1995Jun 25, 1996Synopsys, Inc.Method for converting a hardware independent user description of a logic circuit into hardware componentsUS5619418 *Feb 16, 1995Apr 8, 1997Motorola, Inc.Method for setting gate strengths within a circuitUS5661661 *Jun 6, 1995Aug 26, 1997Synopsys, Inc.Method for processing a hardware independent user description to generate logic circuit elements including flip-flops, latches, and three-state buffers and combinations thereofUS5680318 *Jun 6, 1995Oct 21, 1997Synopsys Inc.In a computer systemUS5691911 *Jun 6, 1995Nov 25, 1997Synopsys, Inc.Method for pre-processing a hardware independent description of a logic circuitUS5737574 *Jun 7, 1995Apr 7, 1998Synopsys, IncMethod for generating a logic circuit from a hardware independent user description using mux conditions and hardware selectorsUS5748488 *Jun 7, 1995May 5, 1998Synopsys, Inc.Method for generating a logic circuit from a hardware independent user description using assignment conditionsUS5757653 *May 16, 1996May 26, 1998International Business Machines CorporationMethod and apparatus for dynamically varying net rulesUS5757655 *Aug 26, 1996May 26, 1998Micron Technology, Inc.Method and system for producing dynamic property forms and compacting property databasesUS5963727 *Dec 18, 1997Oct 5, 1999Micron Technology, Inc.Method and system for producing dynamic property forms and compacting property databasesUS6026219 *May 12, 1995Feb 15, 2000Synopsys, Inc.Behavioral synthesis links to logic synthesisUS6298469 *Jul 29, 1996Oct 2, 2001Aspec Technology, Inc.Method and system for allowing an integrated circuit to be portably generated from one manufacturing process to anotherUS6438729 *May 20, 1999Aug 20, 2002Synopsys, Inc.Connectivity-based approach for extracting layout parasiticsUS6505339Jan 4, 2000Jan 7, 2003Synopsys, Inc.Behavioral synthesis links to logic synthesisUS6813751 *Jul 16, 2002Nov 2, 2004International Business Machines CorporationCreating standard VHDL test environmentsUS6865524Jan 8, 1997Mar 8, 2005Trilogy Development Group, Inc.Method and apparatus for attribute selectionUS7200583Jan 10, 2005Apr 3, 2007Trilogy Development Group, Inc.Method and apparatus for attribute selectionUS7363599 *Oct 4, 2005Apr 22, 2008Xilinx, Inc.Method and system for matching a hierarchical identifierUS7380232Mar 10, 2006May 27, 2008Xilinx, Inc.Method and apparatus for designing a system for implementation in a programmable logic deviceUS7493578Mar 18, 2005Feb 17, 2009Xilinx, Inc.Correlation of data from design analysis tools with design blocks in a high-level modeling systemUS7496869Oct 4, 2005Feb 24, 2009Xilinx, Inc.Method and apparatus for implementing a program language description of a circuit design for an integrated circuitUS7735013Mar 16, 2001Jun 8, 2010International Business Machines CorporationMethod and apparatus for tailoring content of information delivered over the internetUS7761272Mar 10, 2006Jul 20, 2010Xilinx, Inc.Method and apparatus for processing a dataflow description of a digital processing systemUS7810062Sep 11, 2007Oct 5, 2010International Business Machines CorporationMethod for eliminating negative slack in a netlist via transformation and slack categorizationUS8402409Mar 10, 2006Mar 19, 2013Xilinx, Inc.Method and apparatus for supporting run-time reconfiguration in a programmable logic integrated circuitWO1998033104A2 *Jan 8, 1998Jul 30, 1998Trilogy Dev Group IncMethod and apparatus for attribute selection* Cited by examinerClassifications U.S. Classification716/104, 706/921International ClassificationG06F17/50, G06N5/04Cooperative ClassificationY10S706/921, G06N5/04, G06F17/505European ClassificationG06N5/04, G06F17/50D2Legal EventsDateCodeEventDescriptionJan 21, 2004ASAssignmentOwner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXASFree format text: CHANGE OF NAME;ASSIGNOR:COMPAQ INFORMATION TECHNOLOGIES GROUP, LP;REEL/FRAME:015000/0305Effective date: 20021001Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P. 20555 SHFree format text: CHANGE OF NAME;ASSIGNOR:COMPAQ INFORMATION TECHNOLOGIES GROUP, LP /AR;REEL/FRAME:015000/0305Aug 19, 2003FPAYFee paymentYear of fee payment: 12Jan 9, 2002ASAssignmentOwner name: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P., TEXASFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DIGITAL EQUIPMENT CORPORATION;COMPAQ COMPUTER CORPORATION;REEL/FRAME:012447/0903;SIGNING DATES FROM 19991209 TO 20010620Owner name: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P. 20555Aug 31, 1999FPAYFee paymentYear of fee payment: 8Sep 5, 1995FPAYFee paymentYear of fee payment: 4Aug 24, 1993CCCertificate of correctionJun 28, 1989ASAssignmentOwner name: DIGITAL EQUIPMENT CORPORATION, MASSACHUSETTSFree format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:HOOPER, DONALD F.;FORTMILLER, EDWARD G.;KUNDU, SNEHAMAY;REEL/FRAME:005121/0376Effective date: 19890628Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNOR:WALL, DAVID F.;REEL/FRAME:005121/0375RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google