R
robbevt
Hi
I need to make a kind of controller for a school project but i keep gettingstuck on the same error. which is:
"ERROR:Xst:827 - "D:/School/VHDL/ServoController/ControllerBeta.vhd" line 132: Signal nextstate cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release."
I had the exact same error before, but then with a different signal above this line, and when i fixed that (i did not alter the code below line 132) this one popped up. Here is the code beginning from line 132:
NEXT_STATE_DECODE: process (state, doneData, donePuls, SET, CLK)
begin
nextstate <= state;
case (state) is
when idle => if rising_edge(SET) then nextstate <= leesAdres; end if;
when leesAdres => if (ADDRDATA = Address) then nextstate <= leesData;
else nextstate <= idle; end if;
when leesData => if doneData = '1' then nextstate <= geefPuls; end if;
when geefPuls => if donePuls = '1' then nextstate <= idle; end if;
when others => nextstate <= idle;
end case;
end process;
end Behavioral;
I don't quite understand where i could have gone wrong in such a small and relatively simple block of code, i'm using the language templates and they do it in the same way. The previous error got solved by changing a case statement to an if statement, but that shouldn't be necessary right?
Any help would be very appreciated.
If you need me to post the rest of the code just ask, i didn't include it now to reduce the clutter of my post.
I need to make a kind of controller for a school project but i keep gettingstuck on the same error. which is:
"ERROR:Xst:827 - "D:/School/VHDL/ServoController/ControllerBeta.vhd" line 132: Signal nextstate cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release."
I had the exact same error before, but then with a different signal above this line, and when i fixed that (i did not alter the code below line 132) this one popped up. Here is the code beginning from line 132:
NEXT_STATE_DECODE: process (state, doneData, donePuls, SET, CLK)
begin
nextstate <= state;
case (state) is
when idle => if rising_edge(SET) then nextstate <= leesAdres; end if;
when leesAdres => if (ADDRDATA = Address) then nextstate <= leesData;
else nextstate <= idle; end if;
when leesData => if doneData = '1' then nextstate <= geefPuls; end if;
when geefPuls => if donePuls = '1' then nextstate <= idle; end if;
when others => nextstate <= idle;
end case;
end process;
end Behavioral;
I don't quite understand where i could have gone wrong in such a small and relatively simple block of code, i'm using the language templates and they do it in the same way. The previous error got solved by changing a case statement to an if statement, but that shouldn't be necessary right?
Any help would be very appreciated.
If you need me to post the rest of the code just ask, i didn't include it now to reduce the clutter of my post.