Введение

Логическое моделирование — это использование программного обеспечения для моделирования с целью предсказания поведения цифровых схем и языков описания аппаратуры. Моделирование может выполняться на различных уровнях физической абстракции, таких как уровень транзисторов, уровень логических элементов, уровень передачи регистров (RTL), уровень электронной системы (ESL) или поведенческий уровень.

Использование при проверке

Логическое моделирование может использоваться как часть процесса верификации при разработке аппаратного обеспечения. Симуляции обладают преимуществом, заключающимся в привычном для пользователя интерфейсе, поскольку они построены на том же языке и используют те же символы, что и при проектировании. Предоставляя пользователю возможность непосредственного взаимодействия с разработкой, симуляция является естественным способом для разработчика получить обратную связь о своей работе.

Моделирование событий против моделирования циклов

Моделирование событий позволяет схеме содержать простую информацию о времени – задержку, необходимую для распространения сигнала из одной точки в другую. В процессе моделирования изменения сигналов отслеживаются в виде событий. Изменение в определенный момент времени запускает событие после заданной задержки. События сортируются по времени их наступления, и когда все события для определенного момента времени обработаны, время моделирования переводится на момент времени следующего запланированного события. Скорость работы моделирования событий зависит от количества обрабатываемых событий (уровня активности в модели). Хотя моделирование событий может давать некоторую обратную связь относительно времени распространения сигналов, оно не является заменой статическому синхронному анализу. В циклическом моделировании невозможно задать задержки. Используется модель, точная по циклам, и каждый элемент (gate) оценивается в каждом цикле. Таким образом, циклическое моделирование работает с постоянной скоростью, независимо от активности в модели. Оптимизированные реализации могут использовать низкую активность модели для ускорения моделирования, пропуская оценку элементов, чьи входы не изменились. По сравнению с моделированием событий, циклическое моделирование, как правило, быстрее, лучше масштабируется и больше подходит для аппаратного ускорения/эмуляции. Однако тенденции в проектировании микросхем указывают на то, что моделирование событий выигрывает в относительной производительности благодаря снижению коэффициента активности в схеме (за счет таких методов, как блокировка тактирования и блокировка питания, которые становятся все более распространенными для снижения энергопотребления). В этих случаях, поскольку моделирование событий моделирует только необходимые события, производительность может перестать быть недостатком по сравнению с циклическим моделированием. Моделирование событий также обладает большей гибкостью, позволяя обрабатывать конструктивные особенности, сложные для циклического моделирования, такие как асинхронная логика и несовместимые тактовые частоты. В связи с этим, почти все коммерческие логические симуляторы имеют функциональность, основанную на событиях, даже если они в основном используют циклические методы.