Documente Academic
Documente Profesional
Documente Cultură
data. The stored data can be changed by applying varying inputs. Flip-flops and latches
are fundamental building blocks of digital electronics systems used in computers,
communications, and many other types of systems. Flip-flops and latches are used as data
storage elements. It is the basic storage element in sequential logic. But first, let’s clarify
the difference between a latch and a flip-flop.
For example, let us talk about SR latch and SR flip-flops. In this circuit when you Set S
as active the output Q would be high and Q’ will be low. This is irrespective of anything
else. (This is an active-low circuit so active here means low, but for an active high circuit
active would mean high)
A flip flop, on the other hand, is synchronous and is also known as gated or clocked SR
latch.
SR Flip-Flop
In this circuit diagram, the output is changed (i.e. the stored data is changed) only when
you give an active clock signal. Otherwise, even if the S or R is active the data will not
change. Let’s look at the types of flip-flops to understand better.
SR Flip Flop
There are majorly 4 types of flip flops, with the most common one being SR flip flop.
This simple flip flop circuit has a set input (S) and a reset input (R). In this circuit when
you Set “S” as active the output “Q” would be high and “Q‘‘” will be low. Once the
outputs are established, the wiring of the circuit is maintained until “S” or “R” go high, or
power is turned off. As shown above, it is the simplest and the easiest to understand. The
two outputs, as shown above, are the inverse of each other. The truth table of SR Flip
Flop is highlighted below.
S R Q Q’
0 0 0 1
0 1 0 1
1 0 1 0
1 1 ∞ ∞
JK Flip-flop
Due to the undefined state in the SR flip flop, another flip flop is required in electronics.
The JK flip flop is an improvement on the SR flip flop where S=R=1 is not a problem.
JK Flip-Flop
The input condition of J=K=1, gives an output inverting the output state. However, the
outputs are the same when one tests the circuit practically.
In simple words, If J and K data input are different (i.e. high and low) then the output Q
takes the value of J at the next clock edge. If J and K are both low then no change occurs.
If J and K are both high at the clock edge then the output will toggle from one state to the
other. JK Flip Flop can function as Set or Reset Flip flop
J K Q Q’
0 0 0 0
0 1 0 0
1 0 0 1
1 1 0 1
0 0 1 1
0 1 1 0
1 0 1 1
1 1 1 0
D flip flop is a better alternative that is very popular with digital electronics. They are
commonly used for counters and shift-registers and input synchronisation.
D Flip-Flop
In a D flip flop, the output can be only changed at the clock edge, and if the input
changes at other times, the output will be unaffected.
Clock D Q Q’
↓»0 0 0 1
↑»1 0 0 1
↓»0 1 0 1
↑»1 1 1 0
The change of state of the output is dependent on the rising edge of the clock. The output
(Q) is same as the input and can only change at the rising edge of the clock.
T Flip-Flop
These flip-flops are called T flip-flops because of their ability to complement its state
(i.e.) Toggle, hence the name Toggle flip-flop.
T Q Q (t+1)
0 0 0
1 0 1
0 1 1
1 1 0
Applications of Flip-Flops
These are the various types of flip-flops being used in digital electronic circuits and the
applications of Flip-flops are as specified below.
Counters
Frequency Dividers
Shift Registers
Storage Registers
All these circuits have a set of output(s), which depends only on the combination of
present inputs. The following figure shows the block diagram of sequential circuit.
This sequential circuit contains a set of inputs and output(s). The output(s) of
sequential circuit depends not only on the combination of present inputs but also on the
previous output(s). Previous output is nothing but the present state. Therefore,
sequential circuits contain combinational circuits along with memory (storage)
elements. Some sequential circuits may not contain combinational circuits, but only
memory elements.
Following table shows the differences between combinational circuits and sequential
circuits.
Outputs depend only on present inputs. Outputs depend on both present inputs and present state.
Truth Table
Operation
S.N. Condition Operation
1 J = K = 0 (No change)
When clock = 0, the slave becomes active and master is inactive. But
since the S and R inputs have not changed, the slave outputs will also
remain unchanged. Therefore outputs will not change if J = K =0.
2 J = 0 and K = 1 (Reset)
Clock = 1 − Master active, slave inactive. Therefore outputs of the master
become Q1 = 0 and Q1 bar = 1. That means S = 0 and R =1.
Clock = 0 − Slave active, master inactive. Therefore outputs of the slave
become Q = 0 and Q bar = 1.
Again clock = 1 − Master active, slave inactive. Therefore even with the
changed outputs Q = 0 and Q bar = 1 fed back to master, its output will be
Q1 = 0 and Q1 bar = 1. That means S = 0 and R = 1.
Hence with clock = 0 and slave becoming active the outputs of slave will
remain Q = 0 and Q bar = 1. Thus we get a stable output from the Master
slave.
3 J = 1 and K = 0 (Set)
Clock = 1 − Master active, slave inactive. Therefore outputs of the master
become Q1 = 1 and Q1 bar = 0. That means S = 1 and R =0.
Clock = 0 − Slave active, master inactive. Therefore outputs of the slave
become Q = 1 and Q bar = 0.
Again clock = 1 − then it can be shown that the outputs of the slave are
stabilized to Q = 1 and Q bar = 0.
4 J = K = 1 (Toggle)
Clock = 1 − Master active, slave inactive. Outputs of master will toggle. So
S and R also will be inverted.
Clock = 0 − Slave active, master inactive. Outputs of slave will toggle.
These changed output are returned back to the master inputs. But since
clock = 0, the master is still inactive. So it does not respond to these
changed outputs. This avoids the multiple toggling which leads to the race
around condition. The master slave flip flop will avoid the race around
condition.
In the above figure, train of pulses is considered as clock signal. This signal stays at
logic High (5V) for some time and stays at logic Low (0V) for some other time. This
pattern repeats with some time period. In this case, the time period will be equal to
sum of ON time and OFF time.
The reciprocal of the time period of clock signal is known as the frequency of the clock
signal. All sequential circuits are operated with clock signal. So, the frequency at which
the sequential circuits can be operated accordingly the clock signal frequency has to
be chosen.
Types of Triggering
Following are the two possible types of triggering that are used in sequential circuits.
Level triggering
Edge triggering
Level triggering
There are two levels, namely logic High and logic Low in clock signal. Following are the
two types of level triggering.
If the sequential circuit is operated with the clock signal when it is in Logic Low, then
that type of triggering is known as Negative level triggering. It is highlighted in the
following figure.
Edge triggering
There are two types of transitions that occur in clock signal. That means, the clock
signal transitions either from Logic Low to Logic High or Logic High to Logic Low.
Following are the two types of edge triggering based on the transitions of clock
signal.
Register.
We know that one flip-flop can store one-bit of information. In order to store multiple
bits of information, we require multiple flip-flops. The group of flip-flops, which are used
to hold (store) the binary data is known as register.
If the register is capable of shifting bits either towards right hand side or towards left
hand side is known as shift register. An ‘N’ bit shift register contains ‘N’ flip-flops.
Following are the four types of shift registers based on applying inputs and accessing
of outputs.
This circuit consists of three D flip-flops, which are cascaded. That means, output of
one D flip-flop is connected as the input of next D flip-flop. All these flip-flops are
synchronous with each other since, the same clock signal is applied to each one.
In this shift register, we can send the bits serially from the input of left most D flip-flop.
Hence, this input is also called as serial input. For every positive edge triggering of
clock signal, the data shifts from one stage to the next. In this case, we can access the
outputs of each D flip-flop in parallel. So, we will get parallel outputs from this shift
register.
This circuit consists of three D flip-flops, which are cascaded. That means, output of
one D flip-flop is connected as the input of next D flip-flop. All these flip-flops are
synchronous with each other since, the same clock signal is applied to each one.
In this shift register, we can apply the parallel inputs to each D flip-flop by making
Preset Enable to 1. For every positive edge triggering of clock signal, the data shifts
from one stage to the next. So, we will get the serial output from the right most D flip-
flop.
This circuit consists of three D flip-flops, which are cascaded. That means, output of
one D flip-flop is connected as the input of next D flip-flop. All these flip-flops are
synchronous with each other since, the same clock signal is applied to each one.
In this shift register, we can apply the parallel inputs to each D flip-flop by making
Preset Enable to 1. We can apply the parallel inputs through preset or clear. These two
are asynchronous inputs. That means, the flip-flops produce the corresponding
outputs, based on the values of asynchronous inputs. In this case, the effect of outputs
is independent of clock transition. So, we will get the parallel outputs from each D flip-
flop.
Counter is a sequential circuit. A digital circuit which is used for a counting pulses is
known counter. Counter is the widest application of flip-flops. It is a group of flip-flops
with a clock signal applied. Counters are of two types.
Logical Diagram
Operation
S.N. Condition Operation
Truth Table
Synchronous counters
If the "clock" pulses are applied to all the flip-flops in a counter simultaneously, then
such a counter is called as synchronous counter.
Logical Diagram
Operation
S.N. Condition Operation
Classification of counters
Depending on the way in which the counting progresses, the synchronous or
asynchronous counters are classified as follows −
Up counters
Down counters
Up/Down counters
UP/DOWN Counter
Up counter and down counter is combined together to obtain an UP/DOWN counter. A
mode control (M) input is also provided to select either up or down mode. A
combinational circuit is required to be designed and used between each pair of flip-flop
in order to achieve the up/down operation.
Example
3-bit binary up/down ripple counter.
Block Diagram
Truth Table
Operation
S.N. Condition Operation
Type of modulus
2-bit up or down (MOD-4)
3-bit up or down (MOD-8)
4-bit up or down (MOD-16)
Application of counters
Frequency counters
Digital clock
Time measurement
A to D converter
Frequency divider circuits
Digital triangular wave generator.
Memory Devices
A memory is just like a human brain. It is used to store data and instruction. Computer
memory is the storage space in computer where data is to be processed and
instructions required for processing are stored.
The memory is divided into large number of small parts. Each part is called a cell. Each
location or cell has a unique address which varies from zero to memory size minus
one.
For example if computer has 64k words, then this memory unit has 64 * 1024 = 65536
memory location. The address of these locations varies from 0 to 65535.
Memory is primarily of two types
RAM
A RAM constitutes the internal memory of the CPU for storing data, program and
program result. It is read/write memory. It is called random access memory (RAM).
Since access time in RAM is independent of the address to the word that is, each
storage location inside the memory is as easy to reach as other location & takes the
same amount of time. We can reach into the memory at random & extremely fast but
can also be quite expensive.
RAM is volatile, i.e. data stored in it is lost when we switch off the computer or if there
is a power failure. Hence, a backup uninterruptible power system (UPS) is often used
with computers. RAM is small, both in terms of its physical size and in the amount of
data it can hold.
RAM is of two types
ROM
ROM stands for Read Only Memory. The memory from which we can only read but
cannot write on it. This type of memory is non-volatile. The information is stored
permanently in such memories during manufacture.
A ROM, stores such instruction as are required to start computer when electricity is first
turned on, this operation is referred to as bootstrap. ROM chip are not only used in the
computer but also in other electronic items like washing machine and microwave oven.
Following are the various types of ROM −
Cache Memory
Cache memory is a very high speed semiconductor memory which can speed up CPU.
It acts as a buffer between the CPU and main memory. It is used to hold those parts of
data and program which are most frequently used by CPU. The parts of data and
programs, are transferred from disk to cache memory by operating system, from where
CPU can access them.
Advantages
Cache memory is faster than main memory.
It consumes less access time as compared to main memory.
It stores the program that can be executed within a short
period of time.
It stores data for temporary use.
Disadvantages
Cache memory has limited capacity.
It is very expensive.
Virtual memory is a technique that allows the execution of processes which are not
completely available in memory. The main visible advantage of this scheme is that
programs can be larger than physical memory. Virtual memory is the separation of user
logical memory from physical memory.
This separation allows an extremely large virtual memory to be provided for
programmers when only a smaller physical memory is available. Following are the
situations, when entire program is not required to be loaded fully in main memory.
User written error handling routines are used only when an
error occurred in the data or computation.
Certain options and features of a program may be used
rarely.
Many tables are assigned a fixed amount of address space
even though only a small amount of the table is actually
used.
The ability to execute a program that is only partially in
memory would counter many benefits.
Less number of I/O would be needed to load or swap each
user program into memory.
A program would no longer be constrained by the amount of
physical memory that is available.
Each user program could take less physical memory, more
programs could be run the same time, with a corresponding
increase in CPU utilization and throughput.
Auxiliary Memory
Auxiliary memory is much larger in size than main memory but is slower. It normally
stores system programs, instruction and data files. It is also known as secondary
memory. It can also be used as an overflow/virtual memory in case the main memory
capacity has been exceeded. Secondary memories cannot be accessed directly by a
processor. First the data/information of auxiliary memory is transferred to the main
memory and then that information can be accessed by the CPU. Characteristics of
Auxiliary Memory are following −