pulp-platform / FlooNoC

A Fast, Low-Overhead On-chip Network
Apache License 2.0
142 stars 22 forks source link

Incorrect Handling of Invalid Slave Address Requests #83

Open mubashir913 opened 6 days ago

mubashir913 commented 6 days ago

I have generated a NoC using FlooNoC and encountered an issue during testing. When an AXI Master driver sends a request to a slave address that is not defined in the Slave Address Map (SAM), the NoC consistently forwards the request to a specific slave.

While the DECODE error assertion is correctly shown on the terminal, the response returned to the master has RESP = 0, because it is coming from a slave driver rather than being handled as an invalid address case.

Shouldn't the NoC handle such requests by not forwarding them to any slave and instead directly sending a response back to the master with RESP = 3 (DECERR), as per the AXI4 protocol?

P.S. In the floo_route_comp module, the en_default_idx_i and default_idx_i signals of addr_decode module are set to 0.

fischeti commented 6 days ago

Yes, this would be the better way to handle it indeed. https://github.com/pulp-platform/FlooNoC/pull/79 addresses this problem by inserting AXI error slaves in the network interfaces. But that PR is not yet ready to be merged.

mubashir913 commented 6 days ago

Okay thanks.