When error classification is enabled, an
image of the essential bit lookup data is required. The size of the data set is a function of
the target device. The data sets are generated by the write_bitstream
application.
The format of the data is required to be
binary, using the full data set generated by write_bitstream
. The external
storage must be byte addressable. A small table is required at the address specified to the
SEM controller through fetch_tbladdr[31:0]
. By default,
fetch_tbladdr[31:0]
is zero.
For non-SSI devices, the table format is:
- Byte 0
- 32-bit pointer to start of essential bit data, byte 0 (least significant byte)
- Byte 1
- 32-bit pointer to start of essential bit data, byte 1
- Byte 2
- 32-bit pointer to start of essential bit data, byte 2
- Byte 3
- 32-bit pointer to start of essential bit data, byte 3 (most significant byte)
- Remaining 124 bytes
- Reserved, filled with ones
For SSI devices, the table format is:
- Byte 0
- 32-bit pointer to start of hardware SLR0 (master) essential bit data, byte 0 (least significant byte)
- Byte 1
- 32-bit pointer to start of hardware SLR0 (master) essential bit data, byte 1
- Byte 2
- 32-bit pointer to start of hardware SLR0 (master) essential bit data, byte 2
- Byte 3
- 32-bit pointer to start of hardware SLR0 (master) essential bit, byte 3 (most significant byte)
- Byte 4
- 32-bit pointer to start of hardware SLR1 essential bit data, byte 0 (least significant byte)
- Byte 5
- 32-bit pointer to start of hardware SLR1 essential bit data, byte 1
- Byte 6
- 32-bit pointer to start of hardware SLR1 essential bit data, byte 2
- Byte 7
- 32-bit pointer to start of hardware SLR1 essential bit, byte 3 (most significant byte)
- Byte 8
- 32-bit pointer to start of hardware SLR2 essential bit data, byte 0 (least significant byte)
- Byte 9
- 32-bit pointer to start of hardware SLR2 essential bit data, byte 1
- Byte 10
- 32-bit pointer to start of hardware SLR2 essential bit data, byte 2
- Byte 11
- 32-bit pointer to start of hardware SLR2 essential bit, byte 3 (most significant byte)
- Byte 12
- 32-bit pointer to start of hardware SLR3 essential bit data, byte 0 (least significant byte)
- Byte 13
- 32-bit pointer to start of hardware SLR3 essential bit data, byte 1
- Byte 14
- 32-bit pointer to start of hardware SLR3 essential bit data, byte 2
- Byte 15
- 32-bit pointer to start of hardware SLR3 essential bit, byte 3 (most significant byte)
- Remaining 112 bytes
- Reserved, filled with ones
A pointer value of
0xFFFFFFFF
is used if a particular block of data is not present. The
essential bit data can be located at any addresses provided each data block is contiguous and
it is possible to perform a read burst through each data block.
For SPI flash that does not support read burst across device boundaries, data blocks must be located so that they do not straddle any of these device boundaries. For example, many SPI flash of a density greater than 256 Mbit do not allow read burst across 256 Mbit boundaries.
The Tcl script, which post processes the
write_bitstream
output files, generates three outputs:
- An Intel hex data file (MCS) for programming SPI flash devices
- A raw binary data file (BIN) for programming SPI flash devices
- An initialization file (VMF) for loading SPI flash simulation models