C-element

Last updated
Delays in the naive (based on Earle latch) implementation and environment Delay assumptions.png
Delays in the naive (based on Earle latch) implementation and environment
Timing diagram of a C-element and inclusive OR gate Timing diagram of inclusive OR.png
Timing diagram of a C-element and inclusive OR gate
Behavior of the environment with multiple input transitions (garbage branches ) admissible for C-element and inadmissible for Join element Join element stg.png
Behavior of the environment with multiple input transitions (garbage branches ) admissible for C-element and inadmissible for Join element

In digital computing, the Muller C-element (C-gate, hysteresis flip-flop, coincident flip-flop, or two-hand safety circuit) is a small binary logic circuit widely used in design of asynchronous circuits and systems. It outputs 0 when all inputs are 0, it outputs 1 when all inputs are 1, and it retains its output state otherwise. It was specified formally in 1955 by David E. Muller [3] and first used in ILLIAC II computer. [4] In terms of the theory of lattices, the C-element is a semimodular distributive circuit, whose operation in time is described by a Hasse diagram. [5] [6] [7] [8] The C-element is closely related to the rendezvous [9] and join [10] elements, where an input is not allowed to change twice in succession. In some cases, when relations between delays are known, the C-element can be realized as a sum-of-product (SOP) circuit. [11] [12] Earlier techniques for implementing the C-element [13] [14] include Schmitt trigger, [15] Eccles-Jordan flip-flop and last moving point flip-flop.

Contents

Truth table and delay assumptions

For two input signals the C-element is defined by the equation , which corresponds to the following truth table:

000
01
10
111

This table can be turned into a circuit using the Karnaugh map. However, the obtained implementation is naive, since nothing is said about delay assumptions. To understand under what conditions the obtained circuit is workable, it is necessary to do additional analysis, which reveals that

Thus, the naive implementation is correct only for slow environment. [16]

Implementations of the C-element

Depending on the requirements to the switching speed and power consumption, the C-element can be realized as a coarse- or fine-grain circuit. Also, one should distinguish between single-output and dual-rail [17] realizations of C-element. A dual-rail C-element can be realized on 2-input NANDs (NORs) only. [18] A single-output realization is workable if and only if: [19]

  1. The circuit, where each input of a C-element is connected through a separate inverter to its output, is semimodular relatively to the state, where all the inverters are excited.
  2. This state is live for the output gate of C-element.

Static and semistatic implementations

Static implementations of two- and three-input C-element, Single gate C elements.png
Static implementations of two- and three-input C-element,
Semistatic implementations of two- and multiple-input C-element. For a faster version see Semistatic C-elements.png
Semistatic implementations of two- and multiple-input C-element. For a faster version see

In his report [3] Muller proposed to realize C-element as a majority gate with feedback. However, to avoid hazards linked with skews of internal delays, the majority gate must have as small number of transistors as possible. [27] [28] Generally, C-elements with different timing assumptions [29] can be built on AND-OR-Invert (AOI) [30] [31] or its dual, OR-AND-Invert (OAI) gate [32] [33] and inverter. Yet another option patented by Varshavsky et al. [34] [35] is to shunt the input signals when they are not equal each other. Being very simple, these realizations dissipate more power due to the short-circuits. Connecting an additional majority gate to the inverted output of C-element, we obtain inclusive OR (EDLINCOR) function: [36] [37] . Some simple asynchronous circuits like pulse distributors [38] can be built solely on majority gates.

Semistatic C-element stores its previous state using two cross-coupled inverters, similar to an SRAM cell. One of the inverters is weaker than the rest of the circuit, so it can be overpowered by the pull-up and pull-down networks. If both inputs are 0, then the pull-up network changes the latch's state, and the C-element outputs a 0. If both inputs are 1, then the pull-down network changes the latch's state, making the C-element output a 1. Otherwise, the input of the latch is not connected to either or ground, and so the weak inverter dominates and the latch outputs its previous state. There are also versions of semistatic C-element built on devices with negative differential resistance (NDR). [39] [40] NDR is usually defined for small signal, so it is difficult to expect that such a C-element will operate in full range of voltages or currents.[ original research? ]

Gate-level implementations

