I was just describing the situation why the "fin_add" never changes. At the beginning there is the code
--- Quote Start ---
process (init,add_en,num,used)
begin
fin_init<='0';
fin_add<='0';
--- Quote End ---
and logically there should be a change of the fin_add after something changed in the sensivity list.
But since the process exectution enters the IF branch - fin_add<='1' and only last assignment in the process takes place. Therefore he will not notice '0' assignment on the waveform.
Thats true
If his fin_add always = '1' this means that his process always enters to the branch there fin_add assigned '1'.
The problem can be in the testbench.