Metadata
This configuration structure is used to identify and document objects
within vhdmmio
.
This structure supports the following configuration keys.
mnemonic
The mnemonic of the object. Mnemonics are usually very short,
uppercase identifiers, idiomatically used within register file
descriptions. vhdmmio
requires that they are unique within the
current context only; that is, two fields in a single logical
register cannot have the same mnemonic, but if they were in different
logical registers this would be fine. However, chains of mnemonics
separated by underscores must still be unique. For instance, it's
illegal to have a register X
containing field Y_Z
and another
register X_Y
containing field Z
.
If the mnemonic names an array, it cannot end in a number, since the array index is added to the mnemonic in various contexts.
If no mnemonic is specified, it is generated from the name by simply uppercasing it. Either name, mnemonic, or both must be specified.
This key is optional unless required by context.
name
The name of the object. Names are generally longer and more
descriptive than mnemonics, but also need to be more unique; no two
fields within a register file can have the same name. Matching is
case-insensitive since VHDL is case-insensitive, but vhdmmio
never
changes the case of a name.
Like mnemonics, if the name names an array, it cannot end in a number, since the array index is added to the name in various contexts.
If no name is specified, it is generated from the mnemonic by simply lowercasing it. Either name, mnemonic, or both must be specified.
This key is optional unless required by context.
brief
A brief, one-line description of the object. This will be rendered
as markdown in the documentation output. Idiomatically, the brief
description should start with a lowercase letter and end in a period,
so it looks good when used in a list like "<name>: <brief>"
. The
brief may also be used as a standalone sentence; in this case, the
first letter is automatically uppercased. When printed in source code
comments, the description is automatically wrapped to an appropriate
line length. All spacing characters, including newlines, are collapsed
into a single space before the brief is used.
Brief documentation may be printed once for an array of fields or for
each field index independently depending on context. To this end,
the magic string {index}
is replaced with the index or range as
required by context:
- If the object is not an array, it is replaced with an empty string.
- If the object is an array and the brief refers to the entire array
or a slice thereof, it is replaced with
<low>..<high>
. - If the object is an array and the brief refers to a single index, it is simply replaced with just that index.
This key is optional unless required by context.
doc
Extended documentation for the object. This is only used for
documentation output, and can therefore be any valid markdown. However,
avoid using ----
and ====
underlining for headers; instead use the
#
prefix notation. vhdmmio
will automatically prefix such headers
with additional hashes to get to the right header level. The brief
documentation is always added as a single paragraph before the extended
documentation.
Like the brief documentation, extended documentation may be printed
once for an array of fields or for each field index independently
depending on context. Therefore, {index}
is replaced for doc
in
exactly the same way.
This key is optional unless required by context.