ion of a PTFSM uses the order of the earliest pulse arrival times of inputs of the gate. An input bit vector of an SFSM with the order corresponds to a pulse arrival sequence. Thus, the output bit vector and the next state from an input vector at a present state of an SFSM can be decided by the corresponding PTFSM. For example, we consider an 2562 IEICE TRANS. FUNDAMENTALS, VOL.E98–A, NO.12 DECEMBER 2015 Fig. 6 Example of abstraction the PTFSM to the SFSM. input bit vector 101 at a, b and clk on a present state s3 with order (clk, b, a) of a clocked AND gate g in Fig. 6. The input bit vector 101 corresponds to the pulse arrival sequence (clk, a). On the PTFSM of the clocked AND gate, when pulses arrive at clk and then a on state s3, the state results in s1 and a pulse is produced on c. Therefore, on the SFSM of g with order (clk, b, a), the next state and the output bit vector from the input bit vector 101 at a, b and clk on the present state s3 are s2 and 1 at c, respectively. An SFSM has three types of forbidden input bit vectors which are an input bit vector with the values “1” on both of a pair of input lines whose timing slack is negative, an input bit vector including a forbidden input of PTFSM and an input bit vector producing more than one pulse on an output line in a time frame. For example, when a clocked AND gate g has a negative timing slack TS (g, a, clk) or TS (g, clk, a), input bit vectors 101 and 111 at (a, b, clk) on any state are forbidden. An input bit vector 100 at (a, b, clk) on state s1 of g is forbidden, because the input bit vector includes a pulse arrival at a on s1 which is forbidden on the PTFSM of g. The SFSM of gate g, M′ is abstracted from the PTFSM of g, M = (S , I,O, δ, λ, q). M′ = (S , I′,O′, δ′, λ′, q) is composed of a set of states S , a set of input bit vectors I′, a set of output bit vectors O′, the transition function δ′ : S × I′ → S , the output function λ′ : S × I′ → O′ and an initial state q. I′ is a set of all bit vectors at input lines of g. O′ is a set of all bit vectors at output lines of g. When OI(g) is decided, an input pulse arrival sequence on M, (i0, i1, . . . , im−1) is defined uniquely from an input bit vector i′ ∈ I′ where m is the number of values “1” on i′. δ′(i′, s ∈ S ) and λ′(i′, s) are decided uniquely by (i0, i1, . . . , im−1) on M corresponding to i′ on M′. δ′(i′, s) is the resulting state of δ(im−1, . . . δ(i1, δ(i0, s)) . . . ). We consider a state sequence (s0, s1 . . . , sm) and an output pulse arrival sequence (o0, o1 . . . , om−1) where s0 = s, s j+1 = δ(i j, s j) and o j = λ(i j, s j) for 0 ≤ j ≤ m − 1. Then, δ′(i′, s) can also be represented as sm. When o ∈ O does not appear in (o0, o1 . . . , om−1), an output bit vector λ′(i′, s) has value “0” at an output line of o. When o appears once in (o0, o1 . . . , om−1), an output bit vector λ′(i′, s) has value “1” at an output line of o. When o appears more than one time in (o0, o1 . . . , om−1), λ′(i′, s)is the indefinite bit vector x. In addition, whenever (i′, s) is a forbidden input of M′, δ′(i′, s) and λ′(i′, s) are dealt as the error state se and the indefinite bit vector x, respectively. If i′ has values “1” on both of input lines a and b with negative TS (g, a, b) or TS (g, b, a), ∃ jδ(i j, s j) = se or λ′(i′, s) = x, (i′, s′) is a forbidden input. For example, M′ of a clocked AND gate includes S = {s0, s1, s2, s3, se}, I′ = {000, 001, ..., 111, x} at a, b and clk, O′ = {0, 1, x} at c, δ′(s0, 110) = s3, λ′(s3, 001) = 1, q = s0. The next state and the output bit vector from the forbidden input bit vectors at the corresponding state, any input bit vector at state se or input bit vector x at any state are always se and x, respectively. Figure 6 shows an example of abstraction the PTFSM to the SFSM of a clocked AND gate g with OI(g) = (clk, b, a) and negative timing slack TS (g, b, clk). Input bit vectors 111 and 011 at (a, b, clk) on any state are forbidden because TS (g, b, clk) is negative. Other forbidden input bit vectors at (a, b, clk) are 100 and 110 on s1, 010 and 110 on s2 and 010, 100 and 110 on s3 because the forbidden input of the PTFSM. The product machine of SFSMs of all gates in the circuit corresponds to the SFSM of the circuit. By abstracting the behavior of all gates in the circuit, the SFSM of the circuit are given. 4.3.2 Forbidden Input Checking and Equivalence Checking When the SFSM of an SFQ circuit is abstracted from the PTFSM of all gates in the circuit, the following verification can be accomplished in a similar way to synchronous sequential circuits. Model checking and equivalence checking, which are called formal verification, are used for verification of synchronous sequential circuit. Some tools for the formal verification are developed [16]–[18]. We can use them for verification of an SFQ circuit. In the proposed verification method, a forbidden input of an SFSM is checked by the forbidden input checking. The forbidden input checking is accomplished by using properties representing no forbidden input and checking whether the properties are satisfied or not by model checking. When a negative timing slack exists on a gate and forbidden input checking is passed without errors on the gate, the negative timing slacks can be ignored because negative timing slacks also effect the SFSM. In the equivalence checking, the specification corresponding to behavior of the SFQ circuit needs to be prepared. The specification and the abstracted SFSM of the SFQ circuit are compared to detect an error of the design. 5. Experimental Results We have implemented the proposed static timing analysis tool in SKILL language and the abstraction tool of behavior in SKILL and C++ languages. The implemented static timing analysis tool obtains gate delay and timing constraints from the cell library and calculates the path delay, timing slacks including the minimum timing slack, the minimum clock period and the order of pulse arrival times at each gate KAWAGUCHI et al.: A VERIFICATION METHOD FOR SINGLE-FLUX-QUANTUM CIRCUITS USING DELAY-BASED TIME FRAME MODEL 2563 Table 1 Verification results. circuit #gate #JJ #state #NTS min TS (ps) min CP (ps) STA time (s) FC time (s) EC time (s) full adder 9 292 5832 0 3.6 23.5 0.3 < 0.01 < 0.01 8 bit CLA 158 6380 3.09 × 1086 9 −5.3 33.0 3.27 12.3 0.07 4-bit SS 190 3829 1.10 × 1081 50 −3.9 42.4 1.87 27.0 0.06 of an SFQ circuit. The abstraction tool translates PTFSM of an SFQ circuit to the SFSM described in BLIF-MV which is used for verification of synchronous sequential circuit. Simultaneously, the tool produces properties which represent no occurrence of forbidden inputs in LTL language. We verified several circuits using these tools. The SFSM of the circuits was verified by forbidden input checking and equivalence checking using vis [17] and ABC [18], respectively. The forbidden input checking uses the properties produced by the abstraction tool. We verified three circuits, a full adder using NDROs and CBs without clock supply, an 8-bit carry look-ahead adder employing concurrentflow clocking (8-bit CLA) [6] and a 4-bit slice 32 bit shifter using gates with and without clock supply (4-bit SS). The experiments were conducted on a Linux platform (Debian 6.0) with an Intel Xeon X5470 (3.33 GHz) and 32 GB of RAM. Table 1 shows the number of logic gates (#gate), the number of Josephson junctions (#JJ), the number of states (#state), the number of negative timing slacks (#NTS), the minimum timing slack (min TS), the minimum clock period (min CP), CPU time for static timing analysis (STA time), CPU time for forbidden input checking (FC time) and CPU time for equivalence checking (EC time). The forbidden input checking was accomplished by unbounded model checking. The equivalence checking was accomplished by unbounded sequential equivalence checking. In the forbidden input checking of the 8-bit CLA, we detected a failed property caused by a connection error on a clocked AND gate. The forbidden input of the gate, which is pulse arrival at a on s1 specifically, could occur because of this error. This error was also detected in the equivalence checking. 50 negative timing slacks were detected by the static timing analysis of the 4-bit SS. They were 29 in CBs, 8 in RDFFs (resettable DFFs) and 13 in D2FF (DFFs with two clock inputs and two corresponding outputs). The negative timing slacks in RDFFs were caused by predecessors of CBs and the output line of the CB had two pulses in a time frame. In order to avoid the two pulses on a line in a time frame, we duplicate lines from CBs to RDFFs as shown in Fig. 7. All gates in the redesigned version of the 4-bit SS passed through forbidden input checking and the negative timing slacks on D2FFs and CBs could be ignored because pulses at two inputs causing the negative timing slacks did not appear simultaneously in a time frame. The experimental results show that the proposed verification method can handle circuits employing various clocking and composed of gates with and without clock supply. Fig. 7 Duplication of a line from CB to RDFF in 4-bit SS.