Synchronous resets
Convert all asynchronous resets to synchronous to making timing closure and routing easier.
This is recommended by Xilinx: https://docs.xilinx.com/r/en-US/ug949-vivado-design-methodology/Synchronous-Reset-vs.-Asynchronous-Reset
And empirically, it helps a lot with designs that are very full.