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

 
 
 
Reply to this topicStart new topic
> Actel проблема с цифровым автоматом, Цифровой автомат глохнет
plis
сообщение Oct 11 2017, 15:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



Доброго времени суток.
Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние.
Ни кто не сталкивался с похожими аномалиями?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Oct 11 2017, 18:34
Сообщение #2


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Цитата(plis @ Oct 11 2017, 18:52) *
Доброго времени суток.
Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние.
Ни кто не сталкивался с похожими аномалиями?

Сложно что-то сказать надо видеть хотя бы автомат и объяснения к нему подробнее по работе.
Что показывает симуляция и/или внутри схемный логический анализатор(signaltap как у altera)?


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 11 2017, 19:36
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(plis @ Oct 11 2017, 18:52) *
Доброго времени суток.
Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние.
Ни кто не сталкивался с похожими аномалиями?

Обычно 2 причины.
входной сигнал для автомата - асинхронный
в автомате нет состояния "по умолчанию"...

Если есть возможность, то сделайте в каждом состоянии автомата запись в регистр. и потом этот регистр пересылайте на хост... Или даже регистр автомата можно проверить на изменения за скажем 1 сек, и в случае отсутствия - пересылать на хост или хотя бы по SPI на какой-нибудь разъем. Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат..


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Bad0512
сообщение Oct 12 2017, 02:17
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 802
Регистрация: 11-05-07
Из: Томск
Пользователь №: 27 650



Цитата(iosifk @ Oct 12 2017, 02:36) *
Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат..

Я конечно дико извиняюсь... Но по моему лечить кривой автомат с помощью вотчдога - очень плохая идея. Нужно искать источник проблемы, а не маскировать ошибку. Тем более что как правило все ошибки банальны - управление автоматом сигналами из другого клокового домена или даже вообще асинхронными по сути.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 12 2017, 08:00
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Bad0512 @ Oct 12 2017, 05:17) *
Я конечно дико извиняюсь... Но по моему лечить кривой автомат с помощью вотчдога - очень плохая идея. Нужно искать источник проблемы, а не маскировать ошибку. Тем более что как правило все ошибки банальны - управление автоматом сигналами из другого клокового домена или даже вообще асинхронными по сути.

Я же написал, что вызывает "зависание". А все что написано дальше - это не "лечить", а только для отладки, чтобы понять в каком именно месте автомат перестает работать... Я же не знаю, сколько состояний у автомата. Может их 10 или 20... А взять таймер и вставить в проект - минута дело... Ну и потом смотреть что и как. А может вообще автомат клинит вообще не пойми где... Такое тоже может быть. А если сохранять "заклиненное" и предыдущее состояния, то хоть как-то можно отследить... А может быть там число одновременно переключаемых выходов больше нормы? Или сбои по питанию? Причин может быть много...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
plis
сообщение Oct 18 2017, 13:40
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



Цитата(iosifk @ Oct 11 2017, 22:36) *
Обычно 2 причины.
входной сигнал для автомата - асинхронный
в автомате нет состояния "по умолчанию"...

Если есть возможность, то сделайте в каждом состоянии автомата запись в регистр. и потом этот регистр пересылайте на хост... Или даже регистр автомата можно проверить на изменения за скажем 1 сек, и в случае отсутствия - пересылать на хост или хотя бы по SPI на какой-нибудь разъем. Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат..


Где и как зависает автомат я увидел, спасибо, это проблема с гонками, сейчас пытаюсь написать временные ограничения, но не могу найти русского описания как это сделать в libero soc, нашел для alter'ы, Либеро не все пропускает, говорит что некоторые команды составлены не правильно, при чем насколько я понял, они не нравится компилятору, а синтез нормально подходит, ни кто случайно не находил мануал как это сделать в Либеро, с пошаговой инструкцией для несведущих?
Go to the top of the page
 
+Quote Post
iosifk
сообщение Oct 18 2017, 13:45
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(plis @ Oct 18 2017, 16:40) *
Где и как зависает автомат я увидел, спасибо, это проблема с гонками,...

Не должно быть "гонок" при синхронном проектировании. Все должно делаться только по клокам...
Либо Вы перемудрили с комбинационной логикой и ее надо убрать...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
plis
сообщение Oct 18 2017, 14:08
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



Цитата(iosifk @ Oct 18 2017, 16:45) *
Не должно быть "гонок" при синхронном проектировании. Все должно делаться только по клокам...
Либо Вы перемудрили с комбинационной логикой и ее надо убрать...


Возможно, но сейчас меня больше интересует, как правильно написать временные ограничения для Либеро
Go to the top of the page
 
+Quote Post
yes
сообщение Oct 18 2017, 14:16
Сообщение #9


Гуру
******

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



Цитата(plis @ Oct 11 2017, 18:52) *
Ни кто не сталкивался с похожими аномалиями?


а какие констрейны? что говорит designer про тайминг после разводки?

просто актеловские проазики гораздо тормознутее альтер/ксайлинсов и логика у них имеет более длинные пути из-за конструкции - поэтому, возможно, что то, что проходило нахаляву с ПЛИС другого типа, на проазиках заставит понапрягаться

Цитата(plis @ Oct 18 2017, 17:08) *
Возможно, но сейчас меня больше интересует, как правильно написать временные ограничения для Либеро

Либеро это оболочка (никогда ее не пользовал), основной инструмент это designer - должен вызываться из libero - в нем есть кнопка с констрейнами - так проще всего использовать

рекомендую путь симплифай->дизайнер, зачем нужно либеро - вообще непонятно
Go to the top of the page
 
+Quote Post
plis
сообщение Oct 19 2017, 11:00
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



Цитата(yes @ Oct 18 2017, 17:16) *
рекомендую путь симплифай->дизайнер, зачем нужно либеро - вообще непонятно


Мне этот путь тоже нравится, но как разделить ограничения для симплифай и дизайнер, после симплифай имена цепей меняются, как с этим работать?
Go to the top of the page
 
+Quote Post
yes
сообщение Oct 19 2017, 14:41
Сообщение #11


Гуру
******

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



Цитата(plis @ Oct 19 2017, 14:00) *
Мне этот путь тоже нравится, но как разделить ограничения для симплифай и дизайнер, после симплифай имена цепей меняются, как с этим работать?

симплифай генерит ограничения для дизайнера из sdc, с учетом переименований
но если дизайн просто синхронный, то проще самому поддерживать два файла
Go to the top of the page
 
+Quote Post
plis
сообщение Oct 23 2017, 08:04
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 66
Регистрация: 29-09-06
Пользователь №: 20 821



Цитата(yes @ Oct 19 2017, 17:41) *
симплифай генерит ограничения для дизайнера из sdc, с учетом переименований
но если дизайн просто синхронный, то проще самому поддерживать два файла


Это я понял, но на практике в сгенерированный файл попала только частота, всех остальных ограничений нет, при этом не нашел ошибок и варнингов, что что-то не так, вот и хочу найти пример как с этим работать
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:47
Рейтинг@Mail.ru


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