|
Защелки в FSM |
|
|
|
 |
Ответов
|
May 26 2010, 14:28
|

Участник

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

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

Участник

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

|
Цитата(des333 @ May 26 2010, 18:35)  Главный вопрос: а зачем? Алгоритмы у меня такие : нужно
|
|
|
|
|
May 27 2010, 15:38
|

Участник

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

|
Цитата(bogaev_roman @ May 27 2010, 19:07)  А Вы уверены, что в Вашем алгоритме без защелок не обойтись? Все-таки защелки - хитрая вещь и ИМХО лучше без них. Да и по себе могу сказать - читая чужой код и встречая защелки (особенно в case любят опускать состояния) ну очень настораживает - как бы в неопределенность не погрузиться, особенно если обратная связь. Вижу в использовании защёлки (когда это требуется) следующие факторы увеличивающие наглядность кода 1. Нет лишней засоряющей пространство ветви else 2. Чем реже меняет значение триггер тем меньше "ряби" и посторонних (промежуточных) значений на симуляции 3. Текст always @(posedge clk) if (ce) dout<=din; Прямо говорит что меняется значение dout тогда когда ce в единице 4. В принципе можно напрячься и избавиться от защёлок. Но это может привести к тому, что код хоть и будет работать правильно но идею алгоритма придётся расшифровывать внимательно вглядываясь в превращение входных данных в выходные.
|
|
|
|
|
May 28 2010, 06:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 088
Регистрация: 20-10-09
Из: Химки
Пользователь №: 53 082

|
Цитата(ViKo @ May 28 2010, 00:19)  Это - не триггер-защелка. Защелка (Latch) - это триггер, который передает входной сигнал, когда L = 1 (прозрачный), и не передает входной сигнал, когда L = 0. В момент перехода L из 1 в 0 триггер "защелкивает" сигнал, а до этого момента сигнал на выходе мог меняться вместе с входным.
P.S. А для case есть слово default. Все-таки откопал из старого форума-конференции - вот собственно тема http://www.telesys.ru/wwwboards/fpga/270/m...ges/21837.shtmlА вот подробное описание отличий - http://www.telesys.ru/wwwboards/fpga/270/m...ges/22311.shtmlТак что то о чем говорил des333 - это latch, то о чем писал я -flip-flop and latch в общем случае, и речь шла немного о разных вещах. Некоторым лень сознательно ставить default так же как и else - типа читается лучше да и строчек меньше, а потом начинается в крупных проектах "выковыривание" ошибки. Интересно, а вот сходу скажет кто-нибудь - стандарт рекомендует по стилю вставлять else и default? По-моему рекомендует, хотя и не обязывает...
Сообщение отредактировал bogaev_roman - May 28 2010, 06:24
|
|
|
|
|
May 28 2010, 10:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 129
Регистрация: 19-07-08
Из: Санкт-Петербург
Пользователь №: 39 079

|
Цитата(bogaev_roman @ May 28 2010, 10:21)  Так что то о чем говорил des333 - это latch, то о чем писал я -flip-flop and latch в общем случае, и речь шла немного о разных вещах. Ну, я думал, по контексту темы все поняли, что имеется в виду та защелка, которая latch. Цитата(ViKo @ May 28 2010, 13:24)  Это не оплошность, а осознанное решение. Ничего плохого в нем нет. Именно - триггер-защелка, применяется часто. Пример - 74HC373 - Octal 3-State Noninverting Transparent Latch. Бывают защелки "полезные", а бывают "непредусмотренные"  Altera рекомендует не использовать latch вообще.
--------------------
|
|
|
|
|
May 28 2010, 11:54
|
Гуру
     
Группа: Свой
Сообщений: 2 435
Регистрация: 6-10-04
Из: Петербург
Пользователь №: 804

