Современная электроника №5/2019
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 64 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 5 2019 ся синтез RTL-кода из исходного C++/ SystemC-кода. Принципы работы Catapult HLS пред- ставлены на рисунке 3. Приложение решает следующие основные задачи: ● анализ исходного C++/SystemC-кода на предмет обнаружения ошибок и возможных неопределённостей и внесение рекомендаций по их устра- нению (например, некоторые кон- струкции кода C++ могут привести к неоднозначности или избыточности при синтезе RTL-кода); ● анализ полноты функционального покрытия при верификации исход- ного C++/SystemC-кода для обеспе- чения синтеза RTL-кода с исчерпы- вающим функциональным покры- тием; ● синтез исходного C++/SystemC-кода в VHDL или Verilog-код, полностью подготовленный к дальнейшим опе- рациямфункциональной верифика- ции логического синтеза; включение опции PowerPro обеспечивает опти- мизацию потребляемой мощности непосредственно в процессе синте- за RTL-кода; ● контроль логической эквивалент- ности исходного C++/SystemC-кода и синтезируемого RTL-кода (прило- жение SLEC-HLS Formal); ● генерирование тестбенча для вери- фикации синтезируемого RTL-кода (маршрут SCVerify) на основе исход- ного тестбенча для C++/SystemC-кода. RTL/ ФУНКЦИОНАЛЬНЫЙ УРОВЕНЬ ПРОЕКТИРОВАНИЯ И ВЕРИФИКАЦИИ Несмотря на то что Vista и Catapult HLS обеспечивают на выходе в зна- чительной степени верифицирован- ный RTL-код, прежде чем приступить к физической реализации кристалла SoC, необходимо провести финаль- ную верификацию на функциональном уровне его отдельных блоков, а иногда и всей системы в целом. Например, это происходит в результате «ассемблиро- вания» блоков из собственной поль- зовательской библиотеки или приоб- ретённых у третьих фирм. Функцио- нальная верификация на RTL-уровне является наиболее затратной с точки зрения требуемых ресурсов оборудо- вания, наличия лицензий и объёмов инженерного труда. Довольно долгое время под функциональной верифика- цией понимали простое моделирова- ние объектов, описанных на VHDL или Verilog-коде, поэтому основной задачей было максимальное ускорение модели- рования за счёт применения более усо- вершенствованных алгоритмов, более мощных процессорных ядер, распарал- леливания моделирования на многоя- дерных и многопроцессорных систе- мах. В последнее время появились так называемые усовершенствованные методы верификации [6], например формальная верификация на основе assertions, управление полнотой функ- ционального покрытия, автоматиче- ская генерация тестбенчей произволь- ных (random) тестов с ограничениями и многое другое. Именно такой подход реализован в платформе Questa компа- нии Mentor Graphics, которая является ядромфункциональной верификации SoC на RTL-уровне. На рисунке 4 представлены основные задачи, которые решаются с помощью платформыфункциональной верифи- кации Mentor Graphics. Ядром Questa является система про- граммного моделирования цифровых проектов, которая поддерживает все основные языки (описание проекта и assertions) и методологии верифи- кации: Verilog, SystemVerilog-2015, VHDL-2008, SystemC-2.3, UPF-3.0, C++, SV-TB, SVA, UVM, UCIS, PSS и другие. Симулятор обладает высокой произ- водительностью и допустимой ёмко- стью проектов. Опция Multi-Core позволяет повысить скорость моде- лирования за счёт распараллелива- ния задачи на многоядерных системах. Мощные встроенные отладочные воз- можности и функция просмотра трасс (опция Questa Visualizer) обеспечива- ют ускорение сходимости верифика- ции, поскольку, как известно, отлад- ка занимает львиную долю времени в этом процессе. Опция Questa InFact позволяет автоматически генериро- вать тестовые воздействия в соответ- ствии с заданными алгоритмами, при- чём эти воздействия легко портируют- ся на системный уровень верификации (Vista), в систему аппаратной эмуля- ции и в систему прототипирования на FPGA. Дополнительным фактором повышения эффективности и сходи- мости является встроенная библиоте- ка IP-блоков для верификации (Questa Verification IP), которая даёт возмож- ность пользователю сосредоточить- Area/Timing & Power Optimized Verification-ready RTL output Контроль эквивалентности С++ и RTL Генерация тестовых воздействий (direct/random) Контроль ошибок исходного кода без моделирования Контроль полноты покрытия исходного кода Моделирование RTL на исходном тесбенче С++/SystemC Catapult Ultra Synthesis Catapult Design Checker C++/SystemC Design with Assert & Cover CCOV HLS Coverage C++ SystemC Verification inFact Portable Stimulus SLEC-HLS Formal SCVerify Рис. 3. Принципы работы Catapult-HLS Рис. 4. Структура платформы функциональной верификации Mentor Graphics Разработка и верификация ПО Отладка Приложения СDС SECURITY FAULT LP DFT ... Методология PSS UVM/UVMF UPF ... Моделирова- ние Questa ® Формальные методы Questa ® Статические методы Questa ® Эмуляция Veloce ® Виртуальное прототипиро- вание Vista тм Базовые технологии верификации Воздействия и анализ верификации (включая IP) Управление жизненным циклом (Трассировка требований)
RkJQdWJsaXNoZXIy MTQ4NjUy