Device Family: Stratix® IV, Stratix® V

Type: Answers, Errata

Area: EMIF, Intellectual Property



Cannot Generate DDR3 RDIMM IP for Stratix IV or Stratix V with RC8 RC15 Set to Non-Zero Values

Description

This problem affects DDR3 products.

If you specify a non-zero value for any of the RC8–RC15 fields of the DDR3 RDIMM control word, IP generation fails with the following error:

Error: integer value too large to represent.

Workaround/Fix

The workaround for this issue is to modify code in the uniphy_gen.tcl �file. Follow these steps:

  1. In the ip/altera/alt_mem_if/alt_mem_if_tcl_packages/gen/� directory, open the uniphy_gen.tcl file in an editor.
  2. In the uniphy_gen.tcl file, search for the following text comment:
  3. # Need to split the 64-bit RDIMM configuration word into 2 32-bit words for the sake of C-code�
  4. At the location of the text comment, replace the following existing code:
  5. if {([string compare -nocase "DDR3"] == 0) && } { # Need to split the 64-bit RDIMM configuration word into 2 32-bit words for the sake of C-code set rdimm_config_dec [ expr 0x[get_parameter_value RDIMM_CONFIG] ] set rdimm_config_high [ format "0x%X" [ expr >> 32 ] ] set rdimm_config_low [ format "0x%X" [ expr & 0xFFFFFFFF ] ] append sw_macros " -DRDIMM_CONFIG_WORD_LOW=" append sw_macros " -DRDIMM_CONFIG_WORD_HIGH=" }

    with the following new code:

    if {([string compare -nocase "DDR3"] == 0) && } { # Need to split the 64-bit RDIMM configuration word into 2 32-bit words for the sake of C-code set rdimm_config_str [ get_parameter_value RDIMM_CONFIG ] set rdimm_config_low "0x[ string range end-7 end ]" # Handle two halves of 16-byte string independently if {([string length ] > 8)} { set rdimm_config_high "0x[ string range end-15 end-8 ]" } else { set rdimm_config_high "0x0" } append sw_macros " -DRDIMM_CONFIG_WORD_LOW=" append sw_macros " -DRDIMM_CONFIG_WORD_HIGH=" }

This issue will be fixed in a future version.