You are on page 1of 41

 116

CHAPTER 6

DESIGN OF SEQUENTIAL LOGIC CIRCUITS IN QCA

6.1 INTRODUCTION

The logic circuits whose outputs at any instant of time depend not
only on the present inputs but also on the past outputs are known as sequential
circuits. In sequential circuit, outputs are fed back to the input side. Thus an
output signal is a function of the present input signals and a sequence of
the past input signals. The block diagram of sequential circuit is shown in
Figure 6.1. It consists of a combinational circuit to which memory elements
are connected to form a feedback path. The storage elements are devices
capable of storing binary information. The binary information stored in these
elements at any given time defines the state of the sequential circuit at the
time.

Figure 6.1 Block Diagram of sequential circuit

The sequential circuit can be classified into two types depending on


the timing of their signals. They are
 117

1) Synchronous or clocked sequential circuits


2) Asynchronous or unclocked sequential circuits.

In the synchronous sequential circuit, synchronization is achieved


by a timing device called a master clock generator which generates a periodic
train of clock pulses. In practice, it may be achieved by applying clock pulses
to various AND gates through which external inputs enter the sequential
circuit. This ensures the gates to transmit input signals only which coincide
with the arrival of the clock pulses.

In an asynchronous sequential circuit, events can occur after one


event is completed and there is no need to wait for a clock pulse. Therefore, in
general, asynchronous circuits are considerably faster than the synchronous
sequential circuits. However, in an asynchronous circuit, events are allowed
to occur without any synchronization.

In this thesis, design of sequential circuits such as Flip Flops (FF),


Shift Registers (SR) and Counters are proposed. The different sequential
circuits are designed by using majority gate. Then the designed circuits are
implemented with QCA cells and simulated using QCADesigner. These
structures are popular designs in the transistor technology. The circuit designs
in QCA follow the conventional design approaches, but due to the technology
differences, they are modified and optimized for the best performance in
QCA.

6.2 DESIGN OF FLIP FLOPS (FF) USING MG

The memory elements in a sequential circuit are called flip-flops. A


circuit has two outputs, one for the normal value and one for the complement
value of the stored bit. Binary information can enter a flip-flop in a variety of
 118

ways and gives rise to different types of flip-flops. The most common types of
flip flops are

1. SR (Set-Reset) Flip Flop


2. D (Data or Delay) Flip Flop
3. T (Toggle) Flip Flop
4. JK Flip Flop

The flip flops are synchronous sequential circuits. Hence the


circuits change their states only when clock pulses are present. The basic
operation of these flip flops has been explained by Morris Mano (1995).

This section describes the architectures for the four flip-flops. By


replacing AND/OR logic with majority logic it is possible to significantly
minimize the total number of cells in the design. Since there is no static
memory equivalent in QCA, hence to create loops, which keep memory in
motion. The proposed architectures of the flip-flops have been shown below.

As a means for generating the QCA architecture an obvious first


step is to translate existing CMOS designs directly into QCA majority gate
logic. However, while such a translation is possible, the nature of QCA
devices will require an architecture that is radically different from
conventional CMOS. Hence first the sequential circuits are designed by using
conventional gates. Then it can be translated into QCA majority gate.

6.2.1 Design of SR Flip Flop

The clocked SR flip-flop shown in Figure 6.2 consists of a basic


NOR flip-flop and two AND gates. The outputs of the two AND gates remain
at 0 as long as the clock pulse (or CP) is 0, regardless of the S and R input
values. When the clock pulse goes to 1, information from the S and R inputs
passes through to the basic flip-flop. With both S=1 and R=1, the occurrence
of a clock pulse causes both outputs to momentarily go to 0. When the pulse
 119

is removed, the state of the flip-flop is indeterminate, i.e., either state may
result, depending on whether the set or reset input of the flip-flop remains a 1
longer than the transition to 0 at the end of the pulse.

(a) Logic diagram (b) Graphic symbol

Figure 6.2 SR flip flop

Table 6.1 Characteristic table of SR flip flop

Q S R Q(t+1)
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 Intermediate
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 Intermediate

Figure 6.3 Characteristic equation

Q (t+1) = S+R'Q (6.1)


 120

The characteristics table of the flip flop is shown in Table 6.1. This
table shows the operation of the flip flop in a tabular form. The Q is an
abbreviation of Q (t) and stands for the binary state of the flip flop before the
application of a clock pulse, referred to as the present state. The S and R
columns give the possible values of the inputs, and Q (t+1) is the state of the
flip flop after the application of a single pulse, referred to as the next state.
The table must be interpreted as follows: Given the present state Q and the
inputs S and R, the application of a single pulse in the CP input causes the flip
flop to go to the next state Q (t+1).

The characteristic equation of the flip flop is derived by using the


map of Figure 6.3. This Equation (6.1) specifies the value of the next state as
a function of the present state and the inputs. The characteristic equation is an
algebraic expression for the binary information of the characteristic Table
6.1. The two intermediate states are marked with don’t-care X’s in the map,
since they may result in either 1 or 0. However, the relation SR = 0 must be
included as part of the characteristic equation to specify the both S and R
cannot equal to 1 simultaneously.

Next the SR flip flop is designed using majority gates with the help
of the characteristics equation. It is constructed by using 5 majority gates and
1 inverter as shown in Figure 6.4. The circuit have two inputs S and R along
with one control input Clock. The last two majority gates M4 and M5 form a
loop. The output of the flip flop is fed back to M4 and combined with the
input R'of majority gate M4 to produce R'Q. Here the gate M4 act as an AND
gate. The gate M5 is designed to perform OR operation which combine the
output of Majority gate M1 and M4.Hence the output of the gate M5 produce
the desired characteristic Equation (6.1).
 121

Figure 6.4 Design of SR flip flop using majority gate

Computation with QCA is accomplished by designing QCA


layouts, which exhibit the desired interaction of states. The designed SR flip
flop using majority gate is next implemented by using QCA cells. The flip
flop is implemented by 57 cells, with an area of 72,000 nm2. The cell
minimization techniques are used to minimize the number of cells from 78 to
57. The corresponding QCA implementation of SR flip flop is shown in
Figure 6.5.

Figure 6.5 Layout of SR flip flop

6.2.2 Design of D Flip Flop

One way to eliminate the undesirable condition of the


indeterminate state in the RS flip flop is to ensure that inputs S and R are
 122

never equal to 1 at the same time. This is done in the D flip flop as shown in
Figure 6.6 (a). The D flip flop is a modification of the clocked SR flip-flop. It
has only two inputs: D and CP. The D input goes directly into the S input and
the complement of the D input goes to the R input. The D input is sampled
during the occurrence of a clock pulse. If it is 1, the flip-flop is switched to
the set state (unless it was already set). If it is 0, the flip-flop switches to the
clear state.

(a) Logic diagram (b) Graphic symbol

Figure 6.6 D flip flop

Table 6.2 Characteristic table of D flip flop

Q D Q (t+1)
0 0 0
0 1 1
1 0 0
1 1 1

Figure 6.7 Characteristic equation

Q (t+1) = D (6.2)
 123

The binary information present at the data input of the D flip flop is
transferred to the Q output when the CP input is enabled. The output follows
the data input as long as the pulse remains in its 1 state. When the pulse goes
to 0, the binary information that was present at the data input at the time the
pulse transition occurred is retained at the Q output until the pulse input is
enabled again.

The characteristics table of the D flip flop is shown in Table 6.2. It


shows that the next state of the D flip flop is independent of the present state
since Q (t+1) is equal to the input D whether Q is equal to 0 or 1. This means
that an input pulse will transfer the value of input D into the output of the flip
flop independent of the value of the output before the pulse was applied. The
characteristics equation shows clearly that Q (t+1) = D.

Next the D flip flop is designed with the help of the characteristic
equation. The flip flop is designed by two ways. First method is using
majority gates and the second method is using a QCA binary wire. In the first
method the flip flop is constructed by using 3 majority gates and 1 inverter as
shown in Figure 6.8. The circuit have one input D and along with one control
input Clock. The output Q of the flip flop is fed back to the majority gate M3
and combined with the input D to produce the output Q. Here the gate M1 act
as an AND gate and M2 act as an OR gate. The gate M3 is designed to
perform OR operation which combine the output of Majority gate M1 and
M2.Hence the output of the gate M3 produce the desired characteristic
Equation (6.2).
 124

Figure 6.8 Design of D flip flop using majority gate

The QCA implementation of the D flip flop is shown in Figure 6.9.


The QCA implementation requires 69 cells, with an area of 93,686 nm2 and
this also required less number of cells than previous implementations. This is
achieved by using cell minimization techniques.

Figure 6.9 Layout of D flip flop

Latching is effectively accomplished through timing by using a


four-phase clocking arrangement. Therefore, a D-type FF can be constructed
by a QCA binary wire with four clocking zones as shown in Figure 6.10. In
this case, the input signal is delivered to the output after at least one complete
clock cycle delay and control is accomplished by timing. The relative
simplicity of a D-FF seems to suggest that sequential design in QCA could be
achieved at ease within the Cartesian layout and have been proposed by
 125

Huang et al (2007). However, timing and signal delay must be carefully


considered.

Figure 6.10 Layout of D flip flop using binary wire

The wire which is clocked from left to right with increasing


clocking zones will carry information in the same direction. The clock signals
act to pump information in the circuit as a result of the successive latching
and unlatching in cells connected to different clock phases. Figure 6.10 shows
a wire connected to different clock zones. Each group of cells connected to a
particular clocking zone. The clocked QCA wire is used to carry the
information which is constructed by regular QCA cells. Hence in the QCA
wire input and outputs are equal and it act as a D flips flop. The D flip flop is
implemented by only 16 cells.

6.2.3 Design of JK Flip Flop

A JK flip-flop is a refinement of the SR flip-flop in that the


indeterminate state of the SR type is defined in the JK type. Inputs J and K
behave like inputs S and R to set and clear the flip-flop (note that in a JK flip-
flop, the letter J is for set and the letter K is for clear). When logic 1 inputs are
applied to both J and K simultaneously, the flip-flop switches to its
complement state, i.e., if Q=1, it switches to Q=0 and vice versa.

