If you place two LUTs onto the same fracturable LUT (so a single dual output LUT is being used in a slice), then the two LUTs are sharing the same logical and physical input pins.
Because of this, it is possible to end up with a placement.xdc that contains something like the following:
Here, these are two LUT cells that have been placed on the same fracturable LUT (one on the 5LUT and one on the 6LUT). The command to set the "LOCK_PINS" property is the same besides the "get_cells" portion of it. The first one will succeed, the second will fail with a warning like this:
CRITICAL WARNING: [Vivado 12-2497] Could not set property 'LOCK_PINS' because 'fail to lock pin of instance 'cout_OBUF_inst_i_1' placed at site SLICE_X88Y141: SLICE_X88Y141: Conflicting nets for physical connection C2 driven by SLICE_X88Y141.C2.C2: 1: b_IBUF, 2: a_IBUF'.
I believe this warning only occurs because the LUTs share the same input pins and so the constraint doesn't need (and can't be) set twice. To fix this, I think it makes sense to just edit the TCP export to identify these cases and only include one property in the placement.xdc.
If you place two LUTs onto the same fracturable LUT (so a single dual output LUT is being used in a slice), then the two LUTs are sharing the same logical and physical input pins.
Because of this, it is possible to end up with a placement.xdc that contains something like the following:
Here, these are two LUT cells that have been placed on the same fracturable LUT (one on the 5LUT and one on the 6LUT). The command to set the "LOCK_PINS" property is the same besides the "get_cells" portion of it. The first one will succeed, the second will fail with a warning like this:
CRITICAL WARNING: [Vivado 12-2497] Could not set property 'LOCK_PINS' because 'fail to lock pin of instance 'cout_OBUF_inst_i_1' placed at site SLICE_X88Y141: SLICE_X88Y141: Conflicting nets for physical connection C2 driven by SLICE_X88Y141.C2.C2: 1: b_IBUF, 2: a_IBUF'.
I believe this warning only occurs because the LUTs share the same input pins and so the constraint doesn't need (and can't be) set twice. To fix this, I think it makes sense to just edit the TCP export to identify these cases and only include one property in the placement.xdc.