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

Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?

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


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

Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?

Что такое защелки и что такое FSM? Вообще деад-локи плохой стиль. Система должна предсказуемо выходить из любого состояния.

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


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

Включив телепатические способности на полную мощность предположу, что под защелкой имеется в виду latch. И тогда верно, использовать их в FSM нехорошо даже в ASIC, не говоря уже о FPGA (где их вообще нет смысла использовать).

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


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

Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?

 

если вы имеете ввиду latch, то использование их считается плохим стилем в принципе, а не только в FSM

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


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

Ну если сама стейт-машина находиться в процессе т.е. она меняет свои состояния синхронно с тактовым сигналом, тогда под защелками будут пониматься уже триггеры. Тогда данная ситуация будет трактоваться синтезатором как просто триггер с некоторым CE который пришел с комбинаторной логики.

И если картина примерно такая то применение синхронных защелок в FSM корректно. Но тут ключевое слово СИНХРОННЫЙ.

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


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

"Так как информация на выходе остаётся неизменной до прихода очередного импульса синхронизации, D-триггер называют также триггером с запоминанием информации или триггером-защёлкой."//из википедии

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

Если это триггер, который срабатывает при некотором условии, а при остальных непонятно что делает, то да - это latch, и большинство синтезаторов выдадут предупреждение и это не есть хорошо. Например в верилог для spartan3 под xilinx создавал ради интереса обычный синхронный D-триггер в вариантах:

always @(posedge clk)
if (ce) D<=in;
else D<=D;

Ну и без else. Так вот в первом варианте был обычный триггер, а во втором еще мультиплексор вешался, правда давно очень это было...

Изменено пользователем bogaev_roman

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


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

Что такое защелки и что такое FSM?

Защелки и FSM(FiniteStateMachine) - это стандартные понятия и думаю их спутать с чем то другим нельзя... Наверно не зря Вы профессионал...

 

 

Включив телепатические способности на полную мощность предположу, что под защелкой имеется в виду latch. И тогда верно, использовать их в FSM нехорошо даже в ASIC, не говоря уже о FPGA (где их вообще нет смысла использовать).

защелка это и есть latch, даже без включения телепатии... Думаю Вы ответили на мой вопрос.

 

 

если вы имеете ввиду latch, то использование их считается плохим стилем в принципе, а не только в FSM

Т.е от них надо стремиться уходить, даже ценой привлечения дополнительных ресурсов ПЛИС? Если так, то спасибо за ответ...я понял

 

"Так как информация на выходе остаётся неизменной до прихода очередного импульса синхронизации, D-триггер называют также триггером с запоминанием информации или триггером-защёлкой."//из википедии

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

Ладно буду придерживаться вашей терминологии. Триггер-защелка.

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


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

Т.е от них надо стремиться уходить, даже ценой привлечения дополнительных ресурсов ПЛИС?

Надо не стремиться, а уходить. Чтобы не было ни одной. Изменение количества используемых логических ресурсов при этом вряд ли будет заметным.

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


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

Триггер со статическим управлением это называется в русскоязычной литературе)

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


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

Ладно буду придерживаться вашей терминологии. Триггер-защелка.

Лучше употребляйте термин "latch".  :)

 

Хотя, лично я, сразу понял Ваш вопрос - не знаю, чего на Вас все накинулись.

 

И, как уже, советовали, не стоит использовать latch.

 

 

 

 

...

Если это триггер, который срабатывает при некотором условии, а при остальных непонятно что делает, то да - это latch

...

Не совсем понятна фраза, не могли бы Вы привести пример кода?

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


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

Это я про триггер-защелку, а не про latch, просто выразился неправильно

always @(posedge clk)
if (Ce) D<=in;
else D<=D;

обычный триггер

always @(posedge clk)
if (Ce) D<=in;

Триггер-защелка, имея ввиду, что непонятно действие при CE=0. Ну это человеку понятно что в этом случае ничего делать не надо кроме как сохранить результат, а старый ISE выдавал предупреждение о возможной защелке(иногда вешая доп.логику на вход), квартус никогда не ругался.

Про latch обычный уже все сказали и до меня...

Изменено пользователем bogaev_roman

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


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

Лучше употребляйте термин "latch".  :)

 

Хотя, лично я, сразу понял Ваш вопрос - не знаю, чего на Вас все накинулись.

Хорошо хоть мой вопрос не затронул другие аспекты работы защелок(к примеру, что они ещё и прозрачными бывают ) ), а то бы меня здесь вообще съели :biggrin:

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


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

Триггер-защелка, имея ввиду, что непонятно действие при CE=0. Ну это человеку понятно что в этом случае ничего делать не надо кроме как сохранить результат, а старый ISE выдавал предупреждение о возможной защелке(иногда вешая доп.логику на вход), квартус никогда не ругался.

Это что-то с ISE не то. Согласно стандарту, и человеку и машине должно быть понятно, что если нет ветки else, то надо хранить значение. Обычно, защелки, как раз и возникают из-за то, что забывают написать else.

 

Хорошо хоть мой вопрос не затронул другие аспекты работы защелок(к примеру, что они ещё и прозрачными бывают ) ), а то бы меня здесь вообще съели :biggrin:

Понятно, что защелки прозрачные, иначе они перестают быть защелками.

Вы лучше скажите как у вас в FSM защелки-то получились?

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


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

Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?

 

На мой взгляд использование защелок никакой проблемы не составляет. У меня половина обычных триггеров, а половина защёлок. Живу и радуюсь - никаких проблем.

 

А использовать ветку else только для того чтобы написать что триггер должен сохранить свое значение - это только засорять код. От ошибок это не защищает.

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


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

На мой взгляд использование защелок никакой проблемы не составляет. У меня половина обычных триггеров, а половина защёлок. Живу и радуюсь - никаких проблем.

 

Главный вопрос: а зачем?

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


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

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

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

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

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

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

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

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

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

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