Проектирование и верификация на уровне электронных систем (ESL)
Electronic system-level design and verification
Проектирование на уровне электронных систем (ESL): методология, повышение эффективности разработки и верификации электроники с использованием C/C++ и SysML.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Проектирование и верификация на уровне электронной системы (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, систем на плате и целых многоплатных систем. Проектирование и верификация – это две различные дисциплины в рамках данной методологии. Некоторые подходы предполагают раздельное выполнение этих этапов, в то время как другие выступают за более тесную интеграцию между проектированием и верификацией.
Electronic system level (ESL) design and verification is an electronic design methodology, focused on higher abstraction level concerns. The term Electronic System Level or ESL Design was first defined by Gartner Dataquest, an EDA industry analysis firm, on February 1, 2001. It is defined in ESL Design and Verification as: "the utilization of appropriate abstractions in order to increase comprehension about a system, and to enhance the probability of a successful implementation of functionality in a cost effective manner." The basic premise is to model the behavior of the entire system using a low level language such as C, C++, or using graphical "model based" design tools. Newer languages are emerging that enable the creation of a model at a higher level of abstraction including general purpose system design languages like SysML as well as those that are specific to embedded system design like SMDL and SSDL. Rapid and correct by construction implementation of the system can be automated using EDA tools such as high level synthesis and embedded software tools, although much of it is performed manually today. ESL can also be accomplished through the use of SystemC as an abstract modeling language. ESL is an established approach at many of the world’s leading System on a chip (SoC) design companies, and is being used increasingly in system design. From its genesis as an algorithm modeling methodology with 'no links to implementation', ESL is evolving into a set of complementary methodologies that enable embedded system design, verification, and debugging through to the hardware and software implementation of custom SoC, system on FPGA, system on board, and entire multi board systems. Design and verification are two distinct disciplines within this methodology. Some practices are to keep the two elements separate, while others advocate for closer integration between design and verification.
Дизайн
Независимо от того, используется ESL или другие системы, под дизайном понимается "одновременная разработка аппаратной и программной частей электронного продукта".
Whether ESL or other systems, design refers to "the concurrent design of the hardware and software parts of an electronic product."
Инструменты
Для разработки ESL используются различные типы EDA-инструментов. Ключевым компонентом является виртуальная платформа, которая по сути представляет собой симулятор. Виртуальная платформа чаще всего поддерживает моделирование на уровне транзакций (TLM), при котором взаимодействие между компонентами моделируется простым вызовом метода между объектами, представляющими каждый компонент. Такая абстракция обеспечивает значительное увеличение скорости по сравнению с моделированием с учетом тактов, поскольку тысячи событий на уровне сигналов в реальной системе могут быть представлены простой передачей указателя. Например, для моделирования получения Ethernet-пакета часто используется SystemC. Другие инструменты поддерживают импорт и экспорт или взаимодействие с компонентами, смоделированными на других уровнях абстракции. Например, RTL-компонент можно преобразовать в модель SystemC с помощью VtoC или Verilator, а высокоуровневый синтез можно использовать для преобразования C-моделей компонента в RTL-реализацию.
There are various types of EDA tool used for ESL design. The key component is the Virtual Platform which is essentially a simulator. The Virtual Platform most commonly supports Transaction level modeling (TLM), where operations of one component on another are modelled with a simple method call between the objects modelling each component. This abstraction gives a considerable speed up over cycle accurate modelling, since thousands of net level events in the real system can be represented by simply passing a pointer, e. g. to model that an Ethernet packet has been received, SystemC is often used. Other tools support import and export or intercommunication with components modelled at other levels of abstraction. For instance, an RTL component be converted into a SystemC model using VtoC or Verilator. And High Level Synthesis can be used to convert C models of a component into an RTL implementation.
Проблемы и критики
Были высказаны некоторые критические замечания в отношении проектирования и верификации на уровне системного описания (ESL). Среди них – излишняя концентрация на языках, основанных на C, и трудности с моделированием параллельных процессов. Также можно утверждать, что проектирование и верификация ESL являются частью общей задачи верификации и валидации.
Some criticisms of ESL design and verification have been raised. These include too much focus on C based languages and challenges in representing parallel processes. It can also be argued that ESL design and verification is a subset of verification and validation.