Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
В скобочках PROCESS перечисляются сигналы, по изменению которых он срабатывает. Изменение state делать в одном-единственном блоке PROCESS.
завести ещё одно состояние S4 - в него переходим, когда A упадёт в 0, и висим в нём до появления А=1.
process (clk)
begin
if clk'event and clk='1' then
case state is
when S4 => if A='1' then
state <= S1;
BC <= "00";
else
state <= S4; -- остаёмся
end if;
when S1 => state <= S2;
BC <= "01";
when S2 => state <= S3;
BC <= "10";
when S3 => if A='0' then
state <= S4;
else
state <= S3; -- остаёмся ждать пока А станет 0
end if;
when others => state <= S4; -- на всякий случай
end case;
end process;
Составить ответ | Вернуться на конференцию.
Ответы