Испытательный файл не найден с использованием NVC с Cocotb [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Испытательный файл не найден с использованием NVC с Cocotb [закрыто]

Сообщение Anonymous »

Я пытаюсь сделать вспомогательную функцию, чтобы запустить тест Cocotb следующим образом: < /p>
def run(hdl_toplevel: str,
test_module : str,
work_dir : str,
root_dir : str,
parameters : typing.Mapping[str, typing.Any] | None = None
) -> None:

log_enable = True

# Prepare working directory.
work_dir = pathlib.Path(work_dir + ".work")
if work_dir.exists():
shutil.rmtree(work_dir.as_posix())
work_dir.mkdir(parents=True)

# Prepare root directory.
root_dir = pathlib.Path(root_dir)

# Pull configurations from yaml.
runner_config = config.CONFIG['runner']
runner = cocotb.runner.get_runner(simulator_name=runner_config['simulator']['name'])
#print(f"Using simulator: {runner_config['simulator']['name']}")
sources = [cocotb.runner.VHDL(str(path)) for path in
itertools.chain.from_iterable(root_dir.glob(source) for source in runner_config['vhdl_sources'])]

# Build the HDL using the cocotb runner.
runner.build(
hdl_library = runner_config['hdl_library'],
sources = sources,
build_args = runner_config.get('simulator').get('args', []),
build_dir = work_dir,
hdl_toplevel = hdl_toplevel,
log_file = work_dir / "build.log" if log_enable else None,
always = True, # Always run the build step
waves = True, # Unfortunately, waves is not yet supported, using the cocotb.runner. Waves can be generated with the Makefile approach, however.
)

# Run the test with cocotb runner.
runner.test(
test_module = test_module, # Python module(s) containing the tests to run
hdl_toplevel = hdl_toplevel,
hdl_toplevel_library = runner_config['hdl_library'],
hdl_toplevel_lang = "vhdl",
test_dir = work_dir,
log_file = work_dir / "sim.log" if log_enable else None,
parameters = parameters
)
< /code>
Я получаю эту ошибку: < /p>

e SystemExit: Ошибка: моделирование завершено ненормально. Результаты
file /mnt/c/git/fpga/common/axilite/sim/cocotb/test_axilite_reg.none
не найден.> ** Note: loading VHPI plugin /home/eahzakm/cocotb-venv/lib/python3.12/site-packages/cocotb/libs/libcocotbvhpi_nvc.so
> -.--ns INFO gpi ..mbed/gpi_embed.cpp:108 in set_program_name_in_venv Using
> Python virtual environment interpreter at
> /home/eahzakm/cocotb-venv/bin/python
> -.--ns INFO gpi ../gpi/GpiCommon.cpp:101 in gpi_print_registered_impl VHPI
> registered
> 0.00ns INFO cocotb Running on nvc version 1.17-devel
> 0.00ns INFO cocotb Running tests with cocotb v1.9.2 from
> /home/eahzakm/cocotb-venv/lib/python3.12/site-packages/cocotb
> 0.00ns INFO cocotb Seeding Python random module with 1751453357
> /home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py:186:
> UserWarning: Python runners and associated APIs are an experimental
> feature and subject to change. exec(co, module.__dict__) Common
> path: /mnt/c/git/Coherent-TFT/fpga/common
> 0.00ns CRITICAL cocotb.regression Failed to import module test_axiLite_reg: [Errno 2] No such file or directory:
> '/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/config.yaml'
> 0.00ns INFO cocotb.regression MODULE variable was "test_axiLite_reg"
> 0.00ns INFO cocotb.regression Traceback (most recent call last):
> File "/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/cocotb/regression.py",
> line 203, in _discover_tests
> module = _my_import(module_name)
> ^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/cocotb/regression.py",
> line 72, in _my_import
> mod = __import__(name)
> ^^^^^^^^^^^^^^^^
> File "", line 1360, in _find_and_load
> File "", line 1331, in _find_and_load_unlocked
> File "", line 935, in _load_unlocked
> File "/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py",
> line 186, in exec_module
> exec(co, module.__dict__)
> File "/mnt/c/git/Coherent-TFT/fpga/common/axiLite/tests_cocotb/test_axiLite_reg.py",
> line 45, in
> import runner as runner
> File "", line 1360, in _find_and_load
> File "", line 1331, in _find_and_load_unlocked
> File "", line 935, in _load_unlocked
> File "/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py",
> line 186, in exec_module
> exec(co, module.__dict__)
> File "/mnt/c/git/Coherent-TFT/fpga/common/cocotb/runner.py", line 34, in
> import config
> File "", line 1360, in _find_and_load
> File "", line 1331, in _find_and_load_unlocked
> File "", line 935, in _load_unlocked
> File "/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/rewrite.py",
> line 186, in exec_module
> exec(co, module.__dict__)
> File "/mnt/c/git/Coherent-TFT/fpga/common/cocotb/config.py", line 54, in
> with open(CONFIG_PATH, "r") as file:
> ^^^^^^^^^^^^^^^^^^^^^^
> FileNotFoundError: [Errno 2] No such file or directory: '/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/config.yaml'
>
> 0.00ns ERROR cocotb [Errno 2] No such file or directory:
> '/home/eahzakm/cocotb-venv/lib/python3.12/site-packages/_pytest/assertion/config.yaml'
< /code>
Я использую NVC в WSL. И я запускаю его, используя Pytest и использую метод Cocotb Runner, как это: < /p>
runner.run(
hdl_toplevel = "axiLite_reg_top",
test_module = "test_axiLite_reg",
work_dir = str(Path(proj_path / "axiLite/sim/cocotb")),
root_dir = str(Path(__file__).parents[3]),
parameters = None)
< /code>
Я попытался имитировать VHDL с NVC, чтобы убедиться, что ошибки нет, и он уточняет и работает правильно. Также при использовании cocotb.runner напрямую он работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/796 ... ith-cocotb
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»