Majority-gate realization of C-element and inclusive OR gate (a); Realizations proposed by Maevsky (b), Tsirlin (c) and Murphy (d) Realizations of C element.png
Majority-gate realization of C-element and inclusive OR gate (a); Realizations proposed by Maevsky (b), Tsirlin (c) and Murphy (d)
An STG of dual-rail C-element with 00 transit and its circuit realized only on NAND2 as a particular case of considered by V.B. Marakhovsky. Dual-rail C-element.png
An STG of dual-rail C-element with 00 transit and its circuit realized only on NAND2 as a particular case of considered by V.B. Marakhovsky.
David cell (a) and its fast implementations: gate-level (b) and transistor-level (c) David cell graph.png
David cell (a) and its fast implementations: gate-level (b) and transistor-level (c)

There is a number of different single-output circuits of C-element built on logic gates. [42] [43] In particular, the so-called Maevsky's implementation [44] [45] [46] is a semimodular, but non-distributive (OR-causal) circuit loosely based on. [47] The NAND3 gate in this circuit can be replaced by two NAND2 gates. Note that Maevsky's C-element is actually a Join element, whose input signals cannot switch twice. [44] Yet another circuit with OR-causality, which operates as a Join element. [48] A realization of C-element on two-input gates only has been proposed by Tsirlin [49] and then synthesized by Starodoubtsev et al. using Taxogram language [50] This circuit coincides with that attributed to Bartky , [1] [44] and can operate without the input latch. Note that both the Maevsky and Tsirlin circuits are based actually on so-called David cell. [51] Its fast transistor-level implementation is used in the semistatic C-element proposed. [52] Yet another semistatic circuit using pass transistors (actually MUX 2:1) has been proposed. [53] Yet another version of the C-element built on two SR-latches has been synthesized by Murphy [54] using Petrify tool. However, this circuit includes inverter connected to one of the inputs. This inverter should have small delay. However, there are realizations of RS latches that already have one inverted input, for example. [55] Some speed-independent approaches [56] [57] assume that zero-delay input inverters are available on all gates, which is a violation of true speed-independence but is fairly safe in practice. Other examples of using this assumption also exist. [58]

Non-transistor implementations

Other technologies suitable for realizing asynchronous primitives including C-element, are: carbon nanotubes,[ citation needed ] single-electron tunneling devices, [59] quantum dots, [60] and molecular nanotechnology. [61]

Generalization for multiple-valued logic

The definition of C-element can be generalized for multiple-valued logic, [7] [62] [63] or even for continuous signals:

For example, the truth table for a balanced ternary C-element with two inputs is

−1−1−1
−10
−11
0−1
000
01
1−1
10
111

Since the majority gate is a particular case of threshold gate, any of known realizations of threshold gate [64] can in principle be used for building a C-element. In the multiple-valued case, however, connecting the output of majority gate to one or several inputs may have no desirable effect. For example, using the ternary majority function defined as [65]

does not lead to the ternary C-element specified by the truth table, if the sum is not split into pairs. However, even without such a splitting two ternary majority functions are suitable for building a ternary inclusive OR gate.

Related Research Articles

In digital logic and computing, a counter is a device which stores the number of times a particular event or process has occurred, often in relationship to a clock. The most common type is a sequential digital logic circuit with an input line called the clock and multiple output lines. The values on the output lines represent a number in the binary or BCD number system. Each pulse applied to the clock input increments or decrements the number in the counter.

<span class="mw-page-title-main">Logic gate</span> Device performing a Boolean function

A logic gate is a device that performs a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic gate, one that has, for instance, zero rise time and unlimited fan-out, or it may refer to a non-ideal physical device.

<span class="mw-page-title-main">Digital electronics</span> Electronic circuits that utilize digital signals

Digital electronics is a field of electronics involving the study of digital signals and the engineering of devices that use or produce them. This is in contrast to analog electronics which work primarily with analog signals. Despite the name, digital electronics designs includes important analog design considerations.

<span class="mw-page-title-main">VHDL</span> Hardware description language

