You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.5 KiB
Plaintext
162 lines
4.5 KiB
Plaintext
{% 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}}=<<TABLE BORDER="0" CELLPADDING="2"><TR><TD><FONT COLOR="blue" POINT-SIZE="12.0" >{{ioport.nbSamples}}</FONT>
|
|
</TD></TR></TABLE>>{% 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=<
|
|
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
|
|
<TR>
|
|
<TD ALIGN="CENTER" PORT="i">{{fifos[edge].delay}}</TD>
|
|
</TR>
|
|
</TABLE>>];
|
|
{% 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=<
|
|
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
|
|
<TR>
|
|
<TD ALIGN="CENTER" PORT="i">{{item.graphvizName}}</TD>
|
|
</TR>
|
|
</TABLE>>];
|
|
{% else %}
|
|
|
|
{% if not config.horizontal %}
|
|
|
|
{{item.nodeID}} [label=<
|
|
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
|
|
<TR>
|
|
{% for id in range(0,item.maxNbIOs) -%}
|
|
{% if item.inputNames[id] -%}
|
|
{% set input %}{{item.inputNames[id]}}{% endset %}
|
|
<TD PORT="{{input}}"><FONT POINT-SIZE="9.0">{{input}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
</TR>
|
|
<TR>
|
|
<TD ALIGN="CENTER" COLSPAN="{{item.maxNbIOs}}">{{ item.graphvizName }}</TD>
|
|
</TR>
|
|
<TR>
|
|
{% for id in range(0,item.maxNbIOs) -%}
|
|
{% if item.outputNames[id] -%}
|
|
{% set output %}{{item.outputNames[id]}}{% endset %}
|
|
<TD PORT="{{output}}"><FONT POINT-SIZE="9.0">{{output}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{%- endif %}
|
|
{%- endfor %}
|
|
</TR>
|
|
</TABLE>>];
|
|
{% else %}
|
|
{{item.nodeID}} [label=<
|
|
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
|
|
<TR>
|
|
{% if item.inputNames[0] is defined %}
|
|
<TD PORT="{{item.inputNames[0]}}"><FONT POINT-SIZE="9.0">{{item.inputNames[0]}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{% endif %}
|
|
<TD ALIGN="CENTER" ROWSPAN="{{item.maxNbIOs}}">{{ item.graphvizName }}</TD>
|
|
{% if item.outputNames[0] is defined %}
|
|
<TD PORT="{{item.outputNames[0]}}"><FONT POINT-SIZE="9.0">{{item.outputNames[0]}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{% endif %}
|
|
</TR>
|
|
{% for id in range(1,item.maxNbIOs) -%}
|
|
<TR>
|
|
{% if item.inputNames[id] -%}
|
|
{% set input %}{{item.inputNames[id]}}{% endset %}
|
|
<TD PORT="{{input}}"><FONT POINT-SIZE="9.0">{{input}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{%- endif %}
|
|
|
|
{% if item.outputNames[id] -%}
|
|
{% set output %}{{item.outputNames[id]}}{% endset %}
|
|
<TD PORT="{{output}}"><FONT POINT-SIZE="9.0">{{output}}</FONT></TD>
|
|
{% else %}
|
|
<TD></TD>
|
|
{%- endif %}
|
|
</TR>
|
|
{%- endfor %}
|
|
|
|
|
|
</TABLE>>];
|
|
{% 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=<
|
|
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
|
|
<TR>
|
|
<TD ALIGN="CENTER" PORT="i">{{c.name}}</TD>
|
|
</TR>
|
|
</TABLE>>];
|
|
{% endfor %}
|
|
|
|
{% for edgeID in range(nbConstEdges) %}
|
|
{{constEdges[edgeID][0].name}}:i -> {{constdst(edgeID)}}
|
|
{% endfor %}
|
|
} |