Skip to content

[BUG] cv32e20 fails to raise issue_valid on X-IF for coprocessor CSR instructions #316

@anecorral

Description

@anecorral

Bug Description

Bug Description

We have been attempting to integrate the cv32e20 with our coprocessor. We noticed that when a coprocessor csr read/write instruction is called, no issue_valid is raised through the X-IF.
This occurs because cve2_id_stage only considers illegality originating from the decoder (illegal_insn_dec) when making an X-IF request. Consequently, the cv32e20 stalls on a CSR illegality exception, treating it as a local fault within the main core.

However, we observed that the cv32e40x correctly supports sending requests through the X-IF for CSR instructions that are not supported by the CPU.

For reference, here is the corresponding implementation in the cv32e40x id_stage.

Furthermore, we noticed that the misa value is not adapted when X_EXT is enabled, preventing the CPU from being expanded with additional extensions. Is this intentional, or should it feature an implementation similar to the cv32e40x?

Thanks for your time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions