External Memory Programming File - 3.1 English

UltraScale Architecture Soft Error Mitigation Controller LogiCORE IP Product Guide (PG187)

Document ID
PG187
Release Date
2023-11-08
Version
3.1 English

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