реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Защелки в FSM
Fynjisx
сообщение May 20 2010, 02:17
Сообщение #1


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



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


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
Methane
сообщение May 20 2010, 03:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 615
Регистрация: 12-01-09
Из: США, Главное разведовательное управление
Пользователь №: 43 230



Цитата(Fynjisx @ May 20 2010, 05:17) *
Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?

Что такое защелки и что такое FSM? Вообще деад-локи плохой стиль. Система должна предсказуемо выходить из любого состояния.
Go to the top of the page
 
+Quote Post
DmitryR
сообщение May 20 2010, 06:11
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Включив телепатические способности на полную мощность предположу, что под защелкой имеется в виду latch. И тогда верно, использовать их в FSM нехорошо даже в ASIC, не говоря уже о FPGA (где их вообще нет смысла использовать).
Go to the top of the page
 
+Quote Post
glock17
сообщение May 20 2010, 06:54
Сообщение #4


Частый гость
**

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



Цитата(Fynjisx @ May 20 2010, 11:17) *
Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?


если вы имеете ввиду latch, то использование их считается плохим стилем в принципе, а не только в FSM
Go to the top of the page
 
+Quote Post
AsJohnAs
сообщение May 20 2010, 07:09
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 125
Регистрация: 14-07-05
Из: Санкт-Петербург
Пользователь №: 6 793



Ну если сама стейт-машина находиться в процессе т.е. она меняет свои состояния синхронно с тактовым сигналом, тогда под защелками будут пониматься уже триггеры. Тогда данная ситуация будет трактоваться синтезатором как просто триггер с некоторым CE который пришел с комбинаторной логики.
И если картина примерно такая то применение синхронных защелок в FSM корректно. Но тут ключевое слово СИНХРОННЫЙ.
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение May 20 2010, 07:44
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение May 20 2010, 09:18
Сообщение #7


студент
****

Группа: Свой
Сообщений: 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-триггер называют также триггером с запоминанием информации или триггером-защёлкой."//из википедии
Так что пусть автор лучше пояснит, что он подразумевает под защелкой.

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


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение May 20 2010, 09:41
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(Fynjisx @ May 20 2010, 13:18) *
Т.е от них надо стремиться уходить, даже ценой привлечения дополнительных ресурсов ПЛИС?

Надо не стремиться, а уходить. Чтобы не было ни одной. Изменение количества используемых логических ресурсов при этом вряд ли будет заметным.
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение May 20 2010, 09:58
Сообщение #9


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



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


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
des333
сообщение May 20 2010, 10:11
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(Fynjisx @ May 20 2010, 13:18) *
Ладно буду придерживаться вашей терминологии. Триггер-защелка.

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

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

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




Цитата(bogaev_roman @ May 20 2010, 11:44) *
...
Если это триггер, который срабатывает при некотором условии, а при остальных непонятно что делает, то да - это latch
...

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


--------------------
Go to the top of the page
 
+Quote Post
bogaev_roman
сообщение May 20 2010, 10:39
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение May 20 2010, 10:48
Сообщение #12


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(des333 @ May 20 2010, 13:11) *
Лучше употребляйте термин "latch".  smile.gif

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

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


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
dvladim
сообщение May 20 2010, 19:28
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 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) *
Хорошо хоть мой вопрос не затронул другие аспекты работы защелок(к примеру, что они ещё и прозрачными бывают ) ), а то бы меня здесь вообще съели biggrin.gif

Понятно, что защелки прозрачные, иначе они перестают быть защелками.
Вы лучше скажите как у вас в FSM защелки-то получились?
Go to the top of the page
 
+Quote Post
icyrock
сообщение May 26 2010, 14:28
Сообщение #14


Участник
*

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



Цитата(Fynjisx @ May 20 2010, 06:17) *
Привет Всем! Является ли использование защелок плохим стилем проектирования в FSM?


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

А использовать ветку else только для того чтобы написать что триггер должен сохранить свое значение - это только засорять код. От ошибок это не защищает.
Go to the top of the page
 
+Quote Post
des333
сообщение May 26 2010, 14:35
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079



Цитата(icyrock @ May 26 2010, 18:28) *
На мой взгляд использование защелок никакой проблемы не составляет. У меня половина обычных триггеров, а половина защёлок. Живу и радуюсь - никаких проблем.


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


--------------------
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 09:20
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016