[an error occurred while processing this directive]
Ответ
(«Телесистемы»: Конференция «Языки описания аппаратуры (VHDL и др.))

миниатюрный аудио-видеорекордер mAVR

Отправлено zlyh 14 января 2004 г. 12:39
В ответ на: А как иначе?? отправлено veselchakU 14 января 2004 г. 08:24


1) В Синпlify-е(синтезёр такой) есть FSM компилёр и FSM explorer. Они в log файле пишут сколько состояний синтезёр выцепил из FSM-а. Для сверки полезно его читать.
Может (должно быть) ещё что есть аналогичное, я не знаю.
2) И задержки скорее всего тоже сказываются. В свете борьбы с ними переписать автомат как Moore - чтоб выхода не зависели от входных сигналов, а зависели только от состояний.

Попробую на пальцах:
В исходном коде разграничить (для себя): Next state logic, Current state logic, Otput logic.
Next state logic зависит от текущего состояния и входов.
Current state logic просто регистр со сбросом.
Блок Current state logic (или скорее всего в комбинации с Next state logic) всегда sequential, т.е. стоит под:
process(Reset, Clk)
if (reset ...
...
elsif rising_edge(Clk) then
...

Под rising_edge(Clk) чёндь вроде:
case (CurrentState) is
when ResetState_st => CurrentState <= State1_st; --безусловный переход в другое состояние
when State1_st => if (donefrqdtctr = '1') then --условный переход в другое состояние
CurrentState <= State2_st;
end if;
when...
...
end case;
Здесь Next и Current state logic-и совмещены.
Декларации к нему:
type StatesType is (ResetState_st, State1_st, State2_st, ...);
signal CurrentState : StatesType;
В твоём случае перечислимого типа нет. Он и не нужен. Но может для отладки он бы помог?

Блок Otput logic - комбинационный. А оформлять его в виде Sequential "case" или Concurrent "output <= "1" when " или ещё как зависит от красоты.

Код получится длинным, но понятным.

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru