ProtoDe is a software tool for protocol decomposition of Signal Transition Graphs (STGs).

Download and installation

The latest release of the tool can be found on ProtoDe homepage:

The compilation of ProtoDe tool from source is performed by the following command:

  $ make

This will compile two binary files called protode and g2dot. In order to start using the tool put the binaries into a directory, which is referenced from the PATH environment variable (e.g. /usr/local/bin/). This can be done by running the following command as root:

  $ make install

If you already have the executables of, then just copy them into a directory which is referenced from your PATH environment variable.

Usage of the tool

Decomposition of a complex signal protocol, defined as an STG, into a set of simple blocks facilitates verification, synthesis and checking of circuit. Indeed, if decomposed blocks are processed separately, overall complexity is reduced. It can also be used in system design, as it is easier for a designer to observe and understand a set of STGs with small number of signals than a single complex STG.

The decomposition method [1] implemented in ProtoDe software tool starts with partitioning the set of STG signals into several non-empty sets. After that the STG is decomposed in such a way, that each decomposition block contains signals only from one of the sets. The blocks trace each other's state using read-arcs, which model wires. The result of decomposition is defined by initial partitioning of STG signals and by the optimisation heuristics [2] applied to the decomposed STG.

The detail list of protode command line parameters follows.

  -o,  --output OUTPUT_FILE_NAME     STG output file [STDOUT]
  -p,  --protocols PROTOCOLS         definition of protocols
       PROTOCOLS is a semicolon-separated list of PROTOCOL
       SIGNAL_NAMES is a coma-separated list of SIGNAL_NAME
  -ep, --extract-protocol PROTOCOL_NAMES list of set names to extract
  -o1, --optimise-a PROTOCOL_NAMES   protocols to optimise by heuristic A
  -o2, --optimise-ab PROTOCOL_NAMES  protocols to optimise by heuristics A,B
  -o3, --optimise-abc PROTOCOL_NAMES protocols to optimise by heuristics A,B,C
       Heuristic A - optimisation of choice
       Heuristic B - latency optimisation
       Heuristic C - size optimisation
  -wp, --write-protocol PROTOCOL_NAMES list of set names to write
  -ip, --implicit-places             show implicit places
  -h,  --help                        print this help only
  -v,  --version                     print version only

The tool takes an STG in .g format as an input and outputs decomposed STG in the same format. These STGs can be visualised using Graphviz graph drawing tools. ProtoDe package includes g2dot tool which converts .g files into Graphviz .dot format.


  1. D.Koppad, D.Sokolov, A.Bystrov, A.Yakovlev: "Online testing by protocol decomposition". In Proc. International On-Line Testing Symposium (IOLTS), July 2006
  2. D.Sokolov, A.Bystrov, A.Yakovlev: "Direct mapping of low-latency asynchronous controllers from STGs". Tech. Report NCL-EECE-MSD-TR-2006-110, University of Newcastle upon Tyne, January 2006

Last modified 7/6/2006 by IGC