Golikov 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба Т.е. даже если есть строчки для дефолта и выше описан синхронный переход в текущее состояние? Да не важно есть они или нет. Автомат честно меняет состояние s1 на s21 (ну или откуда он в 21 приходит), только на эту смену у него очень мало времени, и не успевает получить состояние 21, а получает что-то среднее, а та часть что по колку состояние сохраняет, честно это что-то средние запоминает как конечный результат и полетели... на след такте все образует, но такт у вас будет левое состояние. Более того если вы не поставите галочку создавать безопасный автомат, то ваше default состояние будет упразднено оптимизатором, во всяком случае в ISE об этом честно написано. Сделай вы не классическое описание автомата в 2 частях из регистровой и комбинаторной. А лошпетское описание в одну часть, где у вас все переходы происходят и рассчитываются по клоку, проблем было бы на порядок меньше. Асинхронный сигнал портил бы вам жизнь только метастабильностью, вероятность которой сильно меньше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slkhome 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба В общем все получилось!!! Поставил по 2 триггера по входу внешних сигналов (miso и miosio), по котрым есть некоторые переходы, и подравил немного автомат, чтобы учесть эти триггеры, и все заработало стабильно! Спасибо всем большое! Более того если вы не поставите галочку создавать безопасный автомат, то ваше default состояние будет упразднено оптимизатором, во всяком случае в ISE об этом честно написано. Как называется этот пункт с этой галочкой? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба Как называется этот пункт с этой галочкой? настройки синтезатора -> HDL Options -> safe_implementation там же в хелпе про нее ссылка на доку где сказано что для оптимизации без этой галки все несуществующие состояния будут выкинуты. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
olegras 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба Сделай вы не классическое описание автомата в 2 частях из регистровой и комбинаторной. А лошпетское описание в одну часть, где у вас все переходы происходят и рассчитываются по клоку, проблем было бы на порядок меньше. Асинхронный сигнал портил бы вам жизнь только метастабильностью, вероятность которой сильно меньше. Когда-то делал эксперименты с автоматами. Хотел узнать разницу между асинхронно-синхронным и чисто синхронным автоматом. Описывал одни и те же автоматы двумя способами. Состояний на 10-15. После синтеза результаты были одинаковые. Это было хорошо видно в RTL вьюере. Выводы были такими, что в варианте с одним процессом мы описываем логику (ту, что на входах триггеров) и сами триггеры в одном процессе. В варианте с двумя - ту же логику описываем в асинхронном процессе, триггеры - в синхронном. И все. То есть разница только в способе представления/описания автомата. Сейчас работаю в 14-м ISE, у которого RTL вьюер паршивее, чем можно представить в страшном сне... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба Про применение Safe Implementation (SAFE_IMPLEMENTATION) и Safe Recovery State (SAFE_RECOVERY_STATE) можно почитать в UG627. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 2 июня, 2014 Опубликовано 2 июня, 2014 · Жалоба После синтеза результаты были одинаковые. Это было хорошо видно в RTL вьювере Другого и не должно было быть. Это вопрос отладки. Когда у вас запись разнесена на 2 описания, надо следить за 2 объектами. Когда у вас в одном месте, легче фиксировать состояние, куда пришли, и куда ушли. Может это субъективное... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться