# AR# 67337

|

## Description

How can I use the SEM IP error report to look up bit error locations using essential bit data in an EBD file?

## Solution

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

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

In 7 Series devices, each CRAM frame is 101 words. Because each line in the EBD represents a word, you can imagine counting off groups of 101 lines in the EBD file.

Each group of 101 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 101 lines is a pad frame.

The next group of 101 lines is for LA = 0. Followed by the next group of 101 lines for LA = 1. And so on.

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

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

The allowed range for LA is from zero to the maximum frame of the device.
• WD = Y can range from 0 to 100 (decimal)
• BT = Z can range from 0 to 31 (decimal)

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

• Seek line = (101 * (LA + 1)) + WD
• Seek character in line = (31 -BT)

It is an index into an array. Based on the files 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 on purpose, versus a single computation to seek a character in the file because potential difference 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 more than 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 that 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 into a SPI flash.

If the representation is changed, the equation for the index into the file/array must also be adjusted to match.

Below is the first hundred or so lines of an Essential Bits Data file, or EBD file, for a 7K410T device.  An EBD file for any monolithic 7 Series device looks similar, they only differ in the file length.

Xilinx ASCII Bitstream
Created by Bitstream 2013.4
Design name:    x_ssd_top;UserID=0XFFFFFFFF
Architecture:   kintex7
Part:           7k410tffg900
Type:           essential
Date:           Fri May 27 16:13:38 2016
Bits:           96943840
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
{and so on}
AR# 67337
Date 10/20/2016
Status Active
Type General Article
Devices
People Also Viewed