Jump to content

Verilator

Verilator [1]
Разработчик(и) Уилсон Снайдер
Репозиторий
Написано в С++
Операционная система Linux , FreeBSD , Microsoft Windows (через Cygwin [2] )
Тип Симулятор
Лицензия Только LGPL-3.0 или Artistic-2.0
Веб-сайт verilator .org

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 поддерживает автоматическое разделение проектов на несколько потоков, что также потенциально повышает производительность.

Использование с MATLAB

[ редактировать ]

Verilator преобразует синтезируемый Verilog в C++, а библиотеку C++ можно скомпилировать в файл MEX с использованием интерфейса MATLAB для C++. Вот как проекты Verilog можно напрямую моделировать из MATLAB. Использование скомпилированных моделей C++ с MATLAB происходит быстрее, чем использование интерфейсов совместного моделирования с отдельным симулятором HDL. Существует проект с открытым исходным кодом под названием vmodel , который компилирует Verilog в файл MEX с помощью Verilator и предоставляет набор функций для моделирования модели из MATLAB.

См. также

[ редактировать ]
  1. ^ В. Снайдер, «Verilator и SystemPerl». Североамериканская группа пользователей SystemC, конференция по автоматизации проектирования, июнь 2004 г.
  2. ^ «Верипул» .
  3. ^ «Arch Linux — верилятор 4.224-1 (x86_64)» . Archlinux.org . Проверено 7 августа 2022 г.
  4. ^ Ояма Масасиро, Танака Дайсуке и Симидзу Наохики. «Среда совместного моделирования аппаратного и программного обеспечения на основе языка C с использованием sfl2vl и Verilator», Джохо Сёри Гаккай Синподзиуму Ронбунсю (Сборник тезисов симпозиума Общества обработки информации Японии), 2004 ( 10 ), 34–40.
  5. ^ П. Гарсия и К. Комптон. «Реконфигурируемый аппаратный интерфейс для современной вычислительной системы». FCCM 2007 (15-й ежегодный симпозиум IEEE по программируемым пользовательским вычислительным машинам), 23–25 апреля 2007 г., 73–84 (DOI указан для этой статьи, doi : 10.1109/FCCM.2007.49 неверно)
  6. ^ Эрик С. Чанг, Джеймс С. Хоу, Бабак Фалсафи. «PROTO FLEX: совместное моделирование для разработки покомпонентного эмулятора FPGA», WARFP 2006 (2-й семинар по исследованию архитектуры с использованием платформ FPGA), Остин, Техас, 12 февраля 2006 г.
  7. ^ Чин-Чи Хуан, Челюсть-Вэй Чи, Цзы-Цзин Линь, Линь-Вэй Цао, И-Юнг Чен и Цзя-Лин Ян. «Среда оценки производительности/мощности системы для платформенных SOC», факультет компьютерных наук и информационной инженерии, Национальный Тайваньский университет, 2008 г.
  8. ^ Сиддхартха Девалапалли. «Разработка модулей SystemC на основе HDL для систем на кристалле», магистерская диссертация , Университет Теннесси, Ноксвилл, август 2004 г.
  9. ^ Джереми Беннетт, Embecosm, «Верификация процессора с использованием инструментов с открытым исходным кодом и набора регрессионных тестов GCC: тематическое исследование», собрание Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., [1]
  10. ^ Жан-Поль ван Итегем, Philips Semiconductors (теперь NXP), цитируется в Deep Chip, 25 октября 2005 г. [2]
  11. ^ Чак Пеплински, «Инструменты аппаратной предварительной выборки и оптимизации кэша данных для медиапроцессоров Nexperia», NXP Semiconductors, 11 января 2007 г. «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 20 августа 2008 года . Проверено 13 марта 2009 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  12. ^ Рич Портер, «Производительность дизайнера - альтернативный подход», [Национальный институт микроэлектроники], собрание Сети проектирования системного уровня, Дом инженеров, Бристоль, Великобритания, 24 сентября 2009 г., доступно по адресу www.slideshare.net/richporter/20090924aosnmiesl
  13. ^ Рич Портер, «Архитектура для массово-параллельного моделирования HDL», собрание Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 13 марта 2012 года . Проверено 24 сентября 2010 г. {{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  14. ^ Уилсон Снайдер, Cavium Networks, «Verilator: быстро, бесплатно, но для меня?», Встреча Клуба проверки дизайна, Бристоль, Кембридж и Эйндховен, 20 сентября 2010 г., [3]
  15. Уилсон Снайдер, «Верилатор-3.700», 7 января 2009 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 47a4ab674bddd8a7cf8dbb706752478f__1715653860
URL1:https://arc.ask3.ru/arc/aa/47/8f/47a4ab674bddd8a7cf8dbb706752478f.html
Заголовок, (Title) документа по адресу, URL1:
Verilator - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)