--- Quote Start ---
hahahahahaha :p :p
sir we still students :)
so it should be like this ?
result<=(v*30 + v*v)*328 ;
result_divided <= result (31 down to 15)
--- Quote End ---
correct. if you still get timing violation then break it up into stages:
res1 <= v*30; -- 16 bits * 5 bits => 21 bits
res2 <= v*v; -- 16 bits * 16 bits => 32 bits
res3 <= res1 + res2; -- 21 bits + 32 bits => 33 bits
res4 <= res3 *328; -- 33 bits * 9 bits => 42 bits
D <= res4(41 downto 15); -- 27 bits only
so according to this D needs only be 27 bits (if I my math is right)