Библиотека графа (CircuitGen Graph)

Язык: Русский | English Документация: Русский | English Функционал: русский | English Версионирование (SemVer): русский | English Журнал изменений: русский | English Вклад: русский | English Запросы на слияние (MR): русский | English

pipeline status coverage report Latest Release

Оглавление:

Главный репозиторий проекта: https://hub.mos.ru/circuitgen/CircuitGen

Сборка и запуск производятся из операционной системы Linux.

Программа запускалась на Ubuntu 22.04 с использованием WSL (Windows Subsystem for Linux).

В проект добавлена система логирования. Для корректной работы библиотеки необходимо инициализировать библиотеку командой: #include "easyloggingpp/easylogging++.h" INITIALIZE_EASYLOGGINGPP

Установка зависимостей

Актуальные списки пакетов и доп. шаги (CMake с Kitware, clang-format с PyPI, lcov 2+ на Ubuntu 22.04, Doxygen и т.д.) собраны в скриптах каталога scripts/setup/ — по одному файлу на ОС из CI-матрицы, например:

Запуск от root: sudo bash scripts/setup/install-deps-ubuntu-24.04.sh.

Детали сборки и скриптов: BUILDING.md, SCRIPTS.md.

Режим разработчика

Несколько советов, которые помогут Вам создать и протестировать этот проект в качестве разработчика и потенциального участника представлены здесь.

↑ Contents

Сборка программы

Для сборки программы из корня репозитория (после cp CMakeUserPresets.json.example CMakeUserPresets.json):

bash scripts/dev/build-debug.sh

Подробная схема сборки описана здесь.

↑ Contents

Стиль кода

Предварительные действия перед работой с кодом в VS Code, а также информацию о стиле кода и локальных .json можно посмотреть здесь.

↑ Contents

Генерация тестбенчей

Библиотека поддерживает автоматическую генерацию Verilog-тестбенчей для верификации схем. Кратко:

  • пример программы: examples/example_testbench.cpp (сборка вместе с остальными examples/ при CircuitGenGraph_BUILD_EXAMPLES=ON, см. пресет dev);
  • заголовок API: #include <CircuitGenGraph/TestbenchGenerator.hpp>;
  • для симуляции в части тестов — Icarus Verilog (iverilog / vvp), пакеты: sudo apt install iverilog или sudo dnf install iverilog.

Пошаговая сборка примера, запуск ctest и сценарии с префиксом DISABLED_ (Icarus) описаны в docs/ru/BUILDING.md; английский вариант — docs/en/BUILDING.md. Подробнее об API: docs/ru/TestbenchGenerator.md.

↑ Contents

Тематические руководства

Тема Русский English
GraphML GraphML.md GraphML.md
Импорт Verilog VerilogImport.md VerilogImport.md
Подграфы Subgraphs.md Subgraphs.md
Sequential Sequential.md Sequential.md
Память MEMORY_MANAGEMENT.md MEMORY_MANAGEMENT.md

↑ Contents

Сборка документации

Зависимости для Doxygen, LaTeX/PDF и вспомогательных инструментов входят в соответствующий scripts/setup/install-deps-*.sh для вашей ОС.

Сборка (HTML, LaTeX и PDF через make в каталоге LaTeX — см. cmake/docs.cmake):

cmake -DBUILD_MCSS_DOCS=ON --preset=dev
cmake --build build/dev --preset=dev -j $(nproc) --target docs

Готовый PDF: build/dev/docs/pdf/CircuitGenGraph.pdf (копируется из build/dev/docs/latex/refman.pdf целью docs).

Полный конвейер как в CI (в т.ч. PDF): bash scripts/ci/docs.sh — артефакты в build/docs/pdf/<язык>/ (см. docs/ru/SCRIPTS.md).

Лицензия

Смотрите файл с лицензией.

↑ Contents