Логическое моделирование цифровых схем: методы и тенденции.
Logic simulation
Логическое моделирование: проверка цифровых схем и языков описания аппаратуры с помощью ПО. Уровни абстракции, преимущества и обратная связь для дизайнера.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Логическое моделирование — это использование программного обеспечения для моделирования с целью предсказания поведения цифровых схем и языков описания аппаратуры. Моделирование может выполняться на различных уровнях физической абстракции, таких как уровень транзисторов, уровень логических элементов, уровень передачи регистров (RTL), уровень электронной системы (ESL) или поведенческий уровень.
Logic simulation is the use of simulation software to predict the behavior of digital circuits and hardware description languages. Simulation can be performed at varying degrees of physical abstraction, such as at the transistor level, gate level, register transfer level (RTL), electronic system level (ESL), or behavioral level.
Использование при проверке
Логическое моделирование может использоваться как часть процесса верификации при разработке аппаратного обеспечения. Симуляции обладают преимуществом, заключающимся в привычном для пользователя интерфейсе, поскольку они построены на том же языке и используют те же символы, что и при проектировании. Предоставляя пользователю возможность непосредственного взаимодействия с разработкой, симуляция является естественным способом для разработчика получить обратную связь о своей работе.
Logic simulation may be used as part of the verification process in designing hardware. Simulations have the advantage of providing a familiar look and feel to the user in that it is constructed from the same language and symbols used in design. By allowing the user to interact directly with the design, simulation is a natural way for the designer to get feedback on their design.
Моделирование событий против моделирования циклов
Моделирование событий позволяет схеме содержать простую информацию о времени – задержку, необходимую для распространения сигнала из одной точки в другую. В процессе моделирования изменения сигналов отслеживаются в виде событий. Изменение в определенный момент времени запускает событие после заданной задержки. События сортируются по времени их наступления, и когда все события для определенного момента времени обработаны, время моделирования переводится на момент времени следующего запланированного события. Скорость работы моделирования событий зависит от количества обрабатываемых событий (уровня активности в модели). Хотя моделирование событий может давать некоторую обратную связь относительно времени распространения сигналов, оно не является заменой статическому синхронному анализу. В циклическом моделировании невозможно задать задержки. Используется модель, точная по циклам, и каждый элемент (gate) оценивается в каждом цикле. Таким образом, циклическое моделирование работает с постоянной скоростью, независимо от активности в модели. Оптимизированные реализации могут использовать низкую активность модели для ускорения моделирования, пропуская оценку элементов, чьи входы не изменились. По сравнению с моделированием событий, циклическое моделирование, как правило, быстрее, лучше масштабируется и больше подходит для аппаратного ускорения/эмуляции. Однако тенденции в проектировании микросхем указывают на то, что моделирование событий выигрывает в относительной производительности благодаря снижению коэффициента активности в схеме (за счет таких методов, как блокировка тактирования и блокировка питания, которые становятся все более распространенными для снижения энергопотребления). В этих случаях, поскольку моделирование событий моделирует только необходимые события, производительность может перестать быть недостатком по сравнению с циклическим моделированием. Моделирование событий также обладает большей гибкостью, позволяя обрабатывать конструктивные особенности, сложные для циклического моделирования, такие как асинхронная логика и несовместимые тактовые частоты. В связи с этим, почти все коммерческие логические симуляторы имеют функциональность, основанную на событиях, даже если они в основном используют циклические методы.
Event simulation allows the design to contain simple timing information – the delay needed for a signal to travel from one place to another. During simulation, signal changes are tracked in the form of events. A change at a certain time triggers an event after a certain delay. Events are sorted by the time when they will occur, and when all events for a particular time have been handled, the simulated time is advanced to the time of the next scheduled event. How fast an event simulation runs depends on the number of events to be processed (the amount of activity in the model). While event simulation can provide some feedback regarding signal timing, it is not a replacement for static timing analysis. In cycle simulation, it is not possible to specify delays. A cycle accurate model is used, and every gate is evaluated in every cycle. Cycle simulation therefore runs at a constant speed, regardless of activity in the model. Optimized implementations may take advantage of low model activity to speed up simulation by skipping evaluation of gates whose inputs didn't change. In comparison to event simulation, cycle simulation tends to be faster, to scale better, and to be better suited for hardware acceleration / emulation. However, chip design trends point to event simulation gaining relative performance due to activity factor reduction in the circuit (due to techniques such as clock gating and power gating, which are becoming much more commonly used in an effort to reduce power dissipation). In these cases, since event simulation only simulates necessary events, performance may no longer be a disadvantage over cycle simulation. Event simulation also has the advantage of greater flexibility, handling design features difficult to handle with cycle simulation, such as asynchronous logic and incommensurate clocks. Due to these considerations, almost all commercial logic simulators have an event based capability, even if they primarily rely on cycle based techniques.