Единая системы генерации, хранения и обработки датасета цифровых схем [CircuitGen]
Cодержание
Состав программы
Программа состоит из нескольких основных модулей:
- Graph - графовое представление цифровых схем;
- Generator - генератор цифровых схем;
- Parameters - расчет различных параметров цифровых схем;
- AI - набор методов машинного обучения для оценки параметров цифровых схем.
ВНИМАНИЕ
В данный момент (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
Текущий датасет
Текущая версия датасета доступна по ссылке.
Планы на будущее
Программ в данный момент перерабатывается и в дальнейшем планируется выполнения ряда задач:
- Разработать подпрограмму визуализации схем;
- Реализовать кросс-платформенность.