Как 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
Ответить

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

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

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

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

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