Evaluation of different CMOS processes using a circuit optimization

advertisement
Institutionen för systemteknik
Department of Electrical Engineering
Examensarbete
Evaluation of different CMOS processes using a
circuit optimization tool.
Examensarbete utfört i Elektroniksystem
vid Tekniska högskolan i Linköping
av
Anders Johansson
LiTH-ISY-EX-ET--09/0365--SE
Linköping 2009
Department of Electrical Engineering
Linköpings universitet
SE-581 83 Linköping, Sweden
Linköpings tekniska högskola
Linköpings universitet
581 83 Linköping
Evaluation of different CMOS processes using a
circuit optimization tool.
Examensarbete utfört i Elektroniksystem
vid Tekniska högskolan i Linköping
av
Anders Johansson
LiTH-ISY-EX-ET--09/0365--SE
Handledare:
J Jacob Wikner
Examinator:
J Jacob Wikner
Linköping, 22 December, 2009
Avdelning, Institution
Division, Department
Datum
Date
ISY
Department of Electrical Engineering
Linköpings universitet
SE-581 83 Linköping, Sweden
Språk
Language
Rapporttyp
Report category
ISBN
Svenska/Swedish
Licentiatavhandling
ISRN
Engelska/English
Examensarbete
C-uppsats
D-uppsats
Övrig rapport
2009-12-22
—
LiTH-ISY-EX-ET--09/0365--SE
Serietitel och serienummer ISSN
Title of series, numbering
—
URL för elektronisk version
http://urn.kb.se/resolve?urn=urn:nbn:se:liu:diva-52338
Titel
Title
Utvärdering av olika CMOS-processer genom användning av ett kretsoptimeringsverktyg.
Evaluation of different CMOS processes using a circuit optimization tool.
Författare Anders Johansson
Author
Sammanfattning
Abstract
The geometry of CMOS processes has decreased in a steady pace over the years
at the same time as the complexity has increased. Even if there are more
requirements on the designer today, the main goal is still the same: to minimize
the occupied area and power dissipation. This thesis investigates if a prediction
of the costs in future CMOS processes can be made. By implementing several
processes on a test circuit we can see a pattern in area and power dissipation
when we change to smaller processes.
This is done by optimizing a two-stage operational transconductance amplifier on basis of a given specification. A circuit optimization tool evaluates the
performance measures and costs. The optimization results from the area and
power dissipation is used to present a diagram that shows the decreasing costs
with smaller processes and also a prediction of how small the costs will be for
future processes. This thesis also presents different optimization tools and a
design hexagon that can be used when we struggle with optimization trade-offs.
Nyckelord
Keywords
CMOS process, Scaling, Operational transcoductance amplifier, Optimization tool
Abstract
The geometry of CMOS processes has decreased in a steady pace over the years
at the same time as the complexity has increased. Even if there are more requirements on the designer today, the main goal is still the same: to minimize the
occupied area and power dissipation. This thesis investigates if a prediction of the
costs in future CMOS processes can be made. By implementing several processes
on a test circuit we can see a pattern in area and power dissipation when we change
to smaller processes.
This is done by optimizing a two-stage operational transconductance amplifier
on basis of a given specification. A circuit optimization tool evaluates the performance measures and costs. The optimization results from the area and power dissipation is used to present a diagram that shows the decreasing costs with smaller
processes and also a prediction of how small the costs will be for future processes.
This thesis also presents different optimization tools and a design hexagon that
can be used when we struggle with optimization trade-offs.
v
Acknowledgments
I would like to thank my supervisor Jacob Wikner for his support, engagement
and quick mail-responses. I also like to thank AnSyn AB for their part of this
project, particularly Robert Hägglund for his help. Further I thank my family and
my girlfriend who always supports me whether I am happy or grumpy. Finally I
would like to thank my former teacher Olle Berglund who has been a big influence
and laid the foundation for my studies at Linköping University. Thank you.
vii
Contents
1 Introduction
1.1 BACKGROUND . . . . . . . . . . . . .
1.2 OBJECTIVE & DESCRIPTION . . . .
1.2.1 Overview . . . . . . . . . . . . .
1.2.2 Delimits . . . . . . . . . . . . . .
1.2.3 The problem on a technical level
1.3 ABBREVIATIONS . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Before you start
2.1 ELECTRONIC DESIGN AUTOMATION
(EDA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 OPTIMIZATION TOOLS . . . . . . . . . . . . . . . . . .
2.3 THE OPERATIONAL AMPLIFIER (OP) . . . . . . . . .
2.3.1 Operational amplifiers in general . . . . . . . . . .
2.3.2 Two-stage operational transconductance amplifier
(OTA) . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 THEORY . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1 Parameters, general & small-signal . . . . . . . . .
2.4.2 Understanding the design hexagon . . . . . . . . .
2.4.3 The cost-function . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
2
3
4
6
7
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
8
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
9
9
14
14
3 Sizing by hand
3.1 INITIAL STEPS . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 BUILDING A TESTBENCH . . . . . . . . . . . . . . . . . . . . .
3.3 SIZING WITH SOME RULES-OF-THUMB . . . . . . . . . . . . .
17
17
17
19
4 The Optimization Tools
4.1 CADENCE TOOL . . . . . . . . . . . . .
4.1.1 Introduction to Cadence tool . . .
4.1.2 Problems with Cadence tool . . . .
4.2 ASCO TOOL . . . . . . . . . . . . . . . .
4.2.1 Introduction to ASCO tool . . . .
4.2.2 Problems with ASCO tool . . . . .
4.3 ANALOG DIMENSIONS TOOL . . . . .
4.3.1 Introduction to Analog Dimensions
23
23
23
23
24
24
24
25
25
ix
. . .
. . .
. . .
. . .
. . .
. . .
. . .
tool
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
x
Contents
4.3.2
Problems with Analog Dimensions tool
. . . . . . . . . . .
25
.
.
.
.
.
.
.
.
.
.
.
.
27
27
27
29
30
30
34
. . . . . . . . . . . . . .
35
.
.
.
.
.
.
.
.
.
.
37
37
38
38
38
38
7 Results
7.1 DISCUSSION & FUTURE WORK . . . . . . . . . . . . . . . . . .
39
40
References & Sources
41
A The specification
A.1 COMMENTS TO THE SPECIFICATION . . . . . . . . . . . . . .
43
44
B The Schematic
45
C The Testbench
47
5 Optimization
5.1 OPTIMIZING IN CADENCE . . . . . . .
5.1.1 Getting the amplifier within target
5.1.2 Comments to the specification . .
5.1.3 Performance measures . . . . . . .
5.1.4 Optimization of each parameter . .
5.1.5 Problems and difficulties . . . . . .
5.2 OPTIMIZATION IN ANALOG
DIMENSIONS . . . . . . . . . . . . . . .
6 Runs
6.1 INITIAL SETUP . . . . . .
6.2 "PROCESS ONE", 350nm .
6.3 "PROCESS TWO", 180nm
6.4 "PROCESS THREE", 90nm
6.5 "PROCESS FOUR", 65nm .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Chapter 1
Introduction
1.1
BACKGROUND
It all started in the summer of 2009 with an e-mail conversation with Dr. Emil
Hjalmarsson, CEO (see Abbreviations on page 6) at AnSyn AB, about a final
year-project at their company. When fall came the outline for the project had
been settled; the project was to be held at Linköping University with a software
tool, called Analog Dimensions, from AnSyn AB.
Analog Dimensions is an optimization-based analog design automation tool developed by two former Ph.D. students at Linköping University. It started as a
research project at the department of Electronic Systems in the year 2000. Since
2006, the software is developed by AnSyn AB. Analog Dimensions is made for
designing industrial circuits in modern CMOS technologies below 90 nm[1].
The development of electronic devices has gone fast over the years and today
we face other problems with speed, size and design complexity than we did in the
past. Today, shrinking geometries of CMOS processes, increase of complexity and
need for second-stage foundries force the IC integrators to always be prepared to
switch from one foundry process to another, or switch process nodes within the
same foundry. A process node refers to the particular method used to make silicon
chips. These processes have decreased over the years and the 45 nm process were
presented in 2008. Around the turn of the year a 32 nm process is planned to
be released[2]. Since it is vital that the risks and costs are held at a minimum,
the requirements of the manufacturer and designer has increased. They have to
understand how the area, performance and power consumption of the processes
will effect the characteristics, and more importantly: the costs of the process that
in the prolongation means the success of the project.
There are some rules-of-thumb that can be applied on these processes in order
to make your decision easier, but they are not accurate enough. Since these three
parameters are dependent on each other the cost-function will therefor be rather
1
2
Introduction
complex. Other problems you have to solve are, for instance, if it is worth to
increase the area to meet the requirements of the performance or the power consumption. When your constant goal is "faster, smaller, cooler", you always have
to make some sacrifices.
1.2
1.2.1
OBJECTIVE & DESCRIPTION
Overview
The purpose of the project is to, on the basis of a two-stage operational amplifier,
investigate several CMOS processes by implementing the circuit in them. The circuit specifications will be met by using an optimization tool where the main goal
is to minimize the occupied area and power dissipation. Hopefully a prediction of
area and power dissipation for future technologies can be shown.
At first the circuit will be sized by hand in an EDA, Electronic Design Automation, software and later on we will use the optimization tool.
There are several softwares to choose from and some of these will be presented
in chapter two.
Besides minimizing the area and power, the deliverable is to create a graph that
shows the resulting parameters as functions of the process (see Figure 1.1.). Further, a statistical analysis should be performed and hopefully a more accurate
prediction of area and power as function of process node geometry will be concluded, compared with the predictions the rules-of-thumb gives you.
1.2 OBJECTIVE & DESCRIPTION
3
Figure 1.1. A desired result graph with a question mark for the performance of future
processes
1.2.2
Delimits
One delimit is that the layout parasitics will not be considered. Although the
layout is indeed a limiting factor on achievable performance we will not consider
it due to the quantity of manual work that has to be done. Also we will only
have one corner to take in concern. The limited time of this 10-week project also
prevents us from developing it any deeper than this, even if there is a possibility
to improve the results with more time given. From the beginning it was planned
to test ten different processes but due to the time running out we cut down to
four, and these four were only optimized in open-loop configuration.
4
1.2.3
Introduction
The problem on a technical level
Whenever we talk about optimization in analog CMOS design it is always one
word that comes to your mind: trade-offs. You will always have trade-offs to
struggle with no matter how much knowledge you have or how good an optimization tool you have access to. Since each parameter in a specification has its own
ideal desire on how the parameters should be set, one quickly realizes that when
you have somewhat 15 parameters to take in concern (the ones from specification),
the complexity increases rapidly. Now the trade-offs become obvious and the questions starts to hail: do we want a fast system or a very linear one, do we prefer
high gain or large bandwidth, et cetera. This contributes that you have enough
knowledge to know in what direction you are going with the system. There is no
ideal solution and you have to weight the trade-offs. This weighting must in some
cases even be decided by the sales department rather than by the designers.
Figure 1.2. The Design Hexagon where the arrows represent the trade-offs between
parameters.
1.2 OBJECTIVE & DESCRIPTION
5
Figure 1.2. shows a design hexagon that tells us how the parameters affect each
other that can be a good helper. With parameters in each corner and trade-off
arrows represented as the sides the hexagon shows us very clear, yet simple, what
parameters there is trade-offs between. Remember this is just a simplification and
in the reality it is even more complex.
PM is the phase margin, GBP is the gain-bandwidth product, SR is the slewrate and PSRR is the power supply rejection ratio.
In this project we will take a look at, and struggle with, these problems. Since the
specification includes values on all the parameters we know what targets we have
and do not have to think that much about what characterization we want for our
system; the trade-off problems will be more than enough.
6
1.3
Introduction
ABBREVIATIONS
Notation
A
A0
ADE
CC
CL
CAD
CEO
CMOS
dB
EDA
GBW
gds
gm
GRRL
GRRH
HD3
IC
ICMR
IR
MOS
NMOS
OP AMP
OR
OTA
P
PM
PMOS
PSRRL
PSRRH
PSS
ROUT
SR
THD
VN
Description
Area
Open-loop gain
Analog design environment
Compensating capacitance
Load capacitance
Computer-aided design
Chief engineering officer
Complementary metal-oxide semiconductor
Decibels
Electronic design automation
Gain-bandwidth product
Drain-source conductance
Transconductance
Ground rejection ratio
Ground rejection ratio
Third harmonic distortion
Integrated circuit
Input common-mode range
Input range
Metal-oxide semiconductor
Negative metal-oxide semiconductor
Operational amplifier
Output range
Operational transconductance amplifier
Power dissipation
Phase margin
Positive metal-oxide semiconductor
Supply rejection ratio
Supply rejection ratio
Periodic steady state
Output resistance
Slew rate
Linearity (Total harmonic distortion)
Output referred noise
Table 1.1. Abbreviations used in this thesis
Chapter 2
Before you start
2.1
ELECTRONIC DESIGN AUTOMATION
(EDA)
Electronic design automation, EDA, is the category of tools for designing and
producing electronic systems ranging from printed circuit boards to integrated
circuits. This is also referred to as circuit-aided design (CAD) programs. The
growth of EDA programs has rapidly increased in recent years due to the continuous scaling in semiconductor technology. Some of the significant EDA companies
are Synopsys, Cadence Design Systems, Mentor Graphics and Tanner EDA. The
first two were founded in the mid 1980s where Cadence is specialized in physical
IC design and Synopsys in logic synthesis. Both have grown to be the two largest
full-line suppliers of EDA tools[3].
Cadence Design Systems is de-facto the most commonly used EDA software and
it will also be used in this project since it is used at Linköping University by students in Electronic engineering for laboratory work and projects. Cadence was
established in 1988, their main corporate product is software used to design chips
and printed circuit boards. The most common member of their product family is
the Virtuoso Platform. It is a powerful tool for designing full-custom ICs. It includes schematic entry, behavioral modeling, circuit simulation, layout, extraction
et cetera. It is used for analog, mixed-signal and standard-cell design[4, 5].
2.2
OPTIMIZATION TOOLS
The biggest part of this project is to optimize the circuit and for that a powerful
optimization tool will be used. In general the goal for these tools are to minimize
a given cost-function by finding suiting values for the chosen parameters. In our
case the cost-functions two biggest rascals are area and power consumption. Some
of the different tools are the built in Cadence optimizer, ASCO (A Spice Circuit
Optimizer), munEDA and Analog Dimensions where the latter will constitute as
7
8
Before you start
the main optimizer in this project. All these, except munEDA, have been tried
and the opinions about them can be read in chapter four.
2.3
2.3.1
THE OPERATIONAL AMPLIFIER (OP)
Operational amplifiers in general
An operational amplifier is a DC-coupled, high-gain electronic voltage amplifier
with differential inputs and, usually, a single output. Typically, the outputs of the
operational amplifiers are controlled by some sort of feedback, either negative or
positive. High input impedance and output voltage are other typical characteristics.
Operational amplifiers are very common in electronic devices of today and the
standard op amps are very cheap to manufacture. They are most common as
integrated circuits but can also come in the form of macroscopic components[6].
2.3.2
Two-stage operational transconductance amplifier
(OTA)
Our circuit is a type of amplifier called operational transconductance amplifier.
The OTA has some characteristics that contrasts the one of the OP: the output is
of a current and it is constructed only of transistors and diodes i.e. no resistors or
capacitances. Since we do not want to reconsider our architecture as we proceed
towards lower supply voltages in smaller process nodes, this two-stage OTA with
an NMOS input differential pair and Miller-compensation is used because it is
suitable for low-voltage applications. A Miller-compensation is a capacitor (in this
case represented by a transistor) that will make sure that the system is stable in
feedback configurations. It is siutable for low-voltage applications because it only
has three transistors on top of each other and that provides us with an adequate
headroom. Other characteristics of the two-stage OTA is high voltage-gain, high
output impedance and high input impedance.
2.4 THEORY
2.4
2.4.1
9
THEORY
Parameters, general & small-signal
In the Appendix we have a component specification where all the parameters are
listed. Before we go any further some theory and important relationships describing the operational amplifier performance will be presented[7, 8].
Open-loop Gain, A0 ,
A0 =
Vout
Vin
A0 = 20log
Vout
Vin
(2.1)
(dB)
(2.2)
A0 is a measure of the ability of an amplifier to increase the amplitude of a signal.
An ideal open-loop OTA has infinite gain.
The small-signal expression for open-loop gain, A0 , is:
A0 =
-gm1
gds1 + gds3
(2.3)
where gm1 is the transconductance for transistor M1, gds1 and gds3 are the drainsource conductance for transistors M1 and M3 respectively.
Gain-bandwidth product, GBW,
GBW = A0 · BW
(2.4)
GBW is, as the name says, the product of the gain and the -3-dB bandwidth and
allows circuit designers to determine the maximum gain for a given frequency, and
vice versa.
The small-signal expression for gain-bandwidth product, GBW, is:
GBW =
gm1
CC
(2.5)
where gm1 is the transconductance for transistor M1 and CC is the Miller-compensation
capacitance represented by M10 in the circuit in Figure 3.2.
Input common-mode range, ICMR,
ICMR = [Vin,min ; Vin,max ]
(2.6)
ICMR is an interval from the minimum input voltage to the maximum input voltage. The minimum is determined by finding the path from ground to the input
node which gives us the maximum number of transistors (a maximum number of
transistors results in a minimum voltage since it is harder to take a path with
many transistors. Make sure that the negative coefficients is subtracted rather
10
Before you start
than added to the contribution), the maximum voltage is determined by finding
the path from vdd to the input node which gives us the minimum number of transistors.
Slew-rate, SR,
SR = max
dvout
dt
(2.7)
The "small-signal" expression for slew-rate, SR, is:
I5
CC
(2.8)
I7
CC + CL
(2.9)
SR =
or
SR =
where I5 and I7 is the drain current for M5 and M7 respectively, CC is the Millercompensation capacitance (M10) and CL is the load capacitance on 75 fF.
SR is basically a measure of how fast the system is; the quicker the output responds to the input, the faster a system we have. This is easiest measured by
letting the input signal be a square pulse and then measure the responding output
slope. Often you just measure it from 10% to 90% due to overshots and such.
Output range, OR,
OR = [Vout,min ; Vout,max ]
(2.10)
OR is basically the same as ICMR except that you find a path to the output
node instead.
2.4 THEORY
11
Power supply rejection ratio, PSRR,
PSRR = 20log
Adiff
AVdd→Vout
(dB)
(2.11)
PSRR is the ratio between amplification for differential input signals and the amplification for variations in supply from Vdd to Vout. It is often given at various
frequencies or, as in this case, frequency intervals. You can say it is basically a
measure used to describe the amount of noise from a power supply that the OTA
can reject.
The small-signal expression for power supply rejection ratio, PSRR, is:


sCII
sCc
+
1
+
1
gm6
gm1 gm6

 gm1
PSRR =
sgm6 Cc
(gds1 + gds2 )gds6
+1
(2.12)
(gds1 +gds2 )gds6
where the gm -terms are the transconductances and the gds -terms are the drainsource conductances for the corresponding transistors. CII is a parasitic capacitance.
Ground rejection ratio, GRR,
GRR = 20log
Adiff
(dB)
Agnd→Vout
(2.13)
GRR is the same as PSRR except that you measure the amplification for variations in ground from ground to Vout. It is a measure used to describe the amount
of noise from ground that a particular device can reject.
The small-signal expression for ground rejection ratio, GRR, is:


s(Cc CI +CI CII +Cc CII )
sCc
+
1
+
1
gm6 CC
gm1 gm6

 gm1
GRR =
s(CC +CI )
(gds1 + gds2 )gds7
+1
(2.14)
(gds1 +gds3 )
where the gm -terms are the transconductances and the gds -terms are the drainsource conductances for the corresponding transistors. CI and CII are parasitic
capacitances.
Output resistance
Rout
(2.15)
Rout can be referred to as the output resistance, output impedance or sometimes
the internal resistance.
12
Before you start
Output referred noise, VN,
1
2π
Z∞
2
|N(jω)|2 dω = V2noise = E v2noise (t) = σnoise
(2.16)
−∞
Above is the noise power we measure, or: the integral of the square-voltage is
equal to sigma-squared of the noise. Sigma only covers about 70% of the normal
distribution so that is why we multiply it with a factor 3 (see specification on page
29), then it covers about 99%.
Single-side spectral density for thermal noise:
I2d (f) = 4kTγgm
where
2
3
(2.17)
< γ < 2.
Single-side spectral density for flicker noise:
V2g (f) =
K
WLCox f
(2.18)
Noise in CMOS circuits is inherent noise, there are three different types of inherent noise: thermal noise, flicker noise and shot noise. Thermal noise is the
same as white noise and occur due to random thermal motion of the electrons and
is dependent of the DC current flowing in the components.
Flicker noise is associated with carrier traps in semiconductors, which normally
gives the DC-current. The traps hold the carriers for some while and then release
them. (DC-current does not float smooth.)
Shot noise is associated with the DC-current flow across a pn-junction.
Load capacitance
CL
(2.19)
CL is simply a load capacitor used for on-chip use only, that is why it is so small.
If we want we can replace it by dominant-pole compensation but this will hurt the
area.
2.4 THEORY
13
Phase margin, PM,
PM = 90 - arctan
f0dB
f2
(2.20)
where f0dB and f2 are the unity gain frequency and the frequency for where the
second pole is placed respectively. We want the second pole to be placed at a
higher frequency
than the unity gain frequency. If the pole is at a lower frequency,
f0dB
arctan f2 ≤ 45 degrees and if the poles is at a higher frequency arctan f0dB
f2
will be ≥ 45 degrees. If the phase margin decreases below specifications, the system risks to be unstable.
The small-signal expression for phase margin, PM, is:
!
g
m1
PM = 90 - arctan
CC
−gm6
CL
(2.21)
where the gm -terms are the transconductances for M1 and M6, CC and CL are the
Miller-compensation capacitor (M10) and the load capacitor (75 fF) .
Linearity
HD3 = 20log10
harmonic1
harmonic3
(dB)
(2.22)
Linearity is also a measure of how well the output signal follows the input signal. You can check the linearity, for instance by see if the output compresses or
decompresses at the peak of the signal. The system is very sensitive to clipping
and that is why this compression occur.
14
Before you start
Figure 2.1. The Design Hexagon where the arrows represent the trade-offs between
parameters
2.4.2
Understanding the design hexagon
Now that we have seen some theory, and particularly the small-signal parameters,
we can take a look at the design hexagon again and see that the trade-offs mentioned includes either gm1 , CC or both. This means that the parameters are very
dependent on how we size the differential gain-stage and the Miller-compensation
(the Miller-compensation is represented by CC in the small-signal expressions). So
by looking at our small-signal parameters will help us to better understand why
these trade-offs occur.
2.4.3
The cost-function
Theory about the parameters alone is not enough. Another part of this project
that require some theory is the cost-function. We will set up a lot of targets in our
optimization tool and even if we do not exactly see how the cost-function works,
it can be good with some theory that helps us understand the optimization. Remember this is just one of many approaches of the cost-functions.
When a performance measure is set to be optimized in some way the tool uses
2.4 THEORY
15
a cost-function[9] to try to attain the goal. This is because we want to see how
much it will cost us to have a parameter out of target. Is it better to increase
the area or power to get everything within specification or is it better to take the
penalty for the parameter out of specification and keep the small area or power?
Those questions will hopefully be easier to answer with a cost-function that helps
us understand. The cost-function is based on mathematical formulas that, if everything goes as preferred, will approach zero. A simplified equation often used
is
r(x) = rC (x) + rP (x) + rT (x)
(2.23)
where r(x) is the total cost, rC (x) is the penalty cost if the design fails to satisfy basic requirements, rP (x) is the penalty cost if the design of the circuit is not
robust enough and rT (x) defines the trade-offs between the circuits characteristics.
rC (x) is defined as
F(y) =
N
X
f[(yi − Bi )/Ai ] + f[(bi − yi )/Ai ]
(2.24)
i=1
where Ai is the steepness of the penalty function for i-th design requirement, Bi
and bi is the design parameters.
rP (x) is defined as
rP (x) =
KH
X
F[D(x, qi )]
(2.25)
i=1
where Di is an interval function and rT (x) is defined as
rT (x) = C
N
X
i=1
f{[Bi − Di (x, qnom )]/Ti } + C
N
X
f{[Di (x, qnom ) − bi ]/Ti }
(2.26)
i=1
where C is a small constant that makes this function less influential on the total
cost-function, compared to rC (x) and rP (x).
We can see rT (x) as a trade-off plane where the performance constrains, defined
by rP (x), constitutes as the surrounding walls. Then the trade-off coefficients Ti
represents the angles between the trade-off plane and the coordinate axes.
If we apply this on one of our performance measures it would work something
like this. The transistors have a target on them to be saturated. This is fulfilled if
Vgs − Vth > 0, Vds − Vdsat > 0
(2.27)
Then the rC (x) will be zero because the target is met. Although, we want the
transistors to have a safety margin of 1 mV and if
0 < Vgs − Vth < 1mV, 0 < Vds − Vdsat < 1mV
(2.28)
16
Before you start
it still has satisfied the basic requirements but it is not robust enough, then it
will be penalized with a cost determined by rP (x). If the transistor has a great
negative influence on some other parameter, it will get a trade-off cost determined
by rT (x). Remember that
rC (x) rP (x) rT (x)
(2.29)
so the cost will be less hurtful if we fulfill the basic requirements.
If the simulation fails to converge, the optimization cannot determine the costfunction value for a combination of circuit parameters, so we have to make sure
that the simulation converges as it should. Although in some cases the simulator still manages to simulate the circuit even with false convergence we will have
performance measures that is far from the required and that renders in a big cost
that we want to avoid.
Chapter 3
Sizing by hand
3.1
INITIAL STEPS
When you start up a project of this size without the amount of knowledge or
experience needed it is vital that you get a good overview of the task. To size
and measure a circuit properly we need to understand how an ideal operational
amplifier works and how different errors and external signals affect the behavior
of the circuit. Issues like noise, nonlinearity, wrong operational region, et cetera,
will always be a problem for a designer and therefor we need to have the right
knowledge, especially when there are about 15 parameters (see the specification
on page 29) to take into concern. There are a lot of publications and literature
about CMOS technology and circuits that are very helpful. Even so, it takes
some time to get an initial feeling for the circuit and the task. From similar, but
much smaller, laboratory work we know that naming the widths and lengths of
the semiconductor is a good starting point; with variables instead of set values it
is easier to change values. After doing some research, a publication of a method
based on the ratio gIDm [10] made the foundation of the initial values. This method
considers the relationship between the ratio of the transconductance gm over the
ID
as a fundamental
DC drain current ID , and the normalized drain current W/L
design relation. It is also a unified synthesis methodology and is not dependent of
if the transistors are in strong or weak inversion.
3.2
BUILDING A TESTBENCH
To be able to simulate something at all we need a testbench that can perform the
required measurements. According to the component specification the testbench
should be able to measure in open-loop and closed-loop configuration. A hint by
Jacob, the supervisor, was to aim for that all the parameters could be measured
and evaluated in the same testbench (See Figure 3.1.). That would save time and
work in the optimization.
17
18
Sizing by hand
To make both an open-loop and a closed-loop configuration in the same testbench we need feedback from the output net to the negative input voltage net
with a switch on the feedback net. The switch makes it able to enable the feedback for closed-loop, and disable it for open-loop. Since this method was chosen
switches were used wherever we needed to specify which loop that was measured.
Switches were placed: between the DiffSignal and the negative input to prevent
the circuit to be fed from two sources simultaneously, to chose between the square
pulse-signal or the DiffSignal for the slew-rate and on the output to enable/disable
Rout .
For both the PSRR and the GRR a DC voltage source was added on power supply
and ground respectively. The different ranges were set as given in the specification.
An advantage with the switch is that you could choose its position for DC, AC and
transient analysis respectively. This makes it possible to measure the slew-rate or
the THD, total harmonic distortion, (closed-loop measurements) simultaneously
as the open-loop measured parameters. Rout was a bit difficult to find a good way
of measuring but the method used was to add a sinusoidal voltage source in series
with a capacitor to the output net. Then look at the voltage drop across the test
resistor divided by the resistance to get the current. Finally divide the current
with the node voltage of the output net and multiply it with the gain.
After all those modifications were done the testbench was able to measure and
evaluate all the parameters. One nice thing with the Virtuoso Analog Design Environment is that one can choose which of the analyzes that should be enabled;
this saves time and makes it easier to simulate when you get a lot of parameters
to look at.
3.3 SIZING WITH SOME RULES-OF-THUMB
19
Figure 3.1. Testbench of the OTA with capacity to measure all the targets from specification.
3.3
SIZING WITH SOME RULES-OF-THUMB
The first thing was to make sure that all the transistors, except the two in the
Miller-compensation (M9 and M10 in Figure 3.2.), worked in the saturated region.
We want this because the saturated region gives the highest gain per transistor,
and a high output impedance gives you low distortion. This was very frustrating
at the beginning when all the transistors seemed to change operation region with
almost every new simulation. After a while one got a feel for what adjustments
that had to be done by looking at the operation region for a specific transistor.
For instance: if M1 and M2 worked in the subthreshold region it meant that the
widths of those transistors were too big and the current through them became too
small. If the widths of M1 and M2 were instead too small, the tail-transistor (M5)
changed to the linear region and so on.
The easiest parameters to adjust to specifications were gain, gain-bandwidth product and phase margin so it seemed like the best to start with. These parameters
are measured in the open-loop configuration. This was at first just to try different
values and see how they affected the parameters. After a while some observations
were made based on the parameters behavior. The differential gain-stage should
be robust enough so that it gives a high gain. Also, if the scale factor of the nDrive
(M7) is too big, the gain decreases. This went on like this until the specifications
for those three parameters were fulfilled. This is a good way to learn more about
20
Sizing by hand
how the different sizes affects the circuit and its behavior.
The circuit was sized with all the parameters in consideration, both the ones
in open-loop configuration and the ones in closed-loop. In Figure 3.2. you can see
the circuit and how each transistor is sized by different variables. The table shows
the values of each variable that was finally used for the first satisfying sizing.
Figure 3.2. Schematic of the two-stage OTA with bias circuit
3.3 SIZING WITH SOME RULES-OF-THUMB
Variable
gainMult = 42.0
nMult = 4.0
pMult = 1.0
nSF = 4.1
PSF = 10.3
nWidth = 2.0 µm
pWidth = 5.0 µm
nMiller = 47.0 µm
pMiller = 4.0 µm
chLength = 500 nm
bias = 0.2
gain = 5.0
R1 = 200k
Comment
Multiplier for the differential gain stage
Multiplier for the NMOS transistors
Multiplier for the PMOS transistors
Scalefactor for the drive-NMOS
Scalefactor for complementary PMOS
Width of the NMOS transistors
Width of the PMOS transistors
Width of the NMOS Miller-transistor
Width of the PMOS Miller-transitor
Channel-length for all transistors
Multiplier for the bias-NMOS (M8)
Multiplier for the gain stage’s chLength
Resistance in the bias-circuit
Table 3.1. Variables used to size the transistors
M1:
W
L
=
gainMult*nWidth
gain*chLength
M2:
W
L
=
gainMult*nWidth
gain*chLength
M3:
W
L
=
pMult*pWidth
chLength
M4:
W
L
=
pMult*pWidth
chLength
M5:
W
L
=
nMult*nWidth
chLength
M6:
W
L
=
pSF*pMult*pWidth
chLength
M7:
W
L
=
nSF*nMult*nWidth
chLength
M8:
W
L
=
nMult*nWidth*bias
chLength
M9:
W
L
=
pMult*pMiller
chLength
M10:
W
L
=
nMult*nMiller
chLength
21
Chapter 4
The Optimization Tools
4.1
4.1.1
CADENCE TOOL
Introduction to Cadence tool
There is an optimization tool built-in in Cadence that we can use as a starting
point. Cadence analyzes the graphs and curves based on waveforms and hence it
is a more time consuming optimization tool. It has a graphical user interface even
though it is basically some graphs moving in different directions. It works, but it
is not the strongest part of Cadence. Although this may seem like a bad optimizer
we will find out that it is quite good after all, comparing to the other tools used
in this project.
4.1.2
Problems with Cadence tool
Since this is not the tool-of-choice for this project it has to have some drawbacks,
and it certainly has; it is too time consuming. Particularly one main thing that
would be preferable is a way to weight the cost-functions. The weighting had
came in quite handy when the whole circuit was optimized with respect to all
parameters. Then one could have set that it was more important to, for instance,
minimize the area rather than trying to get the PSRRH within target.
We also wanted the operation regions to be in saturated region and at first this did
not seem possible to set. At the end of the time-line it was figured out that this
is possible to do but it is quite lengthy. Also you have to take into consideration
an operation that you only can optimize with the testbench in one configuration
at the time which makes it impossible to optimize with all parameters in concern.
Over all you have to do all the setup yourself and you have no help from the
program so that is a drawback. Beside those main problems it is quite capricious
with sudden crashes and sometimes ignoring its tasks.
23
24
4.2
4.2.1
The Optimization Tools
ASCO TOOL
Introduction to ASCO tool
Since the built-in Cadence optimization tool left a lot to wish for, another tool
was presented: ASCO (A Spice Circuit Optimizer). In ASCO, one must have a
properly formatted input netlist file, and since we use Spectre, the default file
extension is <inputname>.scs. In this netlist file, all the information about the
circuit is gathered; voltages, transistors, parameters, input signals, analyzes et
cetera. Here we can set our design variables from cadence to be design variables
in ASCO as well. Further, we need to have a configuration file, <inputname>.cfg,
where we specify what analysis we want to perform, how conservative or liberal
it should be, what variable we want to alter et cetera. Also, we set up which
parameter to optimize and what targets that are desired. We also need to create a
directory called /extract where we can keep scripts that is necessary for the process
to work, for instance: If we have specified a measurement in the configuration
file called P_SUPPLY to be a certain value, we can call an external script that
performs the calculation. These scripts are stored in the directory /extract.
4.2.2
Problems with ASCO tool
This tool is far from intuitive and does not have a graphical user interface and
therefor the adjustments have to be done using a text editor, and run in a terminal
window. The initial idea to compare the Cadence tool with this tool was to see if
there was a big difference in results, since they have different approaches on how
to calculate the cost-functions. The plan was to optimize an CMOS inverter to
minimize the power consumption with respect to the width of the transistors, the
width should vary from [1mm 10mm]. After comparing these two the mistrust
for the ASCO tool was big. After optimizing in Cadence we got satisfying values,
but when optimizing with ASCO one could not get a descent value. It ignored
the interval [1mm 10mm] and chose the width to 1µm which is 1000 times smaller
than the minimum value. Further you do not get any units for the cryptic numbers shown in the terminal window that the tutorial does not motivate further. So
the ASCO optimizer is, with consideration to time restrains and the non-intuitive
design, not a suiting tool for this project. A result from an ASCO optimization is
seen on the next page and as you can see, it is very cryptic.
4.3 ANALOG DIMENSIONS TOOL
25
best-so-far cost funct. value=0.40609
best[0]=-5.173398086
best[1]=9.592135291
best[2]=9.780050221
best[3]=-8.086606726
best[4]=9.822119535
Generation=51 NFEs=2080 Stategy: DE/rend-to-best/1/exp
NP=40
F=0.7
CR=0.9
cost-variance=0.026777
INFO: de36.c - Maximum number of generations reached (genmax=50)
Ending optimization
INFO: ASCO has ended on ’linux’
4.3
4.3.1
ANALOG DIMENSIONS TOOL
Introduction to Analog Dimensions tool
The big advantage with Analog Dimensions is that it calculates the cost-function
on the basis of equations instead of waveforms like the other tools tried out i.e. it
saves us a lot of time. The other big advantage for less experienced users is the
graphical user interface that makes it a lot easier to understand and set up the
parameters and performance measures correct. Further this tool provides us with
an option to choose and set the operation region and also an option to weight the
performance measures. As you can see this tool is, on the paper, the most suitable
for this project.
4.3.2
Problems with Analog Dimensions tool
During the period this project was ongoing AnSyn launched a new version of their
tool and it contained some bugs that unfortunately slowed down the progress
of the project. one can say that it was the bottleneck of this projects success.
These problems were not related to the tool itself, but we also had problem with
generating netlists, start the optimization, defining analyzes and load old projects
et cetera. Due to this problems the option with setting the operation regions
could not be used and that is why that was solved in Cadence after all and more
important - we had to reduce the number of processes from ten to four. Also, if
you get error-messages, Analog Dimensions leaves a lot to wish for when it comes
to explaining what the problem is.
Chapter 5
Optimization
5.1
OPTIMIZING IN CADENCE
5.1.1
Getting the amplifier within target
After the sizing-by-hand was done we could start to optimize the circuit with
the built-in Cadence tool. Since most of the parameters are to be measured in
open-loop configuration it was a good idea to start with that, just as when the
sizing-by-hand was made. Again start with Gain, A0 , Gain-Bandwidth Product,
GBW, and Phase margin, PM. If all of those suit the specification we would have
a rough template to start from when moving on to closed-loop later on. The
difficulties with this is, above all, that when a satisfying solution has been found
for open-loop you wont be able to vary the variables that much in closed-loop
because it affects the parameters a lot. In Figure 5.1. you see the open-loop
configuration and in Figure 5.2. the closed-loop configuration and a table (Table
5.1.) with the parameters and comments on how they each were set up in the
optimization environment.
27
28
Optimization
Figure 5.1. Testbench of the OTA in open loop configuration
Figure 5.2. Testbench of the OTA in closed loop configuration
5.1 OPTIMIZING IN CADENCE
Specification
Open-loop gain
Gain-bandwidth product
Input common-mode range
Input range
Slew-rate
Power Dissipation
Output range
Supply rejection ratio
Ground rejection ratio
Supply rejection ratio
Ground rejection ratio
Output resistance
Output referred noise
Load capacitance
Phase margin
Area
Linearity
Parameter
A0
GBW
ICMR
IR
SR
P
OR
PSRRL
GRRL
PSRRH
GRRH
Rout
VN
CL
PM
A
THD
29
Target
4000 (72dB)
60 MHz
[0.5 V, 1.5 V]
[0.8 V, 1.8 V]
100 V/µs
- mW
[0.5 V, 1.5 V]
70 dB
70 dB
50 dB
50 dB
250 kOhm
0.5 mV
75 fF
55 degrees
- Sq µm
60 dB
Comment
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Table 5.1. The design specification with all the necessary information
5.1.2
Comments to the specification
1. Notice the relation between IR, OR and ICMR.
2. There is a competing relation between IR, ICMR and OR.
3. The slew-rate is measured in closed-loop configuration.
4. Free optimization target, i.e. minimize power.
5. The output range is measured in closed-loop configuration.
6. Measured from 0 to 50 kHz.
7. Measured from 0 to 50 kHz.
8. Measured from 50 kHz to 1 MHz.
9. Measured from 50 kHz to 1 MHz.
10. Minimum output resistance.
11. +/- 3 sigma.
12. Intended for on-chip use only. Notice that dominant-pole compensation is
possible too, but will obviously hurt area, A.
13. Notice that dominant-pole compensation is possible too.
14. Free optimization target, i.e. minimize area.
15. Closed-loop linearity with unity feedback factor.
30
5.1.3
Optimization
Performance measures
We know the basics of the cost-function and can use that knowledge while setting
up satisfying requirements on the performance measures. We know what value the
parameters are required to have from the specification. Now we set up expressions
that tell the tool how we want to optimize the circuit. For A0 , GBW, PM, THD
and SR it is quite easy since it is basically a value we want to reach and it is not
bound to any intervals or such. In that case we simply fill in the desired target
and the tool will find a solution that is greater than or equal that specified value.
For instance: PM ≥ 55 degrees.
The same is basically done with PSRR and GRR except that we divide them
into two frequency intervals. PSRRL and GRRL is measured from 0-50kHz and
PSRRH and GRRH from 50kHz-1MHz. This is made because it is harder to avoid
the PSRR and GRR to drop at high frequencies.
The area and power dissipation are free optimization targets and should therefor
be minimized; just get a good performance measure and approach zero. As you
can see we can basically choose between maximizing or minimizing the value of a
parameter. If we want the parameter to match a certain value this can be made
by taking the desired value and subtract the formula for measuring the parameter
of interest. This was tried out in this project but the approach from above seemed
to fit better with the specification.
5.1.4
Optimization of each parameter
Below is a list of the performance measures that were set up. As you can see it is
not everyone from the specification, this is because some of the parameters should
not be optimized, only set to a certain value.
1. The open-loop gain,A0 , was measured by taking the value of the output voltage
in decibels at 1 Hz. From the beginning it was measured by hand in the waveform
window, but when the optimization started it was more accurate and easier to
look at the expression instead. This was done by taking the expression
(value(dB20(VF("/vOut"))) 1 ?histoDisplay nil ?noOfHistoBins 1)
Then a permanent expression was in the output box in the ADE Window. Since
it was measured in decibels, a value of 72 dB or higher were desired. After some
unsuccessful simulations a pattern was established showing that the gain is very
much dependent on the channel length of the transistors, i.e. the larger the channel the higher the gain. This was strange though because it should be the other
way around since a larger channel-length should generate in a smaller current and
therefor also the transconductance (see small signal section).
2. The Gain-bandwidth product,GBW, is the product of the gain and the bandwidth. The expression is:
gainBwProd(VF("/vOut"))
5.1 OPTIMIZING IN CADENCE
31
This could be a trade-off between gain and bandwidth. One can keep the gain and
increase the bandwidth though, but this often results in that other targets will be
out of specification. GBW is also dependent on the NMOS Miller-transistor i.e.
the transistor which represents the capacitor in the Miller-compensator. With decreasing values on the NMOS Miller-transistor one will have increasing GBW and
vice versa. This has to do with the pole placement that the Miller-compensation
adjusts.
3. The phase margin
phaseMargin(VF("/vOut"))
also depends a lot on the pole placement i.e the Miller-compensation. In addition to that we also have a PMOS transistor that represents an resistor. If the
dominant pole is on the output, the PMOS does not affect the GBW but is of
the essence for the phase margin. With increasing values of the NMOS, the phase
margin increases, and with decreasing values it decreases.
A0 ·p1
=
90
arctan
and GBW = f0dB = A0 · p1
PM = 90 - arctan f0dB
f2
f2
As you can see from these equations, this generates some trouble when you have to
take both PM and GBW in consideration because of the pole p1 . If the frequency
of the pole increases, the unity gain, i.e. the GBW increases, but at the same time
PM decreases. One must find a balance between those two so that both can meet
the specifications.
4. The power supply rejection ratio, PSRR, for low frequencies was optimized
by starting with the initial values from above and then slightly vary them, but in
a smaller span than before, and mainly take the PSRRL in consideration. The
expression for measuring PSRRL is:
value((db(getData("/Vdiff" ?result "xf")) db(getData("/VsupplyNoise" ?result "xf")))
50000 ?histoDisplay nil ?noOfHistoBins 1)
In other words, it means the difference between the amount of noise from power
supply that a particular device can reject from 1 Hz to 50kHz. Based on the optimization one should increase the width of the PMOS transistors, width of both
the NMOS and PMOS in the Miller-compensation and channel length. Also one
should decrease the width of the NMOS transistors. The hardest part of the optimization was to get the PSRRH within target since the PSRR has a tendency to
drop faster at higher frequencies.
5. The ground rejection ratio, GRR, was measured exactly the same as PSRR
with just a different expression, videlicet:
32
Optimization
value((db(getData("/Vdiff" ?result "xf")) db(getData("/VgroundNoise" ?result "xf")))
50000 ?histoDisplay nil ?noOfHistoBins 1)
for low frequencies.
Unfortunately, the GRR on high frequencies also drops faster and makes it hard
to get within the specification.
6. The THD was the parameter found to be the most difficult to measure. The
idea with this is to make sure that the amplifier is stable, this means basically that
the output signal should follow the input signal and that it does not compress or
dislocates.
This was made by running a periodic steady state analysis (PSS-analysis) and
then make a script that takes the first harmonic wave in decibels subtracted with
the second harmonic wave in decibels. This is the expression from the optimization:
(dB20(harmonic(v("/vOut" ?result "pss-fd.pss") 1))
- dB20(harmonic(v("/vOut" ?result "pss-fd.pss") 2)))
This performance measure was set up to be ≥ 60 dB. Also, an expression for the
third harmonic wave was included to make sure that the amplifier was stable for
both even and odd distortion.
7. Slew-rate was a bit tricky because the testbench configuration had to be adjusted just for this parameter alone. This means that if you have good costfunctions and parameter values for all the other parameters listed here, you can
adjust the testbench for SR-mode and then discover that the SR is far off the
targeted value. This happened more than one time. The expression was:
slewRate(VT("/vOut") 0.5 nil 1.5 nil 10 90 nil nil nil 1)
This performance measure was set up to be ≥ 100M (because it was measured in
V/s).
8. Since we wanted all the transistors (except the ones in the Miller-compensation:
M9 and M10) to work in saturated region we had to make sure that each transistor
fulfilled the requirements for saturation, i.e. Vgs − Vth ≥ 0 and Vds − Vdsat ≥ 0.
The expressions looked like this:
(OP("/Iamplifier/MX" "vgs") - OP("/Iamplifier/MX" "vth"))
(OP("/Iamplifier/MX" "vds") - OP("/Iamplifier/MX" "vdsat"))
5.1 OPTIMIZING IN CADENCE
33
and were set up to be ≥ 1 mV for the NMOS-transistors and ≤ -1 mV for the
PMOS-transistors.
9. The power dissipation were quite hands on, just multiplying the voltage of
the DC source with the current through the DC source.
(OP("/VsupplyNoise" "v") * OP("/VsupplyNoise" "i"))
10. Finally, the area was calculated in a somewhat lengthy way. By adding
every transistors width times length times multiplier one could get one correct
expression.
((VAR("pWidth") * VAR("pMult") * VAR("chLength"))
+ (VAR("pWidth") * VAR("pMult") * VAR("chLength"))
+ (VAR("pWidth") * VAR("pSF") * VAR("pMult")
* VAR("chLength")) + (VAR("pMiller") * VAR("pMult")
* VAR("chLength")) + (VAR("chLength") * VAR("nMult")
* VAR("nMiller")) + (VAR("nWidth") * VAR("gainMult")
* VAR("gain") * VAR("chLength")) + (VAR("nWidth")
* VAR("gainMult") * VAR("gain") * VAR("chLength"))
+ (VAR("nWidth") * VAR("nMult") * VAR("bias")
* VAR("chLength")) + (VAR("nWidth") * VAR("nMult")
* VAR("chLength")) + (VAR("nWidth") * VAR("nMult")
* VAR("nSF") * VAR("chLength")))
34
Optimization
Parameters
gainMult = 42.0 → 60.0
nMult = 4.0 → 8.0
pMult = 1.0 → 12.0
nSF = 4.1
PSF = 10.3
nWidth = 2.0µm → 6.0µm
pWidth = 5.0µm → 6.0µm
nMiller = 47.0µm → 41.0µm
pMiller = 4.0µm → 1.0µm
chLength = 500nm
bias = 0.2
gain = 5.0 → 6.0
R1 = 200k → 60k
Comment
Multiplier for the differential gain stage
Multiplier for the NMOSes
Multiplier for the PMOSes
Scalefactor for the drive-NMOS
Scalefactor for complementary PMOS
Width of the NMOS-transistors
Width of the PMOS-transistors
Width of the NMOS Miller-transistor
Width of the PMOS Miller-transitor
Channel-length for all transistors
Multiplier for the bias-NMOS chLength
Multiplier for the gain stage’s chLength
Resistance in the bias-circuit
Table 5.2. Final variable values
5.1.5
Problems and difficulties
As you can see, the initial values of the variables from the handmade sizing had to
be adjusted. Especially the gain stage had to be more robust and also the widths
of the NMOS transistors increased. This shows just how hard it is to size a circuit
by hand with this scarce experience and even if the solution looks good, it often
turns out that there are one or several better ways of sizing it.
The first big problem was to get the slew-rate within specifications at the same time
as PSRR, GRR because there is a trade-off between these. This was solved eventually when we found satisfying values on the widths and lengths. Also, the input
swing had to be decreased from 1V to 850 mV to get the THD within specification.
Further, one over-night simulation were made with objective to get all the parameters within target and in addition to that also minimize the power dissipation
and area. The anti climax was that the transistors had changed operation region
to subthreshold and not much had improved, actually, the area had increased quite
a lot so that was a disappointment.
5.2 OPTIMIZATION IN ANALOG
DIMENSIONS
5.2
35
OPTIMIZATION IN ANALOG
DIMENSIONS
While the problems with the new generation Analog Dimensions tool were fixed
an old tutorial example provided by AnSyn AB was reused. This was done by
changing the original folded cascode amplifiers structure to the two-stage amplifiers we are using. When we do this we also have to change names in project-file
so that the transistor- and instance names in the modified folded cascode matches
the ones in the two-stage. This is time consuming and not a very good course of
action. This did not really lead to anything interesting in terms of results but it
was a good way to get to know the tool.
We decided to only focus on one testbech configuration in the optimization due
to all the struggle. This meant that the the final performance measures that was
optimized were: A0 , GBW, PM, PSRRL, PSRRH, GRRL, GRRH, Area, Pdiss
and the transistor regions.
The final version that was used included both Analog Dimensions and the use
of ocean scripts. Since this results in that you are not allowed to define any analyzes in Analog Dimensions, all that has to be done in Cadence. You set up
all your analyzes and performance measures in Cadence and check that it is running as it should, then save the state as a ocean script. This script with some
commenting and corrections is then loaded with the project you have created in
Analog Dimensions. By doing this you have basically imported all information
from Cadence and Analog Dimensions interpret these analyzes instead of setting
up own.
Left to do in Analog Dimensions is to set up restrains and weights of the performance measures and start the optimization. When you have started the optimization you also have to paste an initiation file into the ocean terminal so that
both these work simultaneous. With a way of weighting the performance measures
and setting the regions (although not as easy as planned) we now can optimize
with all the restrains we have. Figure 3.5. shows a flow diagram over the strategy
with ocean scripts.
36
Optimization
Figure 5.3. Flow diagram over the use of ocean scripts.
Chapter 6
Runs
6.1
INITIAL SETUP
When Analog Dimensions finally worked properly, the baptism of fire was held:
full optimizing on a first process to make sure all the performance measures were
correct. This was run overnight and when we evaluated it, it seemed like it had not
taken the area and power dissipation in concern, this means that our parameters
fit the specification, but the sizes were larger than they necessary should be. Even
the optimization in Cadence was a lot better if we just look at the area and power
dissipation. The conclusion was to take another look at the performance measures
of those two parameters and try to improve it further. Some slight changes of
the targets for area and power dissipation were made, and also the performance
measures for the rejection ratios had to be modified due to the fact that we have
the testbench set up for open-loop. Finally a decision was made that no more adjustments would be made so that all the processes had the same starting condition.
Since it became quite lengthy with the ocean scripts and setup in Cadence we
tried to improve the procedure so that the runs could be performed easier. With
goal to avoid any copy-pasting in our ocean files we added if-statements and load
commands. Finally the only change that had to be done when switching process
was to change from the old process name to the present in the terminal. Meaning that we had eliminated the manual work for: changing process, changing the
netlist widths, lengths and finger numbers for the different processes, and also to
launch Analog Dimensions faster. By doing this we saved time and manual work
and, most of all, it looked nice. Even if this does not really has to do with the
optimization as such, it is a part of the job description in that sense that the
switching between processes should be as easy as possible.
37
38
6.2
Runs
"PROCESS ONE", 350nm
This process was the biggest one, but even so, the area and power dissipation
were surprisingly big. Even if Analog Dimensions found an optimal solution, all
the performance measures did not fulfill the specification, gain = 70.904 dB and
PSRRH = 48.188 dB.
6.3
"PROCESS TWO", 180nm
This process performed as expected in a sense. Its values was not surprising and
placed in the middle of the processes. In this process, the performance measures
did not reach within specification as well. PSRRL = 61.72 dB and PSRRH =
35.31 dB.
6.4
"PROCESS THREE", 90nm
This process behaves different and require some additional change in setup. In the
netlist file the widths and lengths have to be multiplied with a scale factor 1e6.
This is because "process three" calculate its widths and lengths different compared
to process one and two. Also, the transistors are defined as sub circuits in this
process, meaning that the performance measures for the transistors have to be
re-written as
(get(getData("Iamplifier."transistor name".M1"
?result "dcOpInfo-info") "vgs")
- get(getData("Iamplifier."transistor name".M1"
?result "dcOpInfo-info") "vth"))
Parameters out of specification were: PSRR = 65.115 dB and PSRRH = 39.65
dB.
6.5
"PROCESS FOUR", 65nm
Basically the same conditions and setup as "process three", but instead of "transistor name".M1 it has to be called "transistor name".m1. This process was very
good with all the parameters within specification and both small area and low
power dissipation.
Chapter 7
Results
Figure 7.1. Graph showing the final results of the optimization.
39
40
Results
Process
"Process one", 350 nm
"Process two", 180 nm
"Process three", 90 nm
"Process four", 65 nm
Power dissipation
2.464 mW
649.031 µW
694.956 µW
472.578 µW
Area
2.463 nm2
567.95 pm2
178.2 pm2
44.55 pm2
Table 7.1. The design specification with all the necessary information
7.1
DISCUSSION & FUTURE WORK
As we can see in the graph in Figure 7.1, the pattern reminds us of the desired
one. The area is clearly decreasing when we change process to a smaller one. The
power consumption seems to do that as well, even if "process three" consumed a
bit more than expected. Although, this could perhaps be a result of the fact that
we only optimized four processes. If we have had time for all ten, the conclusion
about the power dissipation would have been easier. Now we do not know if it
just was this process that consumed more than expected or if another pattern had
occurred with all ten processes.
Also, it seemed like the optimizer chose between two methods when optimizing.
Either it decreased the resistance in the bias circuit resulting in a higher power
dissipation or it increased the gain-stage which resulted in a lower power dissipation. Either way, all the processes had the same starting conditions so we can only
assume that the optimization tool uses the same approach every time - but from
experience we do know that it is not to take for granted.
This project will constitute as a base for future work where the optimization will
be brought up and completed. The optimization will run (for all ten processes)
in both open-loop configuration and closed-loop configuration so that as many
parameters as possible can be optimized. This will hopefully lead to a better and
more truthful prediction of future costs.
References & Sources
R
c
[1] AnSyn
AB 2007, “Analog design optimization using ANALOG
TM
DIMENSIONS
tutorial, folded-cascode operational amplifier.”
http://www.ansyn.com.
[2] “Process technology.”
http://encyclopedia2.thefreedictionary.com/process+technology,
Retrieved Novermber 30, 2009.
[3] S. M. Rubin, “Computer aids for VLSI design.”
http://www.rulabinsky.com/cavd/,
Retrieved Novermber 3, 2009.
[4] J. Markoff, “Design on diagonal path in pursuit of a faster chip.”
http://www.nytimes.com/2007/02/26/technology/26chip.html,
Published: February 26, 2007.
[5] Prof. Regan A. Zane, “Mixed-signal IC design.”
http://ecee.colorado.edu/~ecen5007/software.html,
Retrieved Novermber 3, 2009.
[6] “Maxim application note 1108: Understanding single-ended, pseudodifferential and fully-differential adc inputs.”
http://www.maxim-ic.com/appnotes.cfm/an_pk/1108,
Retrieved Novermber 3, 2009.
[7] S. Söderqvist, Properties Basic Amplifiers.
[8] P. E. Allen and D. R. Holberg, “CMOS analog circuit design,”
1987.
[9] A. Burmen, P. Janez, and T. Tuma, “Defining cost funtions for robust IC
design and optimization.”
www.date-conference.com/archive/conference/.../05D_1.PDF,
Retrieved Novermber 3, 2009.
[10] F. Paixão Cortes and S. Bampi, “Miller ota design using a design methodology
based on the gim
and early-voltage characteriristics: design considerations and
d
experimental results.”
41
42
References & Sources
www.iberchip.org/iberchip2006/ponencias/78.pdf,
Retrieved Novermber 3, 2009.
Appendix A
The specification
Specification
Open-loop gain
Gain-bandwidth product
Input common-mode range
Input range
Slew-rate
Power Dissipation
Output range
Supply rejection ratio
Ground rejection ratio
Supply rejection ratio
Ground rejection ratio
Output resistance
Output referred noise
Load capacitance
Phase margin
Area
Linearity
Parameter
A0
GBW
ICMR
IR
SR
P
OR
PSRRL
GRRL
PSRRH
GRRH
Rout
VN
CL
PM
A
THD
Target
4000 (72dB)
60 MHz
[0.5 V, 1.5 V]
[0.8 V, 1.8 V]
100 V/µs
- mW
[0.5 V, 1.5 V]
70 dB
70 dB
50 dB
50 dB
250 kOhm
0.5 mV
75 fF
55 degrees
- Sq µm
60 dB
Comment
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Table A.1. The design specification with all the necessary information
43
44
A.1
The specification
COMMENTS TO THE SPECIFICATION
1. Notice the relation between IR, OR and ICMR.
2. There is a competing relation between IR, ICMR and OR.
3. The slew-rate is measured in closed-loop configuration.
4. Free optimization target, i.e. minimize power.
5. The output range is measured in closed-loop configuration.
6. Measured from 0 to 50 kHz.
7. Measured from 0 to 50 kHz.
8. Measured from 50 kHz to 1 MHz.
9. Measured from 50 kHz to 1 MHz.
10. Minimum output resistance.
11. +/- 3 sigma.
12. Intended for on-chip use only. Notice that dominant-pole compensation is
possible too, but will obviously hurt area, A.
13. Notice that dominant-pole compensation is possible too.
14. Free optimization target, i.e. minimize area.
15. Closed-loop linearity with unity feedback factor.
Appendix B
The Schematic
Figure B.1. Schematic of the two-stage OTA with bias circuit.
45
Appendix C
The Testbench
Figure C.1. Testbench of the OTA with switches.
47
Download