UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
1,014 Views
Registered: ‎10-10-2017

"Unused element will be removed" - Synthesis HANGS

Hello,

 

I am developing an IP for a bigger project of my company.

 

The code is a little huge, so I will attach it as a file instead of just pasting it in a code section.

 

It should be easy to understand the functionality of the code.

 

When trying to synthesize this code, just after these messages (as you can see I even tried a "keep" workaround as suggested in other topics) :

 

INFO: [Synth 8-5534] Detected attribute (* keep = "true" *) [c:/Marconi_vivado/FDR_8192_PeakUnit/FDR_8192_PeakUnit.srcs/sources_1/bd/design_1/ipshared/0038/PeakUnit_v2.v:107]
WARNING: [Synth 8-6014] Unused sequential element PRF_r_reg was removed.  [c:/Marconi_vivado/FDR_8192_PeakUnit/FDR_8192_PeakUnit.srcs/sources_1/bd/design_1/ipshared/0038/PeakUnit_v2.v:222]
WARNING: [Synth 8-6014] Unused sequential element shift_reg was removed.  [c:/Marconi_vivado/FDR_8192_PeakUnit/FDR_8192_PeakUnit.srcs/sources_1/bd/design_1/ipshared/0038/PeakUnit_v2.v:238]
WARNING: [Synth 8-6014] Unused sequential element PRF_reg was removed.  [c:/Marconi_vivado/FDR_8192_PeakUnit/FDR_8192_PeakUnit.srcs/sources_1/bd/design_1/ipshared/0038/PeakUnit_v2.v:245]
WARNING: [Synth 8-6014] Unused sequential element TruePeak_Valore_reg was removed.
WARNING: [Synth 8-6014] Unused sequential element TruePeak_Freq_reg was removed.

 

the synthesis tool hangs indefinitely.

 

let me know if there is anything else I have not attached

0 Kudos
4 Replies
Moderator
Moderator
994 Views
Registered: ‎02-07-2008

Re: "Unused element will be removed" - Synthesis HANGS

Hi @cloudscraper-86, while synthesis does take some time, it eventually completes (see attached log file).

 

Other synthesis tools generate an error, referring to line 297 of PEAKUNIT_1005.v:

 

Can't mix blocking and non-blocking assignments to a variable

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
990 Views
Registered: ‎10-10-2017

Re: "Unused element will be removed" - Synthesis HANGS

Hello and thanks.

 

I noticed a very very long synthesis time, so I thought it was getting stuck.

 

After a tough debug session, we determined that such issue was dependant on the amount of iterations we were actually executing inside the code (linked to some parameters of our vectors).


By shortening a few parameters (RANGE and TRUE_PEAKS) we have had our code synthesize and managed to keep going.

 

One last thing: is such slowness dependant on memory-related allocations, loop unrolling, or what else?

 

thanks again,

Michele

0 Kudos
Moderator
Moderator
980 Views
Registered: ‎02-07-2008

Re: "Unused element will be removed" - Synthesis HANGS

Hi @cloudscraper-86, yes, the slowness would be dependent on a number of factors including memory-related allocations and the RTL.

 

I wanted to benchmark the runtime against other synthesis tools but they generate errors:

 

PEAKUNIT_1005.v Line 141: Mix of blocking and non-blocking assignments to variable <s> is not a recommended coding practice.

 

PEAKUNIT_1005.v: Line 297|Can't mix blocking and non-blocking assignments to a variable

 

I would initially suggest fixing these errors.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
964 Views
Registered: ‎10-10-2017

Re: "Unused element will be removed" - Synthesis HANGS

Does the "initial" block count, too, for the discrimination between blocking and nonblocking?

As you can see, I tend to keep the same style throughout the code, but inside initial block I am a lot more generic with the way I write down stuff.

 

Thanks again!

0 Kudos