The Output Q is ANDed with K and CP inputs so that the flip-flop


is cleared during a clock pulse only if Q was previously 1. Similarly, output
Q' is ANDed with J and CP inputs so that the flip-flop is set with a clock
 126

pulse only if Q' was previously 1. The behavior of the JK flip flop is
demonstrated in the characteristics table. A clocked JK flip-flop is shown in
Figure 6.11.

It is very important to realize that because of feedback connection


in the JK flip-flop, a CP signal which remains 1 while both J and K are equal
to 1 will cause the output to complement again and repeat complementing
until the pulse goes back to zero. To avoid this, the clock pulses must have
time duration less than the propagation delay through the flip-flop. The
restriction on the pulse width can be eliminated with a master-slave or edge-
triggered construction.

(a) Logic diagram (b) Graphic symbol

Figure 6.11 JK flip flop

Table 6.3 Characteristic table of JK flip flop

Q J K Q(t+1)
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
 127

Figure 6.12 Characteristic Equation

Q (t+1) = JQ'+K'Q (6.3)

Next the JK flip flop is designed by using the characteristic


equation. The flip flop is constructed by using 4 majority gates and 2 inverters
as shown in Figure 6.13. The circuit has two inputs J and K along with one
control input clock. The output Q of the flip flop is fed back to the input
majority gate M1 and the complement of the output is fed back to the majority
gate M3. The output of M1 and M3 are combined with the clock input by M2.
Here the gate M2 act as an OR gate to produce JQ’+K’Q. The gate M4 is used
to form a loop and to produce the desired characteristic Equation (6.3).

Figure 6.13 Design of JK flip flop using majority gate


 128

The QCA implementation of the JK flip flop is shown in Figure


6.14. The QCA implementation requires 46 cells, with an area of 36,000 nm2.
In the proposed QCA implementation, the required number of cells is 50%
reduced from the previous implementations. This is achieved by using cell
minimization techniques. Anoop Vetteth et al (2003) have proposed QCA
architecture for the JK flip-flop. It consists of 7 majority gates and takes 2 1/
4 clock cycles to complete the output, while our new QCA architecture
requires only one clock cycle.

Figure 6.14 Layout of JK flip flop

6.2.4 Design of T Flip Flop

The T flip-flop is a single input version of the JK flip-flop. As


shown in Figure 6.15, the T flip-flop is obtained from the JK type if both
inputs are tied together. The output of the T flip-flop "toggles" with each
clock pulse. The designation T comes from the ability of the flip flop to
toggle or complement, its state. Regardless of the present state, the flip flop
complements its output when clock pulse occurs while input
T =1.

The characteristics table and the characteristic equation show that


when T = 0, Q (t+1) = Q, that is, the next state is the same as the present state
 129

and no change occurs. When T = 1, Q (t+1) = Q', the state of the flip flop is
complemented.

(a) Logic diagram (b) Graphic symbol

Figure 6.15 T flip flop

Table 6.4 Characteristic table of T flip flop

Q T Q (t+1)
0 0 0
0 1 1
1 0 1
1 1 0

Figure 6.16 Characteristic equation

Q (t+1) = TQ'+T'Q (6.4)

Next the T flip flop is designed by using the characteristic equation.


The flip flop is constructed by using 4 majority gates and 2 inverters as shown
in Figure 6.17. The circuit has one input T and along with one control input
 130

Clock. The output Q of the flip flop is fed back to the input majority gate M2
and the complement of the output is fed back to the majority gate M1. The
output of M1 and M2 are combined with the Clock input by M3. Here the
gate M3 act as an OR gate to produce TQ'+T'Q. The gate M4 is used to form
a loop and to produce the desired characteristic Equation (6.4).

Figure 6.17 Design of T flip flop using majority gate

The QCA implementation of the T flip flop is shown in Figure


6.18. The QCA implementation requires 59 cells, with an area of 60,000 nm2.
In this implementation, the required number of cells is 50% reduced from the
previous implementations. This is achieved by using cell minimization
techniques.

Figure 6.18 Layout of T flip flop


 131

The performance analysis proposed SR, D, JK and T flop flops are


given in Table 6.5. The performance analyses of those circuits are compared
according to the complexity, area, and number of clock cycles and the
proposed designs are compared with existing majority gate method.

Table 6.5 Comparison of Flip flops

Previous structures Proposed structures


Delay Comple- Delay
Complex-
Flip (No. of xity (No. (No. of
ity (No. of Area Area
Flops clock of QCA clock
QCA cells)
cycles) cells) cycles)
SR 7 8cells 300nm x 360nm 2 57 cells 240nm x 300nm 1
D 71 cells 360nm x 278nm 2 69 cells 337nm x 278nm 1
JK 92 cells 320nm x 360nm 2 46 cells 120nm x 300nm 1
T 97 cells 325nm x 380nm 2 59 cells 200nm x 300nm 1

6.3 DESIGN OF SHIFT REGISTERS IN QCA

