Description
There is an assertion in floo_route_comp.sv on line 66 that checks if the DecodeError happened and fires regardless of the address valid signal.
Here is the mentioned assertion:
ASSERT(DecodeError, !dec_error)
Here is my NoC configuration YAML file:
name: mesh
description: "AXI mesh configuration with XY routing for FlooGen"
network_type: "axi"
routing:
route_algo: "XY"
use_id_table: true
protocols:
- name: "axi_in"
protocol: "AXI4"
data_width: 64
addr_width: 48
id_width: 4
user_width: 1
type_prefix: # prevents `axi_axi` prefix
- name: "axi_out"
protocol: "AXI4"
data_width: 64
addr_width: 48
id_width: 4
user_width: 1
type_prefix: # prevents `axi_axi` prefix
endpoints:
- name: "niu"
array: [4, 4]
addr_range:
base: 0x0000_0000_0000
size: 0x0000_0001_0000 # 64KB
mgr_port_protocol:
- "axi_in"
sbr_port_protocol:
- "axi_out"
routers:
- name: "router"
array: [4, 4]
degree: 5
connections:
- src: "niu"
dst: "router"
src_range:
- [0, 3]
- [0, 3]
dst_range:
- [0, 3]
- [0, 3]
dst_dir: "Eject"
I'm using VCS to build and simulate the generated configuration with Cocotb AXI4 masters and AXI4 RAMs as slaves at each endpoint.
When I run the simulation everything besides this looks like it's working correctly.
Problem probably lays where Cocotb AXI4 Masters are driving Xs on AW bus when the addresses are not valid. This should be valid to do, so the mentioned assertion should check for !(dec_error && aw_valid)
instead of just !dec_error
. Just to mention, aw_valid
signal is not available in the floo_route_comp.sv directly.