Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
history:start [2024/03/26 10:14] rajithistory:start [2025/06/18 16:43] (current) – [Current language features] rajit
Line 1: Line 1:
 ====== Language history ====== ====== Language history ======
  
-This is a rough chronology of the development/evolution of ACT and influences from the literature.+This is a rough chronology of the influences from the literature on the ACT language.
    
    * 1975 E.W. Dijkstra's paper on a guarded command language appears in CACM    * 1975 E.W. Dijkstra's paper on a guarded command language appears in CACM
Line 8: Line 8:
    * 1988-89: The [[https://authors.library.caltech.edu/26709/2/postscript.pdf|first asynchronous microprocessor]] was designed and fabricated at Caltech.    * 1988-89: The [[https://authors.library.caltech.edu/26709/2/postscript.pdf|first asynchronous microprocessor]] was designed and fabricated at Caltech.
  
-Language development:+===== Language development ===== 
 + 
 +This is a rough chronology of the development/evolution of ACT upto the current version of the language.
  
    * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin's group) based on their experience with designing the first asynchronous microprocessor. This was dubbed "CAST" for Caltech Asynchronous Synthesis Tools. A snippet of a circuit in this language is shown below:    * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin's group) based on their experience with designing the first asynchronous microprocessor. This was dubbed "CAST" for Caltech Asynchronous Synthesis Tools. A snippet of a circuit in this language is shown below:
Line 23: Line 25:
 define f (node a) define f (node a)
 {  node p, q; {  node p, q;
-    prs { +   prs { 
-        p -> q+ +       p -> q+ 
-     +    
-    a = p;+   a = p;
  }  }
 f(); f();
Line 35: Line 37:
    * 1998-2003 Development continued at Caltech, including embedding CAST-like syntax within the Modula-3 language. This version was used to design the Lutonium processor.    * 1998-2003 Development continued at Caltech, including embedding CAST-like syntax within the Modula-3 language. This version was used to design the Lutonium processor.
    * 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, based on lessons from using CAST for chip design. This was called ACT (version 0; 0 because the new features were not supported yet)    * 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, based on lessons from using CAST for chip design. This was called ACT (version 0; 0 because the new features were not supported yet)
-   * 2005-2008 ACT v0 was used by Achronix Semiconductor, a startup company founded by Rajit Manohar along with some of his Ph.D. students.+   * 2005-2008 ACT v0 was used by Achronix Semiconductor, a startup company founded by Rajit Manohar along with some of his Ph.D. students. The same example above would be specified as follows in ACT v0. 
 +<code> 
 +defproc f (bool a) 
 +{  bool p, q; 
 +   prs { 
 +       p -> q+ 
 +    } 
 +   a = p; 
 + } 
 +f dummy; 
 +</code>
    * 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called "HACKT") was developed by David Fang (student in Rajit Manohar's group) as part of his Ph.D. dissertation.    * 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called "HACKT") was developed by David Fang (student in Rajit Manohar's group) as part of his Ph.D. dissertation.
    * 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, neuromorphic hardware, etc.    * 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, neuromorphic hardware, etc.
Line 42: Line 54:
    * 2012, Intel acquires Fulcrum Microsystems, as well as the version of the CAST tools developed by Fulcrum.    * 2012, Intel acquires Fulcrum Microsystems, as well as the version of the CAST tools developed by Fulcrum.
    * 2017, actual implementation of the new features started at Yale with a fresh implementation of the entire system.    * 2017, actual implementation of the new features started at Yale with a fresh implementation of the entire system.
-   * 2018, Most features of ACT v1 ready+   * 2018, Most features of ACT v1 ready. The example above would be defined as follows: 
 +<code act> 
 +defproc f (bool? a) 
 +{  bool p, q; 
 +   prs { 
 +       p -> q+ 
 +    } 
 +   a = p; 
 + } 
 +f dummy; 
 +</code>
    * 1/2019, first [[http://github.com/asyncvlsi/act|open-source release]]    * 1/2019, first [[http://github.com/asyncvlsi/act|open-source release]]
    * 4/2019, documentation effort initiated    * 4/2019, documentation effort initiated
 +
 +===== Current language features =====
 +
 +Evolution of ACT Language features (current version):
 +
 +  * 1/2019: support for production rules and netlist generation
 +  * 1/2021: support for CHP simulation
 +  * 1/2022: support for mixed-signal simulation with ''Xyce''
 +  * 1/2023: trace file generation
 +  * 1/2024: support for structures
 +  * 1/2025: support for methods
 +  * 6/2025: support for SDF and multi-driver production rules