Библиотека графа (CircuitGen Graph)
Язык: Русский | English Документация: Русский | English Функционал: русский | English Версионирование (SemVer): русский | English Журнал изменений: русский | English Вклад: русский | English Запросы на слияние (MR): русский | English
- Правила именования переменных
- Сборка программы
- Генерация тестбенчей
- Тематические руководства
- Лицензия
Главный репозиторий проекта: 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-матрицы, например:
install-deps-ubuntu-22.04.shinstall-deps-ubuntu-24.04.shinstall-deps-debian-13.sh-
install-deps-fedora-42.sh/install-deps-fedora-43.sh
Запуск от root: sudo bash scripts/setup/install-deps-ubuntu-24.04.sh.
Детали сборки и скриптов: BUILDING.md, SCRIPTS.md.
Режим разработчика
Несколько советов, которые помогут Вам создать и протестировать этот проект в качестве разработчика и потенциального участника представлены здесь.
Сборка программы
Для сборки программы из корня репозитория (после cp CMakeUserPresets.json.example CMakeUserPresets.json):
bash scripts/dev/build-debug.sh
Подробная схема сборки описана здесь.
Стиль кода
Предварительные действия перед работой с кодом в VS Code, а также информацию о стиле кода и локальных .json можно посмотреть здесь.
Генерация тестбенчей
Библиотека поддерживает автоматическую генерацию 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.
Тематические руководства
| Тема | Русский | 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 |
Сборка документации
Зависимости для 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).
Лицензия
Смотрите файл с лицензией.