Здравствуйте!
Мне нужна помощь в написании программы для управления светофорным контроллером, при помощи датчиков движения.
В общем я уже попытался написать нечто похожее, но плохое знание языка приводит к большому количеству ошибок в коде.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity det is
port (
vhodA : in std_logic;
vhodB : in std_logic;
VhodC : in std_logic;
VhodD : in std_logic; -- 4 сигнала с датчиков
Error : in std_logic; -- и сигнал ошибки датчиков
svetA, svetB, svetC, svetD : in std_logic; -- сигналы обратной связи светофоров
ErrOut : out std_logic; -- выходной сигнал аварийного отключения
A, B, C, D : out std_logic -- 4 сигнала управления контроллером всетофоров
);
end det;
architecture beh of det is
begin
process
begin
if (vhodA = '1') and (svetA = '0') then -- проверка на наличие сигнала с датчика и запрещающего сигнала светофора
A <= '1'; -- включение соответствующего вывода
wait on svetA'event until (svetA = '1'); -- ожидание изменения сигнала
A <= '0'; -- сброс сигнала
elsif (vhodB = '1') and (svetB = '0') then -- далее последовательный опрос других датчиков
B <= '1';
wait on svetB until (svetB = '1');
B <= '0';
elsif (vhodC = '1') and (svetC = '0') then
C <= '1';
wait on svetC until (svetC = '1');
C <= '0';
elsif (vhodD = '1') and (svetD = '0') then
D <= '1';
wait on svetC until (svetC = '1');
D <= '0';
end if;
end process;
end beh;
В данном варианте выходит ошибка "statement WAIT not allowed in a process with a sensitivity list" тогда как задать задержку на исполнение процедуры?
Заранее благодарю за любую помощь!