04-14-2015 03:45 PM
I'm using vivado 2014.3.1 and I'm having some issues while trying to generate bitstream. My design implementation fails on the place_design stage.
Below is error message:
[Place 30-487] The packing of instances into a set of slices defined by an internal area constraint could not be obeyed. Please analyze your design to determine if the number of LUTs, FFs, and/or control sets can be reduced.
Number of instances constrained to the area constraint:
Flip flops: 9896 in the design area under consideration, 26400 available in the area constraint (NOTE: each slice can only accomodate 1 unique control set so FFs cannot be packed to fully fill every slice)
Luts: 8624(combined) 11180 (total) in design area under consideration, 13200 available in area constraint
Control sets: 565 in area constraint
The unplaced instances require 3030 slices but only 2602 out of 3300 slices in the area constraint are available, because others may be occupied by placed instances or blocked by exclude placement.
To attempt placement at higher effort levels at the expense of runtime, please use the following tcl command, setting the value of limit to 2000 or more.
set_param place.sliceLegEffortLimit limit
I've checked my resources utilization and everything seems to be OK below the limits.
I've reviewed all ERROR, CRITICAL WARNING messages during the placement in order to have a better understanding of what may be causing the failure. I am seeing dozens of these Constraint [18-1079] warnings, seems to be a problem placing synchronizer flops in the same slice, I've looked through the forums and its been said that these warnings can be ignored but In my case it can be related to my error.
04-14-2015 09:02 PM
04-14-2015 09:55 PM
Can you run report_utilization and report_control_sets commands on synthesized design and attach the log files here?
04-15-2015 03:46 PM
I did try that several times, every time I modified the value and re-ran the implementation that error message shows up asking for a greater value of that effort level parameter. So far I've tried from 2000-8000 without success.
04-15-2015 11:34 PM - edited 04-15-2015 11:37 PM
I see that there are 3246 unique control sets. Can you try reducing the control sets and see if it helps?
You can try changing control_set_opt_threshold value in synthesis settings to reduce the control sets.
04-16-2015 01:19 PM
I have that value set to auto. What value do you recommend as a starting point for this -cointrol_set_opt_threshold parameter?
04-16-2015 04:02 PM
I´ve tried reducing control sets, I´ve changed control_set_opt_threshold value to 10 in synthesis settings and I´ve managed to reduce the control sets to 2501. Implemetation keeps failing at the same stage (place_design, same error message). I also tried setting parameter place.sliceLegEffortLimit to a higher value as recommended by the tool, but it didn´t help ( it keeps asking to increase the limit every run).
I don´t think that is the issue since I´ve have a previous version of that same design with 2800 unique control sets and it passes every time...
04-16-2015 09:09 PM
Is it possible to share the post opt_design checkpoint file?
04-16-2015 09:44 PM
I meant _opt.dcp file located in .runs-->impl_1 folder.
04-17-2015 05:14 AM
Please open a webcase and provide the DCP file if you have webcase access.
10-15-2015 09:07 AM
I'm facing an issue similar as yours. Did you get to any conclusions on how to address it?