Jump to content
    

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

 

 

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

 

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

описал конечный автомат 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 переходов, но что-то у меня нет понимания как это сотворить достоверно...

 

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

Share this post


Link to post
Share on other sites

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

 

 

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

iosifk

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

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

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

 

 

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

 

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

 

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

 

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Удачи!

 

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

default: begin end;

?

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...