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 Xilinx 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 and 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
•Placement