cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Adventurer
Adventurer
578 Views
Registered: ‎11-18-2017

How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

 

Hello.

 

I'm using Vivado 2018.02 and KCU116 evaluation board (equiped with xcku5p-ffvb676-2-e).

In the XDC file, I designated(fixed) some particular logics in some particular slices such as 

set_property LOC SLICE_X63Y60 [get_cells {cell_A}]
set_property BEL CARRY8 [get_cells {cell_A}]

or

set_property LOC SLICE_X63Y60 [get_cells {cell_B}]
set_property BEL AFF X63Y60 [get_cells {cell_B}]

Below figure 1 is the FloorPlanning(Device tab) after implementation.

bad_LUT.png

                                                                                                                       figure 1.

 

In the above figure, orange cells(carry8 and FlipFlops) are cells that I have manually fixed in my XDC code.

Blue cells(LUT) are cells that Vivado have automatically located.  

The problem is that in some particular slices, I just want my manually fixed logics located there.

For example, in figure 1, Slice_X79Y42 have only those cells (carry8 and FFs) that I have fixed.

However in Slice_X79Y43, in addition to carry8 and FFs, there is a LUT which I want it to get rid of (which I want the VIVADO to locate it in another slice).

That is, I want the slice to be used exclusively for only the carry8 and FFs that I have fixed (I'm going to use only the carry8 and FFs other than LUTs and MUXs).    

 

In below figure 2 and figure3, I can see that because of the unwanted LUT, the number of cells in SLICE_X79Y43 and SLICE_X79Y42 are different.

 

bad_slice.png

                                                                                                              figure 2.

 

good_slice.png

                                                                                                                figure 3.

 

How can I protect the slice and use if for my own?

Is there a specific XDC code for it?

Do I have to block the other cells (LUTs and MUXs) which I'm not going to use?

 

Thank you very much.

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
424 Views
Registered: ‎05-22-2018

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

Hi @kimjaewon ,

Yes you can apply on specific LUT and MUX. The simplest way would be to click on the particualar LUT or MUX in Device view and Go to BEL Properties-> Properties-> PROHIBIT and click the check box in tcl console you will also get the equivalent command for that:

probhitCapture.JPG

Thanks,

Raj

View solution in original post

6 Replies
Highlighted
Teacher
Teacher
551 Views
Registered: ‎07-09-2009

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

I only have small screen at moment , so can't search,
What u need to look at I think is the block planning idea , part of partial reconfiguration topics I think
Sorry , no more than a pointer , but it is possible to block out an area as "mine" , in which u can place your own logic and the tools will not invaid. 
U might have t use relative placement as opposed to absolute ,
Hope that's some help

<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
Xilinx Employee
Xilinx Employee
543 Views
Registered: ‎08-13-2007

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

You could try adding a PROHIBIT constraint to the LUT sites in question here.

see https://www.xilinx.com/support/documentation/sw_manuals/xilinx2019_2/ug903-vivado-using-constraints.pdf

 

Cheers,

bt

Tags (1)
Highlighted
Teacher
Teacher
533 Views
Registered: ‎07-09-2009

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution
Having found a bigger screen,

I was remembering ( badly ) Floor planning and Pblocks
http://arco.esi.uclm.es/public/doc/tutoriales/Xilinx/old_training/PlanAhead/benefits-of-area-constraints.ppt
<== If this was helpful, please feel free to give Kudos, and close if it answers your question ==>
Highlighted
Xilinx Employee
Xilinx Employee
522 Views
Registered: ‎08-13-2007

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution
Highlighted
Adventurer
Adventurer
433 Views
Registered: ‎11-18-2017

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

@barriet 

Hello.

Thanks for your advice.

As you mentioned, I used the PROHIBIT in the XDC file as below code.

set_property PROHIBIT TRUE [get_sites SLICE_X63Y29]

The result is below figure 1.

prohibit1.png

                                                                                                                        figure 1.

SLICE_X63Y29 was prohibited so VIVADO couldn't locate any cell in that slice.

 

However, what I want is to prohibit only particular BEL (LUT and MUX) not the entire SLICE like below figure 2.

 

prohibit2.png

                                                                                                                      figure 2.

Is there a way that I could leave only the CARRY8 and FFs and prohibit the LUTs and MUXs?

How can I modify my XDC code?

I tried something like

set_property PROHIBIT TRUE [get_sites SLICE_X63Y29 -of [get_bels F8MUX]]

but it didn't work.

 

Thank you very much.

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
425 Views
Registered: ‎05-22-2018

Re: How to prevent the VIVADO from using specific cells in a specific Slice?

Jump to solution

Hi @kimjaewon ,

Yes you can apply on specific LUT and MUX. The simplest way would be to click on the particualar LUT or MUX in Device view and Go to BEL Properties-> Properties-> PROHIBIT and click the check box in tcl console you will also get the equivalent command for that:

probhitCapture.JPG

Thanks,

Raj

View solution in original post