Article ID: 000080347 Content Type: Troubleshooting Last Reviewed: 06/14/2023

Why is there RAM data corruption in designs using Inferred Dual Port RAMs and compiled in the Intel® Quartus® Prime Pro Edition Software version 20.1 and earlier?

Environment

  • Intel® Quartus® Prime Pro Edition
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    Description

    Due to a problem in the Intel® Quartus® Prime Pro Edition Software version 20.1 and earlier, you will see incorrect data when reading from a Sequential Access Memory (SAM) that is implemented using an inferred True Dual Port RAM or Simple dual port RAM. The example code that generates the incorrect readback is shown below. 

    if rising_edge(clk) then
                if read_enable = '1' then
                        read_addr <= std_logic_vector(unsigned(read_addr) 1);
                        read_data <= ram(to_integer(unsigned(read_addr)));
                end if;
    end if;

    In this example, if the intended addresses to be read from are 5, 6, 7, 8, etc., the data would be read from addresses 6, 7, 8, 9, etc. This is true for address increments/decrements of any value (i.e., not just 1, as shown in this example). This error might be seen on the Intel® Arria® 10, Intel® Cyclone® 10 GX, Intel® Stratix® 10, and Intel Agilex® 7 devices. 

     

     

    Resolution

    This problem is fixed beginning with the Intel® Quartus® Prime Pro Edition Software version 20.2.  

    If you are still in the design phase of your project and are using the Intel® Quartus® Prime Pro Edition Software version 20.1 or earlier but cannot move to the latest version  

    (1)   Download and install the Solution Patch from the appropriate link below. Recompile your design with the Solution Patch installed.

    If you are targeting the Intel® Quartus® Prime Pro Edition Software version 20.1 or earlier, and your project is finalized and in the production phase, follow through steps (1) to (3) for an impact assessment on each individual compilation:  

    (1)   Download and install the Screening Patch from the appropriate link below.

    (2)   Recompile your design with the Screening Patch installed.

    a. If your design is affected, you will see the following warning in the Quartus compilation flow message window. Proceed with Step (3).

    Warning (21938): Screening patch found an incorrect logic connection condition. Install the solution patch to avoid RAM corruption, available in the knowledge database solution https://www.intel.com/content/altera-www/global/en_us/index/support/support-resources/knowledge-base/tools/2020/how-can-i-check-for-and-fix-ram-corruption-problems-in-intel--qu.html

    b. If the above warning is not reported, no further action is required.

    (3)   Download and install the Solution Patch from the appropriate link below. Recompile your design with the Solution Patch installed.

     

    For the Intel® Quartus® Prime Pro Edition Software version 18.1, download the Screening Patch 0.53 and Solution Patch 0.49 from the appropriate link below. 

     

    For the Intel® Quartus® Prime Pro Edition Software version 19.1, download the Screening Patch 0.55 and Solution Patch 0.51 from the appropriate link below. 

     

    For the Intel® Quartus® Prime Pro Edition Software version 19.2, download the Screening Patch 0.30 and Solution Patch 0.26 from the appropriate link below. 

     

    For the Intel® Quartus® Prime Pro Edition Software version 19.3, download the Screening Patch 0.67 and Solution Patch 0.60 from the appropriate link below. 

     

    For the Intel® Quartus® Prime Pro Edition Software version 19.4, download the Screening Patch 0.39 and Solution Patch 0.35 from the appropriate link below. 

    For the Intel® Quartus® Prime Pro Edition Software version 20.1, download the Screening Patch 0.52 and Solution Patch 0.32 from the appropriate link below. 

    Note:

    1. The available screening patches and solution patches are targeted for the recent two years of Intel® Quartus® Prime Pro  Edition Software releases. Contact Intel and quote ID #1509115906 if you are impacted and require patch support for Intel® Quartus® Prime Pro Edition Software version prior to 18.1.  
    2. Caution: Patch installation sequence for Screening Patch and Solution Patch matters – the latest installed patch overrides the previous patch. 
    3. Do not install the screening patch after installing the solution patch. Ensure that ONLY the Screening Patch is installed during the screening step. You may then install the solution patch on top of Screening the Patch once your screening step is completed with specific warning messages reported.

    Related Products

    This article applies to 4 products

    Intel® Cyclone® 10 GX FPGA
    Intel Agilex® 7 FPGAs and SoC FPGAs
    Intel® Arria® 10 FPGAs and SoC FPGAs
    Intel® Stratix® 10 FPGAs and SoC FPGAs