dpretet / axi-crossbar

An AXI4 crossbar implementation in SystemVerilog
MIT License
123 stars 26 forks source link

Bug: AXI protocol violation #19

Open dpretet opened 3 weeks ago

dpretet commented 3 weeks ago

In axicb_mst_switch.sv module, a protocol violation may occur because of channel signals assignment. The master interface drives its output based on round robin granting, but in some situation described below, address and other fields change while they shouldn't:

One solution could be to rework the arbiter or its control.

Another one could be to store the grant value and block it as long as a slave is not active (preferred).

A protocol checker needs to be put in place to first catch the bug, then ensure the fix is correct.

This will be harmless in most situation but is out-of-spec. This bug concerns only crossbar configuration without CDC, buffer or pipeline on output slave path.

dpretet commented 1 day ago