What is ACMgen

ACMgen is an automatic code generator for Asynchronous Communication Mechanisms. At the present time it supports the generation of C++ source code, SMV models and Petri net models of ACMs that allows re-reading or overwriting of data items or both. Next step is the generation of Verilog code.

More details about ACMs and automatic generation of ACMs can be found in the Publications section.

Download it

ACMgen is available under the GPLv2 license and it is currently hosted at github.

How to compile and install it?

You will need the following libraries to compile ACMgen:

    • libcommons-cli-java (>= 1.0-6)

    • libglade-java (>=

    • libgtk-java (>= 2.6.2-1) and

    • libgtk-jni (>= 2.6.2-1)

You will also need the Eclipse tool to compile ACMgen. Extract the files from the .tar.gz file and import then into your workspace. Then compile it. everything should works fine.

How to run it?

The Debian package is installed under your /usr directory tree. The ACMgen provides a command line tool ( and a GUI interface (

To use the GUI, just execute the command:


and the following window should open into your desktop:


If you have problems, try to add the following line to the /etc/ file


To see the command line options use:

$ -h


OPTION: --rrbb | --owbb | --owrrbb

ACTION: --pep | --petrify | --smv | --smvpn | --cpp

-C,--cpp Generates C++ code for the ACM.

-P,--petrify Generates input file for Petrify.

-S,--smvpn Generates input file for SMV with abstract model and


-b,--owrrbb Generates a OWRRBB ACM of size , where

is an integer such that > 2.

-h,--help Print this help message.

-o,--owbb Generates a OWBB ACM of size , where is

an integer such that > 2.}}}

-p,--pep Generates input file for PEP describing a low level

Petri net.

-r,--rrbb Generates a RRBB ACM of size , where is

an integer such that > 3.

-s,--smv Generates input file for SMV with abstract model.

If you have problems, please write me.