Migrating a Vivado design from 2017.2 to 2017.3 results in the following error:
There have been no design changes, and the LUT in question looks to have a valid driver. How can I avoid this error?
The error is a result of Vivado attempting to push a LUT1 inverter into upstream logic, but not successfully re-connecting it.
To work around the issue, set a DONT_TOUCH property on the LUT1 driving the LUT mentioned in the error. This can be found from an open synthesized design.
set_property DONT_TOUCH true [get_cells <lut1_name>]
This issue will be resolved in the 2017.4 release of Vivado.