AxisLiteRegister now accepts outstandings of 2 in read transactions.
The axi lite protocol requires that the number of outstandings be less than 1.
Expected
Set the maximum number of outstandings for AxiLiteSlave transactions to 1.
Environment
Ubuntu 18.04.4 LTS
Python 3.8.13
pyverilog 1.3.0
veriloggen v2.1.0 - v2.1.1
Debug
I suspect that the "ack" signal generated by push_read_data() in types/axi.py:AxiLiteSlave class is not correct.
In thread/axis.py, this "ack" is observed and FSM of AXISLiteRegister is set back to init.
The "ack" signal is not a handshake notification of rdata, but rather a push notification of rdata, so it make fsm into init, despite handshake for read channel has not been established.
The fsm state returns to init even if the handshake has not been established, and the next address request is accepted.
As a result, the number of outstandings seems to be more than 1.
About
AxisLiteRegister now accepts outstandings of 2 in read transactions. The axi lite protocol requires that the number of outstandings be less than 1.
Expected
Set the maximum number of outstandings for AxiLiteSlave transactions to 1.
Environment
Debug
I suspect that the "ack" signal generated by
push_read_data()
intypes/axi.py:AxiLiteSlave
class is not correct. Inthread/axis.py
, this "ack" is observed and FSM of AXISLiteRegister is set back to init. The "ack" signal is not a handshake notification ofrdata
, but rather a push notification of rdata, so it make fsm into init, despite handshake for read channel has not been established. The fsm state returns to init even if the handshake has not been established, and the next address request is accepted. As a result, the number of outstandings seems to be more than 1.https://github.com/PyHDI/veriloggen/blame/c548d58fc6c72efaf0994682a07d0a4f52b737cf/veriloggen/types/axi.py#L1850-L1877 https://github.com/PyHDI/veriloggen/blob/c548d58fc6c72efaf0994682a07d0a4f52b737cf/veriloggen/types/axi.py#L1850-L1877
https://github.com/PyHDI/veriloggen/blame/c548d58fc6c72efaf0994682a07d0a4f52b737cf/veriloggen/thread/axis.py#L290-L325 https://github.com/PyHDI/veriloggen/blob/c548d58fc6c72efaf0994682a07d0a4f52b737cf/veriloggen/thread/axis.py#L290-L325