Jump to content

    

Search the Community

Showing results for tags 'infinite loop'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Сайт и форум
    • Новости и обсуждения сайта и форума
    • Другие известные форумы и сайты по электронике
    • В помощь начинающему
    • International Forum
    • Образование в области электроники
    • Обучающие видео-материалы и обмен опытом
  • Cистемный уровень проектирования
    • Вопросы системного уровня проектирования
    • Математика и Физика
    • Операционные системы
    • Документация
    • Системы CAD/CAM/CAE/PLM
    • Разработка цифровых, аналоговых, аналого-цифровых ИС
    • Электробезопасность и ЭМС
    • Управление проектами
    • Neural networks and machine learning (NN/ML)
  • Программируемая логика ПЛИС (FPGA,CPLD, PLD)
    • Среды разработки - обсуждаем САПРы
    • Работаем с ПЛИС, области применения, выбор
    • Языки проектирования на ПЛИС (FPGA)
    • Системы на ПЛИС - System on a Programmable Chip (SoPC)
  • Цифровая обработка сигналов - ЦОС (DSP)
    • Сигнальные процессоры и их программирование - DSP
    • Алгоритмы ЦОС (DSP)
  • Микроконтроллеры (MCs)
    • Cредства разработки для МК
    • ARM
    • AVR
    • MSP430
    • Все остальные микроконтроллеры
    • Отладочные платы
  • Печатные платы (PCB)
    • Разрабатываем ПП в САПР - PCB development
    • Работаем с трассировкой
    • Изготовление ПП - PCB manufacturing
  • Сборка РЭУ
  • Аналоговая и цифровая техника, прикладная электроника
  • Силовая Электроника - Power Electronics
  • Интерфейсы
  • Поставщики компонентов для электроники
  • Майнеры криптовалют и их разработка, BitCoin, LightCoin, Dash, Zcash, Эфир
  • Дополнительные разделы - Additional sections

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


Город


Код проверки


skype


Facebook


Vkontakte


LinkedIn


Twitter


G+


Одноклассники

Found 1 result

  1. Всем привет! Вопрос по планировщику симулятора. Пример привожу примитивный, чтобы только принцип продемонстрировать. Вот предположим есть код в двух комбинационных блоках: logic a = 0; logic b = 0; always_comb begin a = 0; if(<true_cond>) a = 1; if(b) ... end always_comb begin b = 0; if(a) begin b = 1; end По логике работы симулятора получается, что в первом блоке переменная a даёт результат 1, при этом она меняет значение: на входе 0, после условия 1, т.е. как бы происходит событие (event). Это событие триггерит второй блок, где с переменной b происходит аналогичная картина - т.е. изменение переменной b, что есть тоже событие, и это событие должно триггернуть первый блок, т.к. там есть ссылка на b в условии if. Но прогон (evaluation) первого блока снова сгенерит событие (т.к. a поменялась внутри блока), которое запустит второй блок. И так далее без конца. На практике такой простой код, однако, не вызывает этого бесконечного цикла - очевидно, симулятор как-то "соображает", что реально-то события не должно возникать. Но вот у меня в рабочем проекте это тем не менее произошло. Там код не такой простой, но схематично аналогичный: вместо первого блока там описание логики переходов FSM, в другом - сигналы, которые используют fsm_next значение. Реально петли по сигналам там нет - та же Vivado не находит при синтезе. Т.е. как и в примере выше, сигналы a и b не образуют петлю, т.к. b на a не влияет, просто описана в том же блоке. И насколько понимаю, если бы симулятор анализировал переменную при прогоне блока только в конце по её результирующему значению, он бы "увидел", что реально переменная не меняется и поэтому события возникать не должно. Вот тут аналогичная проблема, и там посоветовали использовать для симулятора опцию командной строки -delay_trigger (там кэденсовский симулятор), которая, как объяснил советующий, заставляет симулятор как раз вести себя так, чтобы он не спешил генерить события, а дожидался окончания прогона блока. Но насколько это корректный путь? И зачем режим без этой опции, если он работает вот так "странно". Существуют ли какие-то приёмы борьбы с этим эффектом? Кто-нибудь и как часто с этим сталкивался? В общем, прошу высказываться. P.S. Симулятор: квеста.