Featured image of post Yosys One Liners - AXI

Yosys One Liners - AXI

The AXI spec says “On Manager and Subordinate interfaces, there must be no combinatorial paths between input and output signals.” If we have a design containing an AXI Manager or Subordinate as netlist (i.e. post proc) and the AXI ports contain axi_ we can check this automatically using this Yosys one liner:

flatten; select -assert-none i:*axi_* %coe* o:*axi_* %cie* %i

If that fails we can use show i:*axi_* %coe* o:*axi_* %cie* %i to then see the combinational path (or using dump/printattrs/select -list instead of show when the design is too large for show).

Here i:*axi_* %coe selects the combinational output cone of all input ports containing axi_ and o:*axi_* %cie* selects the combinational input cone of all output ports containing axi_ and %i takes the intersection of those two selections, leaving you with only the combinational paths that start and end in such an input/output.

We also flatten the design, as selecting input/output cones doesn’t work across submodules.

If you want to find out more about the Yosys select command, please read the documentation here.

Built with Hugo
Theme Stack designed by Jimmy