plis 0 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Доброго времени суток. Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние. Ни кто не сталкивался с похожими аномалиями? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Доброго времени суток. Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние. Ни кто не сталкивался с похожими аномалиями? Сложно что-то сказать надо видеть хотя бы автомат и объяснения к нему подробнее по работе. Что показывает симуляция и/или внутри схемный логический анализатор(signaltap как у altera)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 11 октября, 2017 Опубликовано 11 октября, 2017 · Жалоба Доброго времени суток. Возникла необходимость переехать с одной ПЛИС на другую, a3p600, опыта работы с libero soc нет, собрал проект, прописал ножки, запускаю, вижу что цифровой автомат перестает работать, по контрольным точкам вижу, что обработка данных остановилась, причем каждый раз, на разном байте данных, пришел к выводу что цифровой автомат уходит в неизвестное состояние. Ни кто не сталкивался с похожими аномалиями? Обычно 2 причины. входной сигнал для автомата - асинхронный в автомате нет состояния "по умолчанию"... Если есть возможность, то сделайте в каждом состоянии автомата запись в регистр. и потом этот регистр пересылайте на хост... Или даже регистр автомата можно проверить на изменения за скажем 1 сек, и в случае отсутствия - пересылать на хост или хотя бы по SPI на какой-нибудь разъем. Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Bad0512 2 12 октября, 2017 Опубликовано 12 октября, 2017 · Жалоба Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат.. Я конечно дико извиняюсь... Но по моему лечить кривой автомат с помощью вотчдога - очень плохая идея. Нужно искать источник проблемы, а не маскировать ошибку. Тем более что как правило все ошибки банальны - управление автоматом сигналами из другого клокового домена или даже вообще асинхронными по сути. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 12 октября, 2017 Опубликовано 12 октября, 2017 · Жалоба Я конечно дико извиняюсь... Но по моему лечить кривой автомат с помощью вотчдога - очень плохая идея. Нужно искать источник проблемы, а не маскировать ошибку. Тем более что как правило все ошибки банальны - управление автоматом сигналами из другого клокового домена или даже вообще асинхронными по сути. Я же написал, что вызывает "зависание". А все что написано дальше - это не "лечить", а только для отладки, чтобы понять в каком именно месте автомат перестает работать... Я же не знаю, сколько состояний у автомата. Может их 10 или 20... А взять таймер и вставить в проект - минута дело... Ну и потом смотреть что и как. А может вообще автомат клинит вообще не пойми где... Такое тоже может быть. А если сохранять "заклиненное" и предыдущее состояния, то хоть как-то можно отследить... А может быть там число одновременно переключаемых выходов больше нормы? Или сбои по питанию? Причин может быть много... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 18 октября, 2017 Опубликовано 18 октября, 2017 · Жалоба Обычно 2 причины. входной сигнал для автомата - асинхронный в автомате нет состояния "по умолчанию"... Если есть возможность, то сделайте в каждом состоянии автомата запись в регистр. и потом этот регистр пересылайте на хост... Или даже регистр автомата можно проверить на изменения за скажем 1 сек, и в случае отсутствия - пересылать на хост или хотя бы по SPI на какой-нибудь разъем. Ну или сделать "сторожевой таймер для автомата". Тогда увидите, в каком состоянии завис автомат.. Где и как зависает автомат я увидел, спасибо, это проблема с гонками, сейчас пытаюсь написать временные ограничения, но не могу найти русского описания как это сделать в libero soc, нашел для alter'ы, Либеро не все пропускает, говорит что некоторые команды составлены не правильно, при чем насколько я понял, они не нравится компилятору, а синтез нормально подходит, ни кто случайно не находил мануал как это сделать в Либеро, с пошаговой инструкцией для несведущих? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 18 октября, 2017 Опубликовано 18 октября, 2017 · Жалоба Где и как зависает автомат я увидел, спасибо, это проблема с гонками,... Не должно быть "гонок" при синхронном проектировании. Все должно делаться только по клокам... Либо Вы перемудрили с комбинационной логикой и ее надо убрать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 18 октября, 2017 Опубликовано 18 октября, 2017 · Жалоба Не должно быть "гонок" при синхронном проектировании. Все должно делаться только по клокам... Либо Вы перемудрили с комбинационной логикой и ее надо убрать... Возможно, но сейчас меня больше интересует, как правильно написать временные ограничения для Либеро Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 18 октября, 2017 Опубликовано 18 октября, 2017 · Жалоба Ни кто не сталкивался с похожими аномалиями? а какие констрейны? что говорит designer про тайминг после разводки? просто актеловские проазики гораздо тормознутее альтер/ксайлинсов и логика у них имеет более длинные пути из-за конструкции - поэтому, возможно, что то, что проходило нахаляву с ПЛИС другого типа, на проазиках заставит понапрягаться Возможно, но сейчас меня больше интересует, как правильно написать временные ограничения для Либеро Либеро это оболочка (никогда ее не пользовал), основной инструмент это designer - должен вызываться из libero - в нем есть кнопка с констрейнами - так проще всего использовать рекомендую путь симплифай->дизайнер, зачем нужно либеро - вообще непонятно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 19 октября, 2017 Опубликовано 19 октября, 2017 · Жалоба рекомендую путь симплифай->дизайнер, зачем нужно либеро - вообще непонятно Мне этот путь тоже нравится, но как разделить ограничения для симплифай и дизайнер, после симплифай имена цепей меняются, как с этим работать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 7 19 октября, 2017 Опубликовано 19 октября, 2017 · Жалоба Мне этот путь тоже нравится, но как разделить ограничения для симплифай и дизайнер, после симплифай имена цепей меняются, как с этим работать? симплифай генерит ограничения для дизайнера из sdc, с учетом переименований но если дизайн просто синхронный, то проще самому поддерживать два файла Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
plis 0 23 октября, 2017 Опубликовано 23 октября, 2017 · Жалоба симплифай генерит ограничения для дизайнера из sdc, с учетом переименований но если дизайн просто синхронный, то проще самому поддерживать два файла Это я понял, но на практике в сгенерированный файл попала только частота, всех остальных ограничений нет, при этом не нашел ошибок и варнингов, что что-то не так, вот и хочу найти пример как с этим работать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться