variants.json
Describes up to 8 core variations. These can be used to describe very similar hardware with just a few asset changes. This is an upcoming feature.
Each variant may select a particular bitstream and override data slots with alternate ones as well as write arbitrary data into the core’s address space.
JSON Definition
magic: string
Must be APF_VER_1.
variant_list (array)
Maximum of 8 variants.
name: string
Maximum length of 15 characters.
id: integer / hex string
ID number. Limited to 16-bit unsigned.
core_select: object
Contains a child integer object core_id which specifies the bitstream ID to load.
data_overridemagic: array
List of data slot overrides.
memory_writes: array
List of memory writes to tell the bitstream about the selected variant.
data_override (array)
Maximum of 8 variants.
data_id_to: integer / hex string
ID number of the data slot to be replaced. Limited to 16-bit unsigned.
data_id_from: integer / hex string
ID number of the data slot replacing the above. It may be flagged as secondary. Limited to 16-bit unsigned.
memory_writes (array)
Maximum of 16 variants.
address: integer / hex string
Address to write to. 32-bit unsigned.
data: integer / hex string
Data to be written. It may be flagged as secondary. 32-bit unsigned.
Sample File
{…
"variants": {…
"magic": "APF_VER_1", "variant_list": […
{…
"name": "Variant1", "id": 0, "core_select": {…
"core_id": 0 }, "data_override": […
{…
"data_id": 3, "data_id_override": 300 } ], "memory_writes": […
{…
"address": "0x00000004", "data": "0x12345678" }, {…
"address": "0x02000200", "data": "0xabcdabcd" } ] }, {…
"name": "Variant2", "id": 1, "core_select": {…
"core_id": 1 }, "data_override": […
{…
"data_id": "0x100", "data_id_override": "0x103" } ] } ] }}