Claims
- 1. A method performed in a circuit synthesis process, comprising the steps performed by a data processing system of:
scanning at least one node of a hierarchical description of a finite state machine stored in a memory of the data processing system; assigning, for each node of the hierarchical description scanned, a metric determined from a reachability function of the finite state machine; and selecting, according to the metric, certain nodes of the hierarchical description as defining a partition of the finite state machine for optimization.
- 2. The method of claim 1, wherein the step of selecting selects according to the metric with a greedy heuristic.
- 3. The method of claim 1, wherein the step of assigning includes a step of determining, for each node scanned, a corresponding sub-finite state machine of the finite state machine.
- 4. The method of claim 3, wherein the step of assigning further includes predicting, as at least part of the metric for each node scanned, a number of states of the corresponding sub-finite state machine.
- 5. The method of claim 3, wherein the step of assigning further includes determining, as at least part of the metric for each node scanned, a number of state variables of the corresponding sub-finite state machine.
- 6. The method of claim 3, wherein the step of assigning further includes, as at least part of the metric for each node scanned, optimizing, for each node scanned, the corresponding sub-finite state machine to determine an actual number of states of the corresponding sub-finite state machine.
- 7. The method of claim 3, wherein the step of assigning further includes:
predicting, for each node scanned, a number of states of the corresponding sub-finite state machine; determining, for each node scanned, a number of states variables of the corresponding sub-finite state machine; and determining, as at least part of the metric for each node scanned, a coding efficiency metric based upon the number of states and the number of state variables of the corresponding sub-finite state machine.
- 8. The method of claim 4, wherein the step of assigning further includes, as at least part of the metric for at least one node scanned, optimizing, for at least the one node scanned, the corresponding sub-finite state machine to determine an actual number of states of the corresponding sub-finite state machine.
- 9. The method of claim 8, wherein the step of optimizing is only performed for those scanned nodes whose predicted number of states is less than a threshold.
- 10. The method of claim 8, wherein the step of selecting selects at least one node according to the predicted and actual number of states.
- 11. A method performed in a circuit synthesis process for generating a state graph, comprising the steps performed by a data processing system of:
generating at least one state of a state graph from a finite state machine stored in a memory of the data processing system; and determining whether the state is valid from the reachability function of the finite state machine.
- 12. A method performed in a circuit synthesis process for generating a state graph, comprising the steps performed by a data processing system of:
generating at least one transition of a state graph from a finite state machine stored in a memory of the data processing system; and determining whether the transition is valid from the reachability function of the finite state machine.
- 13. A method, comprising the steps performed by a data processing system of:
assigning a property to an input description of a circuit, the input description stored in a memory of a data processing system; translating the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; generating at least one state of a state graph from the second finite state machine; and determining whether the state is valid from the property of the input description.
- 14. A method, comprising the steps performed by a data processing system of:
assigning a property to an input description of a circuit, the input description stored in a memory of a data processing system; translating the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; generating at least one transition of a state graph from the second finite state machine; and determining whether the transition is valid from the property of the input description.
- 15. The method of claim 1, further comprising the step of selecting, according to input received from a user, at least one node of the hierarchical description as defining a partition of the finite state machine for optimization.
- 16. The method of claim 1, further comprising the step of generating at least one sub-finite state machine of the finite state machine corresponding to one of the nodes selected according to the metric.
- 17. The method of claim 16, further comprising the steps of:
generating at least one state of a state graph from the sub-finite state machine; and determining whether the state is valid from the reachability function of the finite state machine.
- 18. The method of claim 16, further comprising the steps of:
generating at least one transition of a state graph from the sub-finite state machine; and determining whether the transition is valid from the reachability function of the finite state machine.
- 19. The method of claim 16, further comprising the steps of:
assigning a property to the hierarchical description of the finite state machine; generating at least one state of a state graph from the sub-finite state machine; and determining whether the state is valid from the property of the hierarchical description of the finite state machine.
- 20. The method of claim 16, further comprising the steps of:
assigning a property to the hierarchical description of the finite state machine; generating at least one transition of a state graph from the sub-finite state machine; and determining whether the transition is valid from the property of the hierarchical description of the finite state machine.
- 21. A data processing system for circuit synthesis, comprising:
a circuit configured to scan at least one node of a hierarchical description of a finite state machine stored in a memory of the data processing system; a circuit configured to assign, for each node of the hierarchical description scanned, a metric determined from a reachability function of the finite state machine; and a circuit configured to select, according to the metric, certain nodes of the hierarchical description as defining a partition of the finite state machine for optimization.
- 22. A data processing system for generating a state graph as part of circuit synthesis, comprising:
a circuit configured to generate at least one state of a state graph from a finite state machine stored in a memory of the data processing system; and a circuit configured to determine whether the state is valid from the reachability function of the finite state machine.
- 23. A data processing system for generating a state graph as part of circuit synthesis, comprising:
a circuit configured to generate at least one transition of a state graph from a finite state machine stored in a memory of the data processing system; and a circuit configured to determine whether the transition is valid from the reachability function of the finite state machine.
- 24. A data processing system for circuit synthesis, comprising:
a circuit configured to assign a property to an input description of a circuit, the input description stored in a memory of the data processing system; a circuit configured to translate the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; a circuit configured to generate at least one state of a state graph from the second finite state machine; and a circuit configured to determine whether the state is valid from the property of the input description.
- 25. A data processing system for circuit synthesis, comprising:
a circuit configured to assign a property to an input description of a circuit, the input description stored in a memory of the data processing system; a circuit configured to translate the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; a circuit configured to generate at least one transition of a state graph from the second finite state machine; and a circuit configured to determine whether the transition is valid from the property of the input description.
- 26. A computer program product including:
a computer usable medium having computer readable code embodied therein for causing circuit synthesis, the computer program product comprising: computer readable program code devices configured to cause a computer to effect scanning at least one node of a hierarchical description of a finite state machine stored in a memory of a data processing system; computer readable program code devices configured to cause a computer to effect assigning, for each node of the hierarchical description scanned, a metric determined from a reachability function of the finite state machine; and computer readable program code devices configured to cause a computer to effect selecting, according to the metric, certain nodes of the hierarchical description as defining a partition of the finite state machine for optimization.
- 27. A computer program product including:
a computer usable medium having computer readable code embodied therein for causing state graph generation for circuit synthesis, the computer program product comprising: computer readable program code devices configured to cause a computer to effect generating at least one state of a state graph from a finite state machine stored in a memory of the data processing system; and computer readable program code devices configured to cause a computer to effect determining whether the state is valid from the reachability function of the finite state machine.
- 28. A computer program product including:
a computer usable medium having computer readable code embodied therein for causing state graph generation for circuit synthesis, the computer program product comprising: computer readable program code devices configured to cause a computer to effect generating at least one transition of a state graph from a finite state machine stored in a memory of the data processing system; and computer readable program code devices configured to cause a computer to effect determining whether the transition is valid from the reachability function of the finite state machine.
- 29. A computer program product including:
a computer usable medium having computer readable code embodied therein for causing circuit synthesis, the computer program product comprising: computer readable program code devices configured to cause a computer to effect assigning a property to an input description of a circuit, the input description stored in a memory of a data processing system; computer readable program code devices configured to cause a computer to effect translating the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; computer readable program code devices configured to cause a computer to effect generating at least one state of a state graph from the second finite state machine; and computer readable program code devices configured to cause a computer to effect determining whether the state is valid from the property of the input description.
- 30. A computer program product including:
a computer usable medium having computer readable code embodied therein for causing circuit synthesis, the computer program product comprising: computer readable program code devices configured to cause a computer to effect assigning a property to an input description of a circuit, the input description stored in a memory of a data processing system; computer readable program code devices configured to cause a computer to effect translating the input description into a first finite state machine, wherein the first finite state machine includes at least a second finite state machine; computer readable program code devices configured to cause a computer to effect generating at least one transition of a state graph from the second finite state machine; and computer readable program code devices configured to cause a computer to effect determining whether the transition is valid from the property of the input description.
- 31. The method of claim 11, further comprising the step of selecting the finite state machine as a partition of a first finite state machine.
- 32. The method of claim 12, further comprising the step of selecting the finite state machine as a partition of a first finite state machine.
- 33. The method of claim 1, further comprising the step of selecting, according to input received from a user, at least one node of the hierarchical description as defining a partition of the finite state machine not to be chosen for optimization.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims the benefit of U.S. Provisional Application No. 60/072381, Express Mail Number EM320545420US, filed Jan. 9, 1998, to James Andrew Garrard Seawright, entitled Method and Apparatus For Optimal Partitioning of Finite State Machines Synthesized From Hierarchical High-level Descriptions, under 35 U.S.C. §119(e), which is herein incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60072381 |
Jan 1998 |
US |