IP Library Granted Patent US 10,296,689
Granted Patent B2
US 10,296,689 · App. 14/322,905 · Granted May 21, 2019

Automated bottom-up and top-down partitioned design synthesis

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,296,689
App. No.
14/322,905
Granted
May 21, 2019
Kind
B2
Abstract

An embodiment of the present invention includes a partitioner, a synthesizer, and an optimizer. The partitioner partitions a design into a hierarchy of partitions having a top-level partition and lower partitions. The lower partitions include a bottom-level partition. The top-level partition has top-level constraints. The synthesizer synthesizes the lower partitions hierarchically from the bottom-level partition to create lower partition netlists based on the top-level constraints. The optimizer optimizes a top-level netlist corresponding to the top-level partition from the lower partition netlists to satisfy the top-level constraints.

Claims (47)

1. A method, performed by a computer executing instructions stored in a memory, comprising:

partitioning a circuit design into a plurality of hierarchical partitions in the memory, the partitions having a top-level partition and one or more lower-level partitions wherein the lowest-level partitions are bottom-level partitions, the top-level partition having top-level constraints; and

synthesizing the lower partitions, in the memory, from the bottom-level partition using the top-level constraints adapted to the bottom-level partitions for a bottom-up synthesis of the hierarchical partitions, wherein the synthesizing comprises:

compiling the lower partitions separately to create register transfer level (RTL) netlists having lower partition constraints, wherein the lower-level partition constraints are determined by dividing or budgeting top-level constraints associated with the top-level partition, and

mapping the RTL netlists to gate-level netlists associated with the lower partitions using the lower partition constraints.

2. The method of claim 1 , the bottom-up synthesis further comprising:

synthesizing bottom-level partitions using lower-level partition constraints to create a synthesized netlist for each bottom-level partition.

3. The method of claim 2 , the bottom-up synthesis further comprising:

replacing a parent partition with the synthesized netlist for bottom-level partitions associated with the parent partition as child partitions.

4. The method of claim 1 , wherein divided or budgeted top-level constraints are associated with more than one lower-level constraint.

5. The method of claim 1 , wherein upon receipt of an update to the circuit design, re-synthesizing only partitions affected by the update to the circuit design within the bottom-up synthesis of the hierarchical partitions.

6. An article of manufacture for performing circuit synthesis, comprising instructions stored on a non-transitory computer readable medium, the instructions comprising:

a compiler configurable to generate an RTL netlist upon receiving an HDL file input;

a mapper configurable to compile a source program containing an HDL circuit description; and

an optimizer configurable to generate a gate-level netlist upon receipt of the RTL netlist and a set of one or more constraints;

the synthesizer performing a bottom up synthesis, replacing a parent partition with a gate-level netlist obtained from synthesis of its child partitions, the synthesizer further configurable to determine the set of one or more constraints by dividing or budgeting top-level constraints.

7. The synthesis system of claim 6 , the optimizer further configurable to optimize a top-level partition to satisfy the top-level constraints.

8. The synthesis system of claim 6 further comprising:

a partitioner configurable to partition one or more of a design project, a design, and a circuit into a hierarchy of partitions.

9. The synthesis system of claim 8 further comprising:

a comparator configurable to identify the partitions associated with changes to the one or more of the design project, the design, and the circuit.

10. The synthesis system of claim 9 , the synthesizer further configurable to re-synthesize only those partitions identified as changed by the comparator.

11. A method of performing synthesis, performed by a computer executing instructions stored in a memory, the method comprising:

partitioning one or more of a design project, a design, and a circuit into a hierarchy of partitions, the hierarchy of partitions having a top-level partition and one or more lower-levels, the one or more lower-levels having one or more level partitions, wherein a lowest-level includes one or more bottom-level partitions, wherein the top-level partition has one or more associated top-level constraints;

determining one or more lower-level partition constraints from the one or more top-level constraints, wherein the lower-level partition constraints are determined by dividing or budgeting top-level constraints associated with the top-level partition; and

synthesizing the bottom-level partitions using lower-level partition constraints associated with the bottom-level partitions to create a synthesized netlist for each bottom-level partition, wherein the synthesizing comprises:

compiling the lower partitions separately to create register transfer level (RTL) netlists having lower partition constraints, wherein the lower-level partition constraints are determined by dividing or budgeting top-level constraints associated with the top-level partition, and

mapping the RTL netlists to gate-level netlists associated with the lower partitions using the lower partition constraints.

12. The method of claim 11 further comprising:

replacing each of one or more parent partitions in a level of partitions above associated child partitions in the bottom-level partitions with the synthesized netlist of the associated child partition.

13. The method of claim 12 further comprising:

synthesizing partitions in the level of partitions above the bottom-level partitions unassociated with child partitions in the bottom-level partitions to create a synthesized netlist for each partition.

14. The method of claim 11 , the synthesizing further comprising:

compiling a source program containing an HDL description into an RTL netlist.

15. The method of claim 14 , the synthesizing further comprising:

mapping the RTL netlist and one or more lower-level partition constraints into a gate-level netlist.

16. The method of claim 11 , the synthesizing further comprising:

optimizing the synthesized netlist for each bottom-level partition based on the lower-level partition constraints.

17. The method of claim 11 further comprising:

determining changes in the one or more of a design project, a design, and a circuit; and

re-synthesizing bottom-level partitions associated with the changes.

18. The method of claim 11 wherein the determining one or more lower-level partition constraints further comprises:

dividing or budgeting the one or more top-level constraints.

19. The method of claim 1 wherein the synthesizing further comprises:

selecting, a compile point (CP) corresponding to a partition of the lower level partitions that does not have an associated mapped RTL netlist.

20. The method of claim 19 , further comprising:

detecting a mapping change in the CP during the mapping.