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

UVM by Mentor's TCL (@ edaplayground)

Всем добра.

Имею намерение наконец-то перейти от прокрастинации в вопросе изучения UVM от обдумывания к практике, имея на руках и давно используемый мною инструментарий от Mentor (Questa).

В качестве одной из отправных точек нашёл ссылку на давно, но не часто, используемый (бесплатно, конечно) ресурс edaplayground.com (и интересующий меня пример там). Использование, однако, на нём (в т.ч. с т.з. скачивания*) требует подтверждения прав на пользования. *а меня больше всего интересует TCL

Вопрос: кто-то может помочь с
1 скачиванием TCL для Mentor
2 предоставлением своего варианта TCL для Mentor
3 любых слов относительно намеченного мною пути
для работы с UVM?

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


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

Как вы собираетесь совместно использовать TCL и UVM? Нельзя ли немного подробнее? Первый раз слышу, чтобы для использования UVM в ModelSim/QuestaSim кому-то недостало TCL. Кстати, а разве TCL не я является неотъемлемой частью ModelSim? Он же там вроде используется для скриптования.

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


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

Я использую Questa (суть ModelSim). Его (и любой инструмент, что использую) я использую с TCL. На ваши вопросы я ответил?
Завуалированно вы ответили на мой третий по счёту.
Прямой ответ на свои вопросы я нашёл здесь.

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


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

1 hour ago, Zversky said:

Прямой ответ на свои вопросы я нашёл здесь.

Может я опоздал, но tcl это командный язык, что вобщемто отображено в его названии и исторически это был самый простой путь добавить интерфейс командной строки к своему инструменту. То есть "вкомпилированный" в тул тикль кроме самого языка - процедур, иф-элс, базовых типов поддерживает какието специфические команды, типа get_clocks, но это нестандартизировано и порой может быть достаточно странным - например, на мой взгляд, filter в синопсисовских и формальных тулах (наверно, похоже на map() или чтото такое, но синтаксис странный).

В симуляторах на тикле можно делать то же, что и кнопками из гуи: старт, стоп, посмотреть значение, пофорсить сигнал и т.п. как правило, этот же тикль управляет и окошками. Конкретно в квесте возможности тикля, имхо, слабые по сравнению с нцсимом. Может не умею готовить, но в нцсиме почистить на тикле регистры от Х можно было, а в квесте не нашёл как.

Также можно взять общечеловеческий tclsh и в нем писать командные скрипты как в bash, csh, python, Perl и т.д. Не считаю это удобным, но гуру тикля может быть удобнее, чем на баше (и я тиклевские скрипты встречал)

По поводу UVM - тикль можно использовать для "регрессии" менять что-то в файлах запускать разные тесты с разными параметрами (uvm вобщемта имеет механизм взаимодействия с командной строкой и профи этим пользуются. Профи верификатору все эти вэйформы и отладка в симуляторе даром не нужны и только мешают).

но, имхо, преимущества перед тем же башем в таком юзкейсе я вообще не вижу.

Про какойто механизм типа DPI, VPI для тикля я не знаю, если такое есть, то нестандартное, несовместимое. Рантайм взаимодействие придется либо через файловую систему, либо через прокладку на С - DPI

Резюмируя - так как тикль медленный и достаточно неудобный язык, не предоставляющий дополнительных возможностей для верификации, использование его както специально вместе с uvm кажется мне странным желанием и я не встречал такого использования

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


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

1 час назад, yes сказал:

использование его както специально вместе с uvm кажется мне странным желанием

Прошу простить, что так неоднозначно сформулировал свой вопрос, но мне просто был нужен минимальный пример проекта с тестовым окружением на основе UVM, а также TCL для обработки этого всего нажатием одной кнопки для Mentor's ModelSim (Questa), который я и нашёл по ссылке в первом посте этого топика, но не смог скачать по причине (см. выше).  Но теперь я осознал (в т.ч. с помощью участников этого обсуждения), что UVM - это библиотека, и мой вопрос в более понятном варианте звучал бы так: покажите мне, как с помощью TCL обработать DUT и UMV-based TB с помощью Mentor's ModelSim (Questa) там, чтобы был минимальный коробочный вариант. А ответ бы на него был* таким: работа с UVM с т.з. TCL ничем не отличается от работы при "обычном" функциональном тестировании.
*просьба поправить, если я всё ещё плаваю.

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


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

1 hour ago, Zversky said:

*просьба поправить, если я всё ещё плаваю.

UVM это ещё, и может даже больше чем библиотека, это методология, то есть набор правил. У меня впечатление, что все книжки и туториалы долбят - вот описывать только так драйвер, агент, окружение, тест, вот только такие колбэки/тлм ...

