Jump to content

    

python + FPGA

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

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

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

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

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

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

Благодарю.

 

Share this post


Link to post
Share on other sites
2 minutes ago, Lmx2315 said:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Удачи! Rob.

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

Share this post


Link to post
Share on other sites
14 минут назад, Kostochkin сказал:

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now