A register is a group of flip flops suitable for storing binary


information. Each flip flop is a binary cell capable of storing one bit of
information. An n-bit register has a group of n flip flops and is capable of
storing any binary information containing n bits. The register is mainly used
for storing and shifting binary data entered into it from an external source. It
is a type of sequential circuit and an important building block used in digital
systems like multipliers, dividers, memories, microprocessors, etc.

A register capable of shifting binary information either to the right


or to the left is called a shift register. The shift register permits the stored data
to move from a particular location to some other location within the register.
In a shift register, the FFs are connected in such a way that the bits of a binary
number are entered into the shift register, shifted from one position to another
and finally shifted out.
 132

There are two methods of shifting the data. They are 1) Serial
shifting and 2) Parallel shifting. The serial shifting shifts one bit at a time for
each clock pulse in a serial fashion, beginning with either MSB (Most
Significant Bit ) or LSB (Least Significant Bit)For example, a 4-bit register
requires four clock pulses to shift a bit from the input to the output. In parallel
shifting operation, all the data get shifted simultaneously during a single clock
pulse. Hence it is faster than the serial shifting method. These two methods
can be used to shift data into a register and out of the register.

Shift registers are classified into the following four types based on
how binary information is entered or shifted out. They are

1. Serial in Serial out (SISO), 2.Serial in Parallel out (SIPO)


3. Parallel in Serial out (PISO) and 4.Parallel in Parallel out (PIPO)

The block diagrams of the four basic register types are shown in
Figure 6.19. The registers can be designed using flip flops (Morris Mano
1995). An n-bit shift register consists of n-flip flops and the required gates to
control the shift operation.

Figure 6.19 Shift register types


 133

Shift registers are used in digital systems for temporary storage of


information, data manipulation and transferring. In addition, they are used in
counting circuits, such as simple counters, variable modulo counters and
increment counters.

In this thesis, the Serial-in Serial-Out (SISO) and Serial-in Parallel-


Out (SIPO) 3-bit shift registers are designed using D and JK flip flops which
allow shifting in both directions: Left to Right or Right to Left. The results are
verified according to the truth table. The performance analyses of those
circuits are compared according to the complexity, area, and number of clock
cycles.

6.3.1 Serial in Serial Out Shift Register

This type of shift register accepts data serially, i.e. 1 bit at a time on
a single input line. It produces the stored information on its single output also
in serial form. Delay data by one clock time for each stage. It will store a bit
of data for each register. Data may be shifted left using shift left register or
shifted right using shift right register.

6.3.1.1 Shift right register

A shift right register can be built using JK flip flops or D flip flops
as shown in Figure 6.20 and Figure 6.21 respectively. A JK flip flop based
shift register requires connection of both J and K inputs. Input data are
connected to the J and K inputs of the rightmost (lowest order) flip flop. To
input a 1, i.e., J = 1 and K = 0; to input a 0, a 0 at J input, i.e., J = 0 and K = 1,
should be applied. When a clock pulse is applied, the data will be shifted bit
by bit to the right.
 134

Figure 6.20 SISO Shift right register using JK flip flop

Figure 6.21 SISO Shift right register using D flip flop

In the shift register using D flip flops; D input of the leftmost flip
flop is used as a serial input line. To input data 1, one should apply a 1 at D
input and to input data 0, a 0 at the D input should be applied.

Figure 6.22 Data shift in SISO Shift register

For example, consider that all stages are reset and a steady logical 1
is applied at the serial input line connected to stage A. A 1 is applied at the
serial input line i.e., at D input of the first flip flop (right most). When the first
clock pulse is applied, flip flop A is SET, thus storing the 1. Next a 1 is
applied to the serial input, making D=1 for flip flop A and D=1 for flip flop B
because D input of B is connected to the QA output.
 135

When second clock pulse occurs, the 1 on the data input is shifted
to flip flop A and 1 in flip flop A is shifted to flip flop B. The next 1 in the
binary number is now applied at the serial line and a clock pulse is applied.
This 1 is entered into flip flop A and the 1stored in flip flop A is shifted to flip
flop B and the 1stored in flip flop B is shifted to flip flop C. This completes
the serial entry of the 3-bit binary number into the shift register. The data in
each stage after each of the three shift pulses is shown in Table 6.6. The
logical-1 input enters into stage A and then shifts right to stage C after 3clock
pulses. This is graphically explained in Figure 6.22.

For a JK FF, the data bit to be shifted into the flip flop must be
present at the J and K inputs when the clock transition from low to high
occurs. Since the data bit is either a 1 or a 0, there are two cases:1. To shift a 0
into the FF, J=0 and K=1and 2. To shift a 1 into the FF, J=1 and K=0.

Table 6.6 Truth table of SISO shift right register

6.3.1.2 QCA implementation of Shift right register

The shift right register is constructed by using 3 flip flops (JK flip
flops or D flip flops).The flip flops are designed by using majority gates as
explained in previous section. The shift register is implemented by QCA cells
using flip flops implementation in section 6.2. It is a 3 bit shift register hence
3 flip flops are used in the design.
 136

In the JK flip flop design as shown in Figure 6.23, the shift register
is constructed by using 218 cells, with an area of 267,480 nm2 . The design of
each flip flop involves 4 clocking zones i.e, one clock cycle. Hence input-
output delay for the shift register design required 3 clock cycles. In the shift
register using D flip flop as shown Figure6.24, design involves only 31 cells
and delay of 3 clock cycles. The area required for this QCA design is 31,640
nm2 .

Figure 6.23 Layout SISO Shift right register using JK flip flop

Figure 6.24 Layout SISO Shift right register using D flip flop

6.3.2 Shift left register

A shift left register can be built using JK flip flops and D flip flops
as shown in Figure 6.25 and Figure 6.26 respectively. The clock pulse is
applied to all the flip flops simultaneously. When the shift or clock pulse
occurs, each flip flop is set or reset according to the data at the respective flip
flop input. Thus, the input data bit at serial input line is entered into stage A
 137

by the first clock pulse. At the same time, the data of stage A is shifted into
stage B and so on for the following stages. For each shift pulse, data stored in
the register stage shifts to the left by one stage. New data is entered in to stage
A, whereas the data present in stage C are shifted out (to the left) for use by
some other shift register or other building block of digital system.

Figure 6.25 Schematic of SISO Shift left register using D flip flop

Figure 6.26 Schematic of SISO Shift left register using JK flip flop

For example, consider that all stages are reset and a steady logical 1
is applied at the serial input line connected to stage A. The data in each stage
after each of the three shift pulses is shown in Table 6.7. The logical 1 input
enters into stage A and then shifts left to stage C after 3clock pulses.

Table 6.7 Truth table of SISO shift left register


 138

6.3.2 .1 QCA implementation of Shift Left register

The shift left register can be implemented by QCA cells using JK


flip flops or D flip flops as shown in Figure 6.27 and Figure 6.28 respectively.
This QCA design is similar to the QCA implementation of shift right register
except the direction of data shifting. Hence there is no change in the number
of cells required, area and clock cycles.

Figure 6.27 Layout SISO Shift left register using JK flip flop

Figure 6.28 Layout SISO Shift left register using D flip flop

6.3.3 Serial in Parallel out Shift Register

A 3-bit serial in parallel out shift registers are shown on Figure 29


and Figure 30. It is constructed by using JK flip flops and D flip flops. It
consists of one serial input and outputs are taken from all the flip flops
 139

parallel. In this register, data is shifted in serially but shifted in parallel, it is


necessary to have all the data available at the outputs at the same time. Once
the data is stored, each bit appears on its respective output line and all the bits
are available simultaneously, rather than on a bit-by bit basis as with the serial
output.

Figure 6.29 Schematic of SISO Shift right register using D flip flop

Figure 6.30 Schematic of SIPO Shift right register using JK flip flop

6.3.3.1 QCA implementation of Serial in Parallel out Shift registers

The shift register can be built by QCA cells using JK flip flops and
D flip flops are shown in Figure 6.31 to Figure 6.34.The SIPO shift registers
are implemented by QCA cells in both directions of data shifting. It consists
of one serial input S through which the data is entered in to the register
serially. The outputs A, B and C are taken from the flip flops in parallel. It is a
3 bit shift register hence 3 flip flops are used in the design.
 140

In the JK flip flop design, the shift register is constructed by using


218 cells, with an area of 267,480 nm2. This QCA design is similar to the
QCA implementation of serial in serial out shift register. Hence there is no
change in the number of cells required, area and clock cycles. In the shift
register using D flip flop design involves 37 cells and delay of 3 clock cycles.
The area required for this QCA design is 31,640 nm2.

Figure 6.31 Layout of SIPO Shift right register using JK flip flop

Figure 6.32 Layout of SIPO Shift left register using JK flip flop

Figure 6.33 Layout of SIPO Shift right register using D flip flop
 141

Figure 6.34 Layout of SIPO Shift left register using D flip flop

The performance analyses of the proposed shift registers are shown


in Table 6.8. The performance analyses of those circuits are compared
according to the complexity, area, and number of clock cycles.

Table 6.8 Comparison of Shift Registers

Delay
Shift Register Complexity Area
(clock cycles)
SISO (D FF) 31 cells 565nm x 56nm 3
SIPO(D FF) 37 cells 565nm x 56nm 3
SISO/SIPO (JK FF) 218 cells 743nm x 360nm 3

6.4 DESIGN OF COUNTERS IN QCA

A counter is a sequential circuit consisting of set of flip flops


connected in a suitable manner to count the sequence of the input pulses. The
counters can be broadly classified into 3 types as follows:

1. Asynchronous and Synchronous counters


2. Single and multimode counters
3. Modulus counters

An asynchronous or ripple counter can be constructed using


minimum hardware. In an asynchronous counter, each flip-flop is triggered by
 142

the output from the previous flip-flop which limits its speed of operation. The
settling time in asynchronous counters, is the cumulative sum of the
individual settling times of flip-flops. It is also called a serial counter. In
synchronous counters, the speed limitation of ripple counter is overcome by
applying clock pulses simultaneously to all the flip flops which leads to the
settling time of the counter being equal to the propagation delay of a single
flip-flop. Hence synchronous counters also are also called parallel counters.
Single mode counters operate in single mode, i.e., it counts either in the Up
mode or in the DOWN mode, whereas multimode counters operate in both
UP and DOWN modes. Modulus counters are defined based on the number of
states they are capable of counting. For example, a MOD 10 counter has 10
states.

Counters are fundamental components of digital systems. Digital


counters find wide application like pulse counting, frequency division, time
measurement and control and timing operations.

In this thesis, the 4-bit ring and Johnson counters are designed
using D flip flops. The 3-bit up counter is designed using JK flip flops which
counts upward from 0 to 7. The performance analyses of those circuits are
compared according to the complexity, area, and number of clock cycles.

6.4.1 Design of Ring Counter

Ring counters are implemented using shift registers. It is essentially


a circulating shift register connected so that the last flip-flop shifts its value
into the first flip-flop. There is usually only a single 1 circulating in the
register, as long as clock pulses are applied.
 143

Figure 6.35 Ring counter using D flip flop

Table 6.9 Truth table of Ring counter

In the diagram as shown in Figure 6.35, assuming a starting state of


Q0 = 1 and Q1= Q2 = Q3 = 0. At the first pulse, the 1 shift from Q0 to Q1 and
the counter is in the 0100 state. The next pulse produces the 0010 state and
the third, 0001. At the fourth pulse, the 1 at Q3 is transferred back to Q0,
resulting in the 1000 state, which is the initial state. Subsequent pulses will
cause the sequence to repeat, hence the name ring counter. This operation is
shown in Table 6.9.

The ring counter above functions as a MOD-4 counter since it has


four distinct states and each flip-flop output waveform has a frequency equal
to one-fourth of the clock frequency. A ring counter can be constructed for
any MOD number. A MOD-N ring counter will require N flip-flops
connected in the arrangement as the diagram above.
 144

A ring counter requires more flip-flops than a binary counter for the
same MOD number. For example, a MOD-8 ring counter requires 8 flip-flops
while a MOD-8 binary counter only requires 3 (23 = 8). So if a ring counter is
less efficient in the use of flip-flops than a binary counter, why do we still
need ring counters? One main reason is because ring counters are much easier
to decode. In fact, ring counters can be decoded without the use of logic gates.
The decoding signal is obtained at the output of its corresponding flip-flop.
Mehdi Askari et al (2008) have designed ring counter using QCA cells.

For the ring counter to operate properly, it must start with only one
flip-flop in the 1 state and all the others at 0. Since it is not possible to expect
the counter to come up to this state when power is first applied to the circuit,
it is necessary to preset the counter to the required starting state before the
clock pulses are applied. One way to do this is to apply a pulse to the
PRESET input of one of the flip-flops and the CLEAR inputs of all the others.
This will place a single 1 in the ring counter.

6.4.2 QCA Implementation of Ring Counter

The flip flop is a significant part of the counters. In fact, a D-type


flip flop can be constructed by a QCA binary wire with four clocking zones.
An optimal design can be attained with attaching four optimal D flip flops as
well as using an appropriate feedback being able to transmit output signal to
input at every clock cycle.

Figure 6.36 Layout of Ring counter using D flip flop


 145

The 4-bit QCA ring counter design is shown in Figure 6.36. Every
different subsequent four clock zones is repeated alternatively and operates as
a D-FF, i.e., the clocked binary wire operates as a D FF. It is necessary that
D-FF3 output shift to D-FF0 after every clock cycle. So, feedback path only
includes a complete clock cycle.

There is a majority gate at the circuit input. Since one of its inputs
has logic “1”, majority gate is operated as a logic OR function. The “set”
input, for the purpose of the initial turn on the circuit has been connected to
the first flip-flop. The total number of cells required to implement a ring
counter is 82, with an area of 84000 nm2. This is achieved by using cell
minimization techniques.

6.4.3 Johnson Counter using DFF

The Johnson counter, also known as the twisted-ring counter, is


exactly the same as the ring counter except that the inverted output of the last
flip-flop is connected to the input of the first flip-flop.

This counter circulates a stream of ones followed by zeros around


the ring. For example, a four bit shift counter with initial value of the counter
of 0000 is followed by the repeating pattern 0000, 1000, 1100, 1110, 1111,
0111, 0011, 0001, 0000.

Figure 6.37 Johnson counter using D flip flop


 146

Table 6.10 Truth table of Johnson counter

Shift Pulse Q0 Q1 Q2 Q3
0 0 0 0 0
1 1 0 0 0
2 1 1 0 0
3 1 1 1 0
4 1 1 1 1

The Johnson counter works in the following way: Take the initial
state of the counter to be 0000. On the first clock pulse, the inverse of the last
flip-flop will be fed into the first flip-flop, producing the state 1000. On the
second clock pulse, since the last flip-flop is still at level 0, another 1 will be
fed into the first flip-flop, giving the state 1100. On the third clock pulse, the
state 1110 is produced and on the fourth clock pulse, the state 1111 is
produced. On the fifth clock pulse, the inverse of the last flip-flop, now a 0,
will be shifted to the first flip-flop, giving the state 0111. On the sixth and
seventh clock pulse, using the same reasoning, we will get the state’s 0011
and 0001. On the ninth clock pulse, we will get the states 0000, which is the
initial state again. Hence, this Johnson counter has sixth distinct states: 0000,
1000, 1100, 1110, 1111,0111, 0011 and 0001, and the sequence is repeated so
long as there is input pulse. Thus this is a MOD-8 Johnson counter.

The MOD number of a Johnson counter is twice the number of flip-


flops. In the example above, four flip-flops were used to create the MOD-8
Johnson counter. So for a given MOD number, a Johnson counter requires
only half the number of flip-flops needed for a ring counter. However, a
Johnson counter requires decoding gates whereas a ring counter doesn't. As
with the binary counter, one logic gate (AND gate) is required to decode each
state, but with the Johnson counter, each gate requires only two inputs,
regardless of the number of flip-flops in the counter. Note that we are
 147

comparing with the binary counter using the speed up technique discussed
above. The reason for this is that for each state, two of the N flip-flops used
will be in a unique combination of states.

Recirculating a single one, a ring counter divides the input clock by


a factor equal to its number of stages whereas a Johnson counter divides by a
factor equal to twice the number of stages. For example, a four stage Johnson
counter divides by eight while a four stage Ring counter divides by four.
Latching is done by using four clocking arrangement. Input is delivered to the
output after one complete clock cycle delay. The four bit shift counter and the
clocking of D flip flop is shown in Figure 6.37. The truth table of Shift or
Johnson Counter is shown given by Table 6.10.

A Johnson counters represent a middle ground between ring


counters and binary counters. A Johnson counter requires fewer flip-flops
than a ring counter but generally more than a binary counter; it has more
decoding circuitry than a ring counter but less than a binary counter. Thus, it
sometimes represents a logical choice for certain applications. Chakrabarty et
al (2011) have proposed QCA design of Johnson counter.

6.4.4 QCA implementation of Johnson Counter

The 4-bit QCA implementation of Johnson counter design is shown


in Figure 6.38. It is constructed from Ring counter as Figure 6.36. In this
counter the inverted output of last flip flop is connected to the input of first
flip flop. This is achieved by using QCA inverter which is indicated by a
circle in the QCA layout as shown below.
 148

Figure 6.38 Layout of Johnson counter using D flip flop

Majority gate is used at the input for OR function for logic 1 to


initial turn on the circuit with the set input which is connected to the first flip
flop. Once the set input is activated the circuit operates and the outputs are
generated accordingly. In this work 93 cells are used, each of size 20nm x
20nm and area 984 nm2 while the dot size is 5 nm, and effective area is
96,000 nm2.

6.4.5 Design of Up Counter in QCA

A synchronous binary counter counts from 0 to 2N-1, where N is


the number of bits/flip-flops in the counter. Each flip-flop is used to represent
one bit. The flip-flop in the lowest-order position is complemented/toggled
with every clock pulse and a flip-flop in any other position is complemented
on the next clock pulse provided all the bits in the lower-order positions are
equal to 1.

Take for example A4 A3 A2 A1 = 0011. On the next count, A4 A3 A2 A1


= 0100. A1, the lowest-order bit, is always complemented. A2 is
complemented because all the lower-order positions (A1 only in this case)
are 1's. A3 is also complemented because all the lower-order positions, A2
and A1 are 1's. But A4 is not complemented the lower-order positions,
A3 A2 A1 = 011, do not give an all 1 condition.
 149

To implement a synchronous counter, we need a flip-flop for every


bit and an AND gate for every bit except the first and the last bit. The diagram
below shows the implementation of a 3-bit synchronous up-counter.

Figure 6.39 Up counter using JK flip flops

Table 6.11 Truth table of up counter

A B C
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

6.4.6 QCA implementation of Up Counter in QCA

In conventional sequential circuits, any sequential circuit can be


modelled as a single finite state machine (FSM) consisting of combinational
logic and flip-flops. This model can also be used for QCA implementations of
sequential logic. However, there exists an essential difference between
 150

conventional and QCA sequential circuits. In a conventional sequential


circuit, the clock signal controls only flip-flops. In a QCA sequential circuit,
the clock signal controls not only flip-flops, but also the combinational logic.
This difference brings many difficulties in QCA counter designs. Huang et al
(2007) have worked on the design of QCA counters.

In this counter, the clock inputs of all the flip flops are connected
together so that the input clock signal is applied simultaneously to each flip
flop. Only the J and K inputs of FF1 is permanently connected to +1 while the
J and K inputs of the other flip flops are driven by some combination of flip
flop outputs. The J and K inputs of FF2 is connected with (A ) output of
FF1; the J and K inputs of FF3 is connected with AND operated output of A
and B.

Figure 6.40 Layout of Up counter using JK flip flops

The 3-bit QCA up counter design is shown in Figure 6.40. It is


constructed by using JK flip flop. It is a 3 bit counter hence it consists of 3 JK
flip flops. Here the Majority gate is designed to perform AND operation of
the output of flip flop 1 and flip flop 2. This design uses 218 QCA cells and
span over 12 clocking zones from input to output. The input-output delay of
the circuit is therefore 3 clock cycles. The area required for this QCA design
is 267,480 nm2.
 151

The performance analyses of proposed counters are shown in


Table 6.12. The performance analyses of those circuits are compared
according to the complexity, area, and number of clock cycles. The proposed
designs are compared with existing majority gate method.

Table 6.12 Comparison of counters

Previous Structures Proposed structures Delay


Circuit (clock
Complexity Area Complexity Area cycles)
Name

Ring 86 cells 750nm x 82 cells 700nm x 5


Counter 120nm 120nm

Johnson 99 cells 860nm x 93 cells 800nm x 5


Counter 120nm 120nm

Up 221 cells 800nm x 218 cells 743nm x 4


Counter 340nm 340nm

The length of the structure increases as the number of cells


increases. But the width of the structure remains the same. Therefore the
difference in the number of cells is not proportional to the area.

6.5 RESULTS AND DISCUSSION

The design of QCA sequential circuits is quite different from the


design of traditional CMOS sequential circuits because of their different
clocking schemes. The four types of flip flops have implemented and
simulated here. The simulated results of all these flip flops are shown from
Figure 6.41to Figure 6.44. The simulation results obtained with QCADesigner
ver.2.0.3 verifies the functionality of the proposed flip flops. The delay for the
each flip flop is 1 clock cycle. Therefore, each circuit has four clocking zones.
Initially clock 0 is used to get the inputs. Clock 1 is used to route inputs for
 152

majority gate logic, clock 2 is used for finding majority logic and clock 3 is
used to compute output. The output is available at clock 0 again.

Figure 6.41 Simulation Result of SR flip flop

Figure 6.42 Simulation Result of D flip flop

Figure 6.43 Simulation Result of JK flip flop


 153

Figure 6.44 Simulation Result of T flip flop

The simulated results of 3 bit serial in serial out and serial in


parallel out shift registers are shown in Figure 6.45 and Figure 6.46. The shift
registers are constructed by 3 flip flops. Hence 3clock cycles or 12 clock
zones are required to transmit the data from input to the output. In SISO shift
register, at each clock cycle single bit is shifted to next flip flop either right or
left direction as shown in Figure 6.45. But the SIPO shift register, all the bits
are available simultaneously as shown in Figure 6.46.

Figure 6.45 Simulation Result of SISO shift register


 154

Figure 6.46 Simulation Result of SIPO shift register

The simulated result of 4-bit QCA ring counter is shown in


Figure 6.47. The counter is constructed by D flip flops. The D flip flop is
designed by a QCA binary wire as shown in Figure 6.33. It is 4 bit counter
hence it consists of 4 D flip flops. Therefore, 4 clock cycles are needed for the
design of 4 flip flops and 1 clock cycle is used for feedback path. Hence 5
clock cycles are required for the proper operation of the circuit. The “set”
input, is used to turn on the circuit initially which is connected to the first flip
flop. The “Set” input waveform and circuit outputs are shown in Figure 6.47.
In this figure, the rotation of bit “1” is indicated properly. With QCADesigner
ver.2.0.3, the circuit functionality is verified and this design has 82 cells and
an area of approximately 84000 nm2.

Figure 6.47 Simulation Result of Ring counter


 155

The simulated result of 4-bit QCA Johnson counter is shown in


Figure 6.48. Similar to ring counter it is also constructed by D flip flops. The
D flip flop is designed by a QCA binary wire as shown in Figure 6.33. The
delay for the circuit is 5 clock cycles which is required to produce the output.
Once the set input is activated the circuit operates and the outputs are
generated accordingly.

Figure 6.48 Simulation Result of Johnson counter

The proposed QCA up counter has been designed and simulated


using the QCADesigner tool. This tool allows users to do a custom layout and
then verify QCA circuit functionality by simulations. The simulated result of
3-bit QCA up counter is shown in Figure 6.49. This counter is constructed by
JK flip flops as shown in Figure 6.14. The delay for the circuit is 4 clock
cycles which is required to produce the output. Here the 3 clock cycles are
used to design the 3 JK flip flops and 1 clock cycle is used for combinational
logic (MG) design.
 156

Figure 6.49 Simulation Result of Up counter

6.5 CONCLUSION

In this chapter the different flip flops have been designed using
majority gates. The layouts and functionality checks were done using
QCADesigner and the designs are compared according to the complexity, area
and number of clock cycles. The operations of these circuits have been verified
according to the truth table. The proposed layouts are significantly smaller
than the same circuits using standard CMOS technology as well as the
existing circuits in QCA. The different types of shift registers and counters
have been designed and analyzed with the help of proposed D and JK flip
flops. It is shown that clocking requirements, number of zones, as well as the
underlying CMOS circuitry complexity are significantly reduced compared
with previous QCA circuits.