Введение

Проектирование и верификация на уровне электронной системы (ESL) – это методология электронного проектирования, ориентированная на задачи более высокого уровня абстракции. Термин «уровень электронной системы» или ESL Design был впервые определён компанией Gartner Dataquest, аналитическим агентством в области EDA, 1 февраля 2001 года. В ESL Design and Verification он определяется как: «использование соответствующих абстракций для повышения понимания системы и увеличения вероятности успешной реализации функциональности экономически эффективным способом». Базовая идея заключается в моделировании поведения всей системы с использованием языка низкого уровня, такого как C, C++, или графических инструментов проектирования, основанных на моделях. Появляются новые языки, позволяющие создавать модели на более высоком уровне абстракции, включая языки проектирования систем общего назначения, такие как SysML, а также языки, специфичные для проектирования встраиваемых систем, такие как SMDL и SSDL. Быстрая и корректная реализация системы может быть автоматизирована с помощью EDA-инструментов, таких как высокоуровневый синтез и инструменты для разработки встроенного программного обеспечения, хотя значительная часть работы до сих пор выполняется вручную. ESL также может быть реализован с использованием SystemC в качестве языка абстрактного моделирования. ESL является общепринятым подходом во многих ведущих мировых компаниях, занимающихся разработкой систем на кристалле (SoC), и всё чаще используется в проектировании систем. ESL, зародившийся как методология моделирования алгоритмов «без связи с реализацией», развивается в набор взаимодополняющих методологий, обеспечивающих проектирование, верификацию и отладку встраиваемых систем, вплоть до аппаратной и программной реализации заказных SoC, систем на FPGA, систем на плате и целых многоплатных систем. Проектирование и верификация – это две различные дисциплины в рамках данной методологии. Некоторые подходы предполагают раздельное выполнение этих этапов, в то время как другие выступают за более тесную интеграцию между проектированием и верификацией.

Дизайн

Независимо от того, используется ESL или другие системы, под дизайном понимается "одновременная разработка аппаратной и программной частей электронного продукта".

Инструменты

Для разработки ESL используются различные типы EDA-инструментов. Ключевым компонентом является виртуальная платформа, которая по сути представляет собой симулятор. Виртуальная платформа чаще всего поддерживает моделирование на уровне транзакций (TLM), при котором взаимодействие между компонентами моделируется простым вызовом метода между объектами, представляющими каждый компонент. Такая абстракция обеспечивает значительное увеличение скорости по сравнению с моделированием с учетом тактов, поскольку тысячи событий на уровне сигналов в реальной системе могут быть представлены простой передачей указателя. Например, для моделирования получения Ethernet-пакета часто используется SystemC. Другие инструменты поддерживают импорт и экспорт или взаимодействие с компонентами, смоделированными на других уровнях абстракции. Например, RTL-компонент можно преобразовать в модель SystemC с помощью VtoC или Verilator, а высокоуровневый синтез можно использовать для преобразования C-моделей компонента в RTL-реализацию.

Проблемы и критики

Были высказаны некоторые критические замечания в отношении проектирования и верификации на уровне системного описания (ESL). Среди них – излишняя концентрация на языках, основанных на C, и трудности с моделированием параллельных процессов. Также можно утверждать, что проектирование и верификация ESL являются частью общей задачи верификации и валидации.