Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Я бы сделал вот так:

Отправлено vitalyn 20 августа 2009, г. 19:27
В ответ на: Люди, помогите разобраться с VHDL... отправлено пользователем GW 20 августа 2009, г. 18:38

В скобочках 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;


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 13:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru