<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>A Tool for the Synthesis of Asynchronous Speed- Independent Circuits</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ondrej Gallo</string-name>
          <email>ondrej.gallo@stuba.sk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tomáš Nečas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fedor Lehocki</string-name>
          <email>fedor.lehocki@stuba.sk</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Faculty of Electrical Engineering and Information Technology, Slovak University of Technology</institution>
          ,
          <addr-line>Ilkovičova 3, 812 19 Bratislava</addr-line>
          ,
          <country>Slovak Republic</country>
        </aff>
      </contrib-group>
      <fpage>207</fpage>
      <lpage>211</lpage>
      <abstract>
        <p>The present work is devoted to the development of software tool written in Java for synthesis of asynchronous speed-independent circuits. A special type of Petri nets - Signal Transition Graph, was used for the synthesis. Using the algorithm based on the theory of regions, a logic function is derived from this graph. In order to reduce the complexity of the resulting asynchronous circuit the number of gates should be minimized by optimization of logical function with a Quine-McCluskey algorithm.</p>
      </abstract>
      <kwd-group>
        <kwd>Synthesis Asynchronous Speed-Independent Circuit</kwd>
        <kwd>Signal Transition Graph</kwd>
        <kwd>State Graph</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Asynchronous circuits have gained in importance along with the expansion of the
production of high integration circuits. By that time, mostly synchronous systems
were designed. Decreasing the dimensions and increasing the operating frequency,
however, made the synchronisation of individual function blocks on a chip more
difficult. The time delay is generally caused by the increased cycle of timing signal. This
delay (for the individual function blocks) differs locally to such a degree that it results
in the synchronisation failure of the individual subsystems and the malfunction of the
circuit. This issue can be solved by adding a special regulation circuit providing a
constant clock frequency in the whole chip. Such a circuit would occupy relatively
much space on a chip (approx. 10%) and consume much power (approximately 40%
of the input power). This would result in the increasing cost and energy demand of
such chips. The application of asynchronous circuits provides a different approach.</p>
      <sec id="sec-1-1">
        <title>These circuits do not need a clock signal because their operation is controlled by</title>
        <p>events and not by time. As no clock signal generation is required and no regulation
circuitry is needed, such circuits are smaller and consume less energy. The only issue
that is common for both synchronous and asynchronous circuits is the presence of
socalled hazardous states.</p>
      </sec>
      <sec id="sec-1-2">
        <title>The aim of this work is to provide a tool for the synthesis of asynchronous circuits</title>
        <p>that generates a circuit diagram as a result of the circuit behavior. The field of digital
circuit synthesis is complex and provides many solution approaches. One of them is
represented by the application of the Petri nets formalism as a description tool for the
behavior of an arbitrary digital circuit. Application of algorithms for STG synthesis
(e.g. based on the region theory) a logical function is derived (using
Quine</p>
      </sec>
      <sec id="sec-1-3">
        <title>McCluskey algorithm) and presented in the form of a circuit diagram.</title>
        <p>2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>Basic definitions</title>
      <sec id="sec-2-1">
        <title>The signal transition graph (STG) [1] is a specially labelled Petri net that is defined</title>
        <p>as a heptad (P, T, F, M0, N, s0, λT), where P is set of places, T is the set of transitions,
F is the flow relation F ⊆ (P × T) ∪ (T × P), M0 is the initial marking of Petri net, N =
I ∪ O is a set of signals, I is a set of input signals and O is a set of output signals. s0
represents the initial value for each signal in its initial state and λT: T → N × {+, −} is
the transition labelling function.</p>
        <p>
          The state graph SG [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] is basically a reachability graph for the STG. Compared
with the reachability graph, states in the state graph are labelled more functionally. It
can be designed only in the case that the reachability graph is bounded, i.e. the
number of reachable labels is finite. This graph in its final form is being used for the
derivation of logical functions in the synthesis of asynchronous circuits. The state graph is
formally defined as a triplet (S, δ, λS). S is a set of all the states, δ ⊆ S × T × S is a set
of state transitions and λS : S → (N→{0,1}) is a function of state labelling.
        </p>
        <p>Each state is labelled by a binary vector (s(0), s(1), ..., s(n)), where each signal s(i)
i ∈{0, 1, … n} can acquire values from the set {0, 1}. Although for a better
illustration of the graphical representation of possible states, individual signals can also
acquire possible values from the set {0, 1, R, F}. This form of labelling also provides
information as to whether the respective signal is excited or not. The excited signal
represents a change in its value from 0 to 1 or vice versa. This is illustrated by the
characters R or F. The R character denotes the signal value in the SG being equal to 0
but where its value has changed to 1 in the subsequent state s(i). The signal is able to
reach the next state because the respective transition could be started. This transition
is labelled ui+ by using the labelling function λT(t). Similarly, the F character denotes
the signal value being equal to 1 and to 0 in the subsequent state. The excited state
can be formally defined as follows:
∃(si, t, sj) ∈ δ . λT(t) = ui+ ∨ λT(t) = ui−.
(1)</p>
      </sec>
      <sec id="sec-2-2">
        <title>Each signal is labelled in the STG as a transition representing the front edge of the</title>
        <p>signal ui+ or the decay of the signal ui−. As stated hereinabove, STG is a special Petri
net fulfilling the following properties:</p>
      </sec>
      <sec id="sec-2-3">
        <title>Input free-choice: The starting sequence of the respective transition (signal) is controlled by the so-called mutual exclusion of input signals. It is indicated by a special transition in the transition graph.</title>
      </sec>
      <sec id="sec-2-4">
        <title>Boundedness: This property of the transition graph provides that the state graph (to be defined later in the text) shall acquire a finite number of states. The transition graph is single-bounded when just a single label is in each place. The transition graph must be a safe Petri net.</title>
      </sec>
      <sec id="sec-2-5">
        <title>Liveness: The STG must be free from deadlocks.</title>
      </sec>
      <sec id="sec-2-6">
        <title>State consistency: All transitions providing front edge and a decay of the signal</title>
        <p>must strictly alter between + and − in any execution of the STG.</p>
      </sec>
      <sec id="sec-2-7">
        <title>Complete state coding (CSC): This property is checked in SG. This means that a</title>
        <p>pair of states of S has a unique state coding defined by the labelling function λS, or it
does not have the unique state coding but it does contain the same output signal
excited in each state. If this property is not fulfilled, a new signal or signals are to be
inserted into the SG.</p>
      </sec>
      <sec id="sec-2-8">
        <title>Persistency: If a transition is enabled, it is fired and the label is transferred from the</title>
        <p>place ahead of the transition to the place or places behind, provided that this start shall
not be deactivated by another transition. This property must be provided for the input
and internal signals. The persistency of the input signals must be ensured by the
environment of the designed circuit.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3 Software description</title>
      <sec id="sec-3-1">
        <title>The model of the circuit behavior represents an input for our tool (ACDesigner</title>
        <p>
          [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]). In the process of the circuit’s design, designers mostly prefer the timing diagram
of the circuit’s behavior. In this diagram, all input and output signals, and causalities
between the signals, are recorded. Thus if a timing diagram is available a special Petri
net (Signal Transition Graph) can be formed, representing the input for our software.
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>By means of the algorithm presented by Cortadella et al. [3], we derive an asynchro</title>
        <p>
          nous speed–independent circuit whose behavior is characterized by the STG. Speed
independence is a property ensuring the correct circuit operation considering that all
logical gates have unbounded delay [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. The graphical representation of the circuit
synthesis process is shown in Fig. 1.
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Timing</title>
      </sec>
      <sec id="sec-3-4">
        <title>Diagram</title>
      </sec>
      <sec id="sec-3-5">
        <title>ACDesigner STG SG</title>
      </sec>
      <sec id="sec-3-6">
        <title>Logic</title>
      </sec>
      <sec id="sec-3-7">
        <title>Circuit</title>
        <p>
          After loading STG in the software, the required properties (boundedness,
consistency, persistency, input free-choice, liveness, and complete state coding) are verified
and the SG is derived. In some cases, the state graph does not comply with the CSC
property. The solution of this issue is based on the insertion of new states into the SG
according to the algorithm published in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. An example of the SG fulfilling
the CSC (new signal csc0) property is shown in Fig. 2b. SG is an intermediate product
in the process of synthesis and it is not visualised in our tool.
        </p>
      </sec>
      <sec id="sec-3-8">
        <title>The state graph is divided into regions and intersections of some regions. The best regions covering conflicts are selected (for each iteration only one conflict is selected). After selection of the conflict the environment is added (consisting of</title>
        <p>
          neighbor regions) and the cost function is calculated [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. This function serves as a
basis to determine direction of the SG search to find the most suitable place for the
insertion of the new signal. After reduction of the number of possible insertion points,
the best one is selected for which the least complicated circuit is formed. This
iteration should also be repeated several times, because single signal insertion may not
solve all the conflicts, and new ones could even appear. The algorithm, however,
converges to a solution that was confirmed experimentally in the reference [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. If SG
fulfils the CSC property, a logic function is derived for each output and new (internal)
signal. The minimisation of the logic function, which is required with respect to the
resulting number of gates, is the next step. The Quine-McCluskey algorithm [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] was
applied in our software to minimise the logic function. At this level, requirements can
also be laid on the application of particular gate types. In our case, we focused on the
use of the standard 2-input gates of AND, OR type and on the NOT gate.
        </p>
      </sec>
      <sec id="sec-3-9">
        <title>A Petri net in PNML format [7], which can be designed by using other tools, e.g.</title>
        <p>
          PNEditor [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] or VipTool [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ], is the input file in this ACDesigner version. The net
must contain a label indentifying the signal type (input or output signal). In a Petri
net, signals are represented by transitions. Therefore, they must be labelled as the
input or output signals. In Fig. 2a, a demonstration of the Petri net is shown including
the labelling of transitions with the keywords “in” and “out”. The name is arbitrary
provided that it ends either with the + or − sign. For the designer, it is an indication of
the signal change from 0 to 1 (+ sign) or from 1 to 0 (− sign), respectively.
        </p>
        <p>out LDS+
in LDTACK+</p>
        <p>in DSr+
out D+
out
DTACK</p>
        <p>in
LDTACKout DTACK+
out
D</p>
        <p>P8 out
LDS</p>
        <p>P1</p>
        <p>P5
P3
P4
P6
P9
in
DSr</p>
        <p>P2
P0
P7
p10
(a)
100R01 csc0+
10000R</p>
        <p>DSr+</p>
        <p>R00000 DTACK- 0F0000
LDS+
10R101
LDTACK+
1011R1
D+
1R1111</p>
        <p>DTACK+
10F000</p>
        <p>LDS101F00</p>
        <p>LDTACK</p>
        <p>LDTACK</p>
        <p>LDTACKDSr+</p>
        <p>R0F000 DTACK- 0FF000</p>
        <p>LDS</p>
        <p>LDSDSr+</p>
        <p>R01F00 DTACK- 0F1F00
F11111</p>
        <p>01111F</p>
        <p>DSr(b)
csc0</p>
        <p>D0111F0
(c)</p>
        <p>Fig. 2. (a) Input format of Petri nets - STG, (b) SG fulfilling the CSC property,
binary vector is &lt;DSr, DTACK, LDTACK, LDS, D, csc0&gt;, (c) resulting logical circuit.</p>
      </sec>
      <sec id="sec-3-10">
        <title>The software output is shown in Fig. 2c. The user can save the generated circuit in two formats, either as XML or as JPG.</title>
        <p>4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Conclusion</title>
      <p>The algorithm of the synthesis of asynchronous speed-independent circuits was
implemented for the first time in the petrify tool [10]. Due to the absence of the
graphical visualisation of the resulting circuit, we decided to programme our own
tool, which would include this functionality. The software is written in Java ver. 1.6,
which ensures platform independence. The implementation of more methods of
logical circuits’ synthesis will be the next step. These methods should take advantage of a
non-standard memory element (C-element). The utilization of this element may
prevent the occurrence of several hazardous states. Moreover, it has a very fast memory
and can be easily implemented on a chip. The extension of support to multiple input
and output formats is another important step in our development. One of the possible
input formats could be the timing diagram, which is easy understandable to many
designers. If a logical circuit is designed, it must be verified by the simulation process.</p>
      <sec id="sec-4-1">
        <title>This option is provided by another professional simulation software (e.g. Protel,</title>
      </sec>
      <sec id="sec-4-2">
        <title>PSPICE, and CADENCE) that requires its own specific file format. From that point of view, our tool will be extended with respective additional functionalities.</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Chris</surname>
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Myers</surname>
          </string-name>
          , Asynchronous Circuit Design, John Wiley &amp; Sons, July,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. ACDesigner:
          <article-title>A tool for synthsis of asynchronous circuits</article-title>
          : http://gordan.matmas.net/acdesign er/
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kondratyev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          , Hardware and Petri Nets: Application to Asynchronous Circuit Design,
          <source>Application and Theory of Petri Nets</source>
          <year>2000</year>
          , Lecture Notes in Computer Science vol.
          <year>1825</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>15</lpage>
          , Springer Verlag,
          <year>June 2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kondratyev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          ,
          <article-title>A region-based theory for state assignment in speed-independent circuits</article-title>
          ,
          <source>IEEE Trans. on CAD</source>
          , vol.
          <volume>16</volume>
          , no.
          <issue>8</issue>
          ,
          <year>August 1997</year>
          , pp.
          <fpage>793</fpage>
          -
          <lpage>812</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cortadella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kishinevsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lavagno</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Yakovlev</surname>
          </string-name>
          .
          <article-title>Deriving Petri nets from finite transition systems</article-title>
          . Universitat Politecnica de Catalunya,
          <source>Tech. Rep. UPC-DAC-96-19</source>
          ,
          <year>June 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Brian</surname>
            <given-names>Holdsworth</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>R. Clive</given-names>
            <surname>Woods</surname>
          </string-name>
          ,
          <source>Digital logic design 4th edition</source>
          , Newnes,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <article-title>7. The Petri Net Markup Language: www</article-title>
          .informatik.hu-berlin.de/top/pnml/
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. PNeditor:
          <article-title>A tool for modeling Petri nets</article-title>
          . https://pneditor.matmas.net/
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. VipTool:
          <article-title>A tool for modeling Petri nets</article-title>
          . http://viptool.ku-eichstaett.de 10.
          <article-title>Petrify: A tool for synthesis of Petri nets and asynchronous controllers</article-title>
          . http://www.lsi.upc.edu/~jordicf/petrify.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>