UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 67086

UltraScale - SEM IP - How to use the SEM IP error report to look up bit error locations using essential bit data in the EBD file?

Description

An EBD file is an ASCII text file that has an informational header, followed by a number of lines, where each line has 32 characters that are either zero (0) or one (1). 

Each line represents the classification of 32-bits, or one word of CRAM. Zero means non-essential and one means essential. The Least Significant Bit (LSB) of a word, which is sequentially considered its first bit, is on the far right.

In the 20nm UltraScale family, each CRAM frame is 123 words. As each line in the EBD represents a word, You can visualize it by counting off groups of 123 lines in the EBD file. 

Each group of 123 lines of data in the EBD file holds the essential bits data for a configuration frame. It is ordered by incrementing Linear Frame Address, or LA. The initial group of 123 lines is a dummy frame. The next group of 123 lines is for LA = 0, followed by the next group of 123 lines for LA = 1 and so on.

Let:

  • LA be the linear frame address
  • WD be the word offset in frame
  • BT be the bit offset in word

Where is the classification for the CRAM bit located at LA, WD, BT?

The allowed range for LA is from zero to the maximum frame of the device.

WD = Y can range from 0 to 122.

BT = Z can range from 0 to 31.

If in the EBD, you call the first data line "line zero" and the first character on each line "character zero", then:

Seek line = (123 * (LA + 1)) + WD +10

(+10 : For UltraScale devices, there are 10 dummy words on top of a dummy frame (123 words). So there are a total of 133 dummy words in the beginning of the .ebd file.)

Seek character in line = (31 -BT)

It is an index into an array. Based on the file's ASCII text representation of the data, the file is very easy for a person to read. I expressed the "seek line" and "seek character in line" in two steps instead of a single computation to seek a character in the file because potential differences in size between DOS and UNIX line end markers would complicate it.

The downside to ASCII text representation, where one ASCII character represent a one-bit binary value, is that the file is eight times larger on disk than if it were stored in a binary data file. 

Xilinx provides a Tcl script with the SEM IP core which is an example of how to transform data represented in ASCII text into binary. 

This is what we do when preparing to store the Essential Bits Data in an SPI flash. If the representation is changed, the equation for the index into the file/array must also be adjusted to match.

Below is part of a 1-bit SEU detection and correction report from SEM (see (PG187) for full format):

O>
RI 00
SC 04
ECC
TS 00000000
PA 00000000
LA 00001234
COR
WD 3D BT 07
END
FC 00
SC 08
FC 00
SC 02
O>

The CRAM location is LA=00001234, WD=3D, BT=07. 

Below are first hundred or so lines of an Essential Bits Data file, or EBD file, for the KU040.  EBD files for any monolithic FPGA in the 20nm UltraScale family looks similar, they only differ in the file length.

 
Xilinx ASCII Bitstream
Created by Bitstream 2016.1 SW Build 1538259 on Fri Apr  8 15:45:27 MDT 2016
Design name:    sem_ultra_0_example_design;UserID=0XFFFFFFFF;Version=2016.1
Architecture:   kintexu
Part:           xcku040-ffva1156-2-e
Type:           essential
Date:           Tue Apr 19 18:12:08 2016
Bits:           103048736
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
{and so on}

Solution

Insert Solution Here
AR# 67086
Date Created 04/22/2016
Last Updated 06/23/2016
Status Active
Type General Article
Devices
  • Kintex UltraScale
  • Virtex UltraScale