1# Copyright (c) 2012-2013 ARM Limited 2# All rights reserved. 3# 4# The license below extends only to copyright in the software and shall 5# not be construed as granting a license to any other intellectual 6# property including but not limited to intellectual property relating 7# to a hardware implementation of the functionality of the software 8# licensed hereunder. You may use the software subject to the license --- 44 unchanged lines hidden (view full) --- 53# recursivly, traversing all children of the given root. 54# 55# pydot is required. When missing, no output will be generated. 56# 57##################################################################### 58 59import m5, os, re 60from m5.SimObject import isRoot, isSimObjectVector |
61from m5.params import PortRef |
62from m5.util import warn 63try: 64 import pydot 65except: 66 pydot = False 67 68# need to create all nodes (components) before creating edges (memory channels) 69def dot_create_nodes(simNode, callgraph): --- 32 unchanged lines hidden (view full) --- 102def dot_create_edges(simNode, callgraph): 103 for port_name in simNode._ports.keys(): 104 port = simNode._port_refs.get(port_name, None) 105 if port != None: 106 full_path = re.sub('\.', '_', simNode.path()) 107 full_port_name = full_path + "_" + port_name 108 port_node = dot_create_node(simNode, full_port_name, port_name) 109 # create edges |
110 if isinstance(port, PortRef): |
111 dot_add_edge(simNode, callgraph, full_port_name, port) 112 else: 113 for p in port.elements: 114 dot_add_edge(simNode, callgraph, full_port_name, p) 115 116 # recurse to children 117 if simNode._children: 118 for c in simNode._children: --- 159 unchanged lines hidden --- |