KEEP_COMPATIBLE - 2023.2 English

Vivado Design Suite Properties Reference Guide (UG912)

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

During the FPGA design process, you can change the target device when a design decision calls for a larger or different part. The KEEP_COMPATIBLE property defines a list of one or more AMD FPGA parts that the current design should be compatible with to permit targeting the design on a different device as needed. This will allow the design to be mapped onto the current part, or any of the compatible parts by preventing the use of IO or PACKAGE_PINs that are not compatible between the specified devices.

The KEEP_COMPATIBLE property lets you define alternate compatible devices early in the design flow so that I/O pin assignments will work across the specified list of compatible devices. The Vivado Design Suite defines package pin PROHIBIT properties to prevent assignment of I/O ports to pins that are not common to all the parts.

Architecture Support
All architectures.
Applicable Objects
current_design
Values

COMPATIBLE_PARTs are defined by a combination of the device and the package of the current target part. For example, the xc7k70tfbg676-2 part has the following properties:

NAME xc7k325tffg676-2 DEVICE xc7k325t PACKAGE ffg676
COMPATIBLE_PARTS xc7k160tfbg676 xc7k160tffg676 xc7k325tfbg676 xc7k410tfbg676 xc7k410tffg676 xc7k70tfbg676

The COMPATIBLE_PARTS property of the part object lists variations of the DEVICE and the PACKAGE, without specifying the SPEED. This results in the following compatible parts:

xc7k160tfbg676-1 
xc7k160tfbg676-2 
xc7k160tfbg676-2L 
xc7k160tfbg676-3 
xc7k160tffg676-1 
xc7k160tffg676-2 
xc7k160tffg676-2L 
xc7k160tffg676-3
xc7k325tfbg676-1 
xc7k325tfbg676-2 
xc7k325tfbg676-2L 
xc7k325tfbg676-3 
xc7k410tfbg676-1
xc7k410tfbg676-2 
xc7k410tfbg676-2L 
xc7k410tfbg676-3 
xc7k410tffg676-1 
xc7k410tffg676-2 
xc7k410tffg676-2L 
xc7k410tffg676-3 
xc7k70tfbg676-1 
xc7k70tfbg676-2 
xc7k70tfbg676-2L 
xc7k70tfbg676-3

Syntax

Verilog Syntax

Not applicable

VHDL Syntax

Not applicable

XDC Syntax
set_property KEEP_COMPATIBLE {value1 value2 valueN} [current_design]

Where {value1 value2 valueN} is one or more of the COMPATIBLE_PARTS as defined on the PART object. The COMPATIBLE_PARTs for the target part of the current design can be obtained using the following Tcl command:

get_property COMPATIBLE_PARTS [get_property PART [current_design]]

XDC Syntax Example:

set_property KEEP_COMPATIBLE {xc7k160tfbg676 xc7k410tffg676} [current_design]

Affected Steps

  • I/O Planning
  • Place Design