Перейти к содержанию

Fa3a-Ravil

Новичок
  • Публикаций

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. Здравствуйте! Мне нужна помощь в написании программы для управления светофорным контроллером, при помощи датчиков движения. В общем я уже попытался написать нечто похожее, но плохое знание языка приводит к большому количеству ошибок в коде. 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" тогда как задать задержку на исполнение процедуры? Заранее благодарю за любую помощь!