<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">A Tool for the Synthesis of Asynchronous Speed-Independent Circuits</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Ondrej</forename><surname>Gallo</surname></persName>
							<email>ondrej.gallo@stuba.sk</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Electrical Engineering and Information Technology</orgName>
								<orgName type="institution">Slovak University of Technology</orgName>
								<address>
									<addrLine>Ilkovičova 3</addrLine>
									<postCode>812 19</postCode>
									<settlement>Bratislava</settlement>
									<country key="SK">Slovak Republic</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Tomáš</forename><surname>Nečas</surname></persName>
							<email>xnecas@is.stuba.sk</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Electrical Engineering and Information Technology</orgName>
								<orgName type="institution">Slovak University of Technology</orgName>
								<address>
									<addrLine>Ilkovičova 3</addrLine>
									<postCode>812 19</postCode>
									<settlement>Bratislava</settlement>
									<country key="SK">Slovak Republic</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Fedor</forename><surname>Lehocki</surname></persName>
							<email>fedor.lehocki@stuba.sk</email>
							<affiliation key="aff0">
								<orgName type="department">Faculty of Electrical Engineering and Information Technology</orgName>
								<orgName type="institution">Slovak University of Technology</orgName>
								<address>
									<addrLine>Ilkovičova 3</addrLine>
									<postCode>812 19</postCode>
									<settlement>Bratislava</settlement>
									<country key="SK">Slovak Republic</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">A Tool for the Synthesis of Asynchronous Speed-Independent Circuits</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">2E6CE5AE99B4FA7D51677EC204022007</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T13:52+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Synthesis Asynchronous Speed-Independent Circuit</term>
					<term>Signal Transition Graph</term>
					<term>State Graph</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><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></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><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. 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 socalled hazardous states.</p><p>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 (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.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Basic definitions</head><p>The signal transition graph (STG) <ref type="bibr" target="#b0">[1]</ref> is a specially labelled Petri net that is defined as a heptad (P, T, F, M 0 , N, s 0 , λ T ), where P is set of places, T is the set of transitions, F is the flow relation F ⊆ (P × T) ∪ (T × P), M 0 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. s 0 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 <ref type="bibr" target="#b0">[1]</ref> 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 u i + 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:</p><formula xml:id="formula_0">∃(s i , t, s j ) ∈ δ . λ T (t) = u i + ∨ λ T (t) = u i −. (<label>1</label></formula><formula xml:id="formula_1">)</formula><p>Each signal is labelled in the STG as a transition representing the front edge of the signal u i + or the decay of the signal u i −. As stated hereinabove, STG is a special Petri net fulfilling the following properties:</p><p>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.</p><p>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.</p><p>Liveness: The STG must be free from deadlocks.</p><p>State consistency: All transitions providing front edge and a decay of the signal must strictly alter between + and − in any execution of the STG.</p><p>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 excited in each state. If this property is not fulfilled, a new signal or signals are to be inserted into the SG.</p><p>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 environment of the designed circuit.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Software description</head><p>The model of the circuit behavior represents an input for our tool (ACDesigner <ref type="bibr" target="#b1">[2]</ref>). 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. <ref type="bibr" target="#b2">[3]</ref>, we derive an asynchronous 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 <ref type="bibr" target="#b0">[1]</ref>. The graphical representation of the circuit synthesis process is shown in Fig. <ref type="figure" target="#fig_0">1</ref>. 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 <ref type="bibr" target="#b3">[4]</ref> and <ref type="bibr" target="#b4">[5]</ref>. An example of the SG fulfilling the CSC (new signal csc0) property is shown in Fig. <ref type="figure" target="#fig_1">2b</ref>. SG is an intermediate product in the process of synthesis and it is not visualised in our tool.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACDesigner Timing Logic</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Circuit</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>STG SG Diagram</head><p>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 neighbor regions) and the cost function is calculated <ref type="bibr" target="#b3">[4]</ref>. 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 <ref type="bibr" target="#b3">[4]</ref>. 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 <ref type="bibr" target="#b5">[6]</ref> 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><p>A Petri net in PNML format <ref type="bibr" target="#b6">[7]</ref>, which can be designed by using other tools, e.g. PNEditor <ref type="bibr" target="#b7">[8]</ref> or VipTool <ref type="bibr" target="#b8">[9]</ref>, 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. <ref type="figure" target="#fig_1">2a</ref>, 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. The software output is shown in Fig. <ref type="figure" target="#fig_1">2c</ref>. The user can save the generated circuit in two formats, either as XML or as JPG.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Conclusion</head><p>The algorithm of the synthesis of asynchronous speed-independent circuits was implemented for the first time in the petrify tool <ref type="bibr">[10]</ref>. 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. 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.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Graphical representation of the particular steps in synthesis.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>(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.</figDesc></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="208" xml:id="foot_0">Petri Nets &amp; Concurrency Gallo, Nečas, and Lehocki</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_1">A tool for speed-independent circuitsPetri Nets &amp; Concurrency -209</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="210" xml:id="foot_2">Petri Nets &amp; Concurrency Gallo, Nečas, and Lehocki</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_3">A tool for speed-independent circuitsPetri Nets &amp; Concurrency -211</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<title level="m" type="main">Asynchronous Circuit Design</title>
		<author>
			<persName><forename type="first">Chris</forename><forename type="middle">J</forename><surname>Myers</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2001-07">July, 2001</date>
			<publisher>John Wiley &amp; Sons</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="http://gordan.matmas.net/acdesigner/" />
		<title level="m">ACDesigner: A tool for synthsis of asynchronous circuits</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Hardware and Petri Nets: Application to Asynchronous Circuit Design, Application and Theory of Petri Nets</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cortadella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kishinevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kondratyev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Lavagno</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Yakovlev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="s">Lecture Notes in Computer Science</title>
		<imprint>
			<biblScope unit="volume">1825</biblScope>
			<biblScope unit="page" from="1" to="15" />
			<date type="published" when="2000-06">2000. June 2000</date>
			<publisher>Springer Verlag</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A region-based theory for state assignment in speed-independent circuits</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cortadella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kishinevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Kondratyev</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Lavagno</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Yakovlev</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Trans. on CAD</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="issue">8</biblScope>
			<biblScope unit="page" from="793" to="812" />
			<date type="published" when="1997-08">August 1997</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Deriving Petri nets from finite transition systems</title>
		<author>
			<persName><forename type="first">J</forename><surname>Cortadella</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Kishinevsky</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Lavagno</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Yakovlev</surname></persName>
		</author>
		<idno>UPC-DAC-96-19</idno>
		<imprint>
			<date type="published" when="1996-06">June 1996</date>
		</imprint>
		<respStmt>
			<orgName>Universitat Politecnica de Catalunya, Tech. Rep</orgName>
		</respStmt>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">Brian</forename><surname>Holdsworth</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><forename type="middle">Clive</forename><surname>Woods</surname></persName>
		</author>
		<title level="m">Digital logic design 4 th edition</title>
				<imprint>
			<publisher>Newnes</publisher>
			<date type="published" when="2002">2002</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<ptr target="www.informatik.hu-berlin.de/top/pnml/" />
		<title level="m">The Petri Net Markup Language</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<ptr target="https://pneditor.matmas.net/" />
		<title level="m">PNeditor: A tool for modeling Petri nets</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<ptr target="http://www.lsi.upc.edu/~jordicf/petrify" />
		<title level="m">A tool for synthesis of Petri nets and asynchronous controllers</title>
				<imprint/>
	</monogr>
	<note>VipTool: A tool for modeling Petri nets</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
