alexforencich/cocotbext-axi

Setting optional arguments arid,awid in AxiMaster don't seem to work

Opened this issue · 0 comments

Hi,

First many thanks for creating cocotbext-axi. It is being very useful to me.
I don't quite understand why but the awid, arwid, rid, and bid signals are not present at the Zynq AXI-4 interface of the subsystem I am using. However, these signals exist in the chip2chip IP I designed that I am trying to connected to this subsystem.

First I removed the awid, arwid, rid, and bid signals from the Chip2Chip IP and the respective HDL top-level but the testbench breaks because these signals are not considered optional for cocotbext axi see the following code for example:

signals=["awid", "awaddr", "awlen", "awsize", "awburst", "awvalid", "awready"],
optional_signals=["awlock", "awcache", "awprot", "awqos", "awregion", "awuser"],

So, I tried to force the cocotbext-axi AxiMaster interface to set awid, arwid always to 0, in such a way that I could hardcode them in the design to always 0 too using the following parameters:
image

However, every time I try to set awid or arid to any value I get the following error:
image

I noticed that the tests implemented as part of the github workflows don't attempt to set these optional arguments. Is there any chance of having a issue on how these optional values are being propagated in this chain of **kwargs?

self.axi_master = AxiMaster(AxiBus.from_prefix(dut, "axi"), dut.clk, dut.rst)

The testbench works fine when awid and arid arguments are not given to the AxiMaster class and awid, arwid, rid, and bid signals are present in the HDL design.