это позволяет кучу взаимозаменяемых верификаторов быстро подготовить, чтобы заполнить множество верификаторских вакансий создать рынок VIP, то есть кусков кода (производные от базовых uvm классов), которые вкладываются на место этих "базовых кирпичиков" и позволяют симулировать стандартные протоколы. По-моему, когда есть эти либо купленные vip, либо самонаписанные, то тогда это похоже на софтверную библиотеку и позволяет решить какую-то задачу. А в самом/й uvm готового к использованию ничего нет и если пожертвовать возможностью применения third-party VIP и наймом дополнительных верификаторов, то проще жить без uvm.

Я сам профессионально (то есть за деньги) uvm тестбенчи не писал, но очень много их читал 🙂 , ну и какие-то самодельные проекты для собственного любопытства. Поэтому не могу настаивать, что мое понимание 100% верное.

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


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

4 hours ago, Zversky said:

... мой вопрос в более понятном варианте звучал бы так: покажите мне, как с помощью TCL обработать DUT и UMV-based TB с помощью Mentor's ModelSim (Questa) там, чтобы был минимальный коробочный вариант. А ответ бы на него был* таким: работа с UVM с т.з. TCL ничем не отличается от работы при "обычном" функциональном тестировании.

Вот теперь более-менее понятно, и согласуется с моими представлениями об этом.

... Но остался еще один вопрос:

On 7/25/2024 at 9:10 AM, Zversky said:

Вопрос: кто-то может помочь с
1 скачиванием TCL для Mentor

Зачем его [TCL] скачивать? Он же уже там (в ModelSim) встроен?

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


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

39 минут назад, Raven сказал:

Зачем его [TCL] скачивать?

Снова прошу простить за некорректную формулировку: имел в виду пример скрипта.

2 часа назад, yes сказал:

А в самом/й uvm готового к использованию ничего нет

Да. DO-254 в его российской интерпретации проходили. Знаем. Но от требованиям работодателей быть знакомым с UVM это не помогает. Надо щупать своими руками. К щупанью приступил.

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


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

1 hour ago, Zversky said:

Да. DO-254 в его российской интерпретации проходили. Знаем. Но от требованиям работодателей быть знакомым с UVM это не помогает. Надо щупать своими руками. К щупанью приступил.

Тогда ловите презент: Полезный сайт по верификации от индусов. Пардон, если у вас такой уже есть.

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


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

59 минут назад, Raven сказал:

Пардон, если у вас такой уже есть.

Есть, конечно, но лишний раз быть ткнутым носом в то, вокруг чего ходил кругами, считаю только полезным, за что благодарю.

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


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

Тем временем пришёл сюда: http://systemverilog.ru , а точнее сюда: http://systemverilog.ru/uvm/questasim-with-uvm-1-2-windows/

спотыкаюсь на этом
image.thumb.png.b3275ea0005cd32e2f193492f79119a2.png

а потом, при нажатии Ок в окне с ошибкой на этом


image.thumb.png.614c2d79465e428b4a20cd6c320099fb.png

или в текстовом виде

cd f:/Anatoly/Work/FPGA/UVM/systemverilog.ru/as_is/examples/simple/hello_world
make -f MakefileQuesta10_4a all
# MakefileQuesta10_4a started
# QUESTA_HOME = c:/Work/FPGA/Mentor/QuestaSim64/10.4a
# UVM_DPI_HOME = c:/Work/FPGA/Mentor/QuestaSim64/10.4a/uvm-1.2/win64
# USES_PRECOMPILED_UVM_DPI = 1
# UVM_HOME = c:/Work/FPGA/UVM/1.2
# vlib work
# vlog    -mfcu -suppress 2181 +acc=rb -writetoplevels questa.tops +incdir+c:/Work/FPGA/UVM/1.2/src c:/Work/FPGA/UVM/1.2/src/uvm.sv +incdir+. hello_world.sv
# QuestaSim-64 vlog 10.4a Compiler 2015.03 Mar 25 2015
# Start time: 22:02:43 on Aug 04,2024
# vlog -mfcu -suppress 2181 "+acc=rb" -writetoplevels questa.tops "+incdir+c:/Work/FPGA/UVM/1.2/src" c:/Work/FPGA/UVM/1.2/src/uvm.sv "+incdir+." hello_world.sv 
# -- Compiling package uvm_pkg
# -- Compiling module hello_world
# -- Importing package uvm_pkg
# 
# Top level modules:
# 	hello_world
# End time: 22:02:44 on Aug 04,2024, Elapsed time: 0:00:01
# Errors: 0, Warnings: 0
# vsim -sv_lib c:/Work/FPGA/Mentor/QuestaSim64/10.4a/uvm-1.2/win64/uvm_dpi   -c -do "run -all; q" -l questa.log -f questa.tops
# make.EXE: *** [run] Error -1073741502

но, копируя через буфер обмена в тоже окно команду vsim с её параметрами, на которую ругнулся make.exe, и выполняя её, получаем

image.thumb.png.f1924b263024f74e4a6197075d218d5f.png

В чём тут может быть дело (такой затык)? Тоже самое пробовал и в 10.4а и 2024.1

 

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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