Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
install [2019/06/21 14:55]
rajit [System requirements]
install [2023/07/09 14:04] (current)
rajit [Running large ACT files]
Line 1: Line 1:
 +====== Installing ACT ======
  
-====== System requirements ======+Primary development of ACT is conducted on Linux and MacOS, and so it has been extensively tested on such systems. It has also been tested in certain [[install#Microsoft Windows|Windows]] environments (see below). 
 + 
 +The core library is available from [[https://github.com/asyncvlsi/act|Github]]. 
 + 
 +**Note:** This only installs the core circuit design tools. For those interested in the full flow, please use the [[https://github.com/asyncvlsi/actflow|actflow]] repo. The flow repository includes the core ACT repository, and includes many additional tools including ''actsim'', ''interact'', ''chp2prs'', and ''dflowmap'' (to name a few). 
 + 
 + 
 +===== Linux/Unix-like environments =====
  
 Before starting, please make sure that your system satisfies the following requirements: Before starting, please make sure that your system satisfies the following requirements:
Line 11: Line 19:
    * The system should have the macro pre-processing package ''m4'' installed    * The system should have the macro pre-processing package ''m4'' installed
  
-====== Build instructions ======+On MacOS, these packages can be installed using the [[https://brew.sh/|homebrew]] package manager.
  
-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:+==== 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 [[http://github.com/asyncvlsi/act|git repo]]:
  
    * Set the environment variable ''ACT_HOME'' to point to the install directory.    * Set the environment variable ''ACT_HOME'' to point to the install directory.
Line 20: Line 30:
    * Run ''./build''    * Run ''./build''
  
-If there is an issue building the software and you want to do a clean build, use ''make realclean''+If there is an issue building the software and you want to do a clean build, use ''make realclean'' before re-running the build instructions above.
  
 Once you've built the tools, run ''make install'' to install the files, and ''make runtest'' to run through a set of test cases. Once you've built the tools, run ''make install'' to install the files, and ''make runtest'' to run through a set of test cases.
Line 26: Line 36:
 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. 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 ======+Optional: to add the tools to your path add ''export PATH=$ACT_HOME/bin:$PATH'' to your ''.bashrc'' too 
 + 
 +==== Troubleshooting ==== 
 + 
 +If you have trouble building on your specific operating system have a peek in the continuous integration scripts of the git repository if your operating system is covered there and you can try the commands specified: 
 + 
 +https://github.com/asyncvlsi/act/blob/master/.circleci/config.yml 
 + 
 +for ''Debian'', ''Ubuntu'' look at the ubuntu 18 section 
 + 
 +for ''RHEL'', ''SUSE'', ''CentOS'', ''Fedora'' look at centos 8 section 
 + 
 + 
 +===== Microsoft Windows ===== 
 + 
 +Recent versions of Windows include compatibility layers for Unix, and ACT has been successfully tested in such an environment. 
 + 
 +[[windows_build|Some instructions for running ACT tools on Microsoft Windows]]
  
-This is a rough chronology of the development/evolution of ACT.+===== Running large ACT files =====
  
-   * ~1991 (?), language for hierarchical production rules was developed at Caltech (A.J. Martin's group). This was dubbed "CAST" for Caltech Asynchronous Synthesis Tools. +ACT files are typically short since they are written by designerHoweveran ACT file generated by another program---especially if the program generates flattened design---can be largeIf an ACT process (or a namespacehas very large number of instances/connections that are individually listed (i.e. in the input file) and the library crashestry removing system limits on the stack size (using ''unlimit'' or ''ulimit'' depending on your shell) and re-running the program.
-   * 1995a 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, 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 +
-   * 2011initial 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 ======+NOTE: This issue has been fixed as of 7/10/2023. 
 +===== 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). 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).