Перейти к содержанию
    

python + FPGA

Здравствуйте.

У меня такой вопрос :

Как верифицировать verilog проект для плис, используя python?

Написать тестбенч на python и подключить к нему все файлы verilog?

Или в python создается только файл (txt например) входных воздействий, и его надо подключить к тестбенчу в modelsim? Если так, то как проверить результат моделирования при помощи python?

Или в python пишется и проверяется testbench, конвертируется в verilog и используется в modelsim?

Благодарю.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, Lmx2315 said:

В этой статье проект на плис пишется на python и верифицируется на python.

А меня интересует как готовый проект на HDL верифицировать на python. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приветствую!

А вам обязательно на python?

Любая верификация предполагает  генерацию требуемых входных  воздействий,  прием  выходных откликов,  сравнение откликов с эталонной моделью,  сбор статистики о покрытии тестами. Соответственно народ пытается придумать различные фреймворки и методологии чтобы упростить этот неблагодарный процесс. Как пример  Cocotb  

В случае с txt файлами  это самый простой и классический способ. Но для каждого нового проекта фактически верификацию пишете почти с нуля.  Фреймвоки позволяют при должной организации  автоматизировать ряд процессов и  реюзать часть модулей в новых проектах.  Но при этом требуется начальные усилия (и не малые) на организацию и вхождения в технологии. 

Тут зависит от того на сколько вы хотите погрязнуть в этом деле.

Удачи! Rob.

P.S. Все такие фреймворки (внешние по отношению к симулятору) обычно работают через  PLI/VPI/DPI интерфейс  в симуляторе. Вы можете и сами сделать такое подключение напрямую из вашей python программы. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Kostochkin сказал:

В этой статье проект на плис пишется на python и верифицируется на python.

А меня интересует как готовый проект на HDL верифицировать на python. 

имхо такого нет, если вы ищете замену платному симулятору есть icarus verilog . 

максимум на python пишут обслуживающие симуляцию вещи, сама симуляция/верификация идёт на другом ПО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А я некоторое время использовал Cocotb фреймворк - он для тестирования FPGA. Надо сказать это очень классный инструмент с кучей библиотек что есть в питоне, но он оказался неразвитым в полной мере. Не хватало штатного режима чтобы запустить 8 симуляторов на 8 ядрах и объединять результаты через некий пул - пришлось велосипедировать. Симуляторы не параллелятся, так что при куче ядер и памяти до дури - это было важно.

 

Правда было немного трудновато с возвращаемыми значениями (например, функция чтения RAM), как назло документация не раскрывала этого важного ньюанса - решил через raise. Но это всё было туго и неочевидно, не то что ждешь от развитого инструмента.

 

На момент применения, была не полная поддержка Python 3, и под Windows было очень тяжело скомпилировать, не помню даже как удалось. Это нужно было для коллег, а на Linux вообще легко было.

 

В общем, судя по коммитам Cocotb продолжает развиваться, и я надеюсь однажды там будет всё гораздо проще - подключил указал и полетело. Два года назад было туговато...

 

Но мне понравился Cocotb очень, это восхитительно иметь такую связь Python и HDL-симулятора. Жаль разворачивать у коллег очень тяжело, пока что это инструмент для себя не для работы в коллективе - вот это огромный минус, увы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я прокачивал Verilog PLI/VPI + Lua 5.3. Т.е. В верилоге делал модуль (имитатор мастера на системной шине), который управлялся через PLI/VPI Lua - скриптом. Вроде даже работало. Имитировал процессор в основном цикле и в обработчике прерывания. Даже получился эксперимент с общением этого чуда по локальной сети через Lua Sockets по UDP. При должном терпении и мотивации это можно прикрутить к qemu (как вариант через сокеты) и/или к SystemC-AMS...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Основной файл интерфейса Verilog <-> Lua поместил в https://github.com/yrasik/Verilog_Lua. По аналогии можно и для Python подобное изобразить....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...