The Wupper Code Generator is a tool to generate various files used for the
implementation of configuration mechanism of the FELIX interface card
firmware. Files that can be generated include:
- A VHDL description of configuration parameters with
required datatypes (e.g., a list of VHDL record types).
- A VHDL file for a register mapping, which relates parameter
register to PCIe addresses. This can include write- and read-processes
for all configuration registers.
- A matching C header file, which matches the register mapping described
in the previous point to C datastructures which represent the different
- A (partial) OKS schema for the firmware parameters. This still needs to
be extended with an OKS schema for the software configuration options. It
is yet to be determined how much of the H/W OKS schema can be autogenerated,
as not all parameters of the firmware should be configurable using an OKS database.
- Other use cases are thinkable, e.g., automatic documentation of the parameters,
registers, datatypes, etc.
The Wupper Code Generator tool uses two kinds of inputs:
- A configuration file describing all configuration registers of the firmware, as well
their data types, default values, and other relevant information.
The format of the input file is YAML.
- A (set of) template file(s), describing how the output of the tool should
look like. Jinja2 is used as template engine.
Additionally, the tool automatically generates a unique address for each
register. This can be used to assign individual registers to addresses
in the PCI memory mapping.
TODO: Brief introduction on what you do with files - including link to relevant help section.