<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://avlsi.csl.yale.edu/act/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://avlsi.csl.yale.edu/act/feed.php">
        <title>The ACT VLSI design tools - language</title>
        <description></description>
        <link>https://avlsi.csl.yale.edu/act/</link>
        <image rdf:resource="https://avlsi.csl.yale.edu/act/lib/exe/fetch.php?media=wiki:logo.png" />
       <dc:date>2026-04-18T02:44:41+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:attributes&amp;rev=1723029088&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:connections&amp;rev=1681082013&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:controlflow&amp;rev=1658059663&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:debugging&amp;rev=1747597769&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:expressions&amp;rev=1745257185&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:impl&amp;rev=1681078018&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:interface&amp;rev=1759749006&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:introduction&amp;rev=1756984199&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:migrate&amp;rev=1652455388&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:namespaces&amp;rev=1722099144&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:start&amp;rev=1723029169&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:syntacticreplication&amp;rev=1756984376&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:types&amp;rev=1745245954&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:types2&amp;rev=1758277353&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://avlsi.csl.yale.edu/act/lib/exe/fetch.php?media=wiki:logo.png">
        <title>The ACT VLSI design tools</title>
        <link>https://avlsi.csl.yale.edu/act/</link>
        <url>https://avlsi.csl.yale.edu/act/lib/exe/fetch.php?media=wiki:logo.png</url>
    </image>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:attributes&amp;rev=1723029088&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-07T11:11:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>attributes</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:attributes&amp;rev=1723029088&amp;do=diff</link>
        <description>Attributes

ACT provides a mechanism to specify user-customizable attributes. These can be attached to both instances as well as production rules. Different ACT tools can use these attributes for a variety of purposes. The meaning of these attributes is not pre-specified in the ACT language; rather, the set of valid attributes is specified in the ACT configuration file, and these attributes can be queried by tools. Hence, the meaning of these attributes is determined by how they are used by tool…</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:connections&amp;rev=1681082013&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-09T23:13:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>connections</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:connections&amp;rev=1681082013&amp;do=diff</link>
        <description>Connections

When two nodes are connected to each other by wires, they effectively
become one electrical node. This connection operation is part of the
ACT language, and is denoted by the = sign.  The =
operation is also overloaded for meta-language variables to denote
assignment. Multiple connections can be specified in a single statement
by repeatedly using the</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:controlflow&amp;rev=1658059663&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-17T12:07:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>controlflow</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:controlflow&amp;rev=1658059663&amp;do=diff</link>
        <description>Control flow

Complex datapath elements are usually comprised of arrayed versions of
simpler cells. Although arrays can be created directly using arrayed
instantiations, ACT supports looping constructs which can be a
convenient way to create arrayed structures. More complex structures
such as trees can be easily created using recursive instantiations.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:debugging&amp;rev=1747597769&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-05-18T19:49:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debugging</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:debugging&amp;rev=1747597769&amp;do=diff</link>
        <description>Debugging Support

When ACT programs get long, it may be difficult to track down why a particular circuit is not being constructed properly. To help debug this, there are two basic debugging constructs provided.

Assertions

Sometimes it is useful to be able to check that a parameter (or an expression of parameters) has a reasonable 
value. To express this, ACT supports explicit assertions. We use Hoare&#039;s syntax for assertions, so the assertion that</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:expressions&amp;rev=1745257185&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-21T17:39:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>expressions</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:expressions&amp;rev=1745257185&amp;do=diff</link>
        <description>Expressions

Expression syntax in ACT is similar to expressions in the C
language. 

	*  Integer expressions: operators that are supported include +, -, *, /, and % for integer arithmetic operations, and &amp;, |, and ~ for bit-wise logical operations between integers.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:impl&amp;rev=1681078018&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-09T22:06:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>impl</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:impl&amp;rev=1681078018&amp;do=diff</link>
        <description>The Implementation relation

When types are created using either deftype or defchan,
they are defined as the implementation of a type. This is also
possible for processes defined using defproc.

Implementation

The implementation relation is used to specify the precise
implementation of a data or channel type. The most straightforward
mechanism to specify a channel is to say that it is the implementation
of a built-in data type. In the example in the</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:interface&amp;rev=1759749006&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-06T11:10:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>interface</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:interface&amp;rev=1759749006&amp;do=diff</link>
        <description>Constructors for Types

There are cases when it is useful to be able to build more complex types
from existing types. ACT provides a mechanism to do so via interfaces and 
parameter types.

Interfaces

An interface is defined in the following way:


interface linearchain (bool? in; bool! out);</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:introduction&amp;rev=1756984199&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-04T11:09:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>introduction</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:introduction&amp;rev=1756984199&amp;do=diff</link>
        <description>ACT Introduction

The Asynchronous Circuit Toolkit (ACT) is a suite of programs that can be used to design, verify, and test asynchronous circuits.  The tools share a common input language (specified in a text .act file) which can be used to describe circuits at different levels of detail. In what follows, we assume that the reader is familiar with asynchronous design  methodologies and terminology.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:migrate&amp;rev=1652455388&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-13T15:23:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>migrate</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:migrate&amp;rev=1652455388&amp;do=diff</link>
        <description>Migration guide

If you have previously used ACT (versions from 2006 to 2018), there are a few minor changes that clean up the language and make the syntax more consistent. There are also some new features that you might find helpful that simplify describing circuits in ACT.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:namespaces&amp;rev=1722099144&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-27T16:52:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>namespaces</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:namespaces&amp;rev=1722099144&amp;do=diff</link>
        <description>Namespaces

Namespaces are used as a mechanism to prevent naming conflicts when
multiple people are working on a design. While ACT can be used
without any namespaces (in which case everything is defined and
created in the default namespace Global), most large designs
will contain structure that can be used to keep the ACT files
clean and modular.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:start&amp;rev=1723029169&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-07T11:12:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>start</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:start&amp;rev=1723029169&amp;do=diff</link>
        <description>The ACT Language

This document describes the language used by the Asynchronous Circuit
Toolkit (ACT).

	*  Introduction: A brief introduction to the circuit description language, including some simple examples.
	*  Types
			*  Basic types: The care and feeding of basic type definitions and arrays.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:syntacticreplication&amp;rev=1756984376&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-04T11:12:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>syntacticreplication</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:syntacticreplication&amp;rev=1756984376&amp;do=diff</link>
        <description>Syntactic Replication

Syntactic replication (sometimes called a syntactic loop construct) is a useful construct that can be used in a variety of places. The syntactic replication construct is written as follows:


(sym id : range : body(id) )


The</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:types&amp;rev=1745245954&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-21T14:32:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>types</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:types&amp;rev=1745245954&amp;do=diff</link>
        <description>Types and Variables

Variables are the basic data objects in ACT. Instantiations specify
which variables are created, and state what type they have. The type of
an object completely specifies what the object is and how it can be
used.

Types come in two flavors: parameters and circuit elements. Parameters
are variables whose types are</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:types2&amp;rev=1758277353&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-19T10:22:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>types2</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:types2&amp;rev=1758277353&amp;do=diff</link>
        <description>User-defined types

User-defined type can be used to create complex circuit structures.  A
new user-defined type name is introduced by using defproc,
defcell, defchan, or deftype
statements. All user-defined types have the same basic structure:

	*  a type signature, that provides information about the interface to the type and the ports that are externally visible; and</description>
    </item>
</rdf:RDF>
