Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
history:start [2023/02/26 13:35] – rajit | history:start [2025/01/27 12:16] (current) – rajit | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Language history ====== | ====== Language history ====== | ||
- | This is a rough chronology of the development/ | + | This is a rough chronology of the development/ |
* 1975 E.W. Dijkstra' | * 1975 E.W. Dijkstra' | ||
Line 10: | Line 10: | ||
Language development: | Language development: | ||
- | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' | + | * ~1991 (?), a language for hierarchical production rules was developed at Caltech (A.J. Martin' |
< | < | ||
define prs (a)f() | define prs (a)f() | ||
Line 19: | Line 19: | ||
cell (_)f() | cell (_)f() | ||
</ | </ | ||
- | * 1995, a new CAST language ({{ : | + | * 1995, a new CAST language ({{ : |
+ | < | ||
+ | define f (node a) | ||
+ | { node p, q; | ||
+ | prs { | ||
+ | p -> q+ | ||
+ | } | ||
+ | a = p; | ||
+ | } | ||
+ | f(); | ||
+ | </ | ||
* 1995-1998 CAST was used to implement the [[https:// | * 1995-1998 CAST was used to implement the [[https:// | ||
* ~1998 Andrew Lines and Uri Cummings from Martin' | * ~1998 Andrew Lines and Uri Cummings from Martin' | ||
Line 25: | Line 35: | ||
* 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, | + | * 2005-2008 ACT v0 was used by Achronix Semiconductor, |
+ | < | ||
+ | defproc f (bool a) | ||
+ | { bool p, q; | ||
+ | prs { | ||
+ | p -> q+ | ||
+ | } | ||
+ | a = p; | ||
+ | } | ||
+ | f dummy; | ||
+ | </ | ||
* 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called " | * 2005-2010 An open-source (GPLed) implementation of an ACT v0 variant (called " | ||
* 2005-2014: ACT was used to implement a large number of asynchronous chips, including microprocessors, | * 2005-2014: ACT was used to implement a large number of asynchronous chips, including microprocessors, | ||
Line 32: | Line 52: | ||
* 2012, Intel acquires Fulcrum Microsystems, | * 2012, Intel acquires Fulcrum Microsystems, | ||
* 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; | ||
+ | </ | ||
* 1/2019, first [[http:// | * 1/2019, first [[http:// | ||
* 4/2019, documentation effort initiated | * 4/2019, documentation effort initiated | ||
- | * 2019, first prototype of static timing analysis for asynchronous logic | + | |
- | * 2020, support for LEF/DEF exports | + | |
- | * 2020, first prototype of '' | + | ACT Language features |
- | | + | * 1/2019: support for production rules and netlist generation |
- | * 2020-2022, dataflow synthesis flow developed | + | |
- | * 2021-2023, timing-driven flow developed | + |