|
Цитата(ViKo @ May 28 2010, 14:26)  Нет, конечно. Поэтому такие же рекомендации будет давать каждый производитель ПЛИС  Когда сигнал изменяется по тактам, можно получить большее быстродействие, чем когда он меняется, когда захочет. Это (нерекомендация latch) вытекает из неприятия "асинхронщины". Потому что выходы latch изначально в неопределенном состоянии. Пока en в 1 единицу не перевести. За это время много чего пожечь можно.
|
|
|
|
Сообщений в этой теме
Fynjisx Защелки в FSM May 20 2010, 02:17 Methane Цитата(Fynjisx @ May 20 2010, 05:17) Прив... May 20 2010, 03:05 DmitryR Включив телепатические способности на полную мощно... May 20 2010, 06:11 Fynjisx Цитата(Methane @ May 20 2010, 06:05) Что ... May 20 2010, 09:18  DmitryR Цитата(Fynjisx @ May 20 2010, 13:18) Т.е ... May 20 2010, 09:41  Fynjisx Триггер со статическим управлением это называется ... May 20 2010, 09:58  des333 Цитата(Fynjisx @ May 20 2010, 13:18) Ладн... May 20 2010, 10:11   Fynjisx Цитата(des333 @ May 20 2010, 13:11) Лучше... May 20 2010, 10:48 glock17 Цитата(Fynjisx @ May 20 2010, 11:17) Прив... May 20 2010, 06:54 AsJohnAs Ну если сама стейт-машина находиться в процессе т.... May 20 2010, 07:09 bogaev_roman "Так как информация на выходе остаётся неизме... May 20 2010, 07:44 bogaev_roman Это я про триггер-защелку, а не про latch, просто ... May 20 2010, 10:39 dvladim Цитата(bogaev_roman @ May 20 2010, 14:39)... May 20 2010, 19:28     Builder Цитата(icyrock @ May 27 2010, 18:38) 3. Т... May 27 2010, 15:58     des333 Цитата(icyrock @ May 27 2010, 19:38) 3. Т... May 27 2010, 16:07         Maverick Цитата(des333 @ May 28 2010, 13:03) Alter... May 28 2010, 11:58          sazh Цитата(Maverick @ May 28 2010, 14:58) PS ... May 28 2010, 12:23   des333 Цитата(icyrock @ May 27 2010, 19:02) Алго... May 27 2010, 15:25 Builder Цитата(icyrock @ May 26 2010, 17:28) На м... May 26 2010, 14:38  ViKo Цитата(Builder @ May 26 2010, 17:38) а ра... May 27 2010, 14:05   des333 Цитата(ViKo @ May 27 2010, 18:05) Вот при... May 27 2010, 14:26    ViKo Цитата(des333 @ May 27 2010, 17:26) Это н... May 27 2010, 14:30 ViKo Во всяком случае, Quartus предлагает следующий шаб... May 28 2010, 09:24 ViKo Пока быстродействие ПЛИС позволяет делать схему та... May 28 2010, 12:39 fars Коде конвншн для РТЛ, запрещяет использовать защел... May 28 2010, 13:30 dvladim Цитата(bogaev_roman @ May 28 2010, 10:21)... May 28 2010, 18:37 ViKo Цитата(dvladim @ May 28 2010, 21:37) Если... May 28 2010, 21:17  des00 Цитата(ViKo @ May 28 2010, 16:17) Я сомне... May 29 2010, 05:02   ViKo Цитата(des00 @ May 29 2010, 08:02) ну и з... May 31 2010, 08:00    des00 Цитата(ViKo @ May 31 2010, 02:00) В ссылк... May 31 2010, 09:15 murmel1 Цитата(des00 @ May 29 2010, 09:02) есть п... May 29 2010, 17:20 des333 Цитата(murmel1 @ May 29 2010, 21:20) ИМХО... May 29 2010, 17:26 des00 Цитата(murmel1 @ May 29 2010, 11:20) Ссыл... May 29 2010, 18:30  des333 Цитата(des00 @ May 29 2010, 22:30) гугл в... May 29 2010, 19:15 dvladim Цитата(des333 @ May 29 2010, 23:15) Перех... May 29 2010, 20:41 ViKo Вы серьезно рассматриваете данную статью как приме... May 31 2010, 11:26 des00 Цитата(ViKo @ May 31 2010, 06:26) Вы серь... May 31 2010, 11:37  ViKo Цитата(des00 @ May 31 2010, 14:37) Нормал... May 31 2010, 12:06 ViKo Хочу еще добавить пару слов.
Кто мешал упомянутым ... Jun 1 2010, 08:42 Builder Цитата(ViKo @ Jun 1 2010, 11:42) Хочу еще... Jun 1 2010, 16:29  ViKo Цитата(Builder @ Jun 1 2010, 19:29) Где е... Jun 2 2010, 08:56 dvladim Цитата(ViKo @ Jun 2 2010, 12:56) Мне каже... Jun 2 2010, 18:28 ViKo Цитата(dvladim @ Jun 2 2010, 21:28) Вот к... Jun 3 2010, 11:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|