Article ID: 000086834 Content Type: Troubleshooting Last Reviewed: 01/29/2018

Why doesn't the mmr_slave_readdatavalid signal de-assert when accessing the MMR ECC register?

Environment

    Intel® Quartus® Prime Pro Edition
    External Memory Interfaces Intel® Stratix® 10 FPGA IP
    External Memory Interfaces Intel® Arria® 10 FPGA IP
BUILT IN - ARTICLE INTRO SECOND COMPONENT

Critical Issue

Description

When you access the Intel Stratix® 10 or Intel Arria® 10 MMR ECC register, the mmr_slave_readdatavalid signal doesn't de-assert after being asserted.

Resolution

Open the <IP_generated_directory>\synth\altera_emif_io_hmc_ecc_mmr.v file and add the lines indicated by // NEW CODE  (as shown below) for the  10'h080/10'h081/10'h082/10'h090/10'h091/10'h092/10'h093/10'h094 registers.

10'h080 :
                begin
                    reg_clr_intr            <= 1'b0;
                    reg_clr_mr_rdata        <= 1'b0;
                   
                    if (int_slave_write)
                    begin
                        reg_wrpath_pipeline_en <= slave_wr_data [     10] & slave_byte_enable [1];
                        reg_ecc_code_overwrite <= slave_wr_data [      9] & slave_byte_enable [1];
                        reg_enable_auto_corr   <= slave_wr_data [      8] & slave_byte_enable [1];
                        reg_enable_rmw         <= slave_wr_data [      2] & slave_byte_enable [0];
                        reg_enable_dm          <= slave_wr_data [      1] & slave_byte_enable [0];
                        reg_enable_ecc         <= slave_wr_data [      0] & slave_byte_enable [0];
                    end
                   
                    if (int_slave_read)
                    begin
                        int_slave_rd_data       <=  {
                                                        {(CFG_MMR_DATA_WIDTH - 11){1'b0}},
                                                        reg_wrpath_pipeline_en           ,
                                                        reg_ecc_code_overwrite           ,
                                                        reg_enable_auto_corr             ,
                                                        cfg_ecc_in_protocol              ,
                                                        cfg_data_rate                    ,
                                                        reg_enable_rmw                   ,
                                                        reg_enable_dm                    ,
                                                        reg_enable_ecc                  
                                                    };
                        int_slave_rd_data_valid <= 1'b1;
                    end
                    else // NEW CODE
                    begin // NEW CODE
                       int_slave_rd_data_valid <= 1'b0; // NEW CODE
                    end // NEW CODE


                end

This problem is scheduled to be fixed in a future release of the Intel Quartus® Prime software.

 

Related Products

This article applies to 2 products

Intel® Stratix® 10 FPGAs and SoC FPGAs
Intel® Arria® 10 FPGAs and SoC FPGAs

1