I’ve been trying to understand when to use a Function and when to use a Procedure in VHDL. From my understanding both are Synthesizable. You use a Function when you have 1 return value and a Procedure when you have multiple outputs. My question is why don’t I just use a procedure all the time (1 output or many outputs)?
I’ve googled around trying to find a reason to prefer one over the other, I get examples such as “use a function for a calculation, but use a procedure for a process” but that doesn’t make it clear to me why to choose Function when Procedure can do the same thing.