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

10.1 UniSim - RAMB36SDP # ** "Fatal: (vsim-3734) Index value 72 is out of range 71 downto 0"

Description

When I run a simulation using the ECC on the block RAM in the fault injection mode, I receive the following error:

"Fatal: (vsim-3734) Index value 72 is out of range 71 downto 0."

Why does this occur?

Solution

This error occurs only in the software model due to Corrupted DIP, or if more than two bit errors are detected.

The reason for the overflow is:

There will be 8 syndrome bits generated by the block RAM's decoder from DI and DIP.

(1) The decoding of syndrome is below:

If (syndrome !=0) // we have either sbiterror or dbiterror

If (MSB of syndrome = 1) // we have sbiterror

else // we have dbiterror

(2) The remaining 7 bits of syndrome are used to find the corrupted bit in DI (64 bits) + DIP (8 bits) and fix it.

However, in this case, DIP feeding to the decoder has some random and bad vectors that broke the Hamming algorithm; hence, this produced unreliable syndrome bits and caused (1) and (2) malfunction.

In this particular case, (2) tries to find an overflowed bit to fix (i.e., bit number 73).

To correct this problem, make sure that reliable data is fed to the DIP. The overflow occurs if there is a continuous feed of more than two bit errors in the DIP.

NOTE: If the models do not issue this error, it does not mean that the data has no errors. Hamming code gives no warning on more than two bit errors.

This error occurs only in the software model due to Corrupted DIP, or if more than two bit errors are detected.

The reason for the overflow is:

There will be 8 syndrome bits generated by the block RAM's decoder from DI and DIP.

(1) The decoding of syndrome is below:

If (syndrome !=0) // we have either sbiterror or dbiterror

If (MSB of syndrome = 1) // we have sbiterror

else // we have dbiterror

(2) The remaining 7 bits of syndrome are used to find the corrupted bit in DI (64 bits) + DIP (8 bits) and fix it.

However, in this case, DIP feeding to the decoder has some random and bad vectors that broke the Hamming algorithm; hence, this produced unreliable syndrome bits and caused (1) and (2) malfunction.

In this particular case, (2) tries to find an overflowed bit to fix (i.e., bit number 73).

To correct this problem, make sure that reliable data is fed to the DIP. The overflow occurs if there is a continuous feed of more than two bit errors in the DIP.

NOTE: If the models do not issue this error, it does not mean that the data has no errors. Hamming code gives no warning on more than two bit errors.

AR# 31847
Date Created 10/27/2008
Last Updated 12/15/2012
Status Active
Type General Article