Список типичных ошибок при работе с Vivado и SystemVerilog

Содержание

Ошибки связанные с САПР Vivado

Не запускается симуляция FATAL_ERROR PrivateChannel Error creating client socket

Причина: ошибка связана с проблемами Win Sockets, из-за которых симуляция не может быть запущена на сетевых дисках.
Способ воспроизведения ошибки: создать проект на сетевом диске.
Решение: скорее всего, вы создали проект на диске H:/. Создайте проект на локальном диске (например, на рабочем столе диске C:/)


Не запускается симуляция boost filesystem remove Процесс не может получить доступ к файлу

Скриншот ошибки:

../.pic/Other/FAQ/boot_filesystem_remove.png

Причина: вы запустили симуляцию с другим top level-модулем, не закрыв предыдущую симуляцию.
Скорее всего, после создания тестбенча, вы слишком быстро запустили первую симуляцию. Из-за этого, Vivado не успел обновить иерархию модулей и сделать тестбенч top-level-модулем. На запущенной симуляции все сигналы находились в Z и X состояниях, после чего вы попробовали запустить ее снова. К моменту повторного запуска иерархия модулей обновилась, сменился top-level, что и привело к ошибке.
Способ воспроизведения ошибки: запустить симуляцию, создать новый файл симуляции, сделать его top-level-модулем, запустить симуляцию.
Решение: закройте предыдущую симуляцию (правой кнопкой мыши по кнопки SIMULATION -> Close Simulation) затем запустите новую.

Иллюстрация закрытия симуляции:

../.pic/Other/FAQ/close_sim.png


Вылетает Vivado при попытке открыть схему

Причина: кириллические символы (русские буквы) в пути рабочей папки Vivado. Скорее всего, причина в кириллице в имени пользователя (НЕ В ПУТИ УСТАНОВКИ VIVADO).
Способ воспроизведения ошибки: (см. решение, только для воспроизведение необходимо сделать обратно, дать папке имя с кириллицей)
Решение: чтобы не создавать нового пользователя без кириллицы в имени, проще назначить Vivado новую рабочую папку.
Для этого:

  1. Создайте в корне диска C:/ какую-нибудь папку (например Vivado_temp).
  2. Откройте свойства ярлыка Vivado (правой кнопкой мыши по ярлыку -> свойства) 2.1 Если у вас нет ярлыка Vivado на рабочем столе, вместо этого вы запускаете его из меню пуск, кликните в меню пуск правой кнопкой мыши по значку Vivado -> открыть расположение файла. Если там будет ярлык выполните пункт 2, если там будет исполняемый файл — создайте ярлык для этого файла (правой кнопкой мыши по файлу -> создать ярлык) и выполните пункт 2.
  3. В поле "Рабочая папка", укажите путь до созданной вами директории (в примере пункта 1 этот путь будет: C:/Vivado_temp). Нажмите "ОК".

Не устанавливается Vivado Unable to open archive

Иллюстрация:

../.pic/Other/FAQ/unable_to_open_archive.jpg

Причина: скорее всего, проблема в том, что файлы установки (НЕ ПУТЬ УСТАНОВКИ VIVADO) расположены по пути с кириллическими символами (например, в какой-то личной папке "Загрузки").
Решение: переместите файлы установки в директорию, не содержащую кириллицу в пути.


Ошибки синтаксиса языка SystemVerilog

имя сигнала is not a type

Скорее всего, компилятор не распознал присваивание, поскольку оно было записано с ошибками. Вне блоков always и initial можно выполнять только непрерывное присваивание (через assign).

module half_adder(input logic a, input logic b, output logic c);
c = a ^ b;  // ошибка, для непрерывного присваивания
            // необходимо ключевое слово assign
endmodule

cannot find port on this module

Имя порта, указанного при подключении модуля (после точки) не соответствует ни одному имени сигналов подключаемого модуля

Пример

module half_adder(input logic a, input logic b, output logic c);
  assign c = a ^ b;
endmodule

module testbench();
logic A, B, C;

adder DUT(
  .A(A),  // <- здесь будет ошибка,
          // т.к. в модуле half_adder нет порта 'A'
  .b(B),
  .c(C)
);
endmodule