Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

HYPER_RETIMER Error

Hi,

Please give some suggestion to solve this error

Error (332000): ERROR: Assignment HYPER_RETIMER has multiple values.

7 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    It looks like you're using the Hyper Retimer for working with a Stratix 10 device and there is something wrong with your assignment for enabling its use. Check your .qsf file.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes, Even I believe there is something wrong with HYPER_RETIMER.

    I have used this assignment is qsf file

    set_global_assignment -name HYPER_RETIMER ON

    set_global_assignment -name HYPER_RETIMER_FAST_FORWARD ON

    I even tried

    set_global_assignment -name HYPER_RETIMER OFF

    set_global_assignment -name HYPER_RETIMER_FAST_FORWARD OFF

    But both didn't work
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    If you're using 16.1, the second assignment should be FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD or just enable it in the GUI. I don't know which version this was changed.

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Yes correct, It has to be FLOW_ENABLE_HYPER_RETIMER_FAST_FORWARD.

    I tried to enable and disable HYPER_RETIMER using GUI, but till it gives same error.

    The error is inside a .sdc of DDR3 controller in qsys block.

    Error (332000): ERROR: Assignment HYPER_RETIMER has multiple values. Use the "get_all_global_assignments" command to get all values or use the "get_global_assignment -front" command to get the first value.

    while executing

    "get_global_assignment -name "HYPER_RETIMER""

    (procedure "altera_emif_arch_nf_160_pktenta_get_ddr..." line 9)

    invoked from within

    "altera_emif_arch_nf_160_pktenta_get_ddr_pins $instname allpins var"

    (procedure "altera_emif_arch_nf_160_pktenta_initial..." line 15)

    invoked from within

    "altera_emif_arch_nf_160_pktenta_initialize_ddr_db altera_emif_arch_nf_160_pktenta_ddr_db var"

    invoked from within

    "if { ! [ info exists altera_emif_arch_nf_160_pktenta_sdc_cache ] } {

    altera_emif_arch_nf_160_pktenta_init..."

    (file "../altera_emif_arch_nf_160/synth/altera_emif_arch_nf_160_pktenta.sdc" line 122)

    And, I'm using Arria 10 FPGA
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Standard or pro edition? Pro 16.0 doesn't include the Hyper Retimer.

    You also need additional licensing, I believe.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    I'm using 16.0 Standard edition.

    I don't think it's licensing issue because when I gave a try with standalone DDR project there was no error.

    But with some other block integrated, this error comes up.
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    Hello Ak_M,

    You have probably found a solution... But I ran into the same issue (also DDR3/Arria10). Commenting part of the generated script instance_name\altera_emif_arch_nf_160\synth\instance_name_altera_emif_arch_nf_160_wyghoeq_pin_map.tcl as follows solved the problem:

    # with the hyper-retimer, the tdb netlist may contain the full set of routing nodes, so we need

    # to search deeper

    # if {[expr [get_global_assignment -name "HYPER_RETIMER"] == "ON"]} {

    # set var(pll_inclock_search_depth) 250

    # set var(pll_outclock_search_depth) 250

    # set var(pll_vcoclock_search_depth) 50

    # } else {

    set var(pll_inclock_search_depth) 30

    set var(pll_outclock_search_depth) 20

    set var(pll_vcoclock_search_depth) 5

    # }

    Of course, this is not ideal as this is a file which gets regenerated. However, from Q16.1 this seems to be fixed.