LOC - 2023.2 English

Vivado Design Suite Properties Reference Guide (UG912)

Document ID
UG912
Release Date
2023-11-01
Version
2023.2 English

LOC specifies the placement assignment of a logic cell to the SITE resources of the target AMD part.

The LOC property or constraint is sometimes used with the BEL property to define the exact placement of cells within the device. In these cases the BEL constraint must be defined before the LOC constraint, or a placement error will occur.

Tip: To assign I/O ports to physical pins on the device package, use the PACKAGE_PIN property rather than LOC.
Architecture Support
All architectures.
Applicable Objects
Cells (get_cells): Any primitive cell
Values
Site name (for example, SLICE_X15Y14 or RAMB18_X6Y9)

Syntax

Verilog Syntax

Place the Verilog attribute immediately before the instantiation of a component.

Tip: The Verilog attribute can also be placed before the reg declaration of an inferred register, SRL, or LUTRAM when that reg can be placed into a single device site:
(* LOC = "site_name" *)
// Designates placed_reg to be placed in SLICE site SLICE_X0Y0 
(* LOC = "SLICE_X0Y0" *) reg placed_reg;
VHDL Syntax

Declare the VHDL attribute as follows:

attribute LOC : string;

For an instantiated instance, specify the VHDL attribute as follows:

attribute LOC of instance_name : label is "site_name";

Where instance_name is the instance name of an instantiated primitive.

VHDL Syntax Example:

-- Designates instantiated register instance placed_reg to be placed
--	in SLICE site SLICE_X0Y0
attribute LOC of placed_reg : label is "SLICE_X0Y0";

For an inferred instance, specify the VHDL attribute as follows:

attribute LOC of signal_name : signal is "site_name";

Where signal_name is the signal name of an inferred primitive that can be placed into a single site.

VHDL Syntax Example:

-- Designates inferred register placed_reg to be placed in SLICE site SLICE_X0Y0 
attribute LOC of placed_reg : signal is "SLICE_X0Y0";
XDC Syntax
set_property LOC site_name [get_cells instance_name]

Where instance_name is a primitive instance.

XDC Syntax Example:

# Designates placed_reg to be placed in SLICE site SLICE_X0Y0 
set_property LOC SLICE_X0Y0 [get_cells placed_reg]

Affected Steps

  • Design Floorplanning
  • Place Design