Systems and methods for tracing performance information from hardware realizations to models
First Claim
1. A method comprising:
- storing, in a memory, an executable model including a plurality of model elements;
generating an initial intermediate representation (IR) of the executable model, the initial IR including a plurality of initial IR nodes corresponding to the plurality of model elements of the executable model;
generating a plurality of transitional IRs and a final IR by applying a plurality of transforms to the initial IR and to selected ones of the plurality of transitional IRs, the plurality of transitional IRs including transitional IR nodes and the final IR including final IR nodes, the plurality of transforms including compiler operations;
automatically building, by a processor coupled to the memory, a genealogy graph for the initial IR, the plurality of transitional IRs, and the final IR, wherethe genealogy graph includes a plurality of graph objects, the plurality of graph objects associated with respective ones of the initial IR nodes, the transitional IR nodes, and the final IR nodes,the genealogy graph records changes to one or more of the initial IR nodes or to one or more of the transitional IR nodes occurring over time from one or more of the plurality of transforms, andthe plurality of graph objects are linked by edges that represent the plurality of transforms applied to the initial IR and to the selected ones of the plurality of transitional IRs, and tracing information associated with a first given IR node to a second given IR node utilizing the genealogy graph, wherein the first given IR node and the second given IR node are one of the plurality of initial IR nodes, the transitional IR nodes or the final IR nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods trace performance data generated by a hardware synthesis tool chain to model elements of a model. During code generation, an initial in-memory representation is generated for the model. The in-memory representation includes a plurality of nodes that correspond to the model elements. The in-memory representation is subjected to transformations and optimizations creating transitional in-memory representations and a final in-memory representation from which HDL code is generated. A graph builder constructs a genealogy graph that traces the transformations and optimizations. The genealogy graph includes graph objects corresponding to the nodes of the in-memory representations. The synthesis tool chain utilizes the HDL code to perform hardware synthesis. The synthesis tool chain also generates performance data. Utilizing the genealogy graph, the performance data is mapped to the nodes of the initial in-memory representation, and to the elements of the model.
130 Citations
23 Claims
-
1. A method comprising:
-
storing, in a memory, an executable model including a plurality of model elements; generating an initial intermediate representation (IR) of the executable model, the initial IR including a plurality of initial IR nodes corresponding to the plurality of model elements of the executable model; generating a plurality of transitional IRs and a final IR by applying a plurality of transforms to the initial IR and to selected ones of the plurality of transitional IRs, the plurality of transitional IRs including transitional IR nodes and the final IR including final IR nodes, the plurality of transforms including compiler operations; automatically building, by a processor coupled to the memory, a genealogy graph for the initial IR, the plurality of transitional IRs, and the final IR, where the genealogy graph includes a plurality of graph objects, the plurality of graph objects associated with respective ones of the initial IR nodes, the transitional IR nodes, and the final IR nodes, the genealogy graph records changes to one or more of the initial IR nodes or to one or more of the transitional IR nodes occurring over time from one or more of the plurality of transforms, and the plurality of graph objects are linked by edges that represent the plurality of transforms applied to the initial IR and to the selected ones of the plurality of transitional IRs, and tracing information associated with a first given IR node to a second given IR node utilizing the genealogy graph, wherein the first given IR node and the second given IR node are one of the plurality of initial IR nodes, the transitional IR nodes or the final IR nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 21)
-
-
11. One or more non-transitory computer-readable media comprising programming instructions, the program instructions, when executed by a processor, instructing the processor to:
-
store, in a memory coupled to the processor, an executable model including a plurality of model elements; generate a first intermediate representation (IR) of the executable model, the first IR including a plurality of first IR nodes associated with the plurality of model elements of the executable model; apply one or more transforms to the first IR to produce a second IR, the second IR including a plurality of second IR nodes, the one or more transforms including compiler operations; automatically build, by the processor, a genealogy graph for the executable model, where the genealogy graph includes a plurality of graph objects, the plurality of graph objects associated with respective ones of the plurality of first IR nodes and the plurality of second IR nodes, and pointers among the plurality of graph objects, the pointers linking the plurality of first IR nodes to the plurality of second IR nodes based on the one or more transforms applied to the first IR to produce the second IR, and the genealogy graph records changes to one or more of the plurality of first IR nodes or to one or more of the plurality of second IR nodes occurring over time from the one or more transforms; associate information with a given second IR node of the plurality of second IR nodes; and trace the information associated with the given second IR node to a given first IR node of the plurality of first IR nodes utilizing the genealogy graph. - View Dependent Claims (12, 13, 14, 15, 22)
-
-
16. An apparatus comprising:
-
a memory storing an executable model, the executable model including a plurality of model elements; and a processor coupled to the memory, the processor configured to; generate a first intermediate representation (IR) of the executable model, the first IR including a plurality of first IR nodes associated with the plurality of model elements of the executable model; apply one or more transforms to the first IR to produce a second IR, the second IR including a plurality of second IR nodes, the one or more transforms including compiler operations; automatically build a genealogy graph for the executable model, where the genealogy graph includes a plurality of graph objects, the plurality of graph objects associated with respective ones of the plurality of first IR nodes and the plurality of second IR nodes, and pointers among the plurality of graph objects, the pointers linking the plurality of first IR nodes to the plurality of second IR nodes based on the one or more transforms applied to the first IR to produce the second IR, and the genealogy graph records changes to one or more of the plurality of first IR nodes or to one or more of the plurality of second IR nodes occurring over time from the one or more transforms; associate information with a particular first IR node of the plurality of first IR nodes; and trace the information associated with the particular first IR node to a particular second IR node of the plurality of second IR nodes utilizing the genealogy graph. - View Dependent Claims (17, 18, 19, 20, 23)
-
Specification