Логическое моделирование — это использование программного обеспечения для моделирования для прогнозирования поведения цифровых схем и языков описания оборудования . [1] [2] Моделирование может выполняться на различной степени физической абстракции , например, на уровне транзистора , уровне вентиля , уровне передачи регистров (RTL), уровне электронной системы (ESL) или поведенческом уровне.
Логическое моделирование может использоваться как часть процесса проверки при проектировании аппаратного обеспечения. [3]
Преимущество моделирования заключается в том, что оно обеспечивает пользователю знакомый внешний вид, поскольку оно построено на том же языке и символах, которые используются в дизайне. Позволяя пользователю напрямую взаимодействовать с проектом, моделирование является для дизайнера естественным способом получить отзывы о своем проекте.
Уровень усилий, необходимых для отладки и последующей проверки проекта, пропорционален зрелости проекта. То есть на ранних этапах разработки проекта ошибки и неправильное поведение обычно обнаруживаются быстро. По мере развития проекта для запуска моделирования потребуется больше времени и ресурсов, а поиск ошибок будет занимать все больше времени. Это особенно проблематично при моделировании компонентов современных систем; Каждый компонент, который меняет состояние за один такт моделирования, потребует для моделирования нескольких тактов.
Простой подход к этой проблеме может состоять в том, чтобы вместо этого эмулировать схему на программируемой пользователем вентильной матрице . Формальную проверку также можно рассматривать как альтернативу моделированию, хотя формальное доказательство не всегда возможно или удобно.
Перспективным способом ускорения логического моделирования является использование распределенных и параллельных вычислений. [4]
Чтобы оценить тщательность моделирования, существуют инструменты для оценки покрытия кода , [5] функционального покрытия, покрытия конечного автомата (FSM) и многих других показателей. [6]
Моделирование событий позволяет проекту содержать простую информацию о времени – о задержке, необходимой для прохождения сигнала из одного места в другое. В ходе моделирования изменения сигнала отслеживаются в виде событий. Изменение в определенное время вызывает событие после определенной задержки. События сортируются по времени, когда они произойдут, и когда все события за определенное время обработаны, смоделированное время переносится на время следующего запланированного события. Скорость моделирования событий зависит от количества событий, подлежащих обработке (объема активности в модели). [7]
Хотя моделирование событий может обеспечить некоторую обратную связь относительно синхронизации сигнала, оно не является заменой статического временного анализа .
При моделировании цикла невозможно указать задержки. Используется модель с точностью до цикла, и каждый элемент оценивается в каждом цикле. Таким образом, моделирование цикла выполняется с постоянной скоростью, независимо от активности в модели. Оптимизированные реализации могут использовать преимущества низкой активности модели для ускорения моделирования за счет пропуска оценки элементов, входные данные которых не изменились. По сравнению с моделированием событий, моделирование цикла имеет тенденцию быть быстрее, лучше масштабироваться и лучше подходить для аппаратного ускорения/эмуляции.
Однако тенденции в проектировании микросхем указывают на то, что при моделировании событий достигается относительная производительность за счет снижения коэффициента активности в схеме (благодаря таким методам, как стробирование тактового сигнала и стробирование мощности , которые все чаще используются в целях уменьшения рассеиваемой мощности). В этих случаях, поскольку моделирование событий моделирует только необходимые события, производительность больше не может быть недостатком по сравнению с моделированием цикла. Преимущество моделирования событий также заключается в большей гибкости и возможности обработки конструктивных особенностей, с которыми трудно справиться при моделировании циклов, таких как асинхронная логика и несоизмеримые часы. По этим соображениям почти все коммерческие логические симуляторы имеют возможности, основанные на событиях, даже если они в основном полагаются на методы, основанные на циклах. [8]
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка )