openhwgroup / core-v-xif

RISC-V eXtension interface that provides a generalized framework suitable to implement custom coprocessors and ISA extensions
https://docs.openhwgroup.org/projects/openhw-group-core-v-xif/en
Other
53 stars 23 forks source link

Which entity (processor or coprocessor) defines the values of parameters #176

Closed jquevremont closed 3 months ago

jquevremont commented 4 months ago

In section 4.2 in the PDF of v1.0.0-rc1:

For several parameters, it is clearly stated "The CPU determines the legal values for this parameter."

For the others parameters, the entity that defines the parameters is not defined: X_NUM_RS, X_ID_WIDTH, X_RFR_WIDTH, X_RFW_WIDTH, X_ECS_XS.

I suggest to mention "The CPU determines the legal values for this parameter." or ""The coprocessor determines the legal values for this parameter." as applicable for each line in the table of parameters.

christian-herber-nxp commented 4 months ago

I went through it, and came to the following conclusion: Allmost all parameter values are determined by the coprocessor. In those cases, the CPU always determines which configuration is legal based on its capabilities. E.g. a coprocessor cannot use register pairs if the CPU cannot access register pairs from its register file.

There are only two parameters which i think are not coprocessor defined: X_ID_WIDTH and X_HARTID_WIDTH. I think it is best to split the table into two, to make it very explicit. Will do so after we merge the ECS change to avoid conflicts