"=" обязывает генерить триггер(ы) чтобы это действие(присвоение) выполнилось раньше чем последующие присвоения.
"<=" Все присвоения выполнятся параллельно и дополнителных ресурсов не требуют
Procedural (blocking) assignments (=) are done sequentially in the order the statements are written. A second assignment is not started until the preceding one is complete. See also Sect. 9.4.
RTL (nonblocking) assignments (<=), which follow each other in the code, are done in parallel.