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
history:start [2022/07/12 06:09]
rajit
history:start [2024/03/26 06:14] (current)
rajit
Line 1: Line 1:
 ====== Language history ====== ====== Language history ======
  
-This is a rough chronology of the development/evolution of ACT.+This is a rough chronology of the development/evolution of ACT and influences from the literature.
    
    * 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
    * 1978 C.A.R. Hoare's paper on CSP appears in CACM    * 1978 C.A.R. Hoare's paper on CSP appears in CACM
-   * 1986 A.J. Martin describes an approach to translating communicating processes into asynchronous circuits in a paper in //Distributed Computing//.+   * 1986 A.J. Martin describes an approach to translating communicating processes into asynchronous circuits in a [[https://link.springer.com/article/10.1007/BF01660034|paper]] in //Distributed Computing//.
    * 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:
  
-   * ~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. 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:
 <code> <code>
 define prs (a)f() define prs (a)f()
Line 19: Line 19:
 cell (_)f() cell (_)f()
 </code> </code>
-   * 1995, a new CAST language ({{ :history:cast.pdf |docs}}) was developed from scratch and implemented by [[http://csl.yale.edu/~rajit|Rajit Manohar]] (at the time a graduate student in A.J. Martin's group).+   * 1995, a new CAST language ({{ :history:cast.pdf |docs}}) was developed from scratch and implemented by [[http://csl.yale.edu/~rajit|Rajit Manohar]] (at the time a graduate student in A.J. Martin's group). The same example as above would be written as follows in the new CAST syntax 
 +<code> 
 +define f (node a) 
 +{  node p, q; 
 +   prs { 
 +       p -> q+ 
 +    } 
 +   a = p; 
 + } 
 +f(); 
 +</code>
    * 1995-1998 CAST was used to implement the [[https://csl.yale.edu/~rajit/ps/minimips.pdf|first high-performance asynchronous microprocessor]].    * 1995-1998 CAST was used to implement the [[https://csl.yale.edu/~rajit/ps/minimips.pdf|first high-performance asynchronous microprocessor]].
    * ~1998 Andrew Lines and Uri Cummings from Martin's group at Caltech launch startup Asynchronous Digital Design (later renamed to Fulcrum Microsystems), which licenses the tools developed at Caltech. Over the years, Fulcrum develops more CAST tools for internal commercial use, including proprietary language extensions.    * ~1998 Andrew Lines and Uri Cummings from Martin's group at Caltech launch startup Asynchronous Digital Design (later renamed to Fulcrum Microsystems), which licenses the tools developed at Caltech. Over the years, Fulcrum develops more CAST tools for internal commercial use, including proprietary language extensions.
-   * 1998-2003 CAST used at Cornell (Rajit Manohar's group) to implement the [[https://csl.yale.edu/~rajit/ps/fpga.pdf|first pipelined asynchronous FPGA architecture]], as well as the [[https://csl.yale.edu/~rajit/ps/snap.pdf|SNAP]] low power microcontroller for sensor networks.+   * 1998-2003 CAST used at Cornell (Rajit Manohar's group) to implement the [[https://csl.yale.edu/~rajit/ps/fpga.pdf|first pipelined asynchronous FPGA architecture]], as well as [[https://csl.yale.edu/~rajit/ps/snap.pdf|SNAP]], the first low power microcontroller for sensor networks.
    * 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)
Line 31: Line 41:
    * 2011, initial template for the core language based on ACT v0 developed    * 2011, initial template for the core language based on ACT v0 developed
    * 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+   * 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
    * 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