реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> All-Cold FSM, как с этим бороться?
Delsian
сообщение Mar 22 2005, 17:01
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 79
Регистрация: 3-02-05
Из: Kiev
Пользователь №: 2 404



Иногда попадаются грабли, когда FSM, синтезированная в режиме one-hot, улетает в какое-то неизвестное состояние, и на этом работа заканчивается. Если закодировать в compact - теряем в скорости, зато избавляемся от этой проблемы.
"When Others => stIdle" ситуацию не спасает - все равно при синтезе его соптимизируют sad.gif
Как можно избавиться от неизвестного состояния в One-Hot?

Хе-хе... Можно, конечно, взять на работе несколько дней творческого отпуска и попытаться осилить вот это: http://alexandria.tue.nl/extra2/200413270.pdf
Но что-то мне не нравится эта идея. smile.gif


--------------------
Давайте выпьем за алкоголь - источник и решение всех наших проблем! (с) Г.Симпсон
Go to the top of the page
 
+Quote Post
alexf
сообщение Mar 23 2005, 01:53
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 420
Регистрация: 22-12-04
Пользователь №: 1 608



Цитата(Delsian @ Mar 22 2005, 10:01)
Иногда попадаются грабли, когда FSM, синтезированная в режиме one-hot, улетает в какое-то неизвестное состояние, и на этом работа заканчивается. Если закодировать в compact - теряем в скорости, зато избавляемся от этой проблемы.
"When Others => stIdle" ситуацию не спасает - все равно при синтезе его соптимизируют sad.gif
Как можно избавиться от неизвестного состояния в One-Hot?


Надо смотреть на конкретный код, но все это странно. Если кодирование one-hot, то состояние определается единственным битом. Пусть 4 состояния.
0001 - 1
0010 - 2 и т.д.

Допустим система как то попала в 0011. По левой единице FSM должен решить что состояние "1" (смотря как написано, естественно) и вести себя соответственно.
Go to the top of the page
 
+Quote Post
Serega Doc
сообщение Mar 23 2005, 07:06
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 267
Регистрация: 11-11-04
Из: Одесса
Пользователь №: 1 103



А может быть не правильно написан сам конечный автомат.
Возникают условия перехода сразу два состояния?
Go to the top of the page
 
+Quote Post
Vitus
сообщение Mar 23 2005, 09:34
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 42
Регистрация: 24-12-04
Пользователь №: 1 658



Цитата(Delsian @ Mar 22 2005, 20:01)
Иногда попадаются грабли, когда FSM, синтезированная в режиме one-hot, улетает в какое-то неизвестное состояние, и на этом работа заканчивается. Если закодировать в compact - теряем в скорости, зато избавляемся от этой проблемы.
"When Others => stIdle" ситуацию не спасает - все равно при синтезе его соптимизируют sad.gif
Как можно избавиться от неизвестного состояния в One-Hot?

Хе-хе... Можно, конечно, взять на работе несколько дней творческого отпуска и попытаться осилить вот это: http://alexandria.tue.nl/extra2/200413270.pdf
Но что-то мне не нравится эта идея. smile.gif
*

В такой ситуации можно дать только самые общие рекомендации. например сигнал сброса должен быть синхронным чтобы гарантировать одновременное "отпускание" всех триггеров автромата
Go to the top of the page
 
+Quote Post
alex_k
сообщение Mar 23 2005, 11:35
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 119
Регистрация: 4-03-05
Пользователь №: 3 067



Мы встречались с подобными эффектами, особенно при работе FSM на высоких частотах. У себя мы боролись с этим следующими методами:
1. Максимальное упрощение логики вычисления следующего состояния автомата и выделение этой логики в отдельные process;
2. Стробирование входных сигналов тактовой частотой работы FSM;
3. Задание constrain по периоду.

После использования вышенаписанного нам полегчало wink.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01408 секунд с 7
ELECTRONIX ©2004-2016