part files¶
Both the part.json and part.yaml files contain information about
the configuration resources of the FPGA chip. The files include information
about bus types and the number of frames that
are available for the given configurational column.
Additionally, the file stores information about the device ID and available IO BANKS.
File format¶
Both files contain the same information, but since the part.yaml is
less accessible, the description will be based on the part.json file.
The part.json file is of the following form:
{
"global_clock_regions": {
"bottom": {
"rows": {
"<ROW_NUMBER>" : {
"configuration_buses": {
"<CONFIGURATION_BUS>": {
"configurational_columns": {
"<COLUMN_NUMBER>": {
"frame_count": <FRAME_COUNT>
}
<...>
}
}
<...>
}
}
<...>
}
},
"top": {
"rows": {
"<ROW_NUMBER>" : {
"configuration_buses": {
"<CONFIGURATION_BUS>": {
"configurational_columns": {
"<COLUMN_NUMBER>": {
"frame_count": <FRAME_COUNT>
}
<...>
}
}
<...>
}
}
<...>
}
},
}
},
"idcode" : <IDCODE>,
"iobanks" : {
"<BANK_ID>": <BANK_POSITION>",
<...>
}
}
The file contains three main entries:
"global_clock_regions"- Contains the information about the configurational resources of the FPGA chip. The 7-Series FPGAs are divided into two halves -topandbottom. This explains the origin of those entries in the file.Every half contains a few
rowsassociated with the global clock regions. The particular row of the global clock regions is indicated by the<ROW_NUMBER>. Since every row can be configured by one of three configurational buses:CLK_IO_CLKB,BLOCK_RAMorCFG_CLB, the appropriate bus is indicated by the<CONFIGURATION_BUS>.There are many columns connected to a single bus. Each column is described by appropriate
<COLUMN_NUMBER>entry which contains the information about the number of frames (<FRAME_COUNT>) which can be used to configure the particular column."idcode"- ID of the given chip package"iobanks"- a dictionary that contains the IO Bank ID (<BANK_ID>) and their position in the FPGA grid (<BANK_POSITION>).
Examples¶
{
global_clock_regions": {
"bottom": {
"rows": {
"0": {
"configuration_buses": {
"BLOCK_RAM": {
"configuration_columns": {
"0": {
"frame_count": 128
},
"1": {
"frame_count": 128
},
"2": {
"frame_count": 128
}
}
},
"CLB_IO_CLK": {
"configuration_columns": {
"0": {
"frame_count": 42
},
"1": {
"frame_count": 30
},
"2": {
"frame_count": 36
},
<...>
}
}
<...>
},
},
"top" : {
<...>
}
},
"idcode": 56803475,
"iobanks": {
"0": "X1Y78",
"14": "X1Y26",
"15": "X1Y78",
"16": "X1Y130",
"34": "X113Y26",
"35": "X113Y78"
}
}