Skip to content

Ibex ALU extension fixture: update from hypothetical to real Ibex spec #36

Description

@metasmile

Goal

Update tests/fixtures/ibex/alu_ext.xif.yaml from the current "hypothetical" fixture to a spec based on the actual Ibex RISC-V core parameters and standard extensions.

Background

Ibex (lowRISC) does not implement the CV-X-IF custom instruction interface used by CVA6. Instead, Ibex supports standard RISC-V extensions (M, B, C, Zc, Zbkb, etc.) selectable via compile-time parameters. The current fixture (ibex/alu_ext.xif.yaml) is marked as "hypothetical Ibex ALU extension" but does not correspond to any actual Ibex configuration.

Approach

Rather than modeling a non-existent XIF interface, update the fixture to model Ibex's actual combinatorial parameter space: the set of valid RV32IMCB extension combinations and their instruction encoding constraints.

Ibex has the following key parameters (from ibex_pkg.sv):

  • RV32M: RV32MNone, RV32MSlow, RV32MFast, RV32MSingleCycle
  • RV32B: RV32BNone, RV32BBalanced, RV32BOTEarlGrey, RV32BFull
  • RV32ZC: RV32Zca, RV32ZcaZcb, RV32ZcaZcmp, RV32ZcaZcbZcmp
  • RegFile: RegFileFF, RegFileFPGA, RegFileLatch

The fixture should model the constraint space of instruction encoding validity across these parameter combinations — demonstrating that ev can verify not just XIF custom instructions but also standard RISC-V extension configuration spaces.

Tasks

  1. Review ibex/rtl/ibex_pkg.sv for parameter definitions and encoding constraints
  2. Review ibex/doc/03_reference/instruction_decode_execute.rst for instruction decode rules
  3. Update tests/fixtures/ibex/alu_ext.xif.yaml with real Ibex constraints
  4. Add to run.sh verification if not already present
  5. bash run.sh validation

References

  • ibex/rtl/ibex_pkg.sv — Parameter definitions
  • ibex/doc/03_reference/instruction_decode_execute.rst — Decode/execute
  • ibex/dv/uvm/core_ibex/riscv_dv_extension/testlist.yaml — Existing test list

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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