In general, embodiments of the present disclosure provide methods, apparatus, systems, computer program products, computing devices, and computing entities for modifying a design of a hardware IP. According to one embodiment, a method is provided, the method including generating a control and data flow graph (CDFG) representation for portions of the design. The method further includes partitioning the CDFG representation into a set of partitioned sub-graphs. The method further includes, for each partitioned sub-graph, generating a merged sub-graph to form a set of merged sub-graphs. Generating the merged sub-graph for each partitioned sub-graph involves generating a container sub-graph and merging the container sub-graph with the partitioned sub-graph to form the merged sub-graph. The container sub-graph may be a modification of the partitioned sub-graph with respect to an identified feature, in some examples. The method further includes synthesizing a modified design of the hardware IP including the set of merged sub-graphs.
Legal claims defining the scope of protection, as filed with the USPTO.
2. The method of claim 1, wherein partitioning the CDFG representation comprises using a partitioning algorithm configured to minimize cut edges of the set of partitioned sub-graphs.
3. The method of claim 1, wherein the at least one feature comprises at least one of types of operations, a number of possible branches, or a number of constants and variables integrated in the partitioned sub-graph.
4. The method of claim 1, wherein the container sub-graph comprises at least one of a randomly generated sub-graph, a modification of the partitioned sub-graph, or a sub-graph retrieved from a data storage.
5. The method of claim 1, wherein merging the partitioned sub-graph and the container sub-graph is performed using a K-way graph merging algorithm.
6. The method of claim 1, wherein merging the partitioned sub-graph and the container sub-graph is performed by implementing a key-based selector configured to control activation of functionality represented by the partitioned sub-graph or functionality represented by the container sub-graph.
7. The method of claim 1, wherein merging the partitioned sub-graph and the container sub-graph is performed by implementing one or more derived keys, and functionality represented an end of the partitioned sub-graph regenerates the one or more derived keys based at least in part on an inserted key.
8. The method of claim 1, wherein generating a merged sub-graph is further based at least in part on performing a data-path locking on the merged sub-graph.
9. The method of claim 8, wherein performing the data-path locking on the merged CDFG sub-graph comprises adding a key dependency on at least one existing value so that the at least one existing value is restored only if a key is correctly applied.
11. The apparatus of claim 10, wherein partitioning the CDFG representation comprises using a partitioning algorithm configured to minimize cut edges of the set of partitioned sub-graphs.
12. The apparatus of claim 10, wherein the at least one feature comprises at least one of types of operations, a number of possible branches, or a number of constants and variables integrated in the partitioned sub-graph.
13. The apparatus of claim 10, wherein the container sub-graph comprises at least one of a randomly generated sub-graph, a modification of the partitioned sub-graph, or a sub-graph retrieved from a data storage.
14. The apparatus of claim 10, wherein merging the partitioned sub-graph and the container sub-graph is performed using a K-way graph merging algorithm.
15. The apparatus of claim 10, wherein merging the partitioned sub-graph and the container sub-graph is performed by implementing a key-based selector configured to control activation of functionality represented by the partitioned sub-graph or functionality represented by the container sub-graph.
16. The apparatus of claim 10, wherein merging the partitioned sub-graph and the container sub-graph is performed by implementing one or more derived keys, and functionality represented an end of the partitioned sub-graph regenerates the one or more derived keys based at least in part on an inserted key.
17. The apparatus of claim 10, wherein generating a merged sub-graph is further based at least in part on performing a data-path locking on the merged sub-graph.
18. The apparatus of claim 17, wherein performing the data-path locking on the merged CDFG sub-graph comprises adding a key dependency on at least one existing value so that the at least one existing value is restored only if a key is correctly applied.
20. The computer program product of claim 19, wherein partitioning the CDFG representation comprises using a partitioning algorithm configured to minimize cut edges of the set of partitioned sub-graphs.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
January 31, 2022
July 2, 2024
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.