Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)

HYPER_RETIMER Error

Altera_Forum
Honored Contributor II
1,390 Views

Hi, 

 

Please give some suggestion to solve this error 

 

Error (332000): ERROR: Assignment HYPER_RETIMER has multiple values.
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
401 Views

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.

0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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
0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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.

0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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
0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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

 

You also need additional licensing, I believe.
0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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.
0 Kudos
Altera_Forum
Honored Contributor II
401 Views

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.
0 Kudos
Reply