C

CircuitGen

Единая системы генерации, хранения и обработки датасета цифровых схем [CircuitGen]

License: MIT GitHub forks GitHub Repo stars GitHub watchers

GitHub CI codecov GitHub Release GitHub Release Date

GitHub commit activity GitHub commits since latest release GitHub last commit

GitHub Issues or Pull Requests GitHub Issues or Pull Requests

Alt

Cодержание

Состав программы

Программа состоит из нескольких основных модулей:

  • Graph - графовое представление цифровых схем;
  • Generator - генератор цифровых схем;
  • Parameters - расчет различных параметров цифровых схем;
  • AI - набор методов машинного обучения для оценки параметров цифровых схем.

↑ Contents

ВНИМАНИЕ

В данный момент (06.05.2024) в версии abc для yosys в репозитории Ubuntu 22.04 обнаружена проблема, которая не позволяет полноценно использовать сам abc.

Сборка и запуск компонентов

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

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

Установка утилит

В первую очередь треубется установить все требуемые утилиты. Для этого выполните следующие команды:

chmod +x installUtils.sh
sudo ./installUtils.sh

Далее потребуется установить пакеты, требуемые для работы с данным проектом:

Debian-like os

sudo apt install cmake g++ npm graphviz python3 python3-pip doxygen

Сборка проекта

Для сборки требуется наличие cmake версии не ниже 3.14. Для сборки требуется выполнит следующие команды:

chmod +x buildGenerator.sh
./buildGenerator.sh

После начнется установка дополнительных пакетов, требующихся для функционирования данной утилиты.

Сборка базы данных

Для сборки необходимо выполнить следующие команды:

chmod +x install_pgadmin.sh
./install_pgadmin.sh

Backend + frontend

Установка

Предварительно требуется создать .env файл следующего содержщания (укажите свои значения для переменных):

NAS_USER="USER_NAME"
NAS_PASS="YOUR_PASSWORD"
NAS_IP="NAS_DOMEN_NAME"
NAS_PORT="NAS_PORT"
DSM_VERSION="DSM_VERSION"

DB_USER="postgres"
DB_PASSWORD="PASSWORD"
DB_HOST="localhost"
DB_PORT="5432"
DB_NAME="CircuitGen"

ER_SCRIPT_PATH=CircuitGen.sql

PG_PORT="5050"

После требуется запустить следующее:

pip install -r requirements.txt

python server/manage.py migrate --run-syncdb
cd frontend
npm i
npm run build
cd ..

Запуск

python server/manage.py runserver

Запуск генератора с помощью командной строки

По окончании сборки исполняемый файл будет находиться в папке Generator/build и будет иметь имя CicruitGen. Для ознакомления с доступными командами вы можете использовать флаг -h или --help.

./Generator/build/CircuitGen --help

Пример запуска генератора

Далее будет дан пример запуска генератора с последующим созданием bench файла, а также файлов, оптимизированных с помощью алгоритма resyn2.

./Generator/build/CircuitGen -j json_examples/sampleTruthTable.json -r -B

Текущий датасет

Текущая версия датасета доступна по ссылке.

↑ Contents

Планы на будущее

Программ в данный момент перерабатывается и в дальнейшем планируется выполнения ряда задач:

  • Разработать подпрограмму визуализации схем;
  • Реализовать кросс-платформенность.

↑ Contents