Design API

  • root.hasPorts()

  • root.getPorts(): returns a list of all the ports (see port API below)

  • root.hasGenerics()

  • root.getGenerics(): returns a list of all the generics (see port API below)

Port API

  • port.getDirection()

  • port.getType()

  • port.hasRange()

  • port.hasRangeConstraint()

  • port.getRange()

  • port.hasInitialValue()

  • port.getInitialValue()

Generic API

  • generic.hasType()

  • generic.getType()

  • generic.hasRange()

  • generic.hasRangeConstraint()

  • generic.getRange()

  • generic.hasInitialValue()

  • generic.getInitialValue()

Example

<#assign entity = root>
<#assign max_port_name_chr = 0>
<#assign max_port_type_chr = 5>
<#--Determine the max length for ports -->
<#if entity.hasPorts()>
        <#list entity.getPorts() as port>
                <#assign port_name_chr = (port.getName())?length>
                <#if max_port_name_chr < port_name_chr>
                        <#assign max_port_name_chr = port_name_chr>
                </#if>
                <#assign port_type_chr = (port.getType())?length>
                <#if max_port_type_chr < port_type_chr>
                        <#assign max_port_type_chr = port_type_chr>
                </#if>
        </#list>
</#if>
<#--print ports -->
<#if entity.hasPorts()>
        <#list entity.getPorts() as port>
                <#assign port_name = r"${" + port.getName() + "}">
                <#assign pad = max_port_name_chr + 3>
                <#assign type = port.getType()?lower_case>
                <#if !(type?has_content)>
                        <#assign type = "logic">
                </#if>
        ${type?right_pad(max_port_type_chr) + " " + port_name?right_pad(pad) + ";"}
        </#list>
</#if>