Данное IP входит в состав подсистемы ввода-вывода Ленинград и может включать в себя другие IP из данной библиотеки, поэтому перед использованием данного устройства следует либо получить все необходимые зависимости, либо убедиться в их отсутствии. Подробнее о подсистеме Ленинград и используемом в ней подходе к управлению зависимостями, качеством и использовании IP можно узнать из ее документации.
- Для запуска тестов должны быть установлены следующие инструменты: fusesoc, cocotb, verilator и/или icarus.
- В тестах используются verification ip из пакета cocotbext.
- Запуск тестов должен выполняться из корневого каталога IP.
- Все зависимые ядра должны быть размещены в одном каталоге с данным IP.
- Для проверки качества IP ядра осуществляется с помощью выполнения следующих задач: симуляция с анализом покрытия кода, статический анализ, методологический анализ, пробный синтез и т.п.
- Для выполнения любой из этих задач используется утилита make, вызывающая программу fusesoc с соответствующими параметрами. Данная программа осуществляет генерацию инфраструктуры и скриптов, необходимых для запуска данного инструмента и выполняет с его помощью запрошенную задачу. Цели, соотвествующие задачам, и команды необходимые для их выполнения определены в Makefile, находящемся в корне файловой структуры IP.
- Результаты помещаются в отдельный каталог внутри создаваемого каталога build в корне файловой структуры IP.
Моделирование с помощью icarus часто выполняется быстрее за счет меньшего времени компиляции.
Запуск моделирования:
make sim_icar
Временные диаграммы будут записаны в файле build/lio_dma4fifo_0/sim_iverilog/dump.fst
В помощью verilator могут быть получены не только лог моделирования и временные диаграммы, но и отчеты о покрытии кода IP ядра тестами.
Запуск моделирования:
make sim_veril
Временные диаграммы будут записаны в файл build/lio_dma4fifo_0/sim_verilator/dump.fst
Отчеты о покрытии кода буду сохранены в каталоге build/lio_dma4fifo_0/sim_verilator/coverage_reports
make lint_veril
make lint_verib
make clean
This IP is part of the Leningrad I/O subsystem and may include other IPs from this library, so you should obtain all required dependencies before using this device. For more information about the Leningrad subsystem and its approach to dependency management, quality management, IP usage please refer to its documentation.
- The following tools must be installed to run the tests: fusesoc, cocotb, verilator and/or icarus.
- The tests use verification ip from the cocotbext package.
- Tests must be run from the root directory of the IP.
- All dependent IP must be placed in the same directory as this IP.
- Verification of IP quality is done by performing the following tasks: simulation with code coverage analysis, static analysis, methodological analysis, trial synthesis, etc.
- To perform any of these tasks make utility is used. It calls the fusesoc program with the appropriate parameters. This program generates the infrastructure and scripts necessary to run the EDA tool and performs the requested task with it. The targets corresponding to the tasks and the commands needed to execute them are defined in the Makefile located at the root of the IP file structure.
- The results are placed in a separate directory inside the build directory created in the root of the IP file structure.
Simulations with icarus are often faster due to the shorter compilation time.
Running the simulation:
make sim_icar
Waveforms will be written to the file build/lio_dma4fifo_0/sim_iverilog/dump.fst.
With verilator not only simulation logs and timing diagrams can be obtained, but also reports about IP code coverage.
Running the simulation:
make sim_veril
The timing diagrams will be written to the file build/lio_dma4fifo_0/sim_verilator/dump.fst
Code coverage reports will be saved in build/lio_dma4fifo_0/sim_verilator/coverage_reports
make lint_veril
make lint_verib
make clean