{% extends "base.html" %} {% block title %}{{ mod.name }}{% endblock %} {% block content %}
{{ mod.kind }}{% if not mod.elaborated %} · source-only{% endif %}

{{ mod.name }}

{% if mod.desc and not comment_html %}

{{ mod.desc }}

{% endif %}
{% if mod.name in design.tops %}top{% endif %} {% if mod.package %}{{ mod.package }}{% endif %} {% if mod.rel_file and src_urls.get(mod.rel_file) %} {{ mod.rel_file }}{% if mod.line %}:{{ mod.line }}{% endif %} {% elif mod.rel_file %}{{ mod.rel_file }}{% if mod.line %}:{{ mod.line }}{% endif %}{% endif %} {% if mod.elaborated %}elaborated{% endif %} {% if mod.doc_page %}documentation{% endif %}
{{ mod.n_inputs }}in
{{ mod.n_outputs }}out
{{ mod.module_instances|length }}sub
{% if comment_html %}
{{ comment_html|safe }} {% if mod.doc_page %}

The written page for this module.

{% endif %}
{% endif %} {% if internal_svg %}

Internal connectivity

the submodules of {{ mod.name }} and the signals between them
{{ internal_svg|safe }}
scroll or pinch to zoom · drag to move · click a node to open

Blue: an input. Magenta: an output. Green: an interface. Orange: no direction. A hexagon shows a port that goes in two directions. The clock and the reset nets are not in the graph.

{% elif mod.module_instances %} {% else %}

This module instantiates no other module.

{% endif %} {% if mod.clocks or mod.resets %}
{% if mod.clocks %}

Clocks

{% for c in mod.clocks %}{{ c.name }}{% endfor %}
{% endif %} {% if mod.resets %}

Resets

{% for r in mod.resets %}{{ r.name }}{{ r.name|reset_polarity }}{% endfor %}
{% endif %}
{% endif %} {% set group_titles = {'in':'Inputs','out':'Outputs','inout':'Bidirectional'} %} {% if mod.ports %}

Ports {{ mod.ports|length }}

{% for g in ['in','out','inout'] %} {% if ports[g] %}

{{ group_titles[g] }} {{ ports[g]|length }}

{% for p in ports[g] %} {% endfor %}
DirNameTypeWidth
{{ p.eff_dir|dirbadge }} {{ p.name }} {% if p.is_interface %}{{ p.interface }}{% if p.modport %} .{{ p.modport }}{% endif %}{% else %}{{ p.type }}{% endif %} {% if p.width %}{{ p.width }}{% else %}-{% endif %}
{% endif %} {% endfor %}
{% endif %} {% if mod.params %}

Parameters {{ mod.params|length }}

{% for p in mod.params %} {% if not p.is_localparam %} {% endif %} {% endfor %}
NameResolved value
{{ p.name }}{{ p.value or '-' }}
{% endif %} {% if mod.module_instances %}

Submodules {{ mod.module_instances|length }}

{% for i in mod.module_instances %} {% endfor %}
InstanceModuleCountConns
{{ i.name }}{% if i.array %}[]{% endif %} {% if not i.unknown %}{{ i.module }}{% else %}{{ i.module }}{% endif %} {% if i.count>1 %}x{{ i.count }}{% else %}1{% endif %} {{ i.conns|length }}
{% endif %} {% if mod.interface_instances %}

Interfaces / streams {{ mod.interface_instances|length }}

{% for i in mod.interface_instances %} {{ i.name }}{% if i.count>1 %} x{{ i.count }}{% endif %}{% if not i.unknown %}{{ i.module }}{% else %}{{ i.module }}{% endif %} {% endfor %}
{% endif %} {% if mod.instantiated_by or mod.imports %}
{% if mod.instantiated_by %}

Instantiated by

{% for p in mod.instantiated_by %}{{ p }}{% endfor %}
{% endif %} {% if mod.imports %}

Imports

{% for p in mod.imports %}{{ p }}::*{% endfor %}
{% endif %}
{% endif %} {% endblock %}