Verilator
Разработчик(и) | Уилсон Снайдер |
---|---|
Репозиторий | |
Написано в | С++ |
Операционная система | Linux , FreeBSD , Microsoft Windows (через Cygwin [2] ) |
Тип | Симулятор |
Лицензия | Только LGPL-3.0 или Artistic-2.0 |
Веб-сайт | verilator |
Verilator — это бесплатный программный инструмент с открытым исходным кодом , который преобразует Verilog ( язык описания аппаратного обеспечения ) в поведенческую модель с циклической точностью на C++ или SystemC . Сгенерированные модели являются точными по циклу и имеют 2 состояния; как следствие, модели обычно обеспечивают более высокую производительность, чем более широко используемые симуляторы, управляемые событиями , которые могут моделировать поведение в пределах тактового цикла. Verilator теперь используется в академических исследованиях, проектах с открытым исходным кодом и для коммерческой разработки полупроводников. Это часть растущего количества бесплатного программного обеспечения EDA .
Использование
[ редактировать ]Verilator получил самое широкое распространение в академических сообществах и сообществах открытого исходного кода. Полупроводниковая промышленность более осторожно подходит к использованию инструментов с открытым исходным кодом и располагает финансовыми средствами для использования коммерческих альтернатив. [3]
Академический
[ редактировать ]Исследователи использовали Verilator для разработки новых сред совместного моделирования. [4] как часть общих ASIC и FPGA процессов проектирования [5] [6] а также в анализе производительности и мощности. [7] Например, Verilator также является популярным инструментом для студенческих диссертаций. [8]
Открытый исходный код
[ редактировать ]Verilator — это инструмент с открытым исходным кодом, который, в свою очередь, был принят рядом других проектов. Электронная лаборатория Fedora [4] приняла Verilator как часть процесса проектирования с открытым исходным кодом для Fedora 11. Архитектура OpenRISC от OpenCores включает в себя эталонную модель с циклической точностью, созданную из Verilog с использованием Verilator. Недавняя статья [9] описал, как набор регрессионных тестов для GCC можно запустить на модели Verilator OpenRISC 1200 как способ обнаружения ошибок в реализации Verilog RTL. Инструмент TestDrive Profiling Master [5] предоставляет виртуальную среду FPGA с использованием Verilator.
Коммерческий
[ редактировать ]В коммерческом плане компания Philips Semiconductors (теперь NXP) лидирует. [10] Использование Verilator становится все более распространенным, например, в примечаниях к приложениям. [11] Совсем недавно Art of Silicon описала использование Verilator на ферме процессоров Linux как путь к более быстрому регрессионному тестированию своих коммерческих разработок. [12] [13] Текущий сопровождающий Verilator определил [14] 27 компаний и университетов, которые сообщили об использовании Verilator или внесли свой вклад в его разработку, включая Intel, Arm, CSR, Broadcom, Raytheon, Infineon, Стэнфордский университет, Имперский колледж Лондона и Embecosm.
История
[ редактировать ]Руководство пользователя Verilator содержит краткую историю. [15] Этот инструмент был разработан в 1994 году командой под руководством Пола Уоссона из Core Logic Group в Digital Equipment Corporation (DEC). Он использовался для преобразования кода Verilog в C для совместного моделирования с моделью процессора Alpha на основе C. В середине 1990-х годов Дуэйн Гальби взял на себя ответственность за разработку, и технология была принята на вооружение другими группами в DEC. В 1998 году DEC опубликовала исходный код.
С 2001 года технология разрабатывается Уилсоном Снайдером и другими в рамках проекта с открытым исходным кодом Veripool. Был добавлен режим SystemC и инструмент переписан с нуля на C++, что привело к увеличению производительности. В 2022 году в Verilator версии 5 были добавлены планировщик, совместимый с IEEE, и семантика задержки, ослабив предыдущие ограничения, которые игнорировали все задержки.
Технология и ключевые особенности
[ редактировать ]Verilator преобразует Verilog в C++ или SystemC. Он может обрабатывать все версии Verilog, а также некоторые утверждения SystemVerilog. Этот подход ближе к синтезу, чем к моделированию, управляемому событиями. Вся конструкция сплющена (то есть все модули развернуты для создания одного модуля). Статический анализ используется для устранения проводов и планирования всех процессов во время создания модели . Класс C++ генерируется с помощью функции, которая принимает значения с двумя состояниями на входных портах и переводит их в значения на выходных портах на следующем фронте тактового сигнала.
SystemC поддерживается путем предоставления класса-оболочки, использующего порты SystemC и чувствительность к тактовым частотам, которые будут управлять портами базовой модели C++.
Verilator поддерживает автоматическое разделение проектов на несколько потоков, что также потенциально повышает производительность.
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( март 2009 г. ) |
Использование с MATLAB
[ редактировать ]Verilator преобразует синтезируемый Verilog в C++, а библиотеку C++ можно скомпилировать в файл MEX с использованием интерфейса MATLAB для C++. Вот как проекты Verilog можно напрямую моделировать из MATLAB. Использование скомпилированных моделей C++ с MATLAB происходит быстрее, чем использование интерфейсов совместного моделирования с отдельным симулятором HDL. Существует проект с открытым исходным кодом под названием vmodel , который компилирует Verilog в файл MEX с помощью Verilator и предоставляет набор функций для моделирования модели из MATLAB.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ В. Снайдер, «Verilator и SystemPerl». Североамериканская группа пользователей SystemC, конференция по автоматизации проектирования, июнь 2004 г.
- ^ «Верипул» .
- ^ «Arch Linux — верилятор 4.224-1 (x86_64)» . Archlinux.org . Проверено 7 августа 2022 г.
- ^ Ояма Масасиро, Танака Дайсуке и Симидзу Наохики. «Среда совместного моделирования аппаратного и программного обеспечения на основе языка C с использованием sfl2vl и Verilator», Джохо Сёри Гаккай Синподзиуму Ронбунсю (Сборник тезисов симпозиума Общества обработки информации Японии), 2004 ( 10 ), 34–40.
- ^ П. Гарсия и К. Комптон. «Реконфигурируемый аппаратный интерфейс для современной вычислительной системы». FCCM 2007 (15-й ежегодный симпозиум IEEE по программируемым пользовательским вычислительным машинам), 23–25 апреля 2007 г., 73–84 (DOI указан для этой статьи, doi : 10.1109/FCCM.2007.49 неверно)
- ^ Эрик С. Чанг, Джеймс С. Хоу, Бабак Фалсафи. «PROTO FLEX: совместное моделирование для разработки покомпонентного эмулятора FPGA», WARFP 2006 (2-й семинар по исследованию архитектуры с использованием платформ FPGA), Остин, Техас, 12 февраля 2006 г.
- ^ Чин-Чи Хуан, Челюсть-Вэй Чи, Цзы-Цзин Линь, Линь-Вэй Цао, И-Юнг Чен и Цзя-Лин Ян. «Среда оценки производительности/мощности системы для платформенных SOC», факультет компьютерных наук и информационной инженерии, Национальный Тайваньский университет, 2008 г.
- ^ Сиддхартха Девалапалли. «Разработка модулей SystemC на основе HDL для систем на кристалле», магистерская диссертация , Университет Теннесси, Ноксвилл, август 2004 г.
- ^ Джереми Беннетт, Embecosm, «Верификация процессора с использованием инструментов с открытым исходным кодом и набора регрессионных тестов GCC: тематическое исследование», собрание Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., [1]
- ^ Жан-Поль ван Итегем, Philips Semiconductors (теперь NXP), цитируется в Deep Chip, 25 октября 2005 г. [2]
- ^ Чак Пеплински, «Инструменты аппаратной предварительной выборки и оптимизации кэша данных для медиапроцессоров Nexperia», NXP Semiconductors, 11 января 2007 г. «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 20 августа 2008 года . Проверено 13 марта 2009 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Рич Портер, «Производительность дизайнера - альтернативный подход», [Национальный институт микроэлектроники], собрание Сети проектирования системного уровня, Дом инженеров, Бристоль, Великобритания, 24 сентября 2009 г., доступно по адресу www.slideshare.net/richporter/20090924aosnmiesl
- ^ Рич Портер, «Архитектура для массово-параллельного моделирования HDL», собрание Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 13 марта 2012 года . Проверено 24 сентября 2010 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ Уилсон Снайдер, Cavium Networks, «Verilator: быстро, бесплатно, но для меня?», Встреча Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., [3]
- ↑ Уилсон Снайдер, «Верилатор-3.700», 7 января 2009 г.