Lutovid 0 9 июня, 2016 Опубликовано 9 июня, 2016 (изменено) · Жалоба Всем доброго времени суток! Всю свою практику реализовывал стэйт-машины односегментно - знаю, что это не правильно, но дело привычки... теоретически я понимаю, что возникают паразитные регистры - почитал на разных источниках, вроде бы уловил к чему приводит все. Сейчас решил переучиваться - создал 2 проекта - один - односегментный, другой мультисегментный - он получился объемнее(в плане кода), так как в автомате участвует счетчик и сдвиговые регистры, что привело к необходимости создавать ряд дополнительных сегментов, собрал оба проекта и в результате при всех прочих равных, в мультисегментном варианте появились глобальные клоковые буфера< которые не вполне очевидно к чему там вообще(хотя может это создал чип-скоуп, я это буду проверять и допытываться). Собственно вопрос - в чем конкретный профит использования мультисегментных конечных автоматов? Ну добавятся регистры - это только тайминг улучшит(или нет...) - есть какой-то реальный прок от того, каким образом реализован конечный автомат(парой регистров я готов пожертвовать ибо односегментный вариант намного компактнее в плане кода)? Буду благодарен за содержательные ответы или ссылки на хорошие источники P.S. если интересно< то я добавлю оба варианта на ваш суд, если камнями не закидаете, но как смогу - сейчас возможности нет Заранее спасибо! Изменено 9 июня, 2016 пользователем Lutovid Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Это просто разные способы описания одного и того же, и если написано без ошибок, то синтезироваться должно одинаково. Разница только в том, что мультисегментное описание более понятно и поддерживаемо, и менее подвержено ошибкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Нигде не встречал такой терминологии, можно ли какуюто литературу по теме, или примеры свои привести? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
spectr 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Что за мультисегментное описание? Это когда логика перехода между состояниями вынесена в отдельный always от, собственно, мяса? И, имхо, как описывать - дело вкуса. Главное, чтобы описано было корректно и понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба так как в автомате участвует счетчик и сдвиговые регистры, что привело к необходимости создавать ряд дополнительных сегментов, Т.е. Вы в описание автомата замешиваете еще что-то? Я считаю, что это не правильно, т.к. код получается сложнее. Автомат может давать только сигналы разрешения, которые поступают на "исполнительные узлы", т.е. на "счетчик и сдвиговые регистры"... Так гораздо проще и код компактнее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sergey_Bekrenyov 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Неплохая статья как раз про это CummingsSNUG2003SJ_SystemVerilogFSM.pdf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Что за мультисегментное описание? Это когда логика перехода между состояниями вынесена в отдельный always от, собственно, мяса? И, имхо, как описывать - дело вкуса. Главное, чтобы описано было корректно и понятно. По моему опыту описание логики в отдельном процессе как раз понятно, и как следствие корректно. а в обычном описании ни разу без отладки у меня не начинало работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба что такое мультисегментное описание конечного автомата? описание автомата в нескольких process/always мне известно и понятно. такую терминологию слышу впервые... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба что такое мультисегментное описание конечного автомата? описание автомата в нескольких process/always мне известно и понятно. такую терминологию слышу впервые... Я вот тоже не слышал, но постеснялся спросить и поинтересовался у Гугла, который дал ссылку на лекцию некоего Александра Монахова из МГУ. Это наверное его креатив. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Я вот тоже не слышал, но постеснялся спросить и поинтересовался у Гугла, который дал ссылку на лекцию некоего Александра Монахова из МГУ. Это наверное его креатив. не совсем, оказывается это простой перевод книги IEEE Press RTL Hardware Design Using VHDL PONG P. CHU стр 22 лекции Александра Монахова из МГУ соответствует стр 357 книги: глава "10.5.1 Multi-segment coding style" Да и вообще лекция это перевод этой книги.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
embddr 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Да и вообще лекция это перевод этой книги.... У нас некоторые проподы тоже книжки в лекции переписывали :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба вот здесь как по мне лучше расписано + и - кодирования FSM Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 0 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Сейчас пойду по порядку: 1) Терминология из курса лекция которые мне читались когда-то давно. По сути все поняли правильно - то что я и имел ввиду 2) Т.е. Вы в описание автомата замешиваете еще что-то? Я считаю, что это не правильно, т.к. код получается сложнее. Автомат может давать только сигналы разрешения, которые поступают на "исполнительные узлы", т.е. на "счетчик и сдвиговые регистры"... Так гораздо проще и код компактнее... - мне нужно "просидеть" в состоянии некоторое количество тактов - я привык это писать в одном процессе с стэйт машиной, но если делать переход асинхнонным и через state_next<=state; тоего конечно же приходится выносить в отдельный синхронный блок, что лично мне не совсем привычно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба - мне нужно "просидеть" в состоянии некоторое количество тактов - я привык это писать в одном процессе с стэйт машиной, но если делать переход асинхнонным и через state_next<=state; тоего конечно же приходится выносить в отдельный синхронный блок, что лично мне не совсем привычно вообще то если посмотрите темплате от Альтеры или Ксайлинкс, то рекомендуют описывать FSM в двух процессах Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 10 июня, 2016 Опубликовано 10 июня, 2016 · Жалоба Сейчас пойду по порядку: 1) Терминология из курса лекция которые мне читались когда-то давно. По сути все поняли правильно - то что я и имел ввиду 2) - мне нужно "просидеть" в состоянии некоторое количество тактов - я привык это писать в одном процессе с стэйт машиной, но если делать переход асинхнонным и через state_next<=state; тоего конечно же приходится выносить в отдельный синхронный блок, что лично мне не совсем привычно Если у Вас есть скайп, то могу показать кусок лекции прямо с моего рабочего стола... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться