{% macro io(node,theio) -%} {% if node.isDuplicateNode %} {{node.nodeName}}{% else %} {% if not node.hasManyIOs %}{{node.nodeID}}:i{% else %}{{node.nodeID}}:{{theio.name}}{% endif %} {% endif %} {%- endmacro %} {% macro edgelabel(ioport,name) -%} {% if not ioport.owner.isDuplicateNode %} ,{{name}}=<
{{ioport.nbSamples}}
>{% endif %} {%- endmacro %} {% macro constdst(theID) -%} {{constEdges[theID][1].owner.nodeID}}:{{constEdges[theID][1].name}} {% endmacro -%} {% macro delayBoxID(id) -%}{{fifos[id].src.owner.nodeID}}Delay{%- endmacro %} {% macro delayBox(edge) -%} {% if fifos[edge].hasDelay %} {{delayBoxID(edge)}} [label=<
{{fifos[edge].delay}}
>]; {% endif %} {%- endmacro %} digraph structs { node [shape=plaintext] {% if config.horizontal %} rankdir=LR {% endif %} edge [arrowsize=0.5] fontname="times" {% for item in nodes %} {% if item.isDuplicateNode %} {{item.nodeID}} [shape=point,label={{item.nodeName}}] {% else %} {% if not item.hasManyIOs %} {{item.nodeID}} [label=<
{{item.graphvizName}}
>]; {% else %} {% if not config.horizontal %} {{item.nodeID}} [label=< {% for id in range(0,item.maxNbIOs) -%} {% if item.inputNames[id] -%} {% set input %}{{item.inputNames[id]}}{% endset %} {% else %} {%- endif %} {%- endfor %} {% for id in range(0,item.maxNbIOs) -%} {% if item.outputNames[id] -%} {% set output %}{{item.outputNames[id]}}{% endset %} {% else %} {%- endif %} {%- endfor %}
{{input}}
{{ item.graphvizName }}
{{output}}
>]; {% else %} {{item.nodeID}} [label=< {% if item.inputNames[0] is defined %} {% else %} {% endif %} {% if item.outputNames[0] is defined %} {% else %} {% endif %} {% for id in range(1,item.maxNbIOs) -%} {% if item.inputNames[id] -%} {% set input %}{{item.inputNames[id]}}{% endset %} {% else %} {%- endif %} {% if item.outputNames[id] -%} {% set output %}{{item.outputNames[id]}}{% endset %} {% else %} {%- endif %} {%- endfor %}
{{item.inputNames[0]}}{{ item.graphvizName }}{{item.outputNames[0]}}
{{input}}{{output}}
>]; {% endif %} {% endif %} {% endif %} {% endfor %} {% for id in range(nbFifos) %} {{delayBox(id)}} {% if fifos[id].hasDelay %} {{io(fifos[id].src.owner,fifos[id].src)}} -> {{delayBoxID(id)}}:i [label=""{{edgelabel(fifos[id].src,"taillabel")}}] {% if config.displayFIFOBuf %} {{delayBoxID(id)}}:i -> {{io(fifos[id].dst.owner,fifos[id].dst)}} [label="buf{{fifos[id].bufferID}}" {{edgelabel(fifos[id].src,"headlabel")}}] {% else %} {{delayBoxID(id)}}:i -> {{io(fifos[id].dst.owner,fifos[id].dst)}} [label="{{fifos[id].theType.graphViztype}}({{fifos[id].length}})" {{edgelabel(fifos[id].dst,"headlabel")}}] {% endif %} {% else %} {% if config.displayFIFOBuf %} {{io(fifos[id].src.owner,fifos[id].src)}} -> {{io(fifos[id].dst.owner,fifos[id].dst)}} [label="buf{{fifos[id].bufferID}}" {{edgelabel(fifos[id].dst,"headlabel")}} {{edgelabel(fifos[id].src,"taillabel")}}] {% else %} {{io(fifos[id].src.owner,fifos[id].src)}} -> {{io(fifos[id].dst.owner,fifos[id].dst)}} [label="{{fifos[id].theType.graphViztype}}({{fifos[id].length}})" {{edgelabel(fifos[id].dst,"headlabel")}} {{edgelabel(fifos[id].src,"taillabel")}}] {% endif %} {% endif %} {% endfor %} {% for c in constObjs %} {{c.name}} [label=<
{{c.name}}
>]; {% endfor %} {% for edgeID in range(nbConstEdges) %} {{constEdges[edgeID][0].name}}:i -> {{constdst(edgeID)}} {% endfor %} }