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# 54350

7 Series - FRAME_ECCE2 Port Descriptions and Functionality


How can I use the FRAME_ECCE2 in 7 series devices?


The 7 series FPGA Frame ECC logic detects single or double bit errors in configuration frame data. It uses a 13-bit Hamming code parity value that is calculated based on the frame data generated by BitGen. During readback, the Frame ECC logic calculates a syndrome value using all the bits in the frame including the ECC bits.

  • If the bits have not changed from the original programmed values, SYNDROME[12:0] are all zeros.
  • If a single bit has changed, including any of the ECC bits, the location of the bit is indicated by SYNDROME[11:0].
  • If two bits have changed, SYNDROME[12] is 0 and the remaining bits are non-zero.
  • If more than two bits have changed, SYNDROME[12:0] are indeterminate. The error output of the block is asserted if one or two bits have changed.

To use the Frame ECC logic, the FRAME_ECCE2 primitive must be instantiated in the users design, and readback must be performed using SelectMAP, JTAG, or ICAP interfaces. At the end of each frame of readback, the syndrome_valid signal is asserted for one cycle of the readback clock (CCLK, TCK, or ICAP_CLK). The number of cycles required to read back a frame varies with the interface used. Repairing bits that have changed requires a user design, or for the POST_CRC_ACTION to be set to CorrectAndContinue or CorrectAndHalt. The FRAME_ECCE2 logic alone does not repair changed bits. The design must be able to store at least one frame of data or be able to fetch original frames of data for reload. The simplest operation is:

  1. A frame is read out through ICAP and stored in block RAM. The frame address is generated as each frame is read.
  2. If an error is indicated by the error output of the FRAME_ECC block, the readback is halted and the SYNDROME value is saved. If SYNDROME[12] is 0 and SYNDROME[11:0] are non zero, the whole frame must be restored. If SYNDROME[12] is 1, SYNDROME[11:0] is used to locate the error bit in the saved frame.
  3. The repaired frame is then written back into the frame address generated in Step 1.
  4. Readback then resumes on the next frame address.


Pin Name Type Description
SYNDROMEVALID Output Frame ECC syndrome valid pulse. Active one cycle for each frame.
Used to sample ERROR and SYNDROME[12:0].


When SYNDROMEVALID is active, this output indicates if a frame error was detected or not:

  • ERROR=1 when SYNDROME[12:0] is non-zero.
  • ERROR=0 when SYNDROME[12:0] is all zeros.
SYNDROME[12:0] Output

When SYNDROMEVALID is active, this output reflects the frame error condition:

  • No bit error: [12]==0, [11:0] ==0
  • One bit error: [12]==1, [11:0] !=0
  • Two bit errors: [12]==0, [11:0] != 0
  • More than two bits: SYNDROME is unpredictable
  • Parity Bit Error: [12]==1, [11:0]==0
CRCERROR Output RBCRC error. See UG470, Chapter 8 Readback CRC
FAR[23:0] Output

Frame Address Register Value.

  • SEU Correction/Injection and ICAP applications can benefit from being able to see the FAR register.
  • This output can point to the EFAR or FAR configuration register depending on the FARSRC attribute.
SYNWORD[6:0] Output

Out Word address of error.

  • The index (0? -> 80) of the 32-bit word in the frame where an ECC error has been detected. Decoded from SYNDROME.
  • Valid when ECCERRORSINGLE is High.
SYNBIT[4:0] Output

Bit address of error.

  • The index (0 -> 31) of the bit w/ error in the word pointed to by SYNWORD in the frame detected.
  • Valid when ECCERRORSINGLE is High.
ECCERRORSINGLE Output Indicates a single-bit Frame ECC error detected

For SSIT devices, the FRAME_ECCE2 is available on all SLRs. The user should place and use the components to detect ECC on each SLR. If only a single FRAME_ECC is included in the design and not placed, it will be placed in the Master SLR.

In order to place FRAME_ECC on each SLR, instantiate same number of FRAME_ECC primitives as SLR count, and apply location constraint to each SLR locations. Referencing SEM IP example design, user can find all appropriate constraints for FRAME_ECC.

AR# 54350
Date Created 02/20/2013
Last Updated 10/21/2013
Status Active
Type General Article
  • Artix-7
  • Kintex-7
  • Virtex-7