cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Alir3za
Newbie
Newbie
397 Views
Registered: ‎06-27-2020

DSP placement inside pblock

Hi,

I am trying to have multiple pblocks each with a processing element that does multiplication. I use the following lines for each pblock inside my xdc file to create the pblock, resize it and add cells to it:

create_pblock y1x0
add_cells_to_pblock [get_pblocks y1x0] [get_cells -quiet [list {ys[1].xs[0].hoplite_inst} {ys[1].xs[0].pe_inst}]]
resize_pblock [get_pblocks y1x0] -add {SLICE_X16Y30:SLICE_X25Y39}

There are DSP blocks inside each pblock to use for doing the multiplication. However, sometimes Vivado uses a DSP block far away from the pblock for the multiplication while the DSPs inside the pblock are unused. This imposes heavy delays on my design. I was wondering if there is a way to make Vivado choose a DSP inside the pblock since the processing element is added to the pblock, without having to explicitly assign the multiplication to a specific DSP with a command like this:

set_property LOC DSP48_X0Y0 [get_cells {ys[1].xs[0].pe_inst/y_reg}];

I would like to avoid having to assign multiplication to specific DSPs as pblock sizes vary in my experiments.

 

I use Vivado 2020.1 and Alveo U280.

 

0 Kudos
Reply
1 Reply
hongh
Moderator
Moderator
297 Views
Registered: ‎11-04-2010

Hi, @Alir3za ,

In your pblock, only slice resource is included. There is no DSP resource in your pblock.

Please use resize_pblock command to add DSP resource:

Ex:resize_pblock pblock_XX -add {SLICE_X29Y295:SLICE_X32Y299 DSP48E2_X4Y118:DSP48E2_X4Y119}

-------------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Reply