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: 
Adventurer
Adventurer
501 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
Xilinx Employee
Xilinx Employee
347 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
Teacher drjohnsmith
Teacher
474 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 ==>
Highlighted
Xilinx Employee
Xilinx Employee
466 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)
Teacher drjohnsmith
Teacher
456 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 ==>
Xilinx Employee
Xilinx Employee
445 Views
Registered: ‎08-13-2007

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

Jump to solution
Adventurer
Adventurer
356 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
Xilinx Employee
Xilinx Employee
348 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