Closed LuigiGiuffrida98 closed 1 month ago
@Luigi2898 are you intending to work on this? Otherwise I would suggest to close the PR.
@christian-herber-nxp yes, I had to stop working for few weeks, but in next days I will return active on this.
@christian-herber-nxp I update the code of the reference implementation, in my opinion, this updated implementation restores the original meaning of X_DUALREAD
parameter.
I made some changes in the docs too, can you please check them and let me know if I need to update the docs to explicitly state how to enable DUALREAD
/DUALWRITE
.
Stale and incomplete. Closing PR. Feel free to reopen once its active and best-case complete.
Context
Dualread requires to expose on the C-V-XIF register interface a number of operands that depends on the value of
X_DUALREAD
, while dualwrite requires to duplicate the dimension ofdata
field of result interface.Actual status
The parameters to be modified are many and not well specified, e.g. to enable dualread
X_DUALREAD
has to be set, then to actually use the feature, either theX_NUM_RS
or theX_RFR_WIDTH
parameters have to be modified. To make it easier to use these features could be more convenient to simply setX_DUALREAD
and/orX_DUALWRITE
parameters.Proposed solution (
dualread
)rs
exposed by the interface depends directly onX_DUALREAD
valueFirst proposed implementation (compliant with the current status of the documentation):
This approach permits to enable the
dualread
feature by settingX_DUALREAD
to a value higher than 0 and thers
width is modified internallySecond proposed implementation:
This approach permits to enable the
dualread
functionality by editing only theX_DUALREAD
parameter. The number of elements ofrs
is modified accordingly to the value ofX_DUALREAD
.The difference between the two implementations is basically that the former requires to set to
0
the unused bits of the elements ofrs
if thedualread
feature is not enabled on all thers
, the latter adds tors
the required elements according to the number of operands that admit thedualread
feature. The main drawback of the second proposed implementation is that the meaning of elements added tors
has to be defined and specified. An example of how the extra registers can be mapped is:Proposed solution (
dualwrite
)result.data
is a vector of two elements ifX_DUALWRITE
is enabledTO-DO
C-V-XIF
users (@christian-herber-nxp)