litex_vexriscv

Module litex_registers

Source
Expand description

LiteX register abstraction types

LiteX is able to generate vastly different SoC with different buswidths, CSR widths and configurations

This module defines interfaces very similar to tock_registers (and based on tock_registers) for various register- and bus-width configurations

Essentially, the bus data width (default 32 bit), the CSR data width, the CSR byte ordering and naturally the desired register width can change. This module defines generic traits for accessing registers and register abstraction structs.

The different register types of a specific SoC configuration are combined using a LiteXSoCRegisterConfiguration structure, which can be used to adapt the register interfaces of peripherals to the different configurations.

§Naming Scheme

The generated register abstractions follow the naming scheme

<AccessTypes><RegisterWidth>C<CSRDataWidth>B<BaseWidth>

where AccessType in { ReadOnly, WriteOnly, ReadWrite }, RegisterWidth in { 8, 16, 32, 64 }, CSRDataWidth in { 8, 32 }, BaseWidth in { 32 }.

Macros§

Structs§

Enums§

Traits§