Проектирование и проверка уровня электронной системы (ESL) — это методология электронного проектирования, ориентированная на проблемы более высокого уровня абстракции. Термин «уровень электронной системы» или ESL-проектирование был впервые определен Gartner Dataquest , фирмой, занимающейся анализом отрасли EDA, 1 февраля 2001 года. [1] В ESL-проектировании и проверке [2] он определяется как: «использование соответствующих абстракций для повышения понимания системы и повышения вероятности успешной реализации функциональности экономически эффективным способом».
Основная предпосылка заключается в моделировании поведения всей системы с использованием низкоуровневого языка, такого как C , C++ , или с использованием графических инструментов проектирования «на основе модели». Появляются новые языки, которые позволяют создавать модель на более высоком уровне абстракции, включая языки проектирования систем общего назначения, такие как SysML, а также те, которые специфичны для проектирования встроенных систем, такие как SMDL и SSDL. Быстрая и правильная по конструкции реализация системы может быть автоматизирована с использованием инструментов EDA , таких как высокоуровневый синтез и встроенные программные инструменты, хотя большая часть этого выполняется вручную сегодня. ESL также может быть достигнута с помощью SystemC в качестве абстрактного языка моделирования .
ESL — это устоявшийся подход во многих ведущих мировых компаниях по проектированию систем на кристалле (SoC), который все чаще используется при проектировании систем . [3] Зародившись как методология моделирования алгоритмов без «привязки к реализации», ESL развивается в набор дополнительных методологий, которые позволяют проектировать, проверять и отлаживать встроенные системы , вплоть до аппаратной и программной реализации пользовательских SoC , систем на FPGA , систем на плате и целых многоплатных систем.
Проектирование и верификация — это две отдельные дисциплины в рамках этой методологии. Некоторые практики стремятся разделить эти два элемента, в то время как другие выступают за более тесную интеграцию между проектированием и верификацией. [4]
Независимо от того, идет ли речь о ESL или других системах, проектирование означает «одновременное проектирование аппаратных и программных частей электронного продукта». [5]
Существуют различные типы инструментов EDA, используемых для проектирования ESL. Ключевым компонентом является виртуальная платформа, которая по сути является симулятором. Виртуальная платформа чаще всего поддерживает моделирование на уровне транзакций (TLM), где операции одного компонента над другим моделируются с помощью простого вызова метода между объектами, моделирующими каждый компонент. Эта абстракция дает значительное ускорение по сравнению с моделированием с точностью до цикла, поскольку тысячи событий на уровне сети в реальной системе могут быть представлены простой передачей указателя, например, для моделирования того, что был получен пакет Ethernet, часто используется SystemC.
Другие инструменты поддерживают импорт и экспорт или взаимодействие с компонентами, смоделированными на других уровнях абстракции. Например, компонент RTL может быть преобразован в модель SystemC с помощью VtoC [6] или Verilator. А High Level Synthesis может быть использован для преобразования моделей C компонента в реализацию RTL.
В проектировании и проверке ESL верификационные испытания используются для подтверждения целостности конструкции системы или устройства. Могут применяться многочисленные методы проверки; эти методы испытаний обычно модифицируются или настраиваются для лучшего соответствия тестируемой системе или устройству. Обычные методы проверки ESL включают, но не ограничиваются: [7]
Проверка часто осуществляется разработчиком системы/устройства, но во многих случаях требуется дополнительная независимая проверка.
Были высказаны некоторые критические замечания по поводу проектирования и проверки ESL. К ним относятся слишком большой акцент на языках на основе C и проблемы с представлением параллельных процессов. [8] Можно также утверждать, что проектирование и проверка ESL являются подмножеством верификации и валидации .