Vivado synthesis supports blocking and non-blocking assignments.
•Do not mix blocking and non-blocking assignments.
•Although Vivado synthesis synthesizes the design without error, mixing blocking and non-blocking assignments can cause errors during simulation.
For more information about the Verilog format for Vivado simulation, see this link to the Vivado Design Suite User Guide: Logic Simulation (UG900) [Ref 11].