When you write HDL code. No matter it is Verilog or VHDL or SpinalHDL
You have to think that You are Building a Machine, that will process the Data latter.
But when we write C or Java,
We tend to think we are processing the Data right at the Lines.
But it is not that in HDL.
Another programming paradigm call Function Programming(FP) is more fit into HDL
Because in FP , programmer tend to think that we are compose function or generate function
and the data will run through the machine.