|
|
  |
Защелки в FSM |
|
|
|
May 20 2010, 06:54
|

Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 3-09-04
Пользователь №: 586

|
Цитата(Fynjisx @ May 20 2010, 11:17)  Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM? если вы имеете ввиду latch, то использование их считается плохим стилем в принципе, а не только в FSM
|
|
|
|
|
May 20 2010, 07:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
"Так как информация на выходе остаётся неизменной до прихода очередного импульса синхронизации, D-триггер называют также триггером с запоминанием информации или триггером-защёлкой."//из википедии Так что пусть автор лучше пояснит, что он подразумевает под защелкой. Если это триггер, который срабатывает при некотором условии, а при остальных непонятно что делает, то да - это latch, и большинство синтезаторов выдадут предупреждение и это не есть хорошо. Например в верилог для spartan3 под xilinx создавал ради интереса обычный синхронный D-триггер в вариантах: Код always @(posedge clk) if (ce) D<=in; else D<=D; Ну и без else. Так вот в первом варианте был обычный триггер, а во втором еще мультиплексор вешался, правда давно очень это было...
Сообщение отредактировал bogaev_roman - May 20 2010, 07:47
|
|
|
|
|
May 20 2010, 09:18
|
студент
   
Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712

|
Цитата(Methane @ May 20 2010, 06:05)  Что такое защелки и что такое FSM? Защелки и FSM(FiniteStateMachine) - это стандартные понятия и думаю их спутать с чем то другим нельзя... Наверно не зря Вы профессионал... Цитата(DmitryR @ May 20 2010, 09:11)  Включив телепатические способности на полную мощность предположу, что под защелкой имеется в виду latch. И тогда верно, использовать их в FSM нехорошо даже в ASIC, не говоря уже о FPGA (где их вообще нет смысла использовать). защелка это и есть latch, даже без включения телепатии... Думаю Вы ответили на мой вопрос. Цитата(glock17 @ May 20 2010, 09:54)  если вы имеете ввиду latch, то использование их считается плохим стилем в принципе, а не только в FSM Т.е от них надо стремиться уходить, даже ценой привлечения дополнительных ресурсов ПЛИС? Если так, то спасибо за ответ...я понял Цитата(bogaev_roman @ May 20 2010, 10:44)  "Так как информация на выходе остаётся неизменной до прихода очередного импульса синхронизации, D-триггер называют также триггером с запоминанием информации или триггером-защёлкой."//из википедии Так что пусть автор лучше пояснит, что он подразумевает под защелкой. Ладно буду придерживаться вашей терминологии. Триггер-защелка.
--------------------
С Уважением...
|
|
|
|
|
May 20 2010, 10:11
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(Fynjisx @ May 20 2010, 13:18)  Ладно буду придерживаться вашей терминологии. Триггер-защелка. Лучше употребляйте термин "latch". Хотя, лично я, сразу понял Ваш вопрос - не знаю, чего на Вас все накинулись. И, как уже, советовали, не стоит использовать latch. Цитата(bogaev_roman @ May 20 2010, 11:44)  ... Если это триггер, который срабатывает при некотором условии, а при остальных непонятно что делает, то да - это latch ... Не совсем понятна фраза, не могли бы Вы привести пример кода?
--------------------
|
|
|
|
|
May 20 2010, 10:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Это я про триггер-защелку, а не про latch, просто выразился неправильно Код always @(posedge clk) if (Ce) D<=in; else D<=D; обычный триггер Код always @(posedge clk) if (Ce) D<=in; Триггер-защелка, имея ввиду, что непонятно действие при CE=0. Ну это человеку понятно что в этом случае ничего делать не надо кроме как сохранить результат, а старый ISE выдавал предупреждение о возможной защелке(иногда вешая доп.логику на вход), квартус никогда не ругался. Про latch обычный уже все сказали и до меня...
Сообщение отредактировал bogaev_roman - May 20 2010, 10:40
|
|
|
|
|
May 20 2010, 19:28
|
Знающий
   
Группа: Свой
Сообщений: 654
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737

|
Цитата(bogaev_roman @ May 20 2010, 14:39)  Триггер-защелка, имея ввиду, что непонятно действие при CE=0. Ну это человеку понятно что в этом случае ничего делать не надо кроме как сохранить результат, а старый ISE выдавал предупреждение о возможной защелке(иногда вешая доп.логику на вход), квартус никогда не ругался. Это что-то с ISE не то. Согласно стандарту, и человеку и машине должно быть понятно, что если нет ветки else, то надо хранить значение. Обычно, защелки, как раз и возникают из-за то, что забывают написать else. Цитата(Fynjisx @ May 20 2010, 14:48)  Хорошо хоть мой вопрос не затронул другие аспекты работы защелок(к примеру, что они ещё и прозрачными бывают ) ), а то бы меня здесь вообще съели  Понятно, что защелки прозрачные, иначе они перестают быть защелками. Вы лучше скажите как у вас в FSM защелки-то получились?
|
|
|
|
|
May 26 2010, 14:28
|

Участник

Группа: Участник
Сообщений: 29
Регистрация: 27-04-07
Из: Санкт-Петербург
Пользователь №: 27 351

|
Цитата(Fynjisx @ May 20 2010, 06:17)  Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM? На мой взгляд использование защелок никакой проблемы не составляет. У меня половина обычных триггеров, а половина защёлок. Живу и радуюсь - никаких проблем. А использовать ветку else только для того чтобы написать что триггер должен сохранить свое значение - это только засорять код. От ошибок это не защищает.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|