Bad condition in wait statement, or only one clock per process.

Mar 30, 2015 1 Replies

Hi, i am working on the following code but i have error as:



"Bad condition in wait statement, or only one clock per process."



Code:



Sensor_fusion_1_output : PROCESS VARIABLE z : vector_of_real(0 TO 11); VARIABLE xapriori : vector_of_real(0 TO 11); VARIABLE residual : vector_of_real(0 TO 11); VARIABLE papriori : vector_of_real(0 TO 11); VARIABLE K : vector_of_real(0 TO 11); VARIABLE paposteriori : vector_of_real(0 TO 11); VARIABLE xaposteriori1 : vector_of_real(0 TO 11); VARIABLE add_temp : real; VARIABLE div_temp : real; VARIABLE add_temp_0 : vector_of_real(0 TO 10); VARIABLE div_temp_0 : vector_of_real(0 TO 10);



BEGIN



z := temp; xapriori := (OTHERS => 0.0); residual := (OTHERS => 0.0); papriori := (OTHERS => 0.0); K := (OTHERS => 0.0); paposteriori := (OTHERS => 0.0); xaposteriori1 := (OTHERS => 0.0); xapriori(0) := 0.0; residual(0) := z(0); papriori(0) := 4.3; add_temp := 4.3 + 0.1; IF add_temp = 0.0 THEN div_temp := C_divbyzero_p; ELSE div_temp := One / add_temp; END IF; K(0) := div_temp; paposteriori(0) := 4.3 * (1.0 - K(0)); xaposteriori1(0) := K(0) * z(0); FOR k_0 IN 0 TO 10 LOOP xapriori(1 + k_0) := xaposteriori1(k_0); residual(1 + k_0) := z(1 + k_0) - xapriori(1 + k_0); papriori(1 + k_0) := paposteriori(k_0) + 2.8; add_temp_0(k_0) := papriori(1 + k_0) + 0.1; IF add_temp_0(k_0) = 0.0 THEN IF (papriori(1 + k_0) < 0.0) XOR (add_temp_0(k_0) < 0.0) THEN div_temp_0(k_0) := C_divbyzero_n; ELSE div_temp_0(k_0) := C_divbyzero_p; END IF; ELSE div_temp_0(k_0) := papriori(1 + k_0) / add_temp_0(k_0); END IF;



K(1 + k_0) := div_temp_0(k_0); paposteriori(1 + k_0) := papriori(1 + k_0) * (1.0 - K(1 + k_0)); xaposteriori1(1 + k_0) := xapriori(1 + k_0) + (K(1 + k_0) * residual(1 + k_0)); END LOOP;



xaposteriori


...

It would help if you mentioned which tool reported these errors.

I presume you know that this code is for simulation only, and cannot be synthesised, right? But I can't see anything wrong with it for simulation, other than it will only run once, probably before any other signals had valid values.

-- Brian

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required