Usage: [executable] <actfile> <process> <outfile> [--optimize] [--bundled]
Note that process
should be of the form "[procname]<>"
to ensure correct execution.
The --optimize
flag will add sequencer optimization to the chp2prs compilation.
The --bundled
flag will use bundled data instead of dualrails to represent data.
A continuation of a project with Rajit Manohar's AVLSI group (see the original, which was developed by Zeb Mehring as part of his senior project at Yale). A program which takes in an .act
file of the form:
defproc foo() {
/* variable delcarations */
chp {
...
}
}
foo f;
and compiles the constituent CHP into ACT:
defproc toplevel(a1of1 go) {
/* compiled ACT */
...
}
toplevel t;
using the libraries provided.
The conversion is accomplished using syntax-directed translation, which is jusfitied using direct process decomposition.
This program is for use with the ACT toolkit.
- Please install the ACT toolkit first; installation instructions are here.
- Build this program using the standard ACT tool install instructions here.
make runtest
will test the correctness of the repository by iterating through the the test/unit_tests folder and reporting the number of passing or failing tests.
make runtest optimize=1
will pass the "--optimize" flag to the chp2prs executable to check the correctness of the unit tests with sequencer optimizations.
make runtest bundled=1
will pass the "--bundled" flag to the chp2prs executable to check the correctness of the unit tests with bundled data.
make testreps unit={unit_test_name}
can be used to test the robustness of a test in terms of random timing. The command repeatedly runs the prsim script of unit test and feeds a different random_seed number each time. The output of the prsim tests are fed into a unit_test's test_rand.prsim
file. The script will stop when it encounters a prsim failure.
The source code for this tool is released under the GNU GPLv2. The ACT files that provide supporting library functions (the lib/ directory) are released under GNU LGPLv2.1.