rs_valid needs clarification
Created by: christian-herber-nxp
rs_valid is currently a bit underspecified.
-
the use of those signals is not very explicit. The spec does state:
A coprocessor can (only) accept an offloaded instruction when: The required source registers are marked valid by the offloading core (issue_valid is 1 and required bit(s) rs_valid are 1).
but it is not quite clear what required means.
-
the definition of rs_valid is unclear for X_RFR_WIDTH=64, XLEN=32. What does it mean, if a bit is asserted? Without further detailing, I would assume this means that the entire register pair is valid. This would be a huge performance hit for instructions that do not make use of pairs, as they would still have to wait for the entire pair to be ready. My suggestion would be to change the Type from
logic [X_NUM_RS-1:0]
tologic [X_NUM_RS+X_DUALREAD-1:0]
to be able to specify the validity of each individual x register