Hi everyone, thanks for your contribution.
The inputs are not sync to a clock, since i have a serie of components if i control them with a clock signal some of them do the calculations on the same inputs, that's why i am controlling the multipliers with conditions that check if the inputs change.
I am going to attach a picture: you can see the inputs/outputs of two multiplier, one gives the correct answer while the other don't.
The first one is related with the first three values while the second one with the last three.
As you can see when the input "s_b_molt" is available before "s_a_molt" the component gives the correct answer, while when "s_a_molt" is already available and "s_b_molt" comes after, the answer is undefined.
This is because in the if-statement i imposed to calculate the product only if "a" changes its value... my problem is how to make the multiplier to wait on both inputs to be available. (I tried also with "if((s_a_molt'event) and (s_b_molt'event)) then ..." but in some of my serie of multipliers the inputs are available at the same time or it is available before "a" than "b") .
It can be solved with a check on the output but i don't know how to do that. I tried like i did in the second picture that i am going to attach.
Thanks again to everyone!