Claims Analysis
Total Claims: 32
Claim 1
Independent Claim
205 words
In an ECAD system, a method of creating and validating a low level description of an electronic design from a higher level, behavior-oriented description thereof, comprising: entering on an ECAD system a specification of a desired behavior of an electronic design, including high-level timing goals, in a high-level, behavior-oriented language; on the ECAD system, iteratively simulating and changing the electronic design at the behavioral-level until the desired behavior is obtained; on the ECAD system, partitioning the electronic design into a number of architectural blocks and constraining the architectural choices to those which meet the high-level timing goals; on the ECAD system, directing the various architectural blocks to logic synthesis programs, said logic synthesis programs also running in the ECAD system, thereby providing a low level description of the electronic design; comparing one or more constraints on one or more respective low-level characteristics of the electronic design against one or more respective estimates of the low-level characteristics of the electronic design, as partitioned; and if any of the one or more constraints is not met, iteratively re-partitioning the electronic design, re-estimating the one or more low-level characteristics of the re-partitioned design and comparing them against the one or more respective constraints until the constraints are met.
Claim 2
Dependent Claim
205 words
In an ECAD system, a method of creating and validating a low level description of an electronic design from a higher level, behavior-oriented description thereof, comprising: entering on an ECAD system a specification of a desired behavior of an electronic design, including high-level timing goals, in a high-level, behavior-oriented language; on the ECAD system, iteratively simulating and changing the electronic design at the behavioral-level until the desired behavior is obtained; on the ECAD system, partitioning the electronic design into a number of architectural blocks and constraining the architectural choices to those which meet the high-level timing goals; on the ECAD system, directing the various architectural blocks to logic synthesis programs, said logic synthesis programs also running in the ECAD system, thereby providing a low level description of the electronic design; comparing one or more constraints on one or more respective low-level characteristics of the electronic design against one or more respective estimates of the low-level characteristics of the electronic design, as partitioned; and if any of the one or more constraints is not met, iteratively re-partitioning the electronic design, re-estimating the one or more low-level characteristics of the re-partitioned design and comparing them against the one or more respective constraints until the constraints are met.
Claim 3
Dependent Claim
231 words
In an ECAD system, a method of deriving a structural description of a system from a behavioral description thereof, comprising: (a) specifying a behavioral design for a system in a high-level, behavior-oriented language; (b) describing, in the high-level language, a functional description of the design of the system, and inputting the functional description to the ECAD system; (c) verifying in the high-level language, correctness of intended functionality and, if necessary, iteratively simulating and changing the functional description of the system until the desired functionality is obtained; (d) on the ECAD system, partitioning the functional description into a number of architectural blocks, taking into account low level timing parameters of a physical implementation of the device; (e) on the ECAD system, constraining the architectural choices for the design to those which meet the desired behavior; and (f) on the ECAD system, mapping the architecturally constrained design into a structural description of the system, (g) on the ECAD system, comparing one or more constraints on one or more respective low-level characteristics of the system against one or more respective estimates of the low-level characteristics of the system, as partitioned; and (h) if any of the one or more constraints is not met, iteratively re-partitioning the functonal description, re-estimating the one or more low-level characteristics of the re-partitioned system and comparing them against the one or more respective constraints, until the constraints are met.
Claim 4
Dependent Claim
231 words
In an ECAD system, a method of deriving a structural description of a system from a behavioral description thereof, comprising: (a) specifying a behavioral design for a system in a high-level, behavior-oriented language; (b) describing, in the high-level language, a functional description of the design of the system, and inputting the functional description to the ECAD system; (c) verifying in the high-level language, correctness of intended functionality and, if necessary, iteratively simulating and changing the functional description of the system until the desired functionality is obtained; (d) on the ECAD system, partitioning the functional description into a number of architectural blocks, taking into account low level timing parameters of a physical implementation of the device; (e) on the ECAD system, constraining the architectural choices for the design to those which meet the desired behavior; and (f) on the ECAD system, mapping the architecturally constrained design into a structural description of the system, (g) on the ECAD system, comparing one or more constraints on one or more respective low-level characteristics of the system against one or more respective estimates of the low-level characteristics of the system, as partitioned; and (h) if any of the one or more constraints is not met, iteratively re-partitioning the functonal description, re-estimating the one or more low-level characteristics of the re-partitioned system and comparing them against the one or more respective constraints, until the constraints are met.
Claim 5
Dependent Claim
154 words
In an ECAD system, a method of creating and validating a structural description of a device from a behavior-oriented description, comprising: specifying a behavioral description for a desired behavior of a device in a high-level, behavior-oriented language, and inputting the behavioral description to an ECAD system; on the ECAD system, iteratively: simulating and changing the behavioral description, and comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the behavioral description, until the desired behavior is obtained and the one or more constraints are met; on the ECAD system, partitioning the behavioral description into architectural blocks, taking into account low level timing parameters of a physical implementation of the device; on the ECAD system, synthesizing a structural description of the architectural blocks in a lower-level language; and on the ECAD system, simulating the functionality of the structural description.
Claim 6
Dependent Claim
154 words
In an ECAD system, a method of creating and validating a structural description of a device from a behavior-oriented description, comprising: specifying a behavioral description for a desired behavior of a device in a high-level, behavior-oriented language, and inputting the behavioral description to an ECAD system; on the ECAD system, iteratively: simulating and changing the behavioral description, and comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the behavioral description, until the desired behavior is obtained and the one or more constraints are met; on the ECAD system, partitioning the behavioral description into architectural blocks, taking into account low level timing parameters of a physical implementation of the device; on the ECAD system, synthesizing a structural description of the architectural blocks in a lower-level language; and on the ECAD system, simulating the functionality of the structural description.
Claim 7
Dependent Claim
171 words
In an ECAD system, a method of partitioning the design of a digital device, comprising: inputting a design to an ECAD system, and on the ECAD system performing the following steps: partitioning a design into functional blocks; generally laying out the partitioned design; selecting existing designs for a portion of the functional blocks; generating another portion of the functional blocks; partitioning yet another portion of the functional blocks into smaller functional units; synthesizing the remaining portion of the functional blocks; generating a structural description of the functional blocks and units; comparing one or more constraints on one or more respective low-level characteristics of the design against one or more respective estimates of the low-level characteristics of the design, as partitioned; and if any of the one or more constraints is not met, iteratively re-partitioning the electronic design, generating a structural description of the re-partitioned design, re-estimating the one or more low-level characteristics of the re-partitioned design and comparing them against the one or more respective constraints until the constraints are met.
Claim 8
Dependent Claim
171 words
In an ECAD system, a method of partitioning the design of a digital device, comprising: inputting a design to an ECAD system, and on the ECAD system performing the following steps: partitioning a design into functional blocks; generally laying out the partitioned design; selecting existing designs for a portion of the functional blocks; generating another portion of the functional blocks; partitioning yet another portion of the functional blocks into smaller functional units; synthesizing the remaining portion of the functional blocks; generating a structural description of the functional blocks and units; comparing one or more constraints on one or more respective low-level characteristics of the design against one or more respective estimates of the low-level characteristics of the design, as partitioned; and if any of the one or more constraints is not met, iteratively re-partitioning the electronic design, generating a structural description of the re-partitioned design, re-estimating the one or more low-level characteristics of the re-partitioned design and comparing them against the one or more respective constraints until the constraints are met.
Claim 9
Dependent Claim
527 words
In an ECAD system, a method of creating and validating a structural description of a circuit or device from a higher level, behavior-oriented description thereof, comprising: (1) entering on an ECAD system a specification for an entire design of desired behavior of a device, including high-level timing goals, in a high-level, behavior-oriented language; (2) on the ECAD system, deriving a functional description from the specification, including intended functionality; (3) on the ECAD system, verifying the correctness of the intended functionality of the functional description; (4) on the ECAD system, partitioning the functional description into a partitioned design having separate modules; (5) on the ECAD system, comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the functional desctiption, as partitioned; (6) if any of the one or more constraints is not met, iteratively re-partitioning the functonal description, re-estimating the one or more low-level characteristics of the device and comparing them against the one or more respective constraints, until the constraints are met; (7) on the ECAD system, describing the modules, and imposing on each module a set of timing and area constraints; (8) on the ECAD system, reconstructing the partitioned design, and examining and verifying the partitioned design, to provide an RTL description of the entire design; (9) on the ECAD system, verifying architectural decisions that were made during partitioning, and examining their impact on the functionality and performance of the entire design; (10) on the ECAD system, providing a target technology library for the modules; (11) on the ECAD system, mapping the design is mapped into the target technology; (12) on the ECAD system, providing a gate-level, technology-dependent structural descriptions of the modules; (13) on the ECAD system, verifying the correctness of the structural descriptions of the modules against their intended functionality; (14) on the ECAD system, associating specified timing and area constraints on the structural description of the modules; (15) on the ECAD system, modifying the structural descriptions of the modules so that their area and timing characteristics comply with the specified constraints; (16) on the ECAD system, deriving optimized structural description of the modules from the modified structural descriptions; (17) on the ECAD system, examining the impact of the optimized structural descriptions of the modules on the entire design; (18) on the ECAD system, deriving a high level module, from the optimized structural descriptions of the modules, wherein the high level module describes the interaction and connectivity between the modules, and creating higher level modules hierarchically from high level modules until the entire design is described in a highest level module; (19) on the ECAD system, composing the optimized structural descriptions of the modules are composed (see step 5) together to implement the intended functionality of the highest level module; (20) in the ECAD system, performing floor-planning for the modules, and determining more accurate intra-block and inter-block delays; (21) in the ECAD system, back-annotating the delays into the structural descriptions of the modules; and (22) in the ECAD system, further modifying the structural descriptions of the modules so that their area and timing characteristics comply with global constraints.
Claim 10
Dependent Claim
527 words
In an ECAD system, a method of creating and validating a structural description of a circuit or device from a higher level, behavior-oriented description thereof, comprising: (1) entering on an ECAD system a specification for an entire design of desired behavior of a device, including high-level timing goals, in a high-level, behavior-oriented language; (2) on the ECAD system, deriving a functional description from the specification, including intended functionality; (3) on the ECAD system, verifying the correctness of the intended functionality of the functional description; (4) on the ECAD system, partitioning the functional description into a partitioned design having separate modules; (5) on the ECAD system, comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the functional desctiption, as partitioned; (6) if any of the one or more constraints is not met, iteratively re-partitioning the functonal description, re-estimating the one or more low-level characteristics of the device and comparing them against the one or more respective constraints, until the constraints are met; (7) on the ECAD system, describing the modules, and imposing on each module a set of timing and area constraints; (8) on the ECAD system, reconstructing the partitioned design, and examining and verifying the partitioned design, to provide an RTL description of the entire design; (9) on the ECAD system, verifying architectural decisions that were made during partitioning, and examining their impact on the functionality and performance of the entire design; (10) on the ECAD system, providing a target technology library for the modules; (11) on the ECAD system, mapping the design is mapped into the target technology; (12) on the ECAD system, providing a gate-level, technology-dependent structural descriptions of the modules; (13) on the ECAD system, verifying the correctness of the structural descriptions of the modules against their intended functionality; (14) on the ECAD system, associating specified timing and area constraints on the structural description of the modules; (15) on the ECAD system, modifying the structural descriptions of the modules so that their area and timing characteristics comply with the specified constraints; (16) on the ECAD system, deriving optimized structural description of the modules from the modified structural descriptions; (17) on the ECAD system, examining the impact of the optimized structural descriptions of the modules on the entire design; (18) on the ECAD system, deriving a high level module, from the optimized structural descriptions of the modules, wherein the high level module describes the interaction and connectivity between the modules, and creating higher level modules hierarchically from high level modules until the entire design is described in a highest level module; (19) on the ECAD system, composing the optimized structural descriptions of the modules are composed (see step 5) together to implement the intended functionality of the highest level module; (20) in the ECAD system, performing floor-planning for the modules, and determining more accurate intra-block and inter-block delays; (21) in the ECAD system, back-annotating the delays into the structural descriptions of the modules; and (22) in the ECAD system, further modifying the structural descriptions of the modules so that their area and timing characteristics comply with global constraints.
Claim 11
Dependent Claim
213 words
An ECAD system for creating and validating a structural description of a circuit or device from a higher level, behavior-oriented description thereof, comprising: means for entering on an ECAD system a specification for a design of desired behavior of a device, including high-level timing goals, in a high-level, behavior-oriented language; means, in the ECAD system, for iteratively simulating and changing the design of the device at the behavioral-level until the desired behavior is obtained; means, in the ECAD system, for partitioning the design of the device into a number of architectural blocks and for constraining the architectural choices to those which meet the high-level timing goals; means, in the ECAD system, for comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the design of the device, as partitioned; and iteratively re-partitioning the design, re-estimating the one or more low-level characteristics of the device and comparing them against the one or more respective constraints, as necessary, until the constraints are met; and means, in the ECAD system, for directing the various architectural blocks to logic synthesis programs, said logic synthesis programs also running in the ECAD system, thereby providing a netlist or gate-level description of the design.
Claim 12
Dependent Claim
213 words
An ECAD system for creating and validating a structural description of a circuit or device from a higher level, behavior-oriented description thereof, comprising: means for entering on an ECAD system a specification for a design of desired behavior of a device, including high-level timing goals, in a high-level, behavior-oriented language; means, in the ECAD system, for iteratively simulating and changing the design of the device at the behavioral-level until the desired behavior is obtained; means, in the ECAD system, for partitioning the design of the device into a number of architectural blocks and for constraining the architectural choices to those which meet the high-level timing goals; means, in the ECAD system, for comparing one or more constraints on one or more respective low-level characteristics of the device against one or more respective estimates of the low-level characteristics of the design of the device, as partitioned; and iteratively re-partitioning the design, re-estimating the one or more low-level characteristics of the device and comparing them against the one or more respective constraints, as necessary, until the constraints are met; and means, in the ECAD system, for directing the various architectural blocks to logic synthesis programs, said logic synthesis programs also running in the ECAD system, thereby providing a netlist or gate-level description of the design.
Claim 13
Independent Claim
168 words
A method of partitioning an electronic system in an ECAD system, comprising: creating an initial partitioning of a high-level design representing an electronic system; defining one or more low-evel constraints for a low-level implementation of the high-level design; initially scheduling and binding the high-level design; determining whether the one or more low-level constraints are satisfied by comparing them against one or more respective estimates of one or more respective low-level characteristics of an implementation of the initially scheduled and bound high-level design, and if the low level constraints are not satisfied then iteratively performing one or more of the steps of: moving functional units of the design from one partition to another partition; and adding redundant functional units to the design; and and performing the steps of: re-scheduling and re-binding the design; and comparing the one or more low-level constraints against one or more respective re-calculated estimates of the one or more respective low-level characteristics of the re-scheduled and re-bound design until the low level constraints are satisfied.
Claim 14
Independent Claim
168 words
A method of partitioning an electronic system in an ECAD system, comprising: creating an initial partitioning of a high-level design representing an electronic system; defining one or more low-evel constraints for a low-level implementation of the high-level design; initially scheduling and binding the high-level design; determining whether the one or more low-level constraints are satisfied by comparing them against one or more respective estimates of one or more respective low-level characteristics of an implementation of the initially scheduled and bound high-level design, and if the low level constraints are not satisfied then iteratively performing one or more of the steps of: moving functional units of the design from one partition to another partition; and adding redundant functional units to the design; and and performing the steps of: re-scheduling and re-binding the design; and comparing the one or more low-level constraints against one or more respective re-calculated estimates of the one or more respective low-level characteristics of the re-scheduled and re-bound design until the low level constraints are satisfied.
Claim 15
Dependent Claim
21 words
A method, according to claim 7, wherein: initial scheduling is performed taking into account only inherent, high-level constraints of the design.
Claim 16
Dependent Claim
20 words
A method, according to claim 7, wherein: initial scheduling is based on a delay between functional units of the design.
Claim 17
Dependent Claim
25 words
A method, according to claim 7, wherein: the low level constraints of the design include power dissipated by an electronic device implemented by the design.
Claim 18
Dependent Claim
14 words
A method, according to claim 10, wherein: the electronic device is a CMOS device.
Claim 19
Dependent Claim
21 words
A method, according to claim 11 wherein: the low level constraints include static and dynamic power dissipation of the CMOS device.
Claim 20
Dependent Claim
25 words
A method, according to claim 7, wherein: the low level constraints of the design include area occupied by an electronic device implemented by the design.
Claim 21
Dependent Claim
27 words
A method, according to claim 7, wherein: the low level constraints of the design include low level timing parameters of an electronic device implemented by the design.
Claim 22
Dependent Claim
17 words
A method, according to claim 7, wherein: the initial partitioning includes hierarchical clustering of the electronic design.
Claim 23
Dependent Claim
18 words
A method, according to claim 7, wherein: the initial partitioning includes Fiduccia-Mattheyes type partitioning of the electronic design.
Claim 24
Dependent Claim
18 words
A method, according to claim 7, further comprising: determining critical paths between functional units in the electronic design.
Claim 25
Dependent Claim
19 words
A method, according to claim 17, further comprising: estimating inter-partition delays between the functional units in the electronic design.
Claim 26
Dependent Claim
16 words
A method, according to claim 18, further comprising: determining a slack associated with each critical path.
Claim 27
Dependent Claim
40 words
A method, according to claim 19, further comprising: comparing the slack for a critical path with the interpartition delay; marking as critical those paths for which the slack is less than the interpartition delay; and sorting the paths by slack.
Claim 28
Dependent Claim
16 words
A method, according to claim 20, further comprising: sorting a configurable subset of all critical paths.
Claim 29
Dependent Claim
142 words
A multi-level partitioner for partitioning an electronic design into partitioned units, comprising: a user-interface running on a computer, for enabling a user to perform design activity; an input device for enabling a user to input information about the design activity to the computer; a display device for displaying information about the design activity to the user; a scheduling tool in the computer for scheduling a design of an electronic device; a binding tool in the computer for binding a design of an electronic device; a constraint-driven property estimation tool operating on the computer for providing, at a high level of the design activity, estimates of low-level constraints of a low level representation of the design; and means for iteratively partitioning the design into functional units until the low level constraints of the design are met at the high level of design activity.
Claim 30
Dependent Claim
142 words
A multi-level partitioner for partitioning an electronic design into partitioned units, comprising: a user-interface running on a computer, for enabling a user to perform design activity; an input device for enabling a user to input information about the design activity to the computer; a display device for displaying information about the design activity to the user; a scheduling tool in the computer for scheduling a design of an electronic device; a binding tool in the computer for binding a design of an electronic device; a constraint-driven property estimation tool operating on the computer for providing, at a high level of the design activity, estimates of low-level constraints of a low level representation of the design; and means for iteratively partitioning the design into functional units until the low level constraints of the design are met at the high level of design activity.
Claim 31
Dependent Claim
62 words
A multi-level partitioner, according to claim 22, wherein the means for iteratively partitioning comprises: means for computing a value of a cost function associated with the estimates of a constraint; means for constraint-driven hierarchical clustering; means for determining whether moving functional units between partitions will result in lowering the value of the cost function; and means for moving functional units between partitions.
Claim 32
Dependent Claim
45 words
A multi-level partitioner, according to claim 22, further comprising: means for determining critical paths in the design; means for sorting and weighting the critical paths in the design; and means for providing information about the sorted and weighted critical paths to the means for partitioning.