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
Adventurer
Adventurer
882 Views
Registered: ‎02-08-2016

Synthesis : UltraFast Design Methodology - BLOCK_SYNTH Setting max Fanout

Hi,

 

I'm running vivado 2017.2 tools

 

I want to use the suggested methodology of running different synthesis properties on various modules within the design hierarchy.

One particular module needs to have max_fanout of 128 or won't meet timing.

 

However there is no MAX_FANOUT or equivalent synthesis parameter listed in the BLOCK_SYNTH.xyz property list.

There are 16 options, but none offer maximum fanout.

 

How do I work around this? Do I have to declare a whole new custom synthesis strategy which includes a max_fanout and then apply it? Why has this parameter been forgotten?

 

Regards Simon

maxfan.png
0 Kudos
2 Replies
Adventurer
Adventurer
869 Views
Registered: ‎02-08-2016

Re: Synthesis : UltraFast Design Methodology - BLOCK_SYNTH Setting max Fanout

...... except it is not possible to do this. You can only set one of the standard set of strategies. See below.

 

set_property BLOCK_SYNTH.STRATEGY Simon_Flow_PerfOptimzed_high_PCIe2 [get_cells ABCDEFG123 ]
ERROR: [Netlist 29-154] Cannot set property 'BLOCK_SYNTH.STRATEGY' because incorrect value 'Simon_Flow_PerfOptimzed_high_PCIe2' specified. Expecting type 'enum' with possible values of 'DEFAULT,AREA_OPTIMIZED,ALTERNATE_ROUTABILITY,PERFORMANCE_OPTIMIZED'.
Resolution: Please check the value of the property and set to a correct value.

0 Kudos
Moderator
Moderator
862 Views
Registered: ‎09-15-2016

Re: Synthesis : UltraFast Design Methodology - BLOCK_SYNTH Setting max Fanout

Hi @simonh_bwt

 

Block level synthesis flow (using BLOCK_SYNTH property) doesn't have any option related to MAX FANOUT. Also the block level flow supports some of the predefined strategies only. The strategies that are allowed are: DEFAULT, AREA_OPTIMIZED, ALTERNATE_ROUTABILITY, and PERFORMANCE_OPTIMIZED.

 

>>How do I work around this? Do I have to declare a whole new custom synthesis strategy which includes a max_fanout and then apply it? Why has this parameter been forgotten?

 

As you say you want to set MAX_FANOUT on a particular module otherwise it fails timing. In that case, check for the register which is having high fanout nets (you can get this in timing reports of the failing path). Hence try setting MAX_FANOUT attribute on that particular register or signal in the RTL.

(* max_fanout = 128 *) reg sig1;

Regards
Rohit
----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------

0 Kudos