Как Verilator преобразует внутренние сигналы в атрибуты классаC++

Программы на C++. Форум разработчиков
Anonymous
Как Verilator преобразует внутренние сигналы в атрибуты класса

Сообщение Anonymous »

Я использую verilator версии 4.028, так как я использую wsl, а версия 5 недоступна, мне нужно будет скомпилировать ее из исходного кода, я пробовал раньше и у меня возникало много проблем с библиотеками и версией компилятора. >
Поскольку доступна только документация для версии 5, найти какую-либо полезную информацию довольно сложно. Мой вопрос следующий:
Когда вы пишете системный модуль verilog, verilator преобразует его в C++, и внутренние сигналы преобразуются в какие-то атрибуты класса. Например, скажем, у меня есть это:
  • верхний модуль: ядро
  • внутри него я получил модуль с именем exe создал экземпляр u_exe
  • Внутри exe я получил имя сигнала Branch_v
    Со стороны C++ он создаст :

    Код: Выделить всё

    core__DOT__u_exe__DOT__branch_v
Дело в том, что внутри файлов Vcore.h нет какого-то сигнала, в моем случае я фактически не могу найти сигнал Branch_v. Я предполагаю, что верилатор проводит некоторую оптимизацию, но мне бы хотелось заставить его генерировать некоторый сигнал.
Я читал об этом: /*verilator public*/ , я сделал это:

Код: Выделить всё

logic                     branch_v /*verilator public*/;
Но тогда все сигналы исчезают из Vtop.h, кроме ввода-вывода модуля.
Изменить:Кажется, /*verilator public_flat*/ отлично справляется со своей задачей, его нужно использовать следующим образом:

Код: Выделить всё

logic signal_name /*verilator public_flat*/;


Подробнее здесь: https://stackoverflow.com/questions/793 ... attributes

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