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

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

А вот попутно тоже вопрос что делать при верификации проекта например в Квесте. Допустим автомат с 4 состояними и все 4 состояния описаны и задействованы, то есть default ставить не на что, но при этом, при верификации таже квеста этого не понимает и пишет предупреждения что нет ветки default. Понятно что можно игнорировать, но как-то раздражает!

 

Что народ делает в таком случае?

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


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

Терминология хромает, поэтому и не можем понять друг друга. Правильно я аргументировал?

ну разве что не описали что такое "терминология", "аргументировал" и какие номера ГОСТ их определяют....

 

 

Архитектура - это построение проекта, модули, межмодульные связи, структуры входных и выходных данных, и т.д.

 

Интересный момент

описал конечный автомат c 9 состояниями и 4 битным State в ISE 14.2 тремя способами

 

case (State)
  0: ..
   ..
  8:...
  default: begin end
endcase

 

case (State)
  0: ..
   ..
  8:...
  default: begin State <= 0; end
endcase

 

case (State)
  0: ..
   ..
  8:...
endcase

 

так вот на все описания ISE написал в логе, что обнаружил конечный автомат с 9 состояниями, 17 переходами (я готовый автомат менял там правда столько переходов), столько-то входов, выходов, ресет, начальное состояние и так далее... Более того ISE перекодировал состояния в код грея, я так понимаю по переходам.

 

То есть не зависимо от наличия дефалт в этом описании число переходов и состояний не изменилось, более того даже добавление переходов из всех левых состояний в нулевое, также было проигнорировано. То есть для полностью определенных автоматов наличие дефалт как бы ничего не меняет. Возможно надо копать глубже и уже смотреть как там после синтеза это все имплементировалось в железе и как заполнены LUT переходов, но что-то у меня нет понимания как это сотворить достоверно...

 

Вот такая вот информация...

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


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

ну разве что не описали что такое "терминология", "аргументировал" и какие номера ГОСТ их определяют....

 

 

Архитектура - это построение проекта, модули, межмодульные связи, структуры входных и выходных данных, и т.д.

Флудану. Или флейману :)

 

1. См. толковый словарь Ожегова и Шведовой;

2. Определение архитектуры дано от балды. "и какие номера ГОСТ их определяют...."?

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


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

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

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


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

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

По улицам - как все, а по территории предприятия строго по ГОСТам. И не мешаю быт с работой.

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


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

То есть для полностью определенных автоматов наличие дефалт как бы ничего не меняет. Возможно надо копать глубже и уже смотреть как там после синтеза это все имплементировалось в железе и как заполнены LUT переходов, но что-то у меня нет понимания как это сотворить достоверно...

 

Вот такая вот информация...

А меня еще интересует: есть у меня автомат на 57 состояний. Синтезатор имплементирует его по "one-hot", т.е. кодирует 57 битным словом, в котором каждому состоянию соответствует только одна 1, остальные 0. С одной стороны как бы понятно как будет работать вся логика по выходам такого автомата. С другой стороны - а если на выходе автомата появятся две, три единицы? Есть ли гарантия того что так не произойдет?

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


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

iosifk

Вы как про могли бы дать более детальный ответ. С примерами и советами.

Напишите мне в личку или на почту, а еще лучше прямо в скаййп...

Какой "более детальный" Вас интересует?

 

 

А вот попутно тоже вопрос что делать при верификации проекта например в Квесте. Допустим автомат с 4 состояними и все 4 состояния описаны и задействованы, то

 

Что народ делает в таком случае?

 

В таком случае народ смотрит на реализацию регистра в автомате. Если она "one hot", то для 4-х состояний будут задействованы 4 триггера. А они могут дать 2^4 комбинаций, из которых у Вас описано только 4...

 

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


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

"one-hot"... а если на выходе автомата появятся две, три единицы? Есть ли гарантия того что так не произойдет?

Копаем глубже:

if(a>b) ...; else if(a<b) ...;

Есть ли гарантия того что "из-за сбоя" не выполнятся обе ветви (a>b) и (a<b)?

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


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

Сейчас риск очень мал. Максимальные потери - денежные, недавно делал системы от которых зависят жизни людей, сейчас могу расслабится. Более того даже денежные потери сейчас малы, очень мала вероятность что либо испортить, только репутацию. Место эксплуатации прибора тоже очень комфортное, фактически это офис-мастерская, чистенькая.

Я не это хотел Вам сказать.

Риск разработчика - это риск плохо сделать свою работу. Т.е. не в том смысле, что Ваш прибор не будет работать вообще, а в том, как эту разработку оценит "заказчик" и "хозяин"...

Если Вы считаете, что "и так сойдет", то и хорошо. Наверное для "дешевых настольных" - основа - это экономия времени и букв в Верилоге.

Меня же жизнь приучила к тому, что все и всегда надо делать "по полной форме". Ибо избыток ресурсов стоит копейки, а репутация - бесценна! А потому состояния по умолчанию я всегда пишу. Если есть ФИФО, то делаю регистр статуса и туда завожу ошибки, чтобы можно было контролировать программистов. Ну и так далее. Я никогда не делаю маскирование ошибок без их регистрации. Автоматы умею в железе отлаживать "по-шагам"... Тут писать можно долго, но суть я уже рассказал.

Удачи!

 

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


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

Копаем глубже:

Мне кажется это не совсем тот случай. if/else это все таки взаимоиключающее условие. Один провод с двумя возможными состояниями (а не с одним). Два провода - четыре состояния (а не два).

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


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

Копаем глубже:

if(a>b) ...; else if(a<b) ...;

Есть ли гарантия того что "из-за сбоя" не выполнятся обе ветви (a>b) и (a<b)?

 

Зуб даю, что они даже без сбоев могут не выполниться! :)

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


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

Зуб даю, что они даже без сбоев могут не выполниться! :)

Он имел ввиду что обе выполнятся

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


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

ага при а == б :)

 

Примерно так и возникает 90% нездоровых сенсаций: "А! Тут чудеса какие-то, это ячейка в FPGA сбоит и питание плохое"

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


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

Если Вы считаете, что "и так сойдет", то и хорошо. Наверное для "дешевых настольных" - основа - это экономия времени и букв в Верилоге.

 

Если бы я так считал, то не затевал бы тему.

В статусах у меня кстати есть состояние автомата, потому если он прыгнет в не правильное состояние, то лучше бы он там и остался, тогда это можно по статусу определить. А потом вызвав ресет конкретного модуля восстановить работу. Как написать чтобы автомат во всех левых состояниях ничего не делала?

дописать пустой дефалт, то есть

default: begin end;

?

а не равно ли это его отсуствию?

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


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

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

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

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

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

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

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

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

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

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