ABC: система для синтеза и формальной верификации последовательной логики
ABC постоянно меняется, но текущий снимок считается стабильным.
Чтобы скомпилировать ABC как двоичный файл, загрузите и разархивируйте код, затем введите make
.
Чтобы скомпилировать ABC в виде статической библиотеки, введите make libabc.a
.
При использовании ABC в качестве статической библиотеки предоставляются две дополнительные процедуры: Abc_Start()
и Abc_Stop()
для запуска и завершения работы фреймворка ABC в вызывающем приложении. Простая демонстрационная программа (файл src/demo.c) показывает, как создать автономную программу, выполняющую переписывание AIG с учётом DAG, путём вызова API ABC, скомпилированного в виде статической библиотеки.
Для создания демонстрационной программы:
gcc -Wall -g -c demo.c -o demo.o
.g++ -g -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread
.Чтобы запустить демонстрационную программу, предоставьте ей файл с логической сетью в формате AIGER или BLIF. Например:
[...] ~/abc> demo i10.aig
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Сети эквивалентны.
Чтение = 0,00 сек Переписывание = 0,18 сек Проверка = 0,41 сек
То же самое можно сделать, запустив двоичный файл в командном режиме:
[...] ~/abc> ./abc
UC Berkeley, ABC 1.01 (скомпилировано 6 октября 2012 г., 19:05:18)
abc 01> r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Сети эквивалентны.
или в пакетном режиме:
[...] ~/abc> ./abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
Команда ABC: «r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec».
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Сети эквивалентны.
Текущую версию ABC можно скомпилировать с помощью компилятора C или компилятора C++.
CC=gcc
и ABC_NAMESPACE
не определены.CC=g++
и ABC_NAMESPACE
не определено.CC=g++
и ABC_NAMESPACE
установлены на имя запрошенного пространства имён. Например, добавьте -DABC_NAMESPACE=xxx
к OPTFLAGS.Скомпилируйте код как независимый от позиции, добавив ABC_USE_PIC=1
.
Создайте цель libabc.so
:
make ABC_USE_PIC=1 libabc.so
Пожалуйста, попробуйте воспроизвести все обнаруженные ошибки и неожиданные функции, используя последнюю доступную версию ABC по адресу https://github.com/berkeley-abc/abc. Если ошибка всё ещё сохраняется, пожалуйста, предоставьте следующую информацию:
ldd
, запущенной на исполняемом файле (например, ldd abc
).find ./ -type f -exec touch "{}" \;
make ABC_USE_NO_READLINE=1
make ABC_USE_NO_PTHREADS=1
Libs_Init()
и Libs_End()
в «src/base/main/mainInit.c».Комментарий от Криша Сундаресана:
«Я обнаружил, что код корректно компилируется на Solaris, если использовать gcc (вместо g++, который я по какой-то причине использовал). Также readline, который по умолчанию недоступен в большинстве систем Sol10, необходимо установить. Я скачал пакет readline-5.2 с сайта sunfreeware.com и установил его локально. Также изменил CFLAGS, чтобы добавить локальные файлы include для readline, и LIBS, чтобы добавить локальный libreadline.a. Возможно, вы можете добавить эти шаги в файл readme, чтобы помочь людям, которые компилируют это на Solaris».
Учебник любезно предоставлен Аной Петковской из EPFL: https://www.dropbox.com/s/qrl9svlf0ylxy8p/ABC_GettingStarted.pdf
К сожалению, нет комплексного регрессионного теста. Удачи!
Эту систему поддерживает Алан Мищенко alanmi@berkeley.edu. Рассмотрите также использование фреймворка ZZ, разработанного Никласом Ином: https://bitbucket.org/niklaseen/abc-zz (или https://github.com/berkeley-abc/abc-zz).
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )