FPGA Platforms

FPGA platforms let teams run and modify CHERI processor and system designs before committing to fixed silicon.

A software simulator can model an instruction set, but processor developers also need to test caches, buses, memory tagging, interrupts, peripherals, and real timing. Fabricating a chip for every change would be slow and expensive.

A field-programmable gate array, or FPGA, can be configured to implement a processor and system design. This makes it a practical bridge between simulation and silicon.

What an FPGA platform includes

Running CHERI on an FPGA usually requires more than a processor core:

The capability tag path is critical. A core may implement CHERI instructions correctly while an incomplete memory or direct-memory-access (DMA) design loses tag state.

Common platform routes

Purpose-built CHERIoT boards

Sonata provides an integrated development route for CHERIoT firmware and physical peripherals. It is a strong choice for software teams that want hardware without becoming FPGA system integrators.

General FPGA development boards

CHERIoT and other CHERI-RISC-V cores can target supported commercial FPGA boards. These are useful when a team already owns the hardware or needs a different FPGA size and peripheral set.

The core, system design, board constraints, and SDK must all match. A bitstream for one board cannot normally be moved to another without rebuilding the hardware design.

Application-class CHERI-RISC-V

Larger FPGA systems can run 64-bit CHERI-RISC-V cores, sometimes with memory-management units and CheriBSD or Linux support. They enable operating-system and processor development where QEMU is too abstract and commercial silicon is not yet the selected target.

Supplier evaluation images

Processor-IP vendors may provide FPGA images and SDKs for their own cores. These can offer a supported route to product evaluation, but access, licences, peripherals, and redistribution terms differ.

What FPGA evidence can support

An FPGA is useful for:

What not to infer

FPGA measurements do not directly establish:

An FPGA implementation may use different memories, clocks, interconnects, and processor-design trade-offs from the production device.

Selecting a board

Check:

  1. Core and architecture: Which CHERI instruction-set architecture (ISA) and version does the bitstream implement?
  2. Software: Which compiler, application binary interface (ABI), operating system, and examples are supported?
  3. Resources: Does the FPGA have enough logic, memory, and tagged-memory support?
  4. Peripherals: Are the required interfaces present and supported by drivers?
  5. Debug: Are hardware-debug and serial-console connections, trace, and fault diagnostics available?
  6. Licence: Can you modify and redistribute the RTL, bitstream, and software as required?
  7. Lifecycle: Is the board a learning target, a maintained development platform, or part of a supplier product route?

Reproducibility

Store the RTL revision, tool version, synthesis settings, board constraints, bitstream checksum, firmware, and SDK together. FPGA vendor tools can produce different results across versions, so the hardware build environment is part of the evidence.

Start with Sonata for CHERIoT software development, or use the CHERI product directory to find current cores and evaluation platforms.

Where next

Simulation is often the best first CHERI platform.

Simulators →