=Paper= {{Paper |id=None |storemode=property |title=A Tool for the Synthesis of Asynchronous Speed-Independent Circuits |pdfUrl=https://ceur-ws.org/Vol-827/16_OndrejGallo_article.pdf |volume=Vol-827 |dblpUrl=https://dblp.org/rec/conf/acsd/GalloNL10 }} ==A Tool for the Synthesis of Asynchronous Speed-Independent Circuits== https://ceur-ws.org/Vol-827/16_OndrejGallo_article.pdf
           A Tool for the Synthesis of Asynchronous Speed-
                        Independent Circuits
                           Ondrej Gallo, Tomáš Nečas, Fedor Lehocki

                    Faculty of Electrical Engineering and Information Technology,
                                  Slovak University of Technology,
                           Ilkovičova 3, 812 19 Bratislava, Slovak Republic
                  ondrej.gallo@stuba.sk, xnecas@is.stuba.sk, fedor.lehocki@stuba.sk



          Abstract. 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.
          Keywords: Synthesis Asynchronous Speed-Independent Circuit, Signal Transi-
          tion Graph, State Graph.



   1 Introduction

      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 dif-
   ficult. 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.
   These circuits do not need a clock signal because their operation is controlled by
   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 so-
   called hazardous states.
      The aim of this work is to provide a tool for the synthesis of asynchronous circuits
   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




Recent Advances in Petri Nets and Concurrency, S. Donatelli, J. Kleijn, R.J. Machado, J.M. Fernandes
(eds.), CEUR Workshop Proceedings, ISSN 1613-0073, Jan/2012, pp. 207–211.
208 Petri Nets & Concurrency                                            Gallo, Nečas, and Lehocki




 (e.g. based on the region theory) a logical function is derived (using Quine-
 McCluskey algorithm) and presented in the form of a circuit diagram.


 2 Basic definitions

     The signal transition graph (STG) [1] is a specially labelled Petri net that is defined
 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.
     The state graph SG [1] 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 num-
 ber of reachable labels is finite. This graph in its final form is being used for the deri-
 vation 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.
     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 illustra-
 tion of the graphical representation of possible states, individual signals can also ac-
 quire possible values from the set {0, 1, R, F}. This form of labelling also provides in-
 formation 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)

    Each signal is labelled in the STG as a transition representing the front edge of the
 signal ui+ or the decay of the signal ui−. As stated hereinabove, STG is a special Petri
 net fulfilling the following properties:
    Input free-choice: The starting sequence of the respective transition (signal) is con-
 trolled by the so-called mutual exclusion of input signals. It is indicated by a special
 transition in the transition graph.
    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.
    Liveness: The STG must be free from deadlocks.
A tool for speed-independent circuits                   Petri Nets & Concurrency – 209




     State consistency: All transitions providing front edge and a decay of the signal
  must strictly alter between + and − in any execution of the STG.
     Complete state coding (CSC): This property is checked in SG. This means that a
  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 ex-
  cited in each state. If this property is not fulfilled, a new signal or signals are to be in-
  serted into the SG.
     Persistency: If a transition is enabled, it is fired and the label is transferred from the
  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 envi-
  ronment of the designed circuit.


  3 Software description

     The model of the circuit behavior represents an input for our tool (ACDesigner
  [2]). 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.
  By means of the algorithm presented by Cortadella et al. [3], we derive an asynchro-
  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 [1]. The graphical representation of the circuit
  synthesis process is shown in Fig. 1.

                                    ACDesigner
          Timing                                                             Logic
          Diagram                     STG                 SG
                                                                             Circuit


                Fig. 1. Graphical representation of the particular steps in synthesis.

     After loading STG in the software, the required properties (boundedness, consis-
  tency, 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 [4] and [5]. 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.
     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 se-
  lected). After selection of the conflict the environment is added (consisting of
210 Petri Nets & Concurrency                                                                           Gallo, Nečas, and Lehocki




 neighbor regions) and the cost function is calculated [4]. This function serves as a ba-
 sis to determine direction of the SG search to find the most suitable place for the in-
 sertion 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 itera-
 tion 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, con-
 verges to a solution that was confirmed experimentally in the reference [4]. If SG ful-
 fils 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 [6] 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.
     A Petri net in PNML format [7], which can be designed by using other tools, e.g.
 PNEditor [8] or VipTool [9], 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 in-
 put 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.
                             out LDS+

                                                                  100R01            10000R            R00000             0F0000
                                                                            csc0+              DSr+             DTACK-
                   P3             P2

                                                                     LDS+              LDTACK-           LDTACK-            LDTACK-
      in LDTACK+                  in DSr+

                                                                     10R101         10F000            R0F000             0FF000
                   P4             P0                 P1                                        DSr+             DTACK-

         out D+                   out DTACK-         in LDTACK-
                                                                     LDTACK+           LDS-              LDS-               LDS-
                   P6             P7                 P5
                                                                     1011R1         101F00            R01F00             0F1F00
                                                                                               DSr+             DTACK-
      out DTACK+    out D-
                                        P8     out LDS-
                                                                     D+                                                     D-
                   P9             p10
                                                                     1R1111         F11111            01111F             0111F0

                                                                           DTACK+              DSr-             csc0-
                   in DSr-

                                 (a)                                                          (b)




                                              (c)
    Fig. 2. (a) Input format of Petri nets - STG, (b) SG fulfilling the CSC property, bi-
  nary vector is , (c) resulting logical circuit.
A tool for speed-independent circuits                 Petri Nets & Concurrency – 211




  The software output is shown in Fig. 2c. The user can save the generated circuit in
  two formats, either as XML or as JPG.


  4 Conclusion

     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 logi-
  cal 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 pre-
  vent 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 de-
  signers. If a logical circuit is designed, it must be verified by the simulation process.
  This option is provided by another professional simulation software (e.g. Protel,
  PSPICE, and CADENCE) that requires its own specific file format. From that point of
  view, our tool will be extended with respective additional functionalities.


  References

  1. Chris J. Myers, Asynchronous Circuit Design, John Wiley & Sons, July, 2001.
  2. ACDesigner: A tool for synthsis of asynchronous circuits: http://gordan.matmas.net/acdesign
      er/
  3. J. Cortadella, M. Kishinevsky, A. Kondratyev, L. Lavagno and A. Yakovlev, Hardware and
      Petri Nets: Application to Asynchronous Circuit Design, Application and Theory of Petri
      Nets 2000, Lecture Notes in Computer Science vol. 1825, pp. 1-15, Springer Verlag, June
      2000.
  4. J. Cortadella, M. Kishinevsky, A. Kondratyev, L. Lavagno and A. Yakovlev, A region-based
      theory for state assignment in speed-independent circuits, IEEE Trans. on CAD, vol. 16, no.
      8, August 1997, pp. 793-812.
  5. J. Cortadella, M. Kishinevsky, L. Lavagno and A. Yakovlev. Deriving Petri nets from finite
      transition systems. Universitat Politecnica de Catalunya, Tech. Rep. UPC-DAC-96-19, June
      1996.
  6. Brian Holdsworth, R. Clive Woods, Digital logic design 4th edition, Newnes, 2002.
  7. The Petri Net Markup Language: www.informatik.hu-berlin.de/top/pnml/
  8. PNeditor: A tool for modeling Petri nets. https://pneditor.matmas.net/
  9. VipTool: A tool for modeling Petri nets. http://viptool.ku-eichstaett.de
  10.Petrify: A tool for synthesis of Petri nets and asynchronous controllers.
      http://www.lsi.upc.edu/~jordicf/petrify.