| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| // |
| // xbar_cover.cfg generated by `tlgen.py` tool |
| <% |
| import math |
| import tlgen.lib as lib |
| |
| num_hosts = len(xbar.hosts) |
| if num_hosts > 1: |
| host_unr_source_bits = math.ceil(math.log2(num_hosts)) |
| else: |
| host_unr_source_bits = 0 |
| %>\ |
| |
| +tree tb.dut |
| -module pins_if // DV construct. |
| -module clk_rst_if // DV construct. |
| |
| -assert legalAOpcodeErr_A |
| -assert sizeGTEMaskErr_A |
| -assert sizeMatchesMaskErr_A |
| -assert addrSizeAlignedErr_A |
| |
| // due to VCS issue (fixed at VCS/2020.12), can't move this part into begin...end (tgl) or after. |
| -node tb.dut tl_*.a_param |
| -node tb.dut tl_*.d_param |
| -node tb.dut tl_*.d_opcode[2:1] |
| |
| // [UNR] these device address bits are always 0 |
| % for device in xbar.devices: |
| <% |
| excl_bits = lib.get_toggle_excl_bits(device.addr_range) |
| |
| esc_name = device.name.replace('.', '__') |
| %>\ |
| % for bit_range in excl_bits: |
| -node tb.dut tl_${esc_name}_o.a_address[${bit_range[1]}:${bit_range[0]}] |
| % endfor |
| % endfor |
| |
| % if host_unr_source_bits > 0: |
| -node tb.dut tl_*.a_source[7:${8 - host_unr_source_bits}] |
| -node tb.dut tl_*.d_source[7:${8 - host_unr_source_bits}] |
| % endif |
| begin tgl |
| -tree tb |
| +tree tb.dut 1 |
| -node tb.dut.scanmode_i |
| end |