Перейти к содержанию
    

Конечный автомат, интерпритации средой

Т.е. даже если есть строчки для дефолта и выше описан синхронный переход в текущее состояние?

 

Да не важно есть они или нет. Автомат честно меняет состояние s1 на s21 (ну или откуда он в 21 приходит), только на эту смену у него очень мало времени, и не успевает получить состояние 21, а получает что-то среднее, а та часть что по колку состояние сохраняет, честно это что-то средние запоминает как конечный результат и полетели... на след такте все образует, но такт у вас будет левое состояние.

 

 

Более того если вы не поставите галочку создавать безопасный автомат, то ваше default состояние будет упразднено оптимизатором, во всяком случае в ISE об этом честно написано.

 

Сделай вы не классическое описание автомата в 2 частях из регистровой и комбинаторной. А лошпетское описание в одну часть, где у вас все переходы происходят и рассчитываются по клоку, проблем было бы на порядок меньше. Асинхронный сигнал портил бы вам жизнь только метастабильностью, вероятность которой сильно меньше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем все получилось!!! Поставил по 2 триггера по входу внешних сигналов (miso и miosio), по котрым есть некоторые переходы, и подравил немного автомат, чтобы учесть эти триггеры, и все заработало стабильно! Спасибо всем большое!

 

Более того если вы не поставите галочку создавать безопасный автомат, то ваше default состояние будет упразднено оптимизатором, во всяком случае в ISE об этом честно написано.

Как называется этот пункт с этой галочкой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как называется этот пункт с этой галочкой?

 

настройки синтезатора -> HDL Options -> safe_implementation

там же в хелпе про нее ссылка на доку где сказано что для оптимизации без этой галки все несуществующие состояния будут выкинуты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сделай вы не классическое описание автомата в 2 частях из регистровой и комбинаторной. А лошпетское описание в одну часть, где у вас все переходы происходят и рассчитываются по клоку, проблем было бы на порядок меньше. Асинхронный сигнал портил бы вам жизнь только метастабильностью, вероятность которой сильно меньше.

Когда-то делал эксперименты с автоматами. Хотел узнать разницу между асинхронно-синхронным и чисто синхронным автоматом. Описывал одни и те же автоматы двумя способами. Состояний на 10-15. После синтеза результаты были одинаковые. Это было хорошо видно в RTL вьюере. Выводы были такими, что в варианте с одним процессом мы описываем логику (ту, что на входах триггеров) и сами триггеры в одном процессе. В варианте с двумя - ту же логику описываем в асинхронном процессе, триггеры - в синхронном. И все. То есть разница только в способе представления/описания автомата. Сейчас работаю в 14-м ISE, у которого RTL вьюер паршивее, чем можно представить в страшном сне...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

После синтеза результаты были одинаковые. Это было хорошо видно в RTL вьювере

 

Другого и не должно было быть. Это вопрос отладки. Когда у вас запись разнесена на 2 описания, надо следить за 2 объектами. Когда у вас в одном месте, легче фиксировать состояние, куда пришли, и куда ушли. Может это субъективное...

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...