ABC

Description

From the ABC Developer's site: ABC is a growing software system for synthesis and verification of binary sequential logic circuits appearing in synchronous hardware designs. ABC combines scalable logic optimization based on And-Inverter Graphs (AIGs), optimal-delay DAG-based technology mapping for look-up tables and standard cells, and innovative algorithms for sequential synthesis and verification. ABC provides an experimental implementation of these algorithms and a programming environment for building similar applications.

Version

  • 161025

Authorized Users

  • CIRCE account holders
  • SC account holders

Platforms

  • CIRCE cluster
  • SC cluster

Modules

ABC requires the following module file to run:

  • apps/abc/161025

Running ABC on CIRCE/SC

The ABC user guide is essential to understanding the application and making the most of it. The guide and this page should help you to get started with your simulations. Please refer to the Documentation section for a link to the guide.

  • Note on CIRCE: Make sure to run your jobs from your $WORK directory!
  • Note: Scripts are provided as examples only. Your SLURM executables, tools, and options may vary from the example below. For help on submitting jobs to the queue, see our SLURM User’s Guide.

Using ABC

To use the console interface, simply run the following command at the prompt:

[user@login0 ~]$ abc

Run-time help can be obtained by typing "help" while in abc, which will list all of the available commands. Help for each command can be obtained by typing "command_name -h" while in the abc prompt.


Simulations Longer than 20 Minutes in Length

To run ABC jobs on CIRCE/SC, users will need to start an interactive session through the scheduling environment if their jobs take more than 20 minutes to run on a standard PC.

1. You will need to run the command below with example resources:

[user@login0 ~]$ srun --time=04:00:00 --nodes=1 --ntasks-per-node=2 --pty /bin/bash
[user@wh-520-3-7 ~]$

2. If all goes well, you should get dropped into an interactive shell on the execution host (for this example: wh-520-3-7). The last step is to load the ABC module as described above and then start SIS on the command line:

[user@wh-520-3-7 ~]$ module load apps/abc/161025
[user@wh-520-3-7 ~]$ sis


Submitting Batch Jobs to the Queue

1. Using the example provided by the vendor, copy the "i10.aig" from /apps/abc/161025/test/ to your work directory.

[user@login0 ~]$ cd $WORK
[user@login0 ~]$ mkdir abc-test
[user@login0 ~]$ cd abc-test

2. You would set up a submit script like the following:

#!/bin/bash
#
#SBATCH --comment=abc-test
#SBATCH --ntasks=1
#SBATCH --job-name=abc-test
#SBATCH --output=output.%j.abc-test
#SBATCH --time=01:00:00

#### Slurm 1 processor ABC test to run for 1 hour.

module load apps/abc/161025

abc -c "read i10.aig; balance; print_stats; balance; rewrite -l; rewrite -lz; balance; rewrite -lz; balance; print_stats; cec" 

3. Then, you can change to your job's directory, and run the sbatch command to submit the job:

[user@login0 ~]$ sbatch ./abc-test.sh

4. You can view the status of your job with the "squeue -u <username>" command

5. When the job has finished, the output can be found in the output.#####.abc-test file. The file name will be based on the options that you give it in the --output flag of the script above.

Documentation

Home Page, User Guides, and Manuals

Benchmarks, Known Tests, Examples, Tutorials, and Other Resources

  • The ABC Quick Start Guide
    • /apps/abc/161025/docs/ABC_GettingStarted.pdf
  • ABC Examples
    • /apps/abc/161025/test/

More Job Information

See the following for more detailed job submission information:

Reporting Bugs

Report bugs with ABC to the IT Help Desk: rc-help@usf.edu