AR# 64421


MIG 7 Series - DDR3 AXI design with ECC fails in Hardware


Version Found: MIG 7 Series v2.3

Version Resolved: See (Xilinx Answer 54025)

MIG 7 series AXI enabled DDR3 designs with ECC (72 bits) can fail in hardware.


There is an RTL syntax issue in the Verilog file mig_7series_v2_3_ecc_gen.v

 for (index=0; index<ECC_WIDTH; index=index+1)
          // The "== 1'bx" is so this will converge at time zero.
          // XST assumes false, which should be OK.
          if ((&i == 1'bx) || trig1) next_combo[index] = i[index];
          else begin
            next_combo[index] = 1'b0;
            ones = ones + i[index];
            if (i[index] && seen0) begin
              trig1 = 1'b1;
              for (dump_index=index-1; dump_index>=0;dump_index=dump_index-1)
                if (dump_index>=index-ones) next_combo[dump_index] = 1'b1; 
            seen0 = ~i[index];
          end // else: !if(trig1)

The condition &i == 1'bx is expected to evaluate to false as per the comment. But this is not behaving as expected and an ECC error is reported.

As a work-around, update the RTL so that check for == 1'bx is removed.


if ((&i == 1'bx) || trig1) next_combo[index] = i[index];


if (trig1) next_combo[index] = i[index];

This behavior is seen only on Hardware and not in simulation.

Please see (Xilinx Answer 57546) for details on how to edit IP RTL files.

Note: The "Version Found" column lists the version where the problem was first discovered. The problem also exists in earlier versions, but no specific testing has been performed to verify earlier versions.

Revision History

12/11/2015 - Initial Release



Answer Number 问答标题 问题版本 已解决问题的版本
54025 MIG 7 Series - IP Release Notes and Known Issues for Vivado N/A N/A
AR# 64421
日期 12/22/2015
状态 Active
Type 已知问题
People Also Viewed