<?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:langs</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-05-11T15:11:56+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:chp&amp;rev=1763403988&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:dflow&amp;rev=1721670845&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:hse&amp;rev=1652446243&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:prs&amp;rev=1723028991&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:refine&amp;rev=1753127250&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:sizing&amp;rev=1756656248&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:spec&amp;rev=1734610718&amp;do=diff"/>
                <rdf:li rdf:resource="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:start&amp;rev=1657539829&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:langs:chp&amp;rev=1763403988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-17T18:26:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>chp</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:chp&amp;rev=1763403988&amp;do=diff</link>
        <description>The chp sublanguage

The CHP sublanguage is an evolution of Dijkstra&#039;s guarded commands notation and Hoare&#039;s CSP. It is a programming notation augmented with send/receive primitives for communication and parallel composition. A chp program is specified in ACT as follows:</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:dflow&amp;rev=1721670845&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-22T17:54:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dflow</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:dflow&amp;rev=1721670845&amp;do=diff</link>
        <description>The dataflow sublanguage

The dataflow sublanguage provides a convenient short-hand when designing asynchronous circuits using pipelined asynchronous circuits. The dataflow language operates exclusively on channels, and treats channels as variables to specify the dataflow computation.</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:hse&amp;rev=1652446243&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-13T12:50:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>hse</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:hse&amp;rev=1652446243&amp;do=diff</link>
        <description>The hse sublanguage

The handshaking expansion language uses the same syntax as CHP, with the following restrictions:

	*  All variables are Boolean-valued
	*  Communication actions are not permitted; they should be expanded into handshake protocols, hence the name</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:prs&amp;rev=1723028991&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-07T11:09:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>prs</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:prs&amp;rev=1723028991&amp;do=diff</link>
        <description>The prs sublanguage

The prs sublanguage is used to specify production rules. Production rules are the syntax used by ACT to specify pull-up and pull-down networks for a gate. For example, an inverter with input a and output b would be specified by the following production rule:</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:refine&amp;rev=1753127250&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-21T19:47:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>refine</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:refine&amp;rev=1753127250&amp;do=diff</link>
        <description>The refine sublanguage

The refine sub-language takes the form


refine {
    /* any standard ACT body element can appear here */
}


This is used to provide an implementation of a process that replaces the CHP, dataflow, HSE, or PRS body. For example, imagine you had a process defined at the CHP level</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:sizing&amp;rev=1756656248&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-31T16:04:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sizing</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:sizing&amp;rev=1756656248&amp;do=diff</link>
        <description>Sizing sub-language

The sizing sub-language is used to simplify gate sizing specifications. The prs sub-language already provides a mechanism to specify sizing, but this can become very verbose. For example, consider an inverter


prs {
  in =&gt; out-
}</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:spec&amp;rev=1734610718&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-19T12:18:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>spec</title>
        <link>https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:spec&amp;rev=1734610718&amp;do=diff</link>
        <description>The spec sublanguage

The spec sublanguage is used to specify properties or requirements for the circuit. A standard spec directive has the following syntax:


spec {
    directive_name (sig1, sig2, ...)
    directive_name (sig1, sig2, ...)
    ...
}</description>
    </item>
    <item rdf:about="https://avlsi.csl.yale.edu/act/doku.php?id=language:langs:start&amp;rev=1657539829&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-11T11:43: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:langs:start&amp;rev=1657539829&amp;do=diff</link>
        <description>Hardware description and specification languages

ACT permits the specification and description of circuits at multiple levels of abstraction. These languages are embedded into ACT as sub-languages. These  sub-languages can be used to specify circuits in a variety of ways and at different levels of abstraction. Some sub-languages are only useful when combined with others.</description>
    </item>
</rdf:RDF>