VHDL is a hardware description language that can model the behavior and structure of digital systems at multiple levels of abstraction, ranging from the system level down to that of logic gates, for design entry, documentation, and verification purposes. The language was developed for the US military VHSIC program in the 1980s, and has been standardized by the Institute of Electrical and Electronics Engineers (IEEE) as IEEE Std 1076; the latest version of which is IEEE Std 1076-2019. To model analog and mixed-signal systems, an IEEE-standardized HDL based on VHDL called VHDL-AMS has been developed.

Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems. It is most commonly used in the design and verification of digital circuits at the register-transfer level of abstraction. It is also used in the verification of analog circuits and mixed-signal circuits, as well as in the design of genetic circuits. In 2009, the Verilog standard was merged into the SystemVerilog standard, creating IEEE Standard 1800-2009. Since then, Verilog has been officially part of the SystemVerilog language. The current version is IEEE standard 1800-2023.

In automata theory, sequential logic is a type of logic circuit whose output depends on the present value of its input signals and on the sequence of past inputs, the input history. This is in contrast to combinational logic, whose output is a function of only the present input. That is, sequential logic has state (memory) while combinational logic does not.

<span class="mw-page-title-main">Clock signal</span> Timing of electronic circuits

In electronics and especially synchronous digital circuits, a clock signal is an electronic logic signal which oscillates between a high and a low state at a constant frequency and is used like a metronome to synchronize actions of digital circuits. In a synchronous logic circuit, the most common type of digital circuit, the clock signal is applied to all storage devices, flip-flops and latches, and causes them all to change state simultaneously, preventing race conditions.

In Boolean algebra, any Boolean function can be expressed in the canonical disjunctive normal form (CDNF), minterm canonical form, or Sum of Products as a disjunction (OR) of minterms. The De Morgan dual is the canonical conjunctive normal form (CCNF), maxterm canonical form, or Product of Sums which is a conjunction (AND) of maxterms. These forms can be useful for the simplification of Boolean functions, which is of great importance in the optimization of Boolean formulas in general and digital circuits in particular.

In digital electronics, a synchronous circuit is a digital circuit in which the changes in the state of memory elements are synchronized by a clock signal. In a sequential digital logic circuit, data is stored in memory devices called flip-flops or latches. The output of a flip-flop is constant until a pulse is applied to its "clock" input, upon which the input of the flip-flop is latched into its output. In a synchronous logic circuit, an electronic oscillator called the clock generates a string (sequence) of pulses, the "clock signal". This clock signal is applied to every storage element, so in an ideal synchronous circuit, every change in the logical levels of its storage components is simultaneous. Ideally, the input to each storage element has reached its final value before the next clock occurs, so the behaviour of the whole circuit can be predicted exactly. Practically, some delay is required for each logical operation, resulting in a maximum speed limitations at which each synchronous system can run.

Asynchronous circuit is a sequential digital logic circuit that does not use a global clock circuit or signal generator to synchronize its components. Instead, the components are driven by a handshaking circuit which indicates a completion of a set of instructions. Handshaking works by simple data transfer protocols. Many synchronous circuits were developed in early 1950s as part of bigger asynchronous systems. Asynchronous circuits and theory surrounding is a part of several steps in integrated circuit design, a field of digital electronics engineering.

<span class="mw-page-title-main">Delay-insensitive minterm synthesis</span>

Within digital electronics, the DIMS system is an asynchronous design methodology making the least possible timing assumptions. Assuming only the quasi-delay-insensitive delay model the generated designs need little if any timing hazard testing. The basis for DIMS is the use of two wires to represent each bit of data. This is known as a dual-rail data encoding. Parts of the system communicate using the early four-phase asynchronous protocol.

<span class="mw-page-title-main">Metastability (electronics)</span> Ability of a digital electronic system to remain in unstable equilibrium forever

In electronics, metastability is the ability of a digital electronic system to persist for an unbounded time in an unstable equilibrium or metastable state. In digital logic circuits, a digital signal is required to be within certain voltage or current limits to represent a '0' or '1' logic level for correct circuit operation; if the signal is within a forbidden intermediate range it may cause faulty behavior in logic gates the signal is applied to. In metastable states, the circuit may be unable to settle into a stable '0' or '1' logic level within the time required for proper circuit operation. As a result, the circuit can act in unpredictable ways, and may lead to a system failure, sometimes referred to as a "glitch". Metastability is an instance of the Buridan's ass paradox.

In computer architecture, clock gating is a popular power management technique used in many synchronous circuits for reducing dynamic power dissipation, by removing the clock signal when the circuit, or a subpart of it, is not in use or ignores clock signal. Clock gating saves power by pruning the clock tree, at the cost of adding more logic to a circuit. Pruning the clock disables portions of the circuitry so that the flip-flops in them do not switch state, as switching the state consumes power. When not being switched, the switching power consumption goes to zero, and only leakage currents are incurred.

In digital logic design, an asynchronous circuit is quasi delay-insensitive (QDI) when it operates correctly, independent of gate and wire delay with the weakest exception necessary to be turing-complete.

<span class="mw-page-title-main">Electronic symbol</span> Pictogram used to represent various electrical and electronic devices or functions

An electronic symbol is a pictogram used to represent various electrical and electronic devices or functions, such as wires, batteries, resistors, and transistors, in a schematic diagram of an electrical or electronic circuit. These symbols are largely standardized internationally today, but may vary from country to country, or engineering discipline, based on traditional conventions.

A ring counter is a type of counter composed of flip-flops connected into a shift register, with the output of the last flip-flop fed to the input of the first, making a "circular" or "ring" structure.

The Timing closure in VLSI design and electronics engineering is the process by which a logic design of a clocked synchronous circuit consisting of primitive elements such as combinatorial logic gates and sequential logic gates is modified to meet its timing requirements. Unlike in a computer program where there is no explicit delay to perform a calculation, logic circuits have intrinsic and well defined delays to propagate inputs to outputs.

<span class="mw-page-title-main">Flip-flop (electronics)</span> Electronic circuit with two stable states

In electronics, flip-flops and latches are circuits that have two stable states that can store state information – a bistable multivibrator. The circuit can be made to change state by signals applied to one or more control inputs and will output its state. It is the basic storage element in sequential logic. Flip-flops and latches are fundamental building blocks of digital electronics systems used in computers, communications, and many other types of systems.

<span class="mw-page-title-main">Memory cell (computing)</span> Part of computer memory

The memory cell is the fundamental building block of computer memory. The memory cell is an electronic circuit that stores one bit of binary information and it must be set to store a logic 1 and reset to store a logic 0. Its value is maintained/stored until it is changed by the set/reset process. The value in the memory cell can be accessed by reading it.

State encoding assigns a unique pattern of ones and zeros to each defined state of a finite-state machine (FSM). Traditionally, design criteria for FSM synthesis were speed, area or both. Following Moore's law, with technology advancement, density and speed of integrated circuits have increased exponentially. With this, power dissipation per area has inevitably increased, which has forced designers for portable computing devices and high-speed processors to consider power dissipation as a critical parameter during design consideration.

References

  1. 1 2 Kimura, Izumi (1971). "Extensions of asynchronous circuits and the delay problem. Part II: Spike-free extensions and the delay problem of the second kind". Journal of Computer and System Sciences. 5 (2): 129–162. doi:10.1016/S0022-0000(71)80031-4.
  2. Kushnerov, Alex; Bystrov, Sergey (2023). "Signal Transition Graphs for Asynchronous Data Path Circuits". Modeling and Analysis of Information Systems. 30 (2): 170–186. doi: 10.18255/1818-1015-2023-2-170-186 .
  3. 1 2 D. E. Muller, Theory of asynchronous circuits. Report no. 66, Digital Computer Laboratory, University of Illinois at Urbana-Champaign, 1955.
  4. H. C. Breadley, "ILLIAC II — A short description and annotated bibliography", IEEE Transactions on Electronic Computers, vol. EC-14, no. 3, pp. 399–403, 1965.
  5. D. E. Muller and W. S. Bartky, "A theory of asynchronous circuits", Int. Symposium on the Switching Theory in Harvard University, pp. 204–243, 1959.
  6. W. J. Poppelbaum, Introduction to the Theory of Digital Machines. Math., E.E. 294 Lecture Notes, University of Illinois at Urbana-Champaign.
  7. 1 2 Kimura, Izumi (1969). "A comparison between two mathematical models of asynchronous circuits". Science Reports of the Tokyo Kyoiku Daigaku, Section A. 10 (232/248): 109–123. JSTOR   43698723.
  8. Gunawardena, Jeremy (1993). "A generalized event structure for the Muller unfolding of a safe net". Concur'93. Lecture Notes in Computer Science. Vol. 715. pp. 278–292. doi:10.1007/3-540-57208-2_20. ISBN   978-3-540-57208-4.
  9. Stucki, Mishell J.; Ornstein, Severo M.; Clark, Wesley A. (1967). "Logical design of macromodules". Proceedings of the April 18-20, 1967, spring joint computer conference on - AFIPS '67 (Spring). pp. 357–364. doi: 10.1145/1465482.1465538 . ISBN   978-1-4503-7895-6.
  10. J. C. Ebergen, J. Segers, I. Benko, "Parallel Program and Asynchronous Circuit Design", Workshops in Computing, pp. 50–103, 1995.
  11. Beerel, Peter A.; Burch, Jerry R.; Meng, Teresa H. (1998). "Checking Combinational Equivalence of Speed-Independent Circuits". Formal Methods in System Design. 13 (1): 37–85. doi:10.1023/A:1008666605437.
  12. H. Park, A. He, M. Roncken and X. Song, "Semi-modular delay model revisited in context of relative timing", IET Electronics Letters, vol. 51, no. 4, pp. 332–334, 2015.
  13. Technical Progress Report, Jan. 1959, University of Illinois at Urbana-Champaign.
  14. W . J. Poppellbaum, N. E. Wiseman, "Circuit design for the new Illinois computer", Report no. 90, University of Illinois at Urbana-Champaign, 1959.
  15. N. P. Singh, A design methodology for self-timed systems. MSc thesis, MIT, 1981, 98 p.
  16. J. Cortadella, M. Kishinevsky, Tutorial: Synthesis of control circuits from STG specifications. Summer school, Lyngby, 1997.
  17. A. Mokhov, V. Khomenko, D. Sokolov and A. Yakovlev, "On dual-rail control logic for enhanced circuit robustness", IEEE Int. Conference on Application of Concurrency to System Design (ACSD) 2012, pp. 112–121.
  18. 1 2 V. Varshavskiy, M. Kishinevskiy, V. Marakhovskiy, L. Rozenblyum, "Functional completeness in the class of semimodular circuits," Soviet Journal of Computer and Systems Sciences, vol. 23, no. 6, pp. 70-80, 1985.
  19. B. S. Tsirlin, "A Survey of Equivalent Problems of Realizing Circuits in the AND-NOT Basis that are Speed-Independent", Soviet Journal of Computer and Systems Sciences, vol. 24, 1986, pp. 58–69 (Б. С. Цирлин, "Обзор эквивалентных проблем реализации схем в базисе И-НЕ, не зависящих от скорости", Изв. АН СССР, Техническая кибернетика, №2, 1986, с. 159–171).
  20. I. E. Sutherland, "Micropipelines", Communications of the ACM, vol. 32, no. 6, pp. 720–738, 1989.
  21. C. H. van Berkel, "Beware the isochronic fork", Report UR 003/91, Philips Research Laboratories, 1991.
  22. V. B. Marakhovsky, Logic design of asynchronous circuits. Slides on the course. CS&SE Department, SPbPU.
  23. V. I. Varshavsky, N. M. Kravchenko, V. B. Marakhovsky, B. S. Tsirlin, "H flip-flop", USSR author's certificate SU1562964, Jul. 5, 1990.
  24. Varshavsky, V.I. (1998). "β-driven threshold elements". Proceedings of the 8th Great Lakes Symposium on VLSI (Cat. No.98TB100222). pp. 52–58. doi:10.1109/GLSV.1998.665199. ISBN   0-8186-8409-7.
  25. V. I. Varshavsky, "Threshold element and method of designing the same," Patent US6338157, Jan. 8, 2002.
  26. Y. A. Stepchenkov, Y. G. Dyachenko, A. N. Denisov, Y. P. Fomin, "H flip-flop", Patent RU2371842, Oct. 27, 2009.
  27. D. Hampel, K. Prost, and N. Scheingberg, "Threshold logic using complementary MOS device", Patent US3900742, Aug. 19, 1975.
  28. D. Doman, Engineering the CMOS Library: Enhancing Digital Design Kits for Competitive Silicon Archived 2015-10-08 at the Wayback Machine . Wiley, 2012, 327 p.
  29. K. S. Stevens, R. Ginosar and S. Rotem, "Relative timing [asynchronous design]", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 11, no. 1, pp. 129–140, 2003.
  30. H. Zemanek, "Sequentielle asynchrone Logik", Elektronische Rechenanlagen, vol. 4, no. 6, pp. 248–253, 1962. Also available in Russian as Г. Цеманек, "Последовательная асинхронная логика", Mеждународный симпозиум ИФАК Теория конечных и вероятностных автоматов 1962, с. 232—245.
  31. W. Fleischhammer, "Improvements in or relating to asynchronous bistable trigger circuits", UK patent specification GB1199698, Jul. 22, 1970.
  32. T.-Y. Wuu and S. B. K. Vrudhula, "A design of a fast and area efficient multi-input Muller C-element", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 1, no. 2, pp. 215–219, 1993.
  33. H. K. O. Berge, A. Hasanbegovic, S. Aunet, "Muller C-elements based on minority-3 functions for ultra low voltage supplies", IEEE Int. Symposium on Design and Diagnostics of Electronic Circuits & Systems (DDECS) 2011, pp. 195–200.
  34. V. I. Varshavsky, A. Y. Kondratyev, N. M. Kravchenko, and B. S. Tsirlin, "H flip-flop", USSR Author's certificate SU1411934 Jul. 23, 1988.
  35. V. I. Varshavsky, N. M. Kravchenko, V. B. Marakhovsky and B. S. Tsirlin, "H flip-flop", USSR Author's certificate SU1443137, Dec. 7, 1988.
  36. Pucknell, D.A. (1993). "Event-driven logic (EDL) approach to digital systems representation and related design processes". IEE Proceedings E - Computers and Digital Techniques. 140 (2): 119–126. doi:10.1049/ip-e.1993.0018.
  37. A. Yakovlev, M. Kishinevsky, A. Kondratyev, L. Lavagno, M. Pietkiewicz-Koutny, "On the models for asynchronous circuit behaviour with OR causality", Formal Methods in System Design, vol. 9, no. 3, pp. 189—233. 1996.
  38. J. C. Nelson, Speed-independent counting circuits. Report no. 71, Digital Computer Laboratory, University of Illinois at Urbana-Champaign, 1956.
  39. C.-H. Lin, K. Yang, A. F. Gonzalez, J. R. East, P. Mazumder, G. I. Haddad, "InP-based high speed digital logic gates using an RTD/HBT heterostructure", Int. Conference on Indium Phosphide and Related Materials (IPRM) 1999, pp. 419–422.
  40. Glosekotter, P.; Pacha, C.; Goser, K.F.; Prost, W.; Kim, S.; Van Husen, H.; Reimann, T.; Tegude, F.J. (2002). "Asynchronous circuit design based on the RTBT monostable-bistable logic transition element (MOBILE)". Proceedings. 15th Symposium on Integrated Circuits and Systems Design. pp. 365–370. doi:10.1109/SBCCI.2002.1137684. ISBN   0-7695-1807-9.
  41. A. Bystrov, A. Yakovlev, Asynchronous circuit synthesis by direct mapping: Interfacing to environment. Technical Report, CS Department, University of Newcastle upon Tyne, October 2001.
  42. B. S. Tsirlin, "H flip-flop", USSR author's certificate SU1096759, Jun. 7, 1984.
  43. B. S. Tsirlin, "Multiple input H flip-flop", USSR author's certificate SU1162019, Jun. 15, 1985.
  44. 1 2 3 M. Kuwako, T. Nanya, "Timing-reliability evaluation of asynchronous circuits based on different delay models", IEEE Int. Symposium on Advanced Research in Asynchronous Circuits and Systems (ASYNC) 1994, pp. 22–31.
  45. Brzozowski, J.A.; Raahemifar, K. (1995). "Testing C-elements is not elementary". Proceedings Second Working Conference on Asynchronous Design Methodologies. pp. 150–159. doi:10.1109/WCADM.1995.514652. ISBN   0-8186-7098-3.
  46. P. A. Beerel, J. R. Burch, T. H. Meng, "Checking combinational equivalence of speed-independent circuits", Formal Methods in System Design, vol. 13, no. 1, 1998, pp. 37–85.
  47. V. I. Varshavsky, O. V. Maevsky, Yu. V. Mamrukov, B. S. Tsirlin, "H flip-flop", USSR author's certificate SU1081801, Mar. 23, 1984
  48. G. S. Brailovsky, L. Ya. Rozenblyum, B. S. Tsirlin, "H-flip-flop", USSR author's certificate SU1432733, Oct. 23, 1988.
  49. B. S. Tsirlin, "H-flip-flop", USSR author's certificate SU1324106, Jul. 15, 1987.
  50. N. A. Starodoubtsev, S. A. Bystrov, "Monotonic behavior refinement for synthesis of two-input-gate asynchronous circuits", IEEE Int. Midwest Symposium on Circuits and Systems (MWSCAS) 2004, vol. I, pp. I-521–524.
  51. M. Courvoisier and P. Azema, "Asynchronous sequential machines with request/acknowledge operating mode," IEE Electronics Letters, Vol. 10, no. 1, pp.8-10, 1974.
  52. S. M. Fairbanks, "Two-stage Muller C-element", United States Patent US6281707, Aug. 28, 2001.
  53. A. Morgenshtein, M. Moreinis, R. Ginosar, "Asynchronous gate-diffusion-input (GDI) circuits", IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 12, no. 8, pp. 847–856, 2004.
  54. J. P. Murphy, "Design of latch-based C-element", Electronics Letters, vol. 48, no. 19, 2012, pp. 1190–1191.
  55. V. A. Maksimov and Ya. Ya. Petrichkovich "RS flip-flop," USSR author's certificate SU1164867, Jun. 30, 1985.
  56. P. Beerel and T. H.-Y. Meng. "Automatic gate-level synthesis of speed-independent circuits", IEEE/ACM Int. Conference on Computer-Aided Design (ICCAD) 1992, pp. 581–587.
  57. A. Kondratyev, M. Kishinevsky, B. Lin, P. Vanbekbergen, and A. Yakovlev, "Basic gate implementation of speed-independent circuits", ACM Design Automation Conference (DAC) 1994, pp. 56–62.
  58. Yakovlev, A. V.; Koelmans, A. M.; Semenov, A.; Kinniment, D. J. (December 1996). "Modelling, analysis and synthesis of asynchronous control circuits using Petri nets". Integration. 21 (3): 143–170. doi:10.1016/S0167-9260(96)00010-7.
  59. S. Safiruddin, S. D. Cotofana, "Building blocks for delay-insensitive circuits using single electron tunneling devices", IEEE Conference on Nanotechnology 2007, pp. 704–708.
  60. V. I. Varshavsky, "Logic design and quantum challenge", Int. Workshop on Physics and Computer Modeling of Devices Based on Low-Dimensional Structures 1995, pp. 134–146.
  61. A. J. Martin, P. Prakash, "Asynchronous nano-electronics: Preliminary investigation" Archived 2016-03-04 at the Wayback Machine , IEEE Int. Symposium on Asynchronous Circuits and Systems (ASYNC) 2008, pp. 58–68.
  62. J. M. Johnson, Theory and Application of Self-Timed Integrated Systems Using Ternary Logic Elements. PhD thesis. University of California, Santa Barbara. 1989.
  63. H. Sato, Completeness on Multiple-Valued Logical Functions Realized by Asynchronous Sequential Circuits. PhD thesis, Gakushuin University, 1996.
  64. V. Beiu, J. M. Quintana, M. J. Avedillo, "VLSI implementations of threshold logic – A comprehensive survey", IEEE Transactions on Neural Networks, vol. 14, no. 5, pp. 1217–1243, 2003.
  65. V. Varshavsky, B. Ovsievich, "Networks composed of ternary majority elements", IEEE Transactions on Electronic Computers, vol. EC-14, no. 5, pp. 730–733, 1965.