Professional Documents
Culture Documents
The complexity of VLSI is being designed and used today makes the manual
approach to design impractical. Design automation is the order of the day. With the rapid
technological developments in the last two decades, the status of VLSI technology is
characterized by the following.
A steady increase in the size and hence the functionality of the ICs:
• A steady reduction in feature size and hence increase in the speed of operation as well as
gate or transistor density.
• A steady increase in the variety and size of software tools for VLSI design.
This is the field which involves packing more and more logic devices into smaller
and smaller areas. VLSI circuits can now be put into a small space few millimeters across.
VLSI circuits are everywhere. Our computer, our car, our brand new state-of-the-art digital
camera, the cell-phones, and what we have.
Over time, millions, and today billions of transistors could be placed on one chip,
and to make a good design became a task to be planned thoroughly.
In the early days of integrated circuits, only a few transistors could be placed on a
chip as the scale used was large because of the contemporary technology, and
manufacturing yields were low by today's standards. As the degree of integration was small,
1
the design was done easily. Over time, millions, and today billions of transistors could be
placed on one chip, and to make a good design became a task to be planned thoroughly.
The first integrated circuits contained only a few transistors called "small-scale
integration" (SSI), digital circuits containing transistors numbering in the tens provided a
few logic gates for example, while early linear ICs such as the Plessey SL201 or the Philips
TAA320 had as few as two transistors. The term Large Scale Integration was first used by
IBM scientist Rolf Landauer when describing the theoretical concept from there came the
terms for SSI, MSI, VLSI, and ULSI.
The next step in the development of integrated circuits, taken in the late 1960s,
introduced devices which contained hundreds of transistors on each chip, called "medium-
scale integration" (MSI).
They were attractive economically because while they cost little more to produce
than SSI devices, they allowed more complex systems to be produced using smaller circuit
boards, less assembly work (because of fewer separate components), and a number of other
advantages.
1.3.3 LSI technology
Further development, driven by the same economic factors, led to "Large Scale
Integration" (LSI) in the mid 1970s, with tens of thousands of transistors per chip.
Integrated circuits such as 1K-bit RAMs, calculator chips, and the first microprocessors,
that began to be manufactured in moderate quantities in the early 1970s, had under 4000
transistors. True LSI circuits, approaching 10,000 transistors, began to be produced around
1974, for computer main memories and second-generation microprocessors.
Final step in the development process, starting in the 1980s and continuing through
the present, was in the early 1980s, and continues beyond several billion transistors as of
2009.In 1986 the first one megabit RAM chips were introduced, which contained more than
one million transistors. Microprocessor chips passed the million transistor mark in 1989 and
the billion transistor mark in 2005.The trend continues largely unabated, with chips
introduced in 2007 containing tens of billions of memory transistors.
2
1.4 VLSI Design Flow
Start
Design Entity
Logic Synthesis
Pre layout Simulation
System Partitioning
Placement
3
CHAPTER 2
LITERATURE SURVEY
2.1 Brief study about adders
With the advancements in VLSI technology, the circuit designs are getting miniature
in size, consuming lesser power for performing their intended operation and becoming
faster in operation. We all know that area, power and speed are the major constraints in
VLSI design, and the designers are taking enormous efforts to improve their designs
relative to these constraints, but all of these cannot be improved simultaneously.
In circuits like digital signal processor (DSP), microprocessor, or arithmetic and logic
unit (ALU) of any processor, the unit performing arithmetic operations is very important
when considered with respect to the design constraints mentioned above. Most arithmetic
circuits consist of adder, subtractor, multiplier, divider, etc.; the adder unit being the most
basic unit among all the other units.
In this paper, we are comparing various adders in terms of their delay and area, as the
adder is used in the construction of other arithmetic circuits and the performance of the
adder is decisive of the performance of other circuits employing the use of adders.
Half adder is a combinational arithmetic circuit that adds two numbers and produces a
sum bit (S) and carry bit (C) as the output. If A and B are the input bits, then sum bit (S) is
the X-OR of A and B and the carry bit (C) will be the AND of A and B. From this it is
clear that a half adder circuit can be easily constructed using one X-OR gate and one AND
gate. Half adder is the simplest of all adder circuit, but it has a major disadvantage.
4
The half adder can add only two input bits (A and B) and has nothing to do with the carry
if there is any in the input. So if the input to a half adder have a carry, then it will be
neglected it and adds only the A and B bits. That means the binary addition process is not
complete and that’s why it is called a half adder. The truth table, schematic representation
and XOR,AND realization of a half adder are shown in the figure below.
Table 2.1 Truth table Fig. 2.1 Schematic and realization of half adder
NAND gates or NOR gates can be used for realizing the half adder in universal logic and
the relevant circuit diagrams are shown in the figure below.
The full adder is a little more difficult to implement than a half adder. The main
difference between a half adder and a full adder is that the full adder has three inputs and
two outputs. The two inputs are A and B, and the third input is a carry input C IN. The
output carry is designated as COUT , and the normal output is designated as S.
5
Table 2.2 Truth table of Full Adder
The output S is an EX – OR between the input A and the half adder SUM output
B. The COUT will be true only if any of the two inputs out of the three are HIGH or at
logic1.
Thus, a full adder circuit can be implemented with the help of two half adder
circuits. The first half adder circuit will be used to add A and B to produce a partial sum.
The second half adder logic can be used to add CIN to the sum produced by the first half
adder circuit. Finally, the output S is obtained. If any of the half adder logic produces a
carry, there will be an output carry. Thus, COUT will be an OR function of the half adder
CARRY outputs.
6
Figure 2.4 Schematic representation of a single bit Full Adder
With the help of this type of symbol, one can add two bits together,
taking a carry from the next lower order of magnitude and sending a
carry to the next higher order of magnitude.
NAND gates or NOR gates can be used for realizing the full adder in universal logic
and the relevant circuit diagrams are shown in the figure below.
7
Figure 2.6 Full adder using NOR logic
2.1.2 Multi-bit Adders
The half-adder and the full-adder are the simplest addition elements which are limited
to single-bit addition. For performing multi-bit addition, we need to cascade multiple full-
adder (FA) units.
The design of various adders such as Ripple Carry Adder (RCA), Carry Skip Adder
(CSkA), Carry Increment Adder (CIA), Carry Look Ahead Adder (CLA), Carry Save
Adder (CSA), Carry Select Adder (CSlA) and Carry Bypass Adder (CBA) are discussed
below. The each and every adder is named based on the propagation of carry between the
stages.
8
Fig 2.7 A 4 bit Ripple Carry Adder
The layout of a ripple-carry adder is simple, which allows for fast design time;
however, the ripple carry adder is relatively slow when number of stages get increased,
since each full adder must wait for the carry bit to be calculated from the previous full
adder. The gate delay can easily be calculated by inspection of the full adder circuit. Each
full adder requires three levels of logic. In a 32-bit ripple-carry adder, there are 32 full
adders, so the critical path (worst case) delay is 3 (from input to carry in first adder) + 31
* 2 (for carry propagation in later adders) = 65 gate delays.
The disadvantage of the ripple-carry adder is that it can get very slow when one needs to add
many bits.
A carry-look ahead adder (CLA) is a type of adder used in digital logic. A carry-look
ahead adder improves speed by reducing the amount of time required to determine carry
bits. It can be contrasted with the simpler, but usually slower ripple carry adder for which
the carry bit is calculated alongside the sum bit, and each bit must wait until the previous
carry has been calculated to begin calculating its own result and carry bits (see adder for
detail on ripple carry adders). The carry-look ahead adder calculates one or more carry
bits before the sum, which reduces the wait time to calculate the result of the larger value
bits. The kogge- stone adder and brent- kung adder are examples of adder.
9
Fig 2.8 A 4 bit Carry Look Ahead Adder
Carry look ahead logic uses the concepts of generating and propagating carries.
Although in the context of a carry look ahead adder, it is most natural to think of
generating and propagating in the context of binary addition, the concepts can be used
more generally than this. In the descriptions below, the word digit can be replaced
by bit when referring to binary addition of 2.
The addition of two 1-digit inputs A and B is said to generate if the addition will
always carry, regardless of whether there is an input carry (equivalently, regardless of
whether any less significant digits in the sum carry). For example, in the decimal addition
52 + 67, the addition of the tens digits 5 and 6 generates because the result carries to the
hundreds digit regardless of whether the ones digit carries (in the example, the ones digit
does not carry (2+7=9)).
In the case of binary addition, A + B generates if and only if both A and B are 1. If
we write G(A, B) to represent the binary predicate that is true if and only if A+B
generates, we have:
G(A,B) = A+B
The addition of two 1-digit inputs A and B is said to propagate if the addition will
carry whenever there is an input carry (equivalently, when the next less significant digit in
the sum carries). For example, in the decimal addition 37 + 62, the addition of the tens
digits 3 and 6 propagate because the result would carry to the hundreds digit if the ones
were to carry (which in this example, it does not). Note that propagate and generate are
10
defined with respect to a single digit of addition and do not depend on any other digits in
the sum.
In the case of binary addition, A +B propagates if and only if at least one
of A or B is 1. If we write P(A, B) to represent the binary predicate that is true if and only
if A+B propagates, we have
P(A,B) = A+B
Sometimes a slightly different definition of propagate is used. By this definition A
+ B is said to propagate if the addition will carry whenever there is an input carry, but
will not carry if there is no input carry. Fortunately, due to the way generate and propagate
bits are used by the carry look ahead logic, it doesn't matter which definition is used. In
the case of binary addition, this definition is expressed by:
Pi= Ai⊕Bi
For binary arithmetic, or is faster than xor and takes fewer transistors to
implement. However, for a multiple-level carry look ahead adder, it is simpler to use
’
P (A,B).
Given these concepts of generate and propagate, when will a digit of addition
carry? It will carry precisely when either the addition generates or the next less significant
bit carries and the addition propagates. Written in Boolean algebra, with Ci the carry bit
of digit i, and Pi and Gi the propagate and generate bits of digit i
respectively, Ci+1 = Gi + (Pi·Ci).
Implementation details
For each bit in a binary sequence to be added, the Carry Look Ahead Logic will
determine whether that bit pair will generate a carry or propagate a carry. This allows the
circuit to "pre-process" the two numbers being added to determine the carry ahead of time.
Then, when the actual addition is performed, there is no delay from waiting for the ripple
carry effect (or time it takes for the carry from the first Full Adder to be passed down to
the last Full Adder). Below is a simple 4-bit generalized Carry Look Ahead circuit that
combines with the 4-bit Ripple Carry Adder we used above with some slight adjustments:
For the example provided, the logic for the generate (g) and propagate (p) values
are given below. Note that the numeric value determines the signal from the circuit above,
starting from 0 on the far left to 3 on the far right:
C1 = G0 +P0·C0
11
C 2= G1 + P1·C1
C3 = G2 + P2·C2
C4= G3 + P3·C3
Substituting C1 into C2, then C2 into C3, then C3 into C4 yields the expanded
equations:
C1 = G0 +P0·C0
C 2= G1 + G0·P1 + C0·P0·P1
C3 = G2+ G1·P2 + G0·P1·P2 + C0·P0·P1·P2
C4 = G3 + G2·P3 + G1·P2·P3 + G0·P1·P2·P3 + C0·P0·P1·P2·P3
To determine whether a bit pair will generate a carry, the following logic works:
G i = A i · Bi
To determine whether a bit pair will propagate a carry, either of the following logic
statements work:
Pi= Ai ⊕Bi
12
calculation of Ci is done at time 3
calculation of the PG is done at time 2
calculation of the GG is done at time 3
calculation of the inputs for the CLAs from the LCU are done at
time 0 for the first CLA
time 5 for the second, third & fourth CLA
calculation of the are done at
time 4 for the first CLA
time 8 for the second, third & fourth CLA
calculation of the final carry bit (C16) is done at time 5
The maximum time is 8 gate delays (for S8-15). A standard 16-bit ripple carry adder
would take 31 gate delays.
2.3 Multiplexer
A Multiplexer is a device that allows one of several analog or digital input signals
which are to be selected and transmits the input that is selected into a single medium.
Multiplexer is also known as Data Selector. A multiplexer of 2n inputs has n select lines
that will be used to select input line to send to the output. Multiplexer is abbreviated as
Mux. MUX sends digital or analog signals at higher speed on a single line in one shared
device. It recovers the separate signals at the receiving end. The Multiplexer boosts or
amplifies the information that later transferred over network within a particular bandwidth
and time.
13
Fig 2.9 A n:1 Mux
Fig 2.10 A Schematic diagram Table 2.3 A 2x1 mux truth table
14
Fig 2.11 Realization of 2:1 MUX
15
CHAPTER 3
PROPOSED PROJECT
3.1 Introduction
Binary addition is the single most important operation that a processor performs. Most
of the adders have been designed for synchronous circuits even though there is a strong
interest in clockless/asynchronous processors/circuits. Asynchronous circuits do not
assume any quantization of time. Therefore, they hold great potential for logic design as
they are free from several problems of clocked(synchronous) circuits. In principle, logic
flow in asynchronous circuits is controlled by a request-acknowledgment hand shaking
protocol to establish a pipeline in the absence of clocks. Explicit handshaking blocks for
small elements, such as bit adders, are expensive. Therefore, it is implicitly and efficiently
managed using dual-rail carry propagation in adders. A valid dual-rail carry output also
provides acknowledgment from a single-bit adder block. Thus, asynchronous adders are
either based on full dual-rail encoding of all signals (more formally using null convention
logic that uses symbolically correct logic instead of Boolean logic) or pipelined operation
using single-rail data encoding and dual-rail carry representation for acknowledgments.
While these constructs add robustness to circuit designs, they also introduce significant
overhead to the average case performance benefits of asynchronous adders. Therefore, a
more efficient alternative approach is worthy of consideration that can address these
problems.
On the other hand, wave pipelining (or maximal rate pipelining) is a technique that
can apply pipelined inputs before the outputs are stabilized. The proposed circuit manages
automatic single-rail pipelining of the carry inputs separated by propagation and inertial
delays of the gates in the circuit path.
16
Thus, it is effectively a single-rail wave-pipelined approach and quite different from
conventional pipelined adders using dual-rail encoding to implicitly represent the
pipelining of carry signals.
3.2 Background
There are a myriad designs of binary adders and we focus hereon asynchronous self-
timed adders. Self-timed refers to logic circuits that depend on and/or engineer timing
assumptions for the correct operation. Self-timed adders have the potential to run faster
averaged for dynamic data, as early completion sensing can avoid the need for the worst
case bundled delay mechanism of synchronous circuits. They can be further classified as
follows.
In this section, the architecture and theory behind PASTA is presented. The adder first
accepts two input operands to perform half additions for each bit. Subsequently, it iterates
using earlier generated carry and sums to perform half-additions repeatedly until all carry
bits are consumed and settled at zero level.
Fig. 3.2. State diagrams for pasta. (a) initial phase. (b) iterative phase
17
3.3.1 Architecture of PASTA
The general architecture of the adder is shown in Fig. 1.8Theselection input for
two-input multiplexers corresponds to the Req handshake signal and will be a single 0 to
1 transition denoted by SEL. It will initially select the actual operands during SEL = 0 and
will switch to feedback/carry paths for subsequent iterations using SEL = 1. The feedback
path from the HAs enables the multiple iterations to continue until the completion when
all carry signals will assume zero values.
In Fig.3.2 two state diagrams are drawn for the initial phase and the iterative phase
of the proposed architecture. Each state is represented by (Ci+1 Si) pair where Ci+1, Si
represents carry out and sum values, respectively, from the ith bit adder block. During the
initial phase, the circuit merely works as a combinational HA operating in fundamental
mode. It is apparent that due to the use of HAs instead of FAs, state (11) cannot appear.
During the iterative phase (SEL = 1), the feedback path through multiplexer block is
activated. The carry transitions (Ci) are allowed as many times as needed to complete the
recursion.
From the definition of fundamental mode circuits, the present design cannot be
considered as a fundamental mode circuit as the input–outputs will go through several
transitions before producing the final output. It is not a Muller circuit working outside the
fundamental mode either as internally, several transitions will take place, as shown in the
state diagram. This is analogous to cyclic sequential circuits where gate delays are utilized
to separate individual states.
Let and denote the sum and carry, respectively, for ith bit at the jth iteration. +1
18
th
The recursion is terminated at k iteration when the following condition is met:
Theorem 1: The recursive formulation of (1)–(4) will produce correct sum for any
number of bits and will terminate within a finite time.
Proof: We prove the correctness of the algorithm by induction on the required number of
iterations for completing the addition (meeting the terminating condition).
Basis: Consider the operand choices for which no carry propagation is required, i.e 0= 0 for ∀i,
i∈ [0..n]. The proposed formulation will produce the correct result by a single-bit computation time and terminate instantly as (4) is met.
Induction: Assume that +1≠0for some ith bit at kth iteration.
th
Let l be such a bit for which +1= 1. We show that it will be successfully transmitted to next higher bit in the (k + 1) iteration.
As shown in the state diagram, the kth iteration of lth bit state( +1, ) and (l + 1)th bit state ( +2, +1 ) could be in any of (0, 0), (0, 1), or (1, 0) states. As +1=
1, it implies that = 0. Hence, from (3), +1 +1= 0 for any input condition between0 to l bits.
th th
We now consider the (l + 1) bit state ( +2, +1 )for k iteration. It could also be in any of (0, 0), (0, 1),
th th
or (1, 0) states. In (k+1) iteration, the (0, 0) and (1, 0) states from the k iteration will correctly produce output
of (0, 1) following (2) and (3). For (0, 1) state, the carry successfully propagates through this bit level following
(3).
Thus, all the single-bit adders will successfully kill or propagate the carries until
all carries are zero fulfilling the terminating condition.
19
The mathematical form presented above is valid under the condition that the
iterations progress synchronously for all bit levels and the required input and outputs
for a specific iteration will also be in synchrony with the progress of one iteration. In
the next section, we present an implementation of the proposed architecture which is
subsequently verified using simulations.
20
NGO project, skip to step 8. If you are
creating an HDL or schematic project,
Click Next, and optionally, add existing source files to your project in the Add
Existing Sources page.
Click Next to display the Project Summary page.
Click Finish to create the project.
Project Navigator creates the project file, project_name.ise, in the directory you
specified. All source files related to the project appear in the Project Navigator Sources
tab. Project Navigator manages your project based on the project properties (top-level
module type, device type, synthesis tool, and language) you selected when you created the
project. It organizes all the parts of your design and keeps track of the processes necessary
to move the design from design entry through implementation to programming the
targeted Xilinx device.
To help familiarize you with the ISE™ software and with FPGA and CPLD
designs, a set of example designs is provided with Project Navigator. The examples show
different design techniques and source types, such as VHDL, Verilog, ABEL, schematic,
or EDIF, and include different constraints and stimulus files.
2. In the Open Example Project dialog box, select the Sample Project Name that you
want to use.
35
To help you choose an example project, the Project Description field describes each
project. In addition, you can scroll to the right to see additional fields, which provide
details about the project.
4. Click OK.
The example project is placed in the directory you specified in the Destination
Directory field and is automatically opened in Project Navigator. You can then run
processes on the example project and save any changes.
A source file is any file that contains information about a design. Project
Navigator provides a wizard to help you create new source files for your project.
2. In the New Source Wizard, select the type of source you want to create.
Different source types are available depending on your project properties (top-level
module type, device type, synthesis tool, and language). Some source types launch
additional tools to help you create the file, as described in Source File Types.
3. Enter a name for the new source file in the File Name field. Follow the naming
conventions described in File Naming Conventions.
4. In the Location field, enter the directory name or browse to the directory.
6. Click Next.
7. If you are creating a source file that needs to be associated with an existing source
file, select the appropriate source file, and click Next. If this does not apply, skip to the
next step.
36
8. In the New Source Wizard - Summary window, verify the information for the new
source, and click Finish.
After you click Finish, the New Source wizard closes. In some cases, a related tool
is launched in which you can finish creating your file. After the source file is created, it
appears in the Project Navigator Sources tab. If you selected Add to Project when creating
the source file, the file is automatically added to the project.
Project Navigator allows you to add an existing source file to a project. The source
file can reside in the project directory or in a remote directory. If you generated your
source file using the New Source wizard and selected Add to Project, you do not need to
add the source file to your project; it is automatically part of your project.
2. In the Add Existing Sources dialog box, browse to the source file and select it.
3. Click Open.
5. In the Adding Source Files dialog box, select the Design View in which you want
the source file to appear.
6. Click OK.
37
b = 32'b00100110000101010100000000000010;
#20 sel=1'b1;
end
always #5 clk=~clk;
endmodule
GDI Techniques:
2.1 GATE DIFFUSION INPUT (GDI) The performance of a digital circuit is judged by its speed in producing output
when an input is given to it. The most common technology for designing digital circuits is the CMOS technology.
After the development of CMOS logic, there was increasing need to optimize circuit in terms of speed. One
technique thought of was by using Pass Transistor Technology (PTL) which makes use of lesser number of gates
to realize an operation. The Transmission Gate (TG) is one of them which are typically a combination of NMOS
and PMOS transistors connected in parallel. The GDI cell represents another form of pass transistor technology
which looks similar to CMOS but differs in the supply provided to the input terminals. The main advantages of
PTL over conventional CMOS design are as follows- 1) lesser number of transistors results in low power
dissipation and lesser delay. 2) Lesser number of transistors so smaller area and lesser interconnect effects.
However, PTL technologies also suffer from two main problems such as reduced circuit speed at low power
operations and greater static power dissipation. GDI technique that can be used to design fast, low power
circuits using only a few transistors. The GDI cell is similar to a CMOS inverter structure. In a CMOS inverter the
source of the PMOS is connected to VDD and the source of NMOS is grounded. But in a GDI cell this might not
necessarily occur. There are some important differences between the two. The three inputs in GDI are
namely1) G- common inputs to the gate of NMOS and PMOS 2) N- input to the source/drain of NMOS 3) P-
input to the source/drain of PMOS Bulks of both NMOS and PMOS are connected to N or P (respectively), that
is it can be arbitrarily biased unlike in CMOS inverter. Moreover, the most important difference between CMOS
and GDI is that in GDI N, P and G terminals could be given a supply ‘VDD’ or can be grounded or can be
supplied with input signal depending upon the circuit to be designed and hence effectively minimizing the
number of transistors used in case of most logic circuits (eg. 12 AND, OR, XOR, MUX, etc). As the allotment of
supply and ground to PMOS and NMOS is not fixed in case of GDI, therefore, problem of low voltage swing
arises in case of GDI which is a drawback and hence finds difficulty in case of implementation of analog circuits.
2.2 OPERATIONAL ANALYSIS The most common problem with PTL technique is its low voltage swing. An extra
buffer circuitry may be used additionally to eliminate the problem of low swing and improve drivability. The
problem of low swing can be understood with the help of a random function shown in figure and table.
Functionality Of any Random Function using GDI A B Functionality Logic A B Y 0 0 pMOS Trans Gate Vtp 0 1
CMOS Inverter 1 1 0 nMOS Trans Gate 0 1 1 CMOS Inverter 0 Table 2.1 GDI truth table for inverter The problem
of low swing occurs only when A=0 and B=0 where the voltage level is VTP instead of 0.This occurs due to the
poor high to low transition characteristics of PMOS. In the rest of the cases it provides full swing. 2.3 GDI CELL
USING SHANNON EXPANSION Shannon’s Expansion Theorem: The Shannon’s expansion theorem is used
iteratively to build any BDD for a given Boolean function. Shannon’s expansion theorem states that “Any
switching function of n variables can be expressed as a sum of products of n literals, one for each variable’. 13
Let us assume that f (x1, x2, ..., xn) is a switching function of n variables. According to Shannon , one way of
expressing this function is f(x1, x2, ..., xn) = x1f(1, x2, ..., xn) + x1'f(0, x2, ..., xn) On the right side, the function is
the sum of two terms, one of them relevant when x1 is equal to 1 and the other when x1 is equal to 0 . The first
term is x1 times what remains of f when x1 is equal to the value 1 and the second term is x1' times what
remains of f when x1 is equal to 0. Shannon’s expansion theorem in the general case is f = a0 x1'x2' ... xn' +
a1x1'x2' ... xn–1'xn + a2x1'x2' ... xn–1 xn' + ...+ a2n–2 x1x2... xn' + a2n–1 x1x2... xn Each ai is a constant in which
the subscript is the decimal equivalent of the multiplier of ai viewed as a binary number. Thus, for three
variables, a5 (binary 101) is the coefficient of x1x2'x3. In a similar way it can be stated as “any switching
function of n variables can be expressed as a product of sums of n literals, one for each variable “. The concept
of Shannon theorem could be applied with ease to design a basic GDI cell. In Shannon expansion theorem, any
function F can be written as: F(x1…xn) = x1H(x2….xn) + (not x1)G(x2…xn) = x1F(1,x2…xn)+(notx1)F(0,x2….xn) (1)
That is a larger function can be broken down into smaller function as shown above in equation (1). Then, the
smaller functions could be further broken down if possible till the time it is not further reducible. The output
function of a basic GDI cell (where A, B, and C are inputs to G, P, and N, respectively) is given by: Out=AC +
(notA) B (2) Therefore, comparing equations (1) and (2) it is seen that a standard GDI cell can be used to
implement any logic function based on Shannon expansion theorem as shown below taking an example. If
A=x1, C=F(1,x1….xn), B=F(0,x1…..xn) then Out=F(x1…xn)=x1F(1,x2…xn) +( not x1) F(0,x2…xn). 2.4 BASIC T FLIP
FLOP: T flip flop with clock pulse is shown in Fig. 2.1. This particular configuration is the basis for many CMOS T
flip flops, but it does suffer from a similar limitation as the SR flip flop. The characteristic table for toggle or T
flip flop is described in Table I. This is equivalent with, if T is "0", the state will not change and if T is "1" then flip
flop will change state or toggle. 14 Figure 2.1: a T flip flop based on cross-coupled NOR gates. TABLE 2.2: THE
CHARACTERISTIC TABLE FOR A TOGGLE OR 2.5 BASIC GDICELL The GDI method is based on the simple cell
shown in Fig.2.2. A basic GDI cell contains four terminals - G (the common gate input of the nMOS and pMOS
transistors), P (the outer diffusion node of the pMOS transistor), N (the outer diffusion node of the nMOS
transistor) and the D node (the common diffusion of both transistors). P, N and D may be used as either input
or output ports, depending on the circuit structure. Table 2.3 shows how various configuration changes of the
inputs P, N and G in t 15 N P G D Function '0' B A HB F1 B '1' A H + B F2 '1' B A A + B OR B '0' A AB AND C B A
HB+AC MUX '0' '1' A H NOT TABLE 2.3: SOME LOGIC FUNCTIONS THAT CAN BE IMPLENTED WITH A SINGLE GDI
CELL. 2.6 DESIGN OF LOW-POWER, HIGH-SPEED GDIT FLIP FLOP A novel implementation of a GDI TFF is shown
in Fig.2.3. It is based on the MasterSlave connection of two GDI Latches and some gates. Each latch consists of
four basic GDI cells, resulting in a simple eight-transistor structure and gates consists six transistors in order
that related with latch. The components of the latch circuit can be divided into two main categories; GDI gate
and inverter. GDI gate uses two transistors and controlled by the Clk signal. Clk signals fed to the gate of
transistors and create two alternative states: one state is when the Clk is low and the signals are propagating
through PMOS transistors and create transient state and other one is when the Clk is high and the prior values
are maintained due to conduction of the outputs. In this state, GDI gates holding state of the latch. Other gates
for main T flip flop are inverter gates. They are responsible for maintaining the complementary values of the
internal signals and the circuit outputs. Note that the size of the p-channel transistor is wider than that of the
n-channel transistor. This width difference is not needed for functionally correct operation. Rather, it somewhat
compensates for the difference in the motilities of n-channel and p-channel transistors. The effective mobility
of n-channel transistors is between two and four times that of p-channel transistors. These inverters has
important role for swing restoration and improved driving abilities of the outputs, it's buffering of the internal
signals and create suitable output current for driving of load.
Software details:
CHAPTER-6
SOFTWARE TOOL
Design Specification:
This step involved stating in definite terms the performance of the chip. Like
if we are making a processor, data size, processor speed, special functions,
power etc. is clearly stated at this point. Also somewhat it is decided, the
way to implement the design. So, it deals with architectural part of the
design at highest level possible.
HDL:
Tanner Tools:
enter schematics
perform design rule checks (DRC) and layout versus schematic (LVS)
checks.
S-EDIT:
S-Edit is a powerful design capture & entry tool that can generate
netlists directly usable in T-Spice simulations.
Provides an integrated environment for editing circuits, setting up and
running simulations and probing the results.
It also provides the ability to perform SPICE simulations of the circuit
These circuits that can be driven forward into a physical layout.
T-SPICE:
T-SPICE vs SPICE:
MEASUREMENT PROCEDURE
The test chip in fabricated in a standard six metal 130-nm CMOS process
occupying an area of 790-by- 470 μm. The chip was packaged in a surface
mount case and soldered on a printed circuit board, which provides all DC
and RF connections. The VCO is buffered by on-chip open drain amplifiers,
which are not included in the total current consumption. Power supply on
the PCB is bypassed with surface mounted tantalum and ceramic
capacitors. All phase noise values are measured with HP4352S signal source
analyzer through a divide-by-2 circuit. Phase noise improvement of 6 dB due
to frequency division is removed from the measurement results. Operating
voltage VDD is set to 2.8 V with the regulator dropping it to between 2.3 and
2.45 V at VCORE depending on oscillation frequency. Measured current
consumption across the entire coarse tuning range is between 7.3 and 10.6
mA, shows the output frequency across the entire coarse tuning range. The
tuning range is from 3015 to 5298 MHz. The measured voltage at VCORE
and the current consumption versus oscillation frequency are shown in Fig.
10. The measured phase noise results at 1- and 3-MHz offsets for the entire
tuning range or better phase noise performance at all oscillation frequencies
at 1-MHz offset. The performance is comparabl S-EDIT
Start > Electrical> Tanner EDA > Tanner Tools v15.2 > S-Edit v15.2 64-
bit.
Now we will create an inverter schematic and symbol. Start with creating a
new design by going to
Specify the folder you want to create your design in and the name of your
design. Suppose you name it “ENGN1600_tutorial”. It will show up in the
Libraries navigator on the left.
Once the library is loaded you will see the following libraries loaded in the
Libraries window:
Creating the schematic
To load a schematic cell, go to Cell > New View… You will see the following
screen:
Write the name of the cell you want to create the schematic of and then click
OK. A new cell view will open up.
A CMOS inverter needs an NMOS, a PMOS, Vdd, Gnd and In/Out ports.On
the left in the Libraries window,click on the Devices library, its symbol
objects will be listed in the window 12
You might have to move your parts around to make the schematic look the
way you want it. When you click on a particular part on the schematic, the
function of the THREE-BUTTON MOUSE is shown somewhere on the toolbar
like this:
Once we have the main parts in place, it is time to add I/O ports and wire
the parts together. Select and place an Input port and an Output port on the
schematic and give the ports a unique name.
Now using the wiring tool make appropriate connections. After clicking
on the wiring tool, a SINGLE MOUSE CLICK starts the wiring. If you want to
end wiring at a particular location, DOUBLE CLICK.Your completed inverter
schematic should look like this. is the input port and is the output
port.
Inverter Symbol
To create a symbol, first create a View — create a new cell with a new
symbol view, or create a new symbol view of an existing cell using Cell >
New View. Give the symbol a View name, and select the interface it is to be
associatedwith. Then, using the polygon and drawing tools
The SPICE file is saved in the same directory as the schematic. The file
contains the following information:
This generated SPICE file is NOT complete. This is just a description of the
circuit structure that you drew in the schematic. In order to simulate the
inverter, we still need to add some MOS models, simulation type (DC,
transient, AC, Monte Carlo etc.) and give an Input Stimulus.
T-Spice Pro is a complete circuit design and analysis system that includes:
T-Spice Input
********* Simulation Settings - General section *********
.option search="C:\src\TannerToolsShippingFiles\Libraries\Models"
.lib "Generic_025.lib" TT
*-------- Devices: SPICE.ORDER < 0 --------
* Design: AnalysisExamples / Cell: Inverter_TestBench / View:
OperatingPoint
/ Page:
* Designed by: Tanner EDA Library Development Team
* Organization: Tanner EDA - Tanner Research, Inc.
* Info: Operating point analysis testbench of an inverter
* Date: 06/15/2007 2:56:17 PM
* Revision: 0
*************** Subcircuits *****************
.subckt INV A Out Gnd Vdd
*-------- Devices: SPICE.ORDER < 0 --------
* Design: LogicGates / Cell: INV / View: Main / Page:
* Designed by: Tanner EDA Library Development Team
* Organization: Tanner EDA - Tanner Research, Inc.
* Info: Inverter
* Date: 06/15/2007 2:56:17 PM
* Revision: 0
*-------- Devices: SPICE.ORDER == 0 --------
MP1 Out A Vdd Vdd PMOS W=2.5u L=250n M=2 AS=4.5p PS=13.6u
AD=3.125p PD=7.5u
MN1 Out A Gnd 0 NMOS W=2.5u L=250n AS=2.25p PS=6.8u AD=2.25p
PD=6.8u
.ends
********* Simulation Settings - Parameters and SPICE Options *********
.param Vpwr = 3.3v
*-------- Devices: SPICE.ORDER == 0 --------
VVin N_2 Gnd DC 1
XX1 N_2 N_1 Gnd Vdd INV
VVpower Vdd Gnd DC Vpwr
CC1 N_1 Gnd 1p
********* Simulation Settings - Analysis section *********
.op
********* Simulation Settings - Additional SPICE commands *********
.end
Two transistors, MP1 and MN1, are defined in inverterOP.sp. These are
MOSFETs, as indicated by the key letter M that begins their names.
Following each transistor name are the names of its terminals in the
required order: drain–gate–source–bulk. Then the model name (PMOS or
NMOS in this example) and physical characteristics, such as length and
width, are specified. A capacitor CC1 (signified by the key letter C) connects
nodes N 1 and GND with a capacitance of 1p.
Two DC voltage sources are defined: VVin, which sets node N2 to 1.0 volt
relative to ground and VVpower, which sets node Vdd to 3.3 volts as defined
by the variable Vpwr.
Notice that the simulation settings which were entered in the SPICE
Simulation Setup dialog resulted in .option, .lib, and .op commands
being written to the T-Spice input file. The .lib command causes T-
Spice to read the contents of the Generic_025.lib library file for the
evaluation of transistors MP1 and MN1, and the search option
identifies the path to the library files. In this case, the library file
contains two device .model commands, describing MOSFET models
PMOS and NMOS, as shown below for PMOS:
Output
The output file lists the DC operating point information for the circuit.
You can read this file in T-Spice or any text editor.
Simulation Manager:
Select the InverterOP.out display line in the window, then click the Show
Output button to open the output file InverterOP.out in a new T-Spice
window.
If you prefer to view the output in a text editor, simply open InverterOP.out
as a text file. The output file contains the following DC operating point
information (in addition to comments of various kinds, not shown here.
DC ANALYSIS - temperature=25.0
v(N_1) = 3.0633e+000
v(N_2) = 1.0000e+000
v(Vdd) = 3.3000e+000
i1(VVin) = 0.0000e+000
i2(VVin) = 0.0000e+000
i1(VVpower) = -3.1508e-004
i2(VVpower) = 3.1508e-004
Transient Analysis—Inverter
Transient analysis provides information on how circuit elements vary
with time. The basic T-Spice command for transient analysis has three
modes. In the op mode (default), the DC operating point is computed, and T-
Spice uses this as the starting point for the transient simulation. Example 3
illustrates this option.
Schematic
T-Spice Input
********* Simulation Settings - General section *********
.option search="...\Tanner EDA\Tanner Tools v12.6\Libraries\Models"
.probe
.option probev
.option probei
.lib "Generic_025.lib" TT
*-------- Devices: SPICE.ORDER < 0 --------
6.2 Summary:
In this chapter we study about the software tool i.e Tanner tool v13.0 and
various Design Tools in Tanner EDA likeS-edit,a schematic capture tool, T-
SPICE,the SPICE simulation engine integrated with S-edit and W-edit,
waveform formatting.
CHAPTER 7
SIMULATION AND RESULTS
7.1 Simulation and results
SIMULATION
RESULTS
CHAPTER-8
CONCLUSION
Sub threshold leakage power consumption is a great challenge in Nano-meter scale (CMOS)
technology, although previous techniques are effective in some ways, no perfect solution for
reducing leakage power consumption is yet known. Therefore, based upon technology &
design criteria the designers can choose the techniques. In this paper, we provide novel circuit
structure in terms of static & dynamic powers named as “sleep method” it’s a new remedy for
designers. This technique shows the least speed power product among all techniques. The
Proposed technique achieving ultra-low leakage power consumption with much less speed,
especially it shows nearly 20-40% of power than the existing. So, it can be used for future
IC'S for area & power Efficiency
50