This is an old revision of the document!
System requirements
Before starting, please make sure that your system satisfies the following requirements:
- The system must have libedit installed.
- For the
yum
package manager, the package is calledlibedit-devel
- For
apt-get
, it islibeditline-dev
orlibedit-dev
- Some systems have both packages. In that case please use
libedit
, notlibeditline
.
- The system should have
zlib
installed - The system should have the macro pre-processing package
m4
installed
Build instructions
Create a directory where you'd like the tools to be installed. Example common locations include /usr/local/cad
, /opt/cad
, /opt/async
. Once you've cloned the git repo:
- Set the environment variable
ACT_HOME
to point to the install directory. - Set the environment variable
VLSI_TOOLS_SRC
to the root of the source tree (i.e. the/path/to/act
). - From the
$VLSI_TOOLS_SRC
directory, run./configure $ACT_HOME
- Run
./build
If there is an issue building the software and you want to do a clean build, use make realclean
Once you've built the tools, run make install
to install the files, and make runtest
to run through a set of test cases.
Note that the environment variable ACT_HOME
has to be set to run the ACT tools, so it is best to set it in your .bashrc
or the appropriate initialization script read in by your default shell.
Language history
This is a rough chronology of the development/evolution of ACT.
- ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin's group). This was dubbed “CAST” for Caltech Asynchronous Synthesis Tools.
- 1995, a new CAST language was designed and implemented by Rajit Manohar (student in A.J. Martin's group). This was used to implement the first high-performance asynchronous microprocessor
- A version of this language was also re-implemented at a startup company started by Andrew Lines and Uri Cummings (also in Martin's group) called Asynchronous Digital Design, and then Fulcrum Microsystems.
- Some development continued at Caltech, including embedding the language within the Modula-3 language
- 2004, a language that provided the same functionality as CAST but with syntax for new features (not implemented) was developed at Cornell by Rajit Manohar, and this was called ACT (version 0; 0 because the new features were not supported yet)
- ACT v0 was used by Achronix Semiconductor, a startup company founded by Rajit Manohar along with some of his Ph.D. students
- An open-source (GPLed) version of ACT v0 (called “HACKT”) was developed by David Fang (student in Rajit Manohar's group) as his Ph.D. work
- 2005-2014: ACT was used to implement a large number of asynchronous chips, including microprocessors, FPGAs, a GPS baseband engine, digital circuits in continuous-time signal processing hardware, etc.
- 2010, planning for all the missing pieces and language modifications to ACT v0 started
- 2011, initial template for the core language based on ACT v0 developed
- 2017, actual implementation of the new features started
- 2018, Most features of ACT v1 ready
- 1/2019, first open-source release
- 4/2019, documentation effort initiated
Synopsys linkages
Some of the library functionality can be linked into Synopsys vcs
for co-simulation support. This requires some Synopsys header files (obviously not included in the ACT distribution).