Я исправил ваш код, чтобы больше не было синтаксических ошибок.
Единственное, что вам нужно проверить, это код в строке 68. Я не понял, что вы хотели там сделать.
Я прокомментировал ваши синтаксические ошибки, чтобы вы могли видеть причину ошибок.
Надеюсь, это вам немного помогло.
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.numeric_std.all;
entity bottlefill is
port ( clk, reset: IN STD_LOGIC;
b, p: in std_logic;
m, v: out std_logic -- First mistake here
);
end bottlefill;
ARCHITECTURE behavioral of bottlefill is
type state is (stopped, posi, fill);
signal current1, next1: state;
signal c: integer range 0 to 15;
signal full: std_logic;
begin
process(clk, reset)
begin
if reset = '1' then
current1 <= stopped;
elsif clk'event and clk = '1' then -- Mistake with clk = 1 => clk = '1'
current1 <= next1;
end if;
end process;
process(current1, b, p) -- Stop is not declared here
begin
next1 <= current1;
case current1 is
when stopped =>
if b = '1' then
next1 <= posi;
end if;
m <= '1'; -- = is not <= signal assignment !!
v <= '0'; -- = is not <= signal assignment !!
when posi =>
if p = '1' then
next1 <= fill;
end if;
m <= '0'; -- = is not <= signal assignment !!
v <= '1'; -- = is not <= signal assignment !!
when fill =>
if full = '1' then
next1 <= stopped;
end if;
m <= '0'; -- = is not <= signal assignment !!
v <= '0'; -- = is not <= signal assignment !!
end case;
end process;
process(clk, reset) -- komma here
begin
if reset = '1' then
c <= 0;
elsif clk'event and clk = '1' then
if current1 = fill then
c <= c + 1;
else
c <= 0;
end if; -- forgot ;
end if; -- forgot to close the upper is statement
end process;
-- i dont get what u want to do here. Take a look at " Select signal assigment" on google
-- I think you want to do that.
--full <= '1' when c >= 5
--else '0';
end behavioral; -- forgot to end your architecture