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