SC Base Library Design Guide.docx - Google Docs
SC Base Library Design Guide.docx - Google Docs
Standard Cell
ocument number:
D ersion 40
V
Date of Issue: 1 December 2009
Authors: Stephen Kvinta, Keeho Kang, Marlin Frederick
Authorized by: Marlin Frederick
Abstract
his document explains how to design quality library cells that have good timing, area, and power
T
characteristics. Methods are shown for estimating wire lengths within cells and determining the logical effort
of single-stage cells. Detailed procedures are given for sizing all cells. A method is explained for analyzing
electromigration effects in any process.
ARM Confidential
Contents
Abstract 1
2
ARM Confidential
5.5 NOR2 Beta Ratios 5
2
igure 58 NOR2 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
F 25
Figure 59 NOR2 Average Beta Ratio Schematic 26
3
ARM Confidential
.3.2.6 AOI221
7 3 5
Figure 76 AOI221 Schematic 35
7.3.2.7 AOI222 35
Figure 77 AOI222 Schematic 36
7.3.3 OAI 36
7.3.3.1 OAI211 36
Figure 78 OAI211 Schematic 36
7.3.3.2 OAI21 36
Figure 79 OAI21 Schematic 37
7.3.3.3 OAI221 37
Figure 710 OAI221 Schematic 37
7.3.3.4 OAI22 37
Figure 711 OAI22 Schematic 38
7.3.3.5 OAI222 38
Figure 712 OAI222 Schematic 38
7.3.3.6 OAI31 38
Figure 713 OAI31 Schematic 39
7.3.4 Compound Structures 39
7.3.4.1 AO21A1AI2 39
Figure 714 AO21A1AI2 Schematic 39
7.3.4.2 OA21A1OI2 40
Figure 715 OA21A1OI2 Schematic 40
4
ARM Confidential
igure 89 AO1B2 Schematic
F 4 5
8.1.3.3 AO21B 46
Figure 810 AO21B Schematic 46
8.1.3.4 AO22 46
Figure 811 AO22 Schematic 46
8.1.3.5 AOI2XB1 46
Figure 812 AOI2XB1 Schematic 47
8.1.3.6 AOI21B 47
Figure 813 AOI21B Schematic 47
8.1.4 OA 47
8.1.4.1 OA211 47
Figure 814 OA211 Schematic 48
8.1.4.2 OA21 48
Figure 815 OA21 Schematic 48
8.1.4.3 OA22 48
Figure 816 OA22 Schematic 49
8.1.4.4 OAI21B 49
Figure 817 OAI21B Schematic 49
8.1.4.5 OAI2XB1 49
Figure 818 OAI2XB1 Schematic 50
8.1.5 OR 50
8.1.5.1 OR2 50
Figure 819 OR2 Schematic 50
8.1.5.2 OR3 50
Figure 820 OR3 Schematic 50
8.1.5.3 OR4 50
Figure 821 OR4 Schematic 51
8.1.5.4 OR6 51
Figure 822 OR6 Schematic 51
8.1.6 NOR (Two-Stage) 51
8.1.6.1 NOR2B 51
Figure 823 NOR2B Schematic 52
8.1.6.2 NOR2XB 52
Figure 824 NOR2XB Schematic 52
8.1.7 BUF 52
8.1.7.1 BUF 52
Figure 825 BUF Schematic 52
8.1.7.2 BUFH 53
Figure 826 BUFH Schematic 53
8.1.7.3 DLY2 53
Figure 827 DLY2 Schematic 53
9.1 FRICG 4
5
9.1.1 Cell Usage 54
9.1.2 Cell Structure 54
Figure 91 FRICG Schematic 54
9.1.3 Cell Sizing 54
5
ARM Confidential
9.2 PREICG 5
5
9.2.1 Cell Usage 55
9.2.2 Cell Structure 55
Figure 9-2 PREICG Schematic 55
9.2.3 Cell Sizing 55
9.3 POSTICG 6
5
9.3.1 Cell Usage 56
9.3.2 Cell Structure 56
Figure 93 POSTICG Schematic 57
9.3.3 Cell Sizing 57
10.1 XOR2/XNOR2 8
5
10.1.1 Cell Usage 58
10.1.2 Cell Structure 58
Figure 101 XOR2 Schematic (left) and XNOR2 Schematic (right) 58
10.1.3 Cell Sizing 58
10.2 XOR3/XNOR3 9
5
10.2.1 Cell Usage 59
10.2.2 Cell Structure 59
Figure 102 XOR3 Schematic 59
Figure 103 XNOR3 Schematic 60
10.2.3 Cell Sizing 60
12.1 ADDH 6
6
Figure 12-1 ADDH Schematic 66
6
ARM Confidential
12.2 ADDF 6
6
Figure 12-2 ADDF Schematic 67
Figure 12-3 ADDF Schematic – GROUP 1 67
Figure 12-4 ADDF Schematic – GROUP 2 68
Figure 12-5 ADDF Schematic – GROUP 3 68
Figure 12-6 ADDF Schematic – GROUP 4 69
Figure 12-7 ADDF Schematic – GROUP 5 69
7
ARM Confidential
14.3.1 Phi2/Phi1 Scan Flops 8
7
14.3.1.1 SDFFQ 78
Figure 14-1 SDFFQ Schematic 79
Figure 14-2 SDFFQ Schematic with Important Gates Noted in the Dashed Line Boxes 79
14.3.1.2 SDFFQN 80
Figure 14-3 SDFFQN Schematic 80
Figure 14-4 SDFFQN Schematic with Important Gates Noted in the Dashed Line Boxes 81
14.3.1.3 SDFFRPQ 82
Figure 14-5 SDFFRPQ Schematic 82
14.3.1.4 SDFFRPQN 82
Figure 14-6 SDFFRPQN Schematic 83
14.3.1.5 SDFFSQ 83
Figure 14-7 SDFFSQ Schematic 84
14.3.1.6 SDFFSQN 84
Figure 14-8 SDFFSQN Schematic 85
14.3.1.7 SDFFSRPQ 85
Figure 14-9 SDFFSRPQ Schematic 85
14.3.1.8 SDFFYQ 85
Figure 14-10 SDFFYQ Schematic 86
14.3.1.9 A2SDFFQ 86
Figure 14-11 A2SDFFQ Schematic 87
14.3.1.10 A2SDFFQN 87
Figure 14-12 A2SDFFQN Schematic 87
14.3.1.11 ESDFFQ 87
Figure 14-13 ESDFFQ Schematic 88
14.3.1.12 ESDFFQN 88
Figure 14-14 ESDFFQN Schematic 89
14.3.1.13 M2SDFFQ 89
Figure 14-15 M2SDFFQ Schematic 90
14.3.1.14 M2SDFFQN 90
Figure 14-16 M2SDFFQN Schematic 91
14.3.2 Phi1/Phi2 Scan Flops 91
14.3.2.1 SDFFNQ 91
Figure 14-17 SDFFNQ Schematic 92
14.3.2.2 SDFFNRPQ 92
Figure 14-18 SDFFNRPQ Schematic 92
14.3.2.3 SDFFNSQ 93
Figure 14-19 SDFFNSQ Schematic 93
14.3.2.4 SDFFNSRPQ 93
Figure 14-20 SDFFNSRPQ Schematic 94
14.3.3 Phi2/Phi1 Non-Scan Flops 94
14.3.3.1 DFFQ 94
Figure 14-21 DFFQ Schematic 95
14.3.3.2 DFFQN 95
Figure 14-22 DFFQN Schematic 95
14.3.3.3 DFFRPQ 95
Figure 14-23 DFFRPQ Schematic 96
14.3.3.4 DFFRPQN 96
Figure 14-24 DFFRPQN Schematic 96
14.3.3.5 DFFSQ 97
Figure 14-25 DFFSQ Schematic 97
8
ARM Confidential
4.3.3.6 DFFSQN
1 9 7
Figure 14-26 DFFSQN Schematic 98
14.3.3.7 DFFSRPQ 98
Figure 14-27 DFFSRPQ Schematic 98
14.3.3.8 DFFYQ 99
Figure 14-28 DFFYQ Schematic 99
14.3.3.9 A2DFFQ 99
Figure 14-29 A2DFFQ Schematic 100
14.3.3.10 A2DFFQN 100
Figure 14-30 A2DFFQN Schematic 100
14.3.3.11 EDFFQ 101
Figure 14-31 EDFFQ Schematic 101
14.3.3.12 EDFFQN 101
Figure 14-32 EDFFQN Schematic 102
14.3.3.13 M2SDFFQ 102
Figure 14-33 M2DFFQ Schematic 103
14.3.3.14 M2DFFQN 103
Figure 14-34 M2DFFQN Schematic 104
14.3.4 Phi1/Phi2 Non-Scan Flops 104
14.3.4.1 DFFNQ 104
Figure 14-35 DFFNQ Schematic 105
14.3.4.2 DFFNRPQ 105
Figure 14-36 DFFNRPQ Schematic 105
14.3.4.3 DFFNSQ 106
Figure 14-37 DFFNSQ Schematic 106
14.3.4.4 DFFNSRPQ 106
Figure 14-38 DFFNSRPQ Schematic 107
10
ARM Confidential
20 TK CELLS
A 17
1
Table 20-1 ATK Cell Types 117
11
ARM Confidential
0.4.3.2 Cell Structure
2 1 27
Figure 20-9 CGENI Schematic 127
20.4.3.3 Cell Sizing 127
20.4.4 CGEN 127
20.4.4.1 Cell Usage 127
20.4.4.2 Cell Structure 127
Figure 20-10 CGEN Schematic 127
20.4.4.3 Cell Sizing 128
13
ARM Confidential
1 ABOUT THIS DOCUMENT
14
ARM Confidential
A24 1 December 2006 Stephen Kvinta Finished ATK Cell Section (CMPR42 is incomplete)
A25 6 December 2006 Stephen Kvinta Added OAI31 Cell
A26 12 December 2006 Stephen Kvinta Updated DOEE Section and SDFFQ Section
A27 3 January 2007 Stephen Kvinta ade corrections throughout the document and finished
M
CMPR42 section
A28 25 January 2007 Stephen Kvinta Changed compound cell names
A29 26 February 2007 Stephen Kvinta Updated ATK Cell Section
A30 7 March 2007 Stephen Kvinta Made corrections to ADDFCIN section
A31 8 March 2007 Stephen Kvinta Made corrections to CGENCIN section
A32 25 July 2007 Stephen Kvinta hanged ADDFCIN, ADDFH, CGENCIN, and CGENCON
C
topologies and removed the FILLCAPTIE section
A33 19 February 2008 Stephen Kvinta Made corrections to SDFFYQ section
A34 2 December 2008 Keeho Kang Added LVS Guidelines section
A35 23 February 2009 Stephen Kvinta Added EM comment about M1 finger width
A36 17 March 2009 Stephen Kvinta Made corrections to compound cell sizing
A37 25 March 2009 Stephen Kvinta Updated CMPR42 section
A38 30 March 2009 Stephen Kvinta Made corrections to OAI31 section
A39 18 August 2009 Stephen Kvinta Fixed typo in EM section
A40 1 December 2009 Stephen Kvinta Added more comments to EM section for clarity
2 INTRODUCTION
esigning library cells is a complex task that requires a good understanding of electrical and layout issues. The
D
key is to find a good balance of power, performance, and area. It is essential to include good estimates of wire
parasitics when drawing schematics, so a procedure is shown for how to estimate wire lengths. Multiple beta
ratios have been proven to improve performance. In order to size multi-stage cells, it is necessary to know the
logical effort values for the single-stage cells.
15
ARM Confidential
ingle-stage cells are the simplest cells to design. Multi-stage cells require a good understanding of wire
S
parasitics, beta ratios, and the concepts of Logical Effort.
or a sample library, the “middle dead space” length is 320 nm, the metal1 overlap distance (overlap) is 400 nm
F
for both p-diffusion and n-diffusion, the distance between two poly stripes (poly space) is 260 nm, the maximum
single finger p-channel transistor size is 700 nm, and the maximum single finger n-channel transistor size is 580
nm.
fter these values have been calculated, either actual layout or stick diagrams need to be drawn for each cell.
A
Based on the layout or stick diagrams, equations need to be written to calculate the length of each wire. Once
the wire lengths have been calculated, these values need to be added to the cell schematics using “wire_c”
instances from the armPrimitives library.
16
ARM Confidential
Figure 3-1 Single finger inverter
here are two wire lengths to calculate for inverters: “A” and “Y”. The “A” length is equal to the poly length plus a
T
small horizontal metal1 length above the contact. The “Y” length is equal to the metal1 vertical length.
he previous equations work for single finger inverters, but there needs to be a more general equation that works
T
for any number of fingers. Figure 3-2 shows stick diagrams for inverters with two, three, and four fingers.
17
ARM Confidential
Figure 3-2 two fingered inverter (left), three fingered inverter (center), four fingered inverter (right)
ow there is a way to generalize these equations into a single “A” equation and a single “Y” equation that can be
N
used no matter how many fingers there are.
= (# of fingers * middle dead space) + small horizontal width + ((# of fingers – 1) * poly space)
A
Y = middle dead space + (2 * (ceiling (# of fingers / 2)) * overlap) + (2 * (# of fingers – 1) * poly space)
he “ceiling” function is the same as rounding up. For example, ceiling (1/2) = 1, ceiling (2/2) = 1, ceiling (3/2) =
T
2, and ceiling (4/2) = 2.
ollowing this example, stick diagrams can be drawn for all cells and the wire lengths can be determined. More
F
complex cells will have more wires that need to be estimated than just the input and output. Multi-stage cells
such as ANDs and ORs have internal nodes that need to be estimated as well.
18
ARM Confidential
4 DESIGN OF ENGINEERING EXPERIMENTS (DOEE)
4.1 Introduction
he doee simulations determine the sizes of all single-stage and most two-stage cells. The inputs required are
T
some basic physical dimensions and HSPICE models. The output, which is a Microsoft Excel spreadsheet,
contains the following information.
● eta Ratios for all single-stage cells
B
● Logical Effort values for all single-stage cells
● Wire parasitic estimates for all single-stage cells
● The optimal well boundary location
● Transistor sizes for all single-stage and most two-stage cells
There is work underway to automatically have schematics drawn based on the results of the doee simulations.
1) Login to a Linux machine. SPICE runs much faster on Linux than Solaris.
2) Load the hspice module. Type “module load avanti/star_hspice/2006.09” or load a newer version.
4) Ensure that you have the necessary plug-ins necessary for MS Excel. In Excel, go to Tools -> Add-Ins and
check all boxes except for “Euro Currency Tools”.
5) Run the 'update_spice_model' script in the doee directory. This script adds the spice model names to all of
the spice input files.
he –n option sets the n-channel transistor spice model name based on the nfet_model variable.
T
The –p option sets the p-channel transistor spice model name based on the pfet_model variable.
The –x option puts an ‘X’ in front of the transistor lines in the netlist. This option is optional.
6) Update the 'base.inc' file in the config directory.
Change the .lib line to point to the spice models, change the vdd, and temp. Also, change the values in the
" Process dependant parameters" section. "w_total" is the maximum single fingerp ch + nch transistorsize.
"w_min" is the minimum transistor size. "w_step" is used for sweeping the widths and should stay at 0.01u.
"n_ext" is the sum of contact-poly spacing, contact width, and diffusion overlap of contact. "a_ext" is
minimum poly-poly spacing. "s_ext" is the sum of contact-poly spacing, contact
width, and contact-poly spacing.
7) Run the 'run_hspice' script in the meas_inv directory. Wait for the simulation to finish.
9) Add the inverter 'm' and 'b' beta ratio values to the Excel spreadsheet in the spreadsheet directory.
0) Add the inverter 'm' and 'b' device sizes to the 'inv_values.inc' file in the config directory. These sizes are
1
calculated based on the beta ratios and the maximum transistor sizes.
11) Run the 'run_hspice' script in the meas_le_m and meas_le_b directories. Wait for the simulations to finish.
12) Run the 'meas_beta' script in the meas_le_m directory. The logical effort values for 'm' beta ratio cells will
be displayed.
13) Run the 'meas_beta' script in the meas_le_b directory. The logical effort values for 'b' beta ratio cells will be
displayed.
15) Add the logical effort values to the 'le_m_values.inc' and 'le_b_values.inc' files in the config directory.
16) Run the 'run_hspice' script in the meas_m and meas_b directories. Wait for the simulations to finish.
17) Run the 'meas_beta' script in the meas_m directory. The 'm' beta ratios will be displayed.
18) Run the 'meas_beta' script in the meas_b directory. The 'b' beta ratios will be displayed.
20) Add the maximum device sizes to the spreadsheet in cells K4, K5, and K6.
21) Go to the 'WBA' page of the spreadsheet and find the PFET size that is 2/3 of way down between the upper
YES and lower YES. Enter this PFET size in cell K7 of the 'MV' page.
22) Add the PFET and NFET sizes from cells K7 and K8 of the spreadsheet to the 'max_values.inc' file in the
20
ARM Confidential
config directory.
23) Run the 'run_hspice' script in the meas_a directory. Wait for the simulation to finish.
24) Run the 'meas_beta' script in the meas_a directory. The 'a' beta ratios will be displayed.
21
ARM Confidential
he inverter beta ratio that is found from this simulation is the flood-filled ratio (X), the maximum ratio (M), and the
T
average ratio (A) for inverters. The ‘X’ is sometimes left off of the cell name. These beta ratio types are explained
in detail later in this section.
he inverter balanced beta ratio (B) is found using the schematic in Figure 5-1. However, the timing is measured
T
for only one inverter (net ‘m04’ to net ‘m06’). Each inverter is set to the same fixed total device width. Then this
total width is swept from a ratio where the PFET dominates to NFET dominating. The ratio that results in the
minimum of the maximum propagation delay from net ‘m04’ to ‘m06’ is the inverter balanced beta ratio for the
library.
imilarly, the inverter equal edge beta ratio (E) is found using the schematic in Figure 5-1. The edge rates are
S
measured at the output of only one inverter (net ‘m06’). Each inverter is set to the same fixed total device width.
Then this total width is swept from a ratio where the PFET dominates to NFET dominating. The ratio that results
in an equal rising and falling edge rate for net ‘m06’ is the inverter equal edge beta ratio for the library.
he maximum (M) and average (A) beta ratios for NAND2 are not the same as the flood-filled ratio (X). These
T
beta ratios are determined using the doee simulations. The NAND2 maximum beta ratio schematic is shown in
Figure 5-2 and the NAND2 average beta ratio schematic is shown in Figure 5-3.
Figure 52 NAND2 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
o find the maximum beta ratio, the inverters are sized using the inverter beta ratio (‘M’ or ‘X’) found in Section
T
5.1. ‘wp_inv’ and ‘wn_inv’ are single fingers. The NAND2 total transistor size is the same as the inverter total
transistor size. In other words, the sum of ‘wp_inv’ and ‘wn_inv’ is equal to the sum of ‘wp’ and ‘wn’. ‘wp’ or
‘wn’ is swept to find the minimum of the maximum delay from ‘m04’ to ‘m12’. The value of ‘fo_single’ is equal to
four divided by the logical effort of NAND2 (gNAND2). Section 6 shows how to calculate logical effort values.
he NAND2 balanced beta ratio (B) is found using the schematic in Figure 5-2. However, the timing is measured
T
for only the NAND2 (net ‘m04’ to net ‘m06’). ‘wp’ or ‘wn’ is swept to find the minimum of the maximum delay
from ‘m04’ to ‘m06’. The ratio that results is the NAND2 balanced beta ratio for the library.
22
ARM Confidential
imilarly, the NAND2 equal edge beta ratio (E) is found using the schematic in Figure 5-2. The edge rates are
S
measured at the output of only the NAND2 (net ‘m06’). ‘wp’ or ‘wn’ is swept to find equal rising and falling edges
for net ‘m06’. The ratio that results is the NAND2 equal edge beta ratio for the library.
he maximum (M) and average (A) beta ratios for NAND3 are not the same as the flood-filled ratio (X). These
T
beta ratios are determined by doee simulations. The NAND3 maximum beta ratio schematic is shown in Figure
5-4 and the NAND3 average beta ratio schematic is shown in Figure 5-5.
Figure 54 NAND3 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
23
ARM Confidential
o find the maximum beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. The NAND3 total transistor size is the same as the inverter total transistor size. In
other words, the sum of ‘wp_inv’ and ‘wn_inv’ is equal to the sum of ‘wp’ and ‘wn’. ‘wp’ or ‘wn’ is swept to find
the minimum of the maximum delay from ‘m04’ to ‘m12’. The value of ‘fo_single’ is equal to four divided by the
logical effort of NAND3 (gNAND3). Section 6 showshow to calculate logical effort values.
he NAND3 balanced beta ratio (B) is found using the schematic in Figure 5-4. However, the timing is measured
T
for only the NAND3 (net ‘m04’ to net ‘m06’). ‘wp’ or ‘wn’ is swept to find the minimum of the maximum delay
from ‘m04’ to ‘m06’. The ratio that results is the NAND3 balanced beta ratio for the library.
imilarly, the NAND3 equal edge beta ratio (E) is found using the schematic in Figure 5-4. The edge rates are
S
measured at the output of only the NAND3 (net ‘m06’). ‘wp’ or ‘wn’ is swept to find equal rising and falling edges
for net ‘m06’. The ratio that results is the NAND3 equal edge beta ratio for the library.
o find the average beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. ‘wn_nand3’ is the maximum single finger n-channel transistor size. ‘wp_nand3’ is
swept to find the minimum of the maximum delay from ‘a04’ to ‘a16’.
he maximum (M) and average (A) beta ratios for NAND4 are not the same as the flood-filled ratio (X). These
T
beta ratios are determined by doee simulations. The NAND4 maximum beta ratio schematic is shown in Figure
5-6 and the NAND4 average beta ratio schematic is shown in Figure 5-7.
24
ARM Confidential
Figure 56 NAND4 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
o find the maximum beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. The NAND4 total transistor size is the same as the inverter total transistor size. In
other words, the sum of ‘wp_inv’ and ‘wn_inv’ is equal to the sum of ‘wp’ and ‘wn’. ‘wp’ or ‘wn’ is swept to find
the minimum of the maximum delay from ‘m04’ to ‘m12’. The value of ‘fo_single’ is equal to four divided by the
logical effort of NAND4 (gNAND4). Section 6 showshow to calculate logical effort values.
he NAND4 balanced beta ratio (B) is found using the schematic in Figure 5-6. However, the timing is measured
T
for only the NAND4 (net ‘m04’ to net ‘m06’). ‘wp’ or ‘wn’ is swept to find the minimum of the maximum delay
from ‘m04’ to ‘m06’. The ratio that results is the NAND4 balanced beta ratio for the library.
imilarly, the NAND4 equal edge beta ratio (E) is found using the schematic in Figure 5-6. The edge rates are
S
measured at the output of only the NAND4 (net ‘m06’). ‘wp’ or ‘wn’ is swept to find equal rising and falling edges
for net ‘m06’. The ratio that results is the NAND4 equal edge beta ratio for the library.
25
ARM Confidential
o find the average beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. ‘wn_nand4’ is the maximum single finger n-channel transistor size. ‘wp_nand4’ is
swept to find the minimum of the maximum delay from ‘a04’ to ‘a16’.
he maximum (M) and average (A) beta ratios for NOR2 are not the same as the flood-filled ratio (X). These beta
T
ratios are determined by doee simulations. The NOR2 maximum beta ratio schematic is shown in Figure 5-8 and
the NOR2 average beta ratio schematic is shown in Figure 5-9.
Figure 58 NOR2 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
o find the maximum beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. The NOR2 total transistor size is the same as the inverter total transistor size. In
other words, the sum of ‘wp_inv’ and ‘wn_inv’ is equal to the sum of ‘wp’ and ‘wn’. ‘wp’ or ‘wn’ is swept to find
the minimum of the maximum delay from ‘m04’ to ‘m12’. The value of ‘fo_single’ is equal to four divided by the
logical effort of NOR2 (gNOR2). Section 6 shows howto calculate logical effort values.
he NOR2 balanced beta ratio (B) is found using the schematic in Figure 5-8. However, the timing is measured
T
for only the NOR2 (net ‘m04’ to net ‘m06’). ‘wp’ or ‘wn’ is swept to find the minimum of the maximum delay from
‘m04’ to ‘m06’. The ratio that results is the NOR2 balanced beta ratio for the library.
imilarly, the NOR2 equal edge beta ratio (E) is found using the schematic in Figure 5-8. The edge rates are
S
measured at the output of only the NOR2 (net ‘m06’). ‘wp’ or ‘wn’ is swept to find equal rising and falling edges
for net ‘m06’. The ratio that results is the NOR2 equal edge beta ratio for the library.
26
ARM Confidential
Figure 59 NOR2 Average Beta Ratio Schematic
o find the average beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. ‘wn_nor2’ is the maximum single finger n-channel transistor size. ‘wp_nor2’ is swept
to find the minimum of the maximum delay from ‘a04’ to ‘a16’.
he maximum (M) and average (A) beta ratios for NOR3 are not the same as the flood-filled ratio (X). These beta
T
ratios are determined by doee simulations. The NOR3 maximum beta ratio schematic is shown in Figure 5-10
and the NOR3 average beta ratio schematic is shown in Figure 5-11.
Figure 510 NOR3 Maximum, Balanced, and Equal Edge Beta Ratio Schematic
27
ARM Confidential
o find the maximum beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. The NOR3 total transistor size is the same as the inverter total transistor size. In
other words, the sum of ‘wp_inv’ and ‘wn_inv’ is equal to the sum of ‘wp’ and ‘wn’. ‘wp’ or ‘wn’ is swept to find
the minimum of the maximum delay from ‘m04’ to ‘m12’. The value of ‘fo_single’ is equal to four divided by the
logical effort of NOR3 (gNOR3). Section 6 shows howto calculate logical effort values.
he NOR3 balanced beta ratio (B) is found using the schematic in Figure 5-10. However, the timing is measured
T
for only the NOR3 (net ‘m04’ to net ‘m06’). ‘wp’ or ‘wn’ is swept to find the minimum of the maximum delay from
‘m04’ to ‘m06’. The ratio that results is the NOR3 balanced beta ratio for the library.
imilarly, the NOR3 equal edge beta ratio (E) is found using the schematic in Figure 5-10. The edge rates are
S
measured at the output of only the NOR3 (net ‘m06’). ‘wp’ or ‘wn’ is swept to find equal rising and falling edges
for net ‘m06’. The ratio that results is the NOR3 equal edge beta ratio for the library.
o find the average beta ratio, the inverters are sized using the beta ratio found in Section 5.1. ‘wp_inv’ and
T
‘wn_inv’ are single fingers. ‘wn_nor3’ is the maximum single finger n-channel transistor size. ‘wp_nor3’ is swept
to find the minimum of the maximum delay from ‘a04’ to ‘a16’.
28
ARM Confidential
5.8 Beta Ratio: maximum (M)
he maximum beta ratio, referred to as ‘M’ in the naming convention, results in a minimization of the maximum
T
edge delay. Mathematically, this beta ratio refers to the minimum of maximum(risePD,fallPD). ‘risePD’ refers to
the propagation delay rising and ‘fallPD’ refers to the propagation delay falling.
29
ARM Confidential
● T
he delay impact of varying the beta ratio tends to be soft, while the power impact is typically more
pronounced. This means that if a design wanted to reduce the power consumption at the price of lower
performance the maximum beta ratios can be removed in favor of an all average beta ratio library.
here are some beta ratios where the output stage is not sized as large as possible while having the
T
corresponding numbers of fingers. For example, the X1P5 drive strength has an output stage that has two
p-transistor fingers and two n-transistor fingers, although the fingers are not full size.
his section explains how to determine the logical effort of the basic single-stage cells. This information is
T
required before sizing any multi-stage cells. This section is not a substitute for learning the concepts explained
in the “Logical Effort” book by Sutherland, Sproull, and Harris. The logical effort of a cell is noted as “g” in the
“Logical Effort” book.
he logical effort for an inverter is 1, by definition. The logical effort for other basic single-stage cells is greater
T
than 1. The smaller the logical effort, the better the cell is at producing output current.
For all standard cell libraries, a specific method of determining logical effort is used.
)
1 raw a schematic like Figure 6-1 below.
D
2) Replace the “cut” block (circuit under test) with the cell of interest. See Figure 6-2 for examples.
3) Run a simulation to determine at what point the edge rate of “outinv” matches the edge rate of “outcut”.
4) Use the following equation to determine the logical effort of the circuit under test.
30
ARM Confidential
Figure 61 Logical Effort Schematic
t first glance it is not obvious what the purpose is of the circuit in Figure 6-1. The two “mult = 4” blocks are
A
used to generate a fanout of four from the first two inverters. These blocks are drawn using the “imult” symbol in
the armPrimitives library. The voltage source in the bottom part of the figure is a voltage controlled voltage
source (E in SPICE). The voltage is controlled by the voltage of the wire “tap” in the top part of the figure. This
voltage source insures that the signal going into the “cut” block is the same as the one going into the third
inverter in the top part of the figure.
he three inverters are all sized the same using the beta ratio found in the Beta Ratio section of the document.
T
The “load” capacitance is set to a value that gives approximately a fanout of four for the inverter chain.
If the circuit under test is a nand gate, size the p-channel transistors the same as the p-channel transistors of the
inverters. Sweep the n-channel transistor size of the nand gate until the falling edge rate of “outcut” matches the
falling edge rate of “outinv”.
If the circuit under test is a nor gate, size the n-channel transistors the same as the n-channel transistors of the
inverters. Sweep the p-channel transistor size of the nor gate until the rising edge rate of “outcut” matches the
rising edge rate of “outinv”.
setheequationforcalculatinglogicaleffort(LE=“cut”transistorsize/invertertransistorsize)tofindthelogical
U
effort value for each single-stage cell. For example, assumetheinvertersaresized1500nm/1000nm. The
notation is p-channel transistor size / n-channel transistor size. The total transistor size is 2500 nm for the
inverters. TheNAND2n-channelsizesaredeterminedtobe1500nm. TheNAND2p-channelsizeissetto1500
nmtomatchtheinvertersize. Thetotaltransistorsizeis3000nmfortheNAND2. ThelogicaleffortforNAND2
would be 1.2 for this example (3000 nm / 2500 nm).
31
ARM Confidential
It isnotobvioushowtodeterminethelogicaleffortforaoiandoaigatessincetheyareasymmetricstructures.
Forallstandardcelllibraries,weusethelogicaleffortsfornandandnorgatestocalculatethelogicaleffortsfor
theaoiandoaigates. Forexample,AOI21hasatwohighp-channeltransistorstacksimilartoaNOR2andaone
highandtwohighn-channeltransistorstackssimilartoaninverterandNAND2,respectively. SeeFigure7-1for
anAOI21schematic. WemultipliedthelogicaleffortofNOR2andthelogicaleffortofNAND2togetthelogical
effortforthetwohighstacks;wemultipliedthelogicaleffortofNOR2andthelogicaleffortofaninvertertoget
the logical effort for the twohighp-channelstackandtheonehighn-channelstack. Thenwetookthesetwo
products and averaged them to come up with the logical effort for the AOI21 cell.
or the single stage combinatorial cells, it is generally easiest to start with the “X1” drive strength and scale the
F
transistors for the other drive strengths. To size the INV_X1M cell, set the p-channel transistor to the maximum
single finger size. Then divide the p-channel transistor size by the inverter “M” beta ratio to get the n-channel
transistor size. Follow the same procedure to size the INV_X1B cell, except use the inverter “B” beta ratio to get
the n-channel transistor size. To size the INV_X1X flood-filled cell, set the p-channel transistor to the maximum
p-channel finger size and set the n-channel transistor to the maximum n-channel finger size.
he idea behind setting the p-channel transistor size to the maximum single finger size is to maximize the device
T
size while maintaining the proper beta ratio. This concept is sometimes referred to as the “max-tuned” approach
because either the p-channel or n-channel transistor size is set to the maximum finger size. In order to get the
maximum device size for the inverters, the p-channel transistor is set to the maximum finger size. The critical
point is the ratio of single-finger maximum p-channel size to single-finger maximum n-channel size. If the beta
ratio is above this critical point, then set the p-channel size to the maximum single finger size and divide by the
beta ratio to get the n-channel size. If the beta ratio is below this critical point, then set the n-channel size to the
maximum single finger size and multiply by the beta ratio to get the p-channel size.
nce the “X1” drive strength inverters have been sized, it is simple to figure out the sizes for the remaining drive
O
strengths. Multiply the device sizes of the “X1” drive strength inverter by the drive strength to size. For example,
the INV_X2M cell has transistors that are double the size of the INV_X1M cell. The INV_X2P5B cell has
transistors that are 2.5 times larger than the size of the INV_X1B cell.
It is important to include wire length estimates for all cells so that timing simulations based on the schematics are
not optimistic.
32
ARM Confidential
7.3 Other Single Stage Cell Sizing
he other single stage cells are sized using the procedure described in the previous subsection. These cells will
T
be in some combination of “A”, “B”, “E”, “F”, “M”, “R”, and “X” beta ratios. For some AOI and OAI cells the
transistor sizes will vary within the cell due to the circuit topology.
7.3.1 NAND/NOR
AND cells (NAND2, NAND3, and NAND4) and NOR cells (NOR2 and NOR3) are sized using the procedure
N
described in the previous subsection. If the cells are flood-filled (“X”), the sizes are exactly the same as the
inverter sizes. For the other beta ratios, start with the “X1” drive strength cell. If the beta ratio is larger than the
critical ratio (the flood-filled ratio), set the p-channel transistor sizes to the maximum size single finger p-channel
size. Set the n-channel transistor sizes to the p-channel size divided by the beta ratio. If the beta ratio is smaller
than the critical ratio, set the n-channel transistor sizes to the maximum size single finger n-channel size. Set the
p-channel transistor sizes to the n-channel size multiplied by the beta ratio.
7.3.2 AOI
OI cells are more complicated to design because some of the cells have n-channel transistors that are not all
A
sized the same. The exception to this is the flood-filled ratio “X” because the sizes are the same as the inverter
sizes.
.3.2.1AOI21
7
Figure 7-1 is the schematic of an AOI21 cell.
or this cell, “Y” is pulled-up through either “A0 & B0” or “A1 & B0” (two high p-channel transistors). Size all of
F
the p-channel transistors the same as the p-channel transistors in NOR2. “Y” is pulled-down through either “B0”
or “A0 & A1” (a single n-channel transistor or two high n-channel transistors). Size “B0” the same as the
n-channel transistors in NOR2 and size “A0” and “A1” by multiplying the “B0” n-channel transistor size by the
inverter M beta ratio divided by the NAND2 M beta ratio. If the n-channel transistor size for the X1M cell is larger
than the maximum n-channel finger size, all of the transistors need to be downsized so that the n-channel
transistor size equals the maximum n-channel finger size. See Section 7.3.2.2 for an example of this downsizing.
ere is an example of how to size an AOI21_X1M cell. For this example, assume that the NOR2_X1M transistor
H
sizes are 0.7u/0.285u (beta ratio 2.456), the NAND2_X1M transistor sizes are 0.48u/0.58u (beta ratio 0.828), and
the INV_X1M transistor sizes are 0.7u/0.53u (beta ratio 1.32). Also assume that the maximum p-channel finger
size is 0.7u and the maximum n-channel finger size is 0.58u. All of the p-channel transistors in AOI21_X1M will
be 0.7u because that is the NOR2_X1M p-channel transistor size. The “B0” n-channel transistor in AOI21_X1M
will be 0.285u because that is the NOR2_X1M n-channel transistor size. The “A0” and “A1” n-channel transistors
in AOI21_X1M will be 0.455u, which is the “B0” n-channel transistor size times the inverter M beta ratio divided
by the NAND2 M beta ratio (0.285u * 1.32 / 0.828).
33
ARM Confidential
.3.2.2AOI31
7
Figure 7-2 is the schematic of an AOI31 cell.
or this cell, “Y” is pulled-up through either “A0 & B0” or “A1 & B0” or “A2 & B0” (two high p-channel transistors).
F
Size all of the p-channel transistors the same as the p-channel transistors in NOR2. “Y” is pulled-down through
either “B0” or “A0 & A1 & A2” (a single n-channel transistor or three high n-channel transistors). Size “B0” the
same as the n-channel transistors in NOR2 and size “A0”, “A1”, and “A2” by multiplying the “B0” n-channel
transistor size by the inverter M beta ratio divided by the NAND3 M beta ratio. If the n-channel transistor size for
the AOI31_X1M cell is larger than the maximum n-channel finger size, all of the transistors in AOI31_X1M need to
be downsized so that the n-channel transistor size equals the maximum n-channel finger size.
ere is an example of how to size an AOI31_X1M cell. For this example, assume that the NOR2_X1M transistor
H
sizes are 0.7u/0.285u (beta ratio 2.456), the NAND3_X1M transistor sizes are 0.36u/0.58u (beta ratio 0.62), and
the INV_X1M transistor sizes are 0.7u/0.53u (beta ratio 1.32). Also assume that the maximum p-channel finger
size is 0.7u and the maximum n-channel finger size is 0.58u. All of the p-channel transistors in AOI31_X1M will
be 0.7u because that is the NOR2_X1M p-channel transistor size. The “B0” n-channel transistor size in
AOI31_X1M will be 0.285u because that is the NOR2_X1M n-channel transistor size. The “A0”, “A1”, and “A2”
n-channel transistors in AOI31_X1M will be 0.605u, which is the “B0” n-channel transistor size times the inverter
M beta ratio divided by the nand3 M beta ratio (0.285u * 1.32 / 0.62). However, notice that these transistor sizes
are larger than the maximum n-channel finger size. All of the transistors must be scaled down by 0.605/0.58 (the
oversized transistor size divided by the maximum finger size).
.3.2.3AOI22
7
Figure 7-3 is the schematic of an AOI22 cell.
34
ARM Confidential
Figure 73 AOI22 Schematic
or this cell, “Y” is pulled-up through either “A0 & B0” or “A1 & B0” or “A0 & B1” or “A1 & B1” (two high
F
p-channel transistors). Size all of the p-channel transistors the same as the p-channel transistors in NOR2. “Y”
is pulled-down through either “A0 & A1” or “B0 & B1” (two high n-channel transistors). Size all of the n-channel
transistors the same as “A0” and “A1” in AOI21. If the n-channel transistor size for the AOI22_X1M cell is larger
than the maximum n-channel finger size, all of the transistors need to be downsized so that the n-channel
transistor size equals the maximum n-channel finger size. See Section 7.3.2.2 for an example of this downsizing.
.3.2.4AOI32
7
Figure 7-4 is the schematic of an AOI32 cell.
or this cell, “Y” is pulled-up through either “A0 & B0” or “A0 & B1” or “A1 & B0” or “A1 & B1” or “A2 & B0” or “A2
F
& B1” (two high p-channel transistors). Size all of the p-channel transistors the same as the p-channel transistors
in NOR2. “Y” is pulled-down through either “B0 & B1” or “A0 & A1 & A2” (two high n-channel transistors or three
high n-channel transistors). Size “B0” and “B1” the same as “A0” and “A1” in AOI21 and size “A0”, “A1”, and
“A2” the same as “A0”, “A1”, and “A2” as AOI31. If the n-channel transistor size for the AOI32_X1M cell is larger
than the maximum n-channel finger size, all of the transistors need to be downsized so that the n-channel
transistor size equals the maximum n-channel finger size. See Section 7.3.2.2 for an example of this downsizing.
.3.2.5AOI211
7
Figure 7-5 is the schematic of an AOI211 cell.
35
ARM Confidential
Figure 75 AOI211 Schematic
or this cell, “Y” is pulled-up through either “A0 & B0 & C0” or “A1 & B0 & C0” (three high p-channel transistors).
F
Size all of the p-channel transistors the same as the p-channel transistors in NOR3. “Y” is pulled-down through
either “C0” or “B0” or “A0 & A1” (a single n-channel transistor or two high n-channel transistors). Size “C0” and
“B0” the same as the n-channel transistors in NOR2 and size “A0” and “A1” the same as “A0” and “A1” in AOI21.
If the n-channel transistor size for the AOI211_X1M cell is larger than the maximum n-channel finger size, all of
the transistors need to be downsized so that the n-channel transistor size equals the maximum n-channel finger
size. See Section 7.3.2.2 for an example of this downsizing.
.3.2.6AOI221
7
Figure 7-6 is the schematic of an AOI221 cell.
or this cell, “Y” is pulled-up through either “A0 & B0 & C0” or “A0 & B1 & C0” or “A1 & B0 & C0” or “A1 & B1 &
F
C0” (three high p-channel transistors). Size all of the p-channel transistors the same as the p-channel transistors
in NOR3. “Y” is pulled-down through either “C0” or “B0 & B1” or “A0 & A1” (a single n-channel transistor or two
high n-channel transistors). Size “C0” the same as the n-channel transistor in NOR2 and size “B0”, “B1”, “A0”,
and “A1” the same as “A0” and “A1” in AOI21. If the n-channel transistor size for the AOI221_X1M cell is larger
than the maximum n-channel finger size, all of the transistors need to be downsized so that the n-channel
transistor size equals the maximum n-channel finger size. See Section 7.3.2.2 for an example of this downsizing.
.3.2.7AOI222
7
Figure 7-7 is the schematic of an AOI222 cell.
36
ARM Confidential
Figure 77 AOI222 Schematic
or this cell, “Y” is pulled-up through either “A0 & B0 & C0” or “A0 & B0 & C1” or “A0 & B1 & C0” or “A0 & B1 &
F
C1” or “A1 & B0 & C0” or “A1 & B0 & C1” or “A1 & B1 & C0” or “A1 & B1 & C1” (three high p-channel transistors).
Size all of the p-channel transistors the same as the p-channel transistors in NOR3. “Y” is pulled-down through
either “A0 & A1” or “B0 & B1” or “C0 & C1” (two high n-channel transistors). Size all of the n-channel transistors
the same as “A0” and “A1” in AOI21. If the n-channel transistor size for the AOI222_X1M cell is larger than the
maximum n-channel finger size, all of the transistors need to be downsized so that the n-channel transistor size
equals the maximum n-channel finger size. See Section 7.3.2.2 for an example of this downsizing.
7.3.3 OAI
or the OAI cells, follow the procedure for sizing AOI cells. The n-channel transistor sizes will be the same within
F
a cell. The p-channel transistor sizes will vary within a cell depending on the size of the transistor stack.
.3.3.1OAI211
7
Figure 7-8 is the schematic of an OAI211 cell.
or this cell, “Y” is pulled-up through either “C0” or “B0” or “A0 & A1” (a single p-channel transistor or two high
F
p-channel transistors). Size “A0” and “A1” like the p-channel transistors in NOR2. Size “C0” and “B0” by
multiplying the “A0” or “A1” p-channel transistor size by the inverter M beta ratio divided by the NOR2 M beta
ratio. “Y” is pulled-down through either “A0 & B0 & C0” or “A1 & B0 & C0” (three high n-channel transistors).
Size all of the n-channel transistors the same as the n-channel transistors “A0”, “A1”, and “A2” in AOI31.
.3.3.2OAI21
7
Figure 7-9 is the schematic of an OAI21 cell.
37
ARM Confidential
Figure 79 OAI21 Schematic
or this cell, “Y” is pulled-up through either “B0” or “A0 & A1” (a single p-channel transistor or two high
F
p-channel transistors). Size “B0” the same as the p-channel transistors “C0” and “B0” in OAI211. Size “A0” and
“A1” like the p-channel transistors in NOR2. “Y” is pulled-down through either “A0 & B0” or “A1 & B0” (two high
n-channel transistors). Size all of the n-channel transistors the same as the n-channel transistors in AOI22.
.3.3.3OAI221
7
Figure 7-10 is the schematic of an OAI221 cell.
or this cell, “Y” is pulled-up through either “C0” or “B0 & B1” or “A0 & A1” (a single p-channel transistor or two
F
high p-channel transistors). Size “C0” the same as the p-channel transistors “C0” and “B0” in OAI211. Size the
other p-channel transistors like the p-channel transistors in NOR2. “Y” is pulled-down through either “A0 & B0 &
C0” or “A1 & B0 & C0” or “A0 & B1 & C0” or “A1 & B1 & C0” (three high n-channel transistors). Size all of the
n-channel transistors the same as the n-channel transistors “A0”, “A1”, and “A2” in AOI31.
.3.3.4OAI22
7
Figure 7-11 is the schematic of an OAI22 cell.
38
ARM Confidential
Figure 711 OAI22 Schematic
or this cell, “Y” is pulled-up through either “A0 & A1” or “B0 & B1” (two high p-channel transistors). Size all of
F
the p-channel transistors like the p-channel transistors in NOR2. “Y” is pulled-down through either “A0 & B0” or
“A0 & B1” or “A1 & B0” or “A1 & B1” (two high n-channel transistors). Size all of the n-channel transistors the
same as the n-channel transistors in AOI22.
.3.3.5OAI222
7
Figure 7-12 is the schematic of an OAI222 cell.
or this cell, “Y” is pulled-up through either “A0 & A1” or “B0 & B1” or “C0 & C1” (two high p-channel transistors).
F
Size all of the p-channel transistors like the p-channel transistors in NOR2. “Y” is pulled-down through either “A0
& B0 & C0” or “A0 & B0 & C1” or “A0 & B1 & C0” or “A0 & B1 & C1” or “A1 & B0 & C0” or “A1 & B0 & C1” or “A1
& B1 & C0” or “A1 & B1 & C1” (three high n-channel transistors). Size all of the n-channel transistors the same as
the n-channel transistors “A0”, “A1”, and “A2” in AOI31.
.3.3.6OAI31
7
Figure 7-13 is the schematic of an OAI31 cell.
39
ARM Confidential
Figure 713 OAI31 Schematic
or this cell, “Y” is pulled-up through either “B0” or “A0 & A1 & A2” (a single p-channel transistor or two high
F
p-channel transistors). Size “A0”, “A1”, and “A2” like the p-channel transistors in AOI222. “Y” is pulled-down
through either “A0 & B0”, “A1 & B0”, “A2 & B0” (two high n-channel transistors). Size all of the n-channel
transistors the same as the n-channel transistors in AOI222. Size the p-channel transistor “B0” using the beta
ratio of NAND2.
.3.4.1AO21A1AI2
7
Figure 7-14 is the schematic of an AO21A1AI2 cell.
or this cell, “Y” is pulled-up through either “C0” or “A0 & B0” or “A1 & B0” (a single p-channel transistor or two
F
high p-channel transistors). Size “C0” the same as the p-channel transistors “C0” and “B0” in OAI211. Size the
other p-channel transistors like the p-channel transistors in NOR2. “Y” is pulled-down through either “B0 & C0”
or “A0 & A1 & C0” (two high n-channel transistors or three high n-channel transistors). Size all of the n-channel
transistors the same as the n-channel transistors “A0”, “A1”, and “A2” in AOI31.
.3.4.2OA21A1OI2
7
Figure 7-15 is the schematic of an OA21A1OI2 cell.
40
ARM Confidential
Figure 715 OA21A1OI2 Schematic
or this cell, “Y” is pulled-up through either “B0 & C0” or “A0 & A1 & C0” (two high p-channel transistors or three
F
high p-channel transistors). Size all of the p-channel transistors the same as the p-channel transistors in NOR3.
“Y” is pulled-down through either “C0” or “A0 & B0” or “A1 & B0” (a single p-channel transistor or two high
n-channel transistors). Size “A0”, “A1”, and “B0” the same as the n-channel transistors in AOI22. Size “C0” the
same as the n-channel transistors in NOR2.
) D
1 etermine which beta ratios and drive strengths will be included for each cell in the library.
2) Determine the value of each beta ratio for each cell type.
3) Determine if each beta ratio is larger or smaller than the critical ratio (maximum size single finger
p-channel divided by maximum size single finger n-channel).
4) Determine the “X1” drive strength size - If the beta ratio is larger than the critical ratio, set the p-channel
size to the maximum size single finger p-channel size. Set the n-channel size to the p-channel size
divided by the beta ratio. If the beta ratio is smaller than the critical ratio, set the n-channel size to the
maximum size single finger n-channel size. Set the p-channel size to the n-channel size multiplied by the
beta ratio.
5) Determine the other drive strength sizes – Multiply the “X1” drive strength sizes by the drive strength
value.
6) Determine the wire lengths and add them to the schematic.
41
ARM Confidential
2) S ize the output stage as though it were a single stage cell. For example, the output stage of the
NAND2B_X4M cell is sized the same as the NAND2_X4M cell. However, the output stage of the
AO1B2_X4M cell is sized the same as the NAND2_X4A cell.
3) Using the stick diagram, determine the wire lengths and add the wire lengths to the schematic.
4) Determine the total transistor size of the first stage using a stage effort of four. To simplify this
calculation, it is best to convert the wire length to an equivalent gate width. Add this equivalent gate
width to the width of the output stage to determine Cout.
5) Run doee simulations to determine the proper beta ratio for the input stage.
6) Size the input stage based on the results of step 5.
8.1.1 AND
or all AND gates, the size of the inverter is determined by the drive strength and beta ratio type. The wire
F
lengths are found using stick diagrams. The NAND gate size is determined using Logical Effort and simulation.
.1.1.1AND2
8
Figure 8-1 is the schematic of an AND2 cell. The capacitances shown in the figure represent the wire
capacitance for “ny” and “Y”. The capacitances for “A” and “B” need to be calculated and added to the
schematic, but are not shown in the figure for better readability.
42
ARM Confidential
he output stage of an AND2 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
AND2_X1X cell has an inverter with the same sizes as INV_X1X. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the NAND2 gate. The total transistor size of the NAND2 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of NAND2 are known. At this point, doee
simulations are needed to determine the beta ratio for the NAND2 depending on the beta ratio type for the cell.
.1.1.2AND3
8
AND3 cells are sized like AND2 cells except that the input stage is a NAND3 instead of a NAND2.
.1.1.3AND4
8
AND4 cells are sized like AND2 cells except that the input stage is a NAND4 instead of a NAND2.
.1.2.1NAND2B
8
Figure 8-3 is the schematic of a NAND2B cell. The capacitances shown in the figure represent the wire
capacitance for “a” and “Y”. The capacitances for “AN” and “B” need to be calculated and added to the
schematic, but are not shown in the figure for better readability.
he output stage of a NAND2B cell is a NAND2. Size the NAND2 just like a single-stage NAND2. For example, a
T
NAND2B_X1X cell has a NAND2 with the same sizes as NAND2_X1X. Now that the NAND2 has been sized, use
the stick diagram to determine the lengths of the input wires, the “a” wire, and the output wire.
he next step is to size the inverter. The total transistor size of the inverter can be found using Logical Effort,
T
since the NAND2 size, the “a” wire length, and the logical effort of INV are known. The logical effort of an inverter
is always 1. At this point, doee simulations are needed to determine the beta ratio for the inverter depending on
the beta ratio type for the cell.
.1.2.2NAND2XB
8
The NAND2XB cell is similar to the NAND2B cell except that the “B” input is inverted instead of “A”. Use the
same procedure as NAND2B to size this cell.
43
ARM Confidential
.1.2.3NAND3B
8
The NAND3B cell is similar to the NAND2B cell except that the input stage is a NAND3. Use the same procedure
as NAND2B to size this cell.
.1.2.4NAND3XXB
8
The NAND3XXB cell is similar to the NAND3B cell except that the “C” input is inverted instead of “A”. Use the
same procedure as NAND3B to size this cell.
.1.2.5NAND4B
8
The NAND4B cell is similar to the NAND2B cell except that the input stage is a NAND4. Use the same procedure
as NAND2B to size this cell.
.1.2.6NAND4XXXB
8
The NAND4XXXB cell is similar to the NAND4B cell except that the “D” input is inverted instead of “A”. Use the
same procedure as NAND4B to size this cell.
8.1.3 AO
.1.3.1AO21
8
The AO21 cell is an AOI21 driving an inverter as shown in Figure 8-4.
he output stage of an AO21 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
AO21_X1X cell has an inverter with the same sizes as INV_X1X. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the AOI21 gate. The total transistor size of the AOI21 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of AOI21 are known. At this point, doee
simulations are needed to determine the sizes for the AOI21 depending on the beta ratio type for the cell.
he following is an example of how to size an AO21_X1M cell. Assume that an INV_X1M cell is 0.7 µm / 0.5 µm.
T
For this example, the logical effort of an AOI21 cell is two, the length of wire “ny” is 2 µm, the length of wire “Y” is
1.5 µm, and the length of the input wires is 0.5 µm. Figure 8-5 shows the AO21_X1M cell for this example. The
capacitance of the input and output wires is not shown in the figures for readability, except for the final
schematic, Figure 8-8.
44
ARM Confidential
Figure 85 AO21_X1M Example
t this point, it is best to convert the length of wire “ny” into an equivalent gate length. In other words, we need
A
to find what amount of gate length has the same capacitance as 2 µm of Metal 1 wire. This value needs to be
calculated for each process. For this example, we will use a value which is 5 nm of Metal 1 wire is equivalent to 1
nm of gate length. So the 2 µm wire becomes 0.4 µm of gate. Figure 8-6 shows the output inverter and “ny”
wire converted into a single capacitance value of 1.6 µm of transistor length (0.7 µm + 0.5 µm + 0.4 µm).
ow we can determine the device size of the AOI21 using a stage effort of four. Using Logical Effort, Cin = g *
N
Cout / f. From this example, the logical effort (g) is two, Cout is 1.6 µm, and the stage effort (f) is four. So Cin = 2
* 1.6 µm / 4 = 0.8 µm.
e can apply the sizing technique from the AOI21 Section to this cell. All of the p-channel transistors have the
W
same size. Also the n-channel transistors “A0” and “A1” have the same size, while “B0” is smaller. The size of
any of the p-channel transistors plus either n-channel transistor “A0” or “A1” equals 0.8 µm (Cin) for this example.
We would need to run a simulation to determine how to best divide up the 0.8 µm of transistor width. We want to
minimize the maximum delay since we are sizing an AO21_X1M cell. We would need to be sure to keep “B0” at
ground during the simulation because we are not interested in the timing through the n-channel transistor “B0” at
this point. We will assume that the result is that the p-channel transistors are 0.5 µm and the n-channel
transistors “A0” and “A1” are 0.3 µm. Figure 8-7 shows the example schematic at this point.
45
ARM Confidential
Figure 87 AO21_X1M Example Partially Sized
he only transistor left to size is the n-channel “B0” transistor. We would need to run a similar simulation as
T
before to determine this transistor size. In this simulation, we would set “A0” to VDD and “A1” to VSS, or vice
versa, so that “ny” does not get pulled down through “A0” and “A1”. We need to sweep the size of this “B0”
transistor until the timing is the same as the timing we found in the previous simulation. This way we are
minimizing the maximum delay. For this example, we will assume that the simulation shows that when n-channel
“B0” transistor size is 0.18 µm the delay is minimized. Figure 8-8 shows the completed schematic including the
input and output capacitances which were not shown previously.
.1.3.2AO1B2
8
The AO1B2 cell is a NAND2 driving a NAND2 as shown in Figure 8-9.
46
ARM Confidential
he output stage of an AO1B2 cell is a NAND2. Size the output stage NAND2 just like a single-stage NAND2
T
with an ‘A’ beta ratio. For example, an AO1B2_X6M cell has an output stage NAND2 with the same sizes as
NAND2_X6A. Now that the output stage NAND2 has been sized, use the stick diagram to determine the lengths
of the input wires, the “b0b1” wire, and the output wire.
he next step is to size the input stage NAND2. The total transistor size of the input stage NAND2 can be found
T
using Logical Effort, since the output stage NAND2 size, the “b0b1” wire length, and the logical effort of NAND2
are known. Use the NAND2 ‘A’ beta ratio to size the input stage NAND2.
.1.3.3AO21B
8
The AO21B cell is a NAND2 driving a NAND2 as shown in Figure 8-10.
Size the AO21B cell using the same procedure as the AO1B2 cell.
.1.3.4AO22
8
The AO22 cell is an AOI22 driving an inverter as shown in Figure 8-11.
he output stage of an AO22 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
AO22_X1M cell has an inverter with the same sizes as INV_X1M. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the AOI22 gate. The total transistor size of the AOI22 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of AOI22 are known. At this point, doee
simulations are needed to determine the sizes for the AOI22 depending on the beta ratio type for the cell.
.1.3.5AOI2XB1
8
The AOI2XB1 cell is an inverter driving an AOI21 as shown in Figure 8-12.
47
ARM Confidential
Figure 812 AOI2XB1 Schematic
he output stage of an AOI2XB1 cell is an AOI21. Size the AOI21 just like a single-stage AOI21. For example, an
T
AOI2XB1_X1M cell has an AOI21 with the same sizes as AOI21_X1M. Now that the AOI21 has been sized, use
the stick diagram to determine the lengths of the input wires, the “a1” wire, and the output wire.
he next step is to size the inverter. The total transistor size of the inverter can be found using Logical Effort,
T
since the AOI21 size, the “a1” wire length, and the logical effort of an inverter are known. At this point, doee
simulations are needed to determine the beta ratio for the inverter depending on the beta ratio type for the cell.
8.1.3.6AOI21B
Size the AOI21B cell using the same procedure as the AOI2XB1 cell.
8.1.4 OA
.1.4.1OA211
8
The OA211 cell is an OAI211 cell driving an inverter as shown in Figure 8-14.
48
ARM Confidential
he output stage of an OA211 cell is an inverter. Size the inverter just like a single-stage inverter. For example,
T
an OA211_X1M cell has an inverter with the same sizes as INV_X1M. Now that the inverter has been sized, use
the stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the OAI211 gate. The total transistor size of the OAI211 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of an OAI211 are known. At this point,
doee simulations are needed to determine the beta ratio for the OAI211 depending on the beta ratio type for the
cell. Like the AO21 cell, the “A0” and “A1” p-channel transistor sizes are found with one simulation and the “B0”
and “C0” p-channel transistor sizes are found with another simulation.
.1.4.2OA21
8
The OA21 cell is an OAI21 cell driving an inverter as shown in Figure 8-15.
he output stage of an OA21 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
OA21_X1M cell has an inverter with the same sizes as INV_X1M. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the OAI21 gate. The total transistor size of the OAI21 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of an OAI21 are known. At this point,
doee simulations are needed to determine the beta ratio for the OAI21 depending on the beta ratio type for the
cell. Like the OA211 cell, the “A0” and “A1 p-channel transistor sizes are found with one simulation and the “B0”
p-channel transistor size is found with another simulation.
.1.4.3OA22
8
The OA22 cell is an OAI22 cell driving an inverter as shown in Figure 8-16.
49
ARM Confidential
he output stage of an OA22 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
OA22_X1M cell has an inverter with the same sizes as INV_X1M. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the OAI22 gate. The total transistor size of the OAI22 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of an OAI22 are known. At this point,
simulations are needed to determine the beta ratio for the OAI22 depending on the beta ratio type for the cell.
.1.4.4OAI21B
8
The OAI21B is an inverter driving an OAI21B cell as shown in Figure 8-17.
he output stage of an OAI21B cell is an OAI21 gate. Size the OAI21 gate just like a single-stage OAI21 gate.
T
For example, an OAI21B_X4M cell has an OAI21 gate with the same sizes as OAI21_X4M. Now that the OAI21
gate has been sized, use the stick diagram to determine the lengths of the input wires, the “b0” wire, and the
output wire.
he next step is to size the inverter. The total transistor size of the inverter can be found using Logical Effort,
T
since the OAI21 size, the “b0” wire length, and the logical effort of an inverter are known. At this point, doee
simulations are needed to determine the beta ratio for the inverter depending on the beta ratio type for the cell.
.1.4.5OAI2XB1
8
The OAI2XB1 cell is an inverter driving an OAI21 cell as shown in Figure 8-18.
Size the OAI2XB1 cell using the same procedure as the OAI21B cell.
8.1.5 OR
The OR2 and OR3 cells have NOR – INV structures. The OR4 and OR6 cells have NOR – NAND structures.
.1.5.1OR2
8
The OR2 cell is a NOR2 cell driving an inverter as shown in Figure 8-19.
50
ARM Confidential
Figure 819 OR2 Schematic
he output stage of an OR2 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
OR2_X1M cell has an inverter with the same sizes as INV_X1M. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the NOR2 gate. The total transistor size of the NOR2 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of NOR2 are known. At this point, doee
simulations are needed to determine the beta ratio for the NOR2 depending on the beta ratio type for the cell.
.1.5.2OR3
8
The OR3 cell is a NOR3 cell driving an inverter as shown in Figure 8-20.
he output stage of an OR3 cell is an inverter. Size the inverter just like a single-stage inverter. For example, an
T
OR3_X1X cell has an inverter with the same sizes as INV_X1X. Now that the inverter has been sized, use the
stick diagram to determine the lengths of the input wires, the “ny” wire, and the output wire.
he next step is to size the NOR3 gate. The total transistor size of the NOR3 gate can be found using Logical
T
Effort, since the inverter size, the “ny” wire length, and the logical effort of NOR3 are known. At this point, doee
simulations are needed to determine the beta ratio for the NOR3 depending on the beta ratio type for the cell.
.1.5.3OR4
8
The OR4 cell is a NOR2 cell driving a NAND2 cell as shown in Figure 8-21.
he output stage of an OR4 cell is a NAND2. Size the NAND2 just like a single-stage NAND2. For example, an
T
OR4_X4M cell has a NAND2 with the same sizes as NAND2_X4M. Now that the NAND2 gate has been sized,
use the stick diagram to determine the lengths of the input wires, the “ab” wire, the “cd” wire, and the output
wire.
51
ARM Confidential
he next step is to size the NOR2 gates. The total transistor size of the top NOR2 gate can be found using
T
Logical Effort, since the inverter size, the “ab” wire length, and the logical effort of NOR2 are known. The total
transistor size of the bottom NOR2 gate can be found using Logical Effort, since the inverter size, the “cd” wire
length, and the logical effort of NOR2 are known. At this point, doee simulations are needed to determine the
beta ratio for the NOR2 gates depending on the beta ratio type for the cell.
.1.5.4OR6
8
The OR6 cell is a NOR3 cell driving a NAND2 cell as shown in Figure 8-22.
he output stage of an OR6 cell is a NAND2. Size the NAND2 just like a single-stage NAND2. For example, an
T
OR6_X2M cell has a NAND2 with the same sizes as NAND2_X2M. Now that the NAND2 gate has been sized,
use the stick diagram to determine the lengths of the input wires, the “abc” wire, the “def” wire, and the output
wire.
he next step is to size the NOR3 gates. The total transistor size of the top NOR3 gate can be found using
T
Logical Effort, since the inverter size, the “abc” wire length, and the logical effort of NOR3 are known. The total
transistor size of the bottom NOR3 gate can be found using Logical Effort, since the inverter size, the “def” wire
length, and the logical effort of NOR3 are known. At this point, doee simulations are needed to determine the
beta ratio for the NOR3 gates depending on the beta ratio type for the cell.
he output stage of a NOR2B cell is a NOR2. Size the NOR2 just like a single-stage NOR2. For example, a
T
NOR2B_X1M cell has a NOR2 with the same sizes as NOR2_X1M. Now that the NOR2 has been sized, use the
stick diagram to determine the lengths of the input wires, the “a” wire, and the output wire.
he next step is to size the inverter. The total transistor size of the inverter can be found using Logical Effort,
T
since the NOR2 size, the “a” wire length, and the logical effort of inverter are known. The logical effort of an
52
ARM Confidential
inverter is always 1. At this point, doee simulations are needed to determine the beta ratio for the inverter
depending on the beta ratio type for the cell.
.1.6.2NOR2XB
8
The NOR2XB cell is an inverter driving a NOR2 cell as shown in Figure 8-24.
he NOR2XB cell is similar to the NOR2B cell except that the “B” input is inverted instead of “A”. Use the same
T
procedure as NOR2B to size this cell.
8.1.7 BUF
his section covers ‘BUF’, ‘BUFH’, and ‘DLY2’ cells. The ‘BUFZ’ and ‘DLY4’ cells are covered in a later section.
T
The number after the ‘DLY’ refers to the number of stages of inverters or tri-state inverters in the cell.
.1.7.1BUF
8
The BUF cell is an inverter driving another inverter as shown in Figure 8-25.
he output stage of a BUF cell is an inverter. Size the output inverter just like a single-stage inverter. For
T
example, a BUF_X1M cell has an output inverter with the same sizes as INV_X1M. Now that the output inverter
has been sized, use the stick diagram to determine the lengths of the input wires, the “ny” wire, and the output
wire.
he next step is to size the input inverter. The total transistor size of the first inverter can be found using Logical
T
Effort, since the output inverter size, the “ny” wire length, and the logical effort of inverter are known. Use a
stage effort of four to calculate the total transistor size of the first inverter. The logical effort of an inverter is
always 1. At this point, doee simulations are needed to determine the beta ratio for the first inverter depending
on the beta ratio type for the cell.
.1.7.2BUFH
8
The BUFH cell is an inverter driving another inverter as shown in Figure 8-26.
53
ARM Confidential
Figure 826 BUFH Schematic
The BUFH cell is similar to the BUF cell except that the input inverter is sized using a stage effort of two.
.1.7.3DLY2
8
The DLY2 cell is a tri-state inverter driving an inverter with transistors used as capacitors as shown in Figure
8-27. The transistors used as capacitors are used to add extra delay to the cell.
he output stage of a DLY2 cell is an inverter. Size the output inverter just like a single-stage inverter. For
T
example, a DLY2_X1M cell has an output inverter with the same sizes as INV_X1M. Now that the output inverter
has been sized, use the stick diagram to determine the lengths of the input wires, the “ny” wire, and the output
wire.
he next step is to size the tri-state inverter. The total transistor size of the tri-state inverter can be found using
T
Logical Effort, since the output inverter size, the “ny” wire length, and the logical effort of a tri-state inverter are
known. Ignore the transistors used as capacitors when sizing the tri-state inverter. At this point, doee
simulations are needed to determine the beta ratio for the first inverter depending on the beta ratio type for the
cell, with the two transistors used as capacitors set to zero width. Once the tri-state inverter has been sized, set
the p-channel transistor used as a capacitor to the size of the p-channel transistors of the tri-state inverter. Run
simulations to determine the size of the n-channel transistor used as a capacitor so that the timing of the cell
matches the beta ratio type.
he layout area of this cell should match the layout area of the equivalent buffer. For instance, a DLY2_0P5X cell
T
should have the same area as a BUF_X0P5X cell.
9.1 FRICG
his section describes how to design FRICG cells. These cells should be sized before the other integrated clock
T
gate cells.
54
ARM Confidential
9.1.1 Cell Usage
FRICG cells are free running cells, which means that these cells do not stop the clock from toggling.
hen sizing any multi-stage cell, it is best to start with the output device. In this case, the output inverter is
W
sized the same as the ‘B’ beta ratio inverter of the same drive strength. For instance, the FRICG_X11B cell has
an output inverter that is sized the same as the INV_X11B cell.
ince power and timing are the important factors for this cell, the remaining transistors need to be sized such
S
that the power – delay product is minimized. Using a stage effort of five results in a small power – delay product.
fter the output inverter has been sized, the NAND2 device needs to be sized. The NAND2 cell should have the
A
same beta ratio as the ‘B’ beta ratio NAND2 cells. The only exception is the p-channel transistor that is driven by
net ‘hi’. This transistor is kept small as mentioned in the “things to keep in mind” above. As a general rule, this
transistor is sized one tenth as large as the other p-channel transistor of the NAND2 gate. When applying the
stage effort to come up with the NAND2 transistor sizes, remember to include the wire capacitance of net ‘neck’.
fter the NAND2 devices have been sized, the three remaining transistors need to be sized. The n-channel
A
transistor is sized as the minimum non-dog boned transistor size. The p-channel transistor on the right is sized
by multiplying the n-channel transistor size by the inverter ‘M’ beta ratio. The p-channel transistor on the left
varies depending on the beta ratio. For the largest drive strength FRICG cell (FRICG_X16B), this transistor is
sized the same as the p-channel transistor in INV_X1M (the largest single-finger p-channel transistor). Divide the
55
ARM Confidential
-channel NAND2 gate size by the size of this transistor. Use this ratio when sizing this transistor of other FRICG
n
cells.
9.2 PREICG
This section describes how to design PREICG cells.
he NAND2 and output inverter are sized using the same sizes as the FRICG cell. This sizing method ensures
T
that all of the different ICG topologies have the same ‘CK’ to ‘ECK’ timing.
56
ARM Confidential
he inverter that drives the net ‘m’ needs to be sized using the same stage effort as the NAND2 – output inverter
T
stage. Use the ‘M’ beta ratio as a starting point for the beta ratio. The beta ratio will need to be adjusted later,
so that the ‘E’ to ‘m’ path has an ‘M’ beta ratio. The tri-state inverter is sized using minimum devices.
henever there is a gate driving a transmission gate, consider the gate and transmission gate as one device for
W
figuring out the logical effort. In the PREICG, there is a NOR2 driving a transmission gate. Use the procedure
described in the section on Logical Effort to calculate the logical effort for the NOR2 – transmission gate pair.
The transmission gate and the n-channel transistors of the NOR2 gate are all sized the same. The p-channel
transistors of the NOR2 gate are tapered. The transistor closest to the output is sized about half the size of the
other p-channel transistor. Use a stage effort of five to size the NOR2 gate and transmission gate. The beta ratio
of the NOR2 gate and the inverter that drives net ‘m’ will be determined later, after timing simulations are run to
determine the sizes that result in an ‘m’ beta ratio for the ‘E’ to ‘m’ path. Last, the inverter that drives ‘nclk’ is
sized using the same stage effort.
nce all of the devices have been sized and reasonable estimates have been made for the wire capacitances of
O
each net, the cell needs to be simulated to find the ‘E’ to ‘m’ timing (sized for ‘M’ beta ratio).
9.3 POSTICG
This section describes how to design POSTICG cells.
57
ARM Confidential
● S
ince this cell has clock signals, it is important to keep the clock transistors as small as possible while
maintaining performance.
● S
ince the ‘m’ input to the p-channel transistor of the NAND2 gate of the POSTICG is used only as a
keeper and not to drive the output, this transistor should be made as small as possible while meeting the
leakage guidelines.
● Since the tri-state inverter is used only as a keeper, this device should be kept to minimum size.
he NAND2 and output inverter are sized using the same sizes as the FRICG cell. This sizing method ensures
T
that all of the different ICG topologies have the same ‘CK’ to ‘ECK’ timing.
he NAND2 gate that drives the net ‘m’ needs to be sized using the same stage effort as the NAND2 – output
T
inverter stage. Use the ‘M’ beta ratio as a starting point for the beta ratio. The beta ratio will need to be adjusted
later, so that the ‘E’ to ‘m’ path has an ‘M’ beta ratio. The tri-state inverter is sized using minimum devices.
henever there is a gate driving a transmission gate, consider the gate and transmission gate as one device for
W
figuring out the logical effort. In the POSTICG cell, there is an inverter driving a transmission gate. Use the
procedure described in the section on Logical Effort to calculate the logical effort for the inverter – transmission
gate pair. The transmission gate and the n-channel transistors of the inverter are all sized the same. Use a stage
effort of five to size the inverter and transmission gate. The beta ratio of the input inverter and the NAND2 gate
that drives net ‘m’ will be determined later, after timing simulations are run to determine the sizes that result in an
‘M’ beta ratio for the ‘E’ to ‘m’ path. Last, the inverter that drives ‘nclk’ is sized using the same stage effort.
nce all of the devices have been sized and reasonable estimates have been made for the wire capacitances of
O
each net, the cell needs to be simulated to find the ‘E’ to ‘m’ timing (sized for ‘M’ beta ratio).
10 XOR/XNOR
10.1 XOR2/XNOR2
his section describes how to design XOR2 and XNOR2 cells. XOR2 and XNOR2 are grouped together because
T
they are sized the same; only the wiring is different.
10.1.1Cell Usage
XOR2 and XNOR2 are combinatorial cells used throughout a design.
10.1.2Cell Structure
igure 10-1 shows the schematic of an XOR2 and an XNOR2 cell. The only difference between the two is the
F
wiring of the transmission gates.
58
ARM Confidential
Figure 101 XOR2 Schematic (left) and XNOR2 Schematic (right)
10.1.3Cell Sizing
There are a few things to keep in mind when sizing this cell.
● S
ince this cell is designed using an ‘M’ or ‘X’ beta ratio, the delay needs to be the minimum of the
maximum of the rise and fall delays.
● S
ince this cell has an inverter – transmission gate structure, the sizes of the transmission gates and the
n-channel transistors of the inverters driving ‘nb’ and ‘bb’ should be the same.
● S
ince this cell has a fork (‘nb’ drives a transmission gate and an inverter – transmission gate), size the
inverters driving ‘nb’ and ‘bb’ the same.
● S
ince the maximum two finger transmission gate size is typically less than double the single finger
transmission gate size, this cell needs to be layed out before final sizing is done to figure out the
maximum allowable transmission gate sizes.
or this cell, the best place to start sizing is the inverters driving ‘nb’ and ‘bb’. The p-channel transistors are
F
sized to the maximum allowable finger size. For instance, the p-channel transistors for these inverters in the
XOR2_X1M cell are sized the same as the p-channel transistor in the INV_X1M cell. The n-channel transistors for
these inverters and the transmission gates are sized the same. The size that gives the minimum of the maximum
of the rise and fall delays should be used. The transmission gates should have the same number of fingers as
the drive strength. For instance, the XOR2_X1M cell should have transmission gates with one finger and the
XOR2_X3M cell should have transmission gates with three fingers.
he inverter that drives ‘na’ is sized using a stage effort of two. The beta ratio of this inverter should be
T
determined by simulation.
10.2 XOR3/XNOR3
his section describes how to design XOR3 and XNOR3 cells. XOR3 and XNOR3 are grouped together because
T
they are sized the same; only the wiring is different.
10.2.1Cell Usage
XOR3 and XNOR3 are combinatorial cells used throughout a design.
59
ARM Confidential
10.2.2Cell Structure
igure 10-2 shows the schematic of an XOR3 and Figure 10-3 shows the schematic of an XNOR3 cell. The only
F
difference between the two is the wiring of the transmission gates.
10.2.3Cell Sizing
There are a few things to keep in mind when sizing this cell.
● S
ince this cell is designed using an ‘M’ or ‘X’ beta ratio, the delay needs to be the minimum of the
maximum of the rise and fall delays.
● S
ince this cell has many stages, size the output stage first then work back toward the input stage and
finally size the ‘A’ and ‘B’ inverters.
● S
ince this cell has an inverter – transmission gate structure, the sizes of the transmission gates and the
n-channel transistors of the inverters driving ‘nc’ and ‘bc’ should be the same.
● S
ince this cell has a fork (‘nc’ drives a transmission gate and an inverter – transmission gate), size the
inverters driving ‘nc’ and ‘bc’ the same.
● S
ince the maximum two finger transmission gate size is typically less than double the single finger
transmission gate size, this cell needs to be layed out before final sizing is done to figure out the
maximum allowable transmission gate sizes.
60
ARM Confidential
● N
ot all of the inputs will have the same input to output delay. The ‘A’ to ‘Y’ path will be the fastest path,
while the ‘C’ to ‘Y’ path will be the slowest path. The ‘A’ to ‘Y’ path should not be slowed down to more
closely match the timing for the other inputs.
● It is nearly impossible to get the best timing for this cell on the first pass. It is essential to iteratively tune
and simulate this cell to find the proper transistor sizes.
he output stage of an XOR3/XNOR3 cell is an inverter. Size the output inverter just like a single-stage inverter.
T
For example, an XOR3_X1M cell has an output inverter with the same sizes as INV_X1M. Now that the output
inverter has been sized, use the stick diagram to determine the lengths of the “ny” wire and the output wire.
he next step is to size the inverter – transmission gate pair driving ‘ny’. Use a stage effort of four to determine
T
the total transistor size of the inverter – transmission gate pair. Use the ‘M’ beta ratio to size this inverter (the one
driving ‘nbnc’). The beta ratio of the inverter might need to be changed after the cell has been fully sized and
simulations have been run. Size the p-channel and n-channel transistors of the two transmission gates that drive
‘ny’ using the n-channel transistor size of the inverter that drives ‘nbnc’. The sizes of these two transmission
gates might need to be changed after the cell has been fully sized and simulations have been run.
he input stage has the same topology as an XOR2/XNOR2 cell. The inverters driving ‘nc’ and ‘bc’ will have the
T
same sizes. As a starting point, size these inverters the same as the inverter driving ‘nbnc’. Also, the
transmission gates driving ‘bnc’ will have the same sizes as the n-channel transistors of the inverters driving ‘nc’
and ‘bc’. These sizes will need to be changed after the cell has been fully sized and simulations have been run.
he ‘A’ and ‘B’ inverters are the last transistors to size. These inverters are sized using a stage effort of two. The
T
beta ratio of these inverters should be determined by simulation.
ow that the entire cell has been sized, run simulations to find the ‘A’ to ‘Y’ timing, the ‘B’ to ‘Y’ timing, and the
N
‘C’ to ‘Y’ timing. The ‘A’ to ‘Y’ timing will be the fastest and the ‘C’ to ‘Y’ timing will be the slowest. Continue
tuning and simulating this cell until the timing from each input to the output is the minimum of the maximum
delay.
11 MUX
his section describes how to design the muxes. There are two basic types of muxes: NAND based and
T
transmission gate based. The transmission gate muxes have a ‘T’ in the cell name.
61
ARM Confidential
Figure 111 MX2 Schematic
he output stage of an MX2 cell is a NAND2. Size the output stage NAND2 just like a single-stage NAND2. For
T
example, an MX2_X1B cell has an output stage NAND2 with the same sizes as NAND2_X1B. Now that the
output stage NAND2 gate has been sized, use the stick diagram to determine the lengths of the input wires, the
“ans0” and “bs0” wires, and the output wire.
he next step is to size the input stage NAND2 gates. The total transistor size of the top NAND2 gate can be
T
found using Logical Effort, since the output stage NAND2 size, the “ans0” wire length, and the logical effort of
NAND2 are known. The total transistor size of the bottom NAND2 gate can be found using Logical Effort, since
the output stage NAND2 size, the “bs0” wire length, and the logical effort of NAND2 are known. At this point,
simulations are needed to determine the beta ratio for the NAND2 gates depending on the beta ratio type for the
cell.
inally, the select inverter needs to be sized. Use the stick diagram to determine the length of the “ns0” wire.
F
The total transistor size of the select inverter can be found using Logical Effort, since the top input stage NAND2
size, the “ns0” wire length, and the logical effort of inverter are known. The logical effort of an inverter is one by
definition. Use a stage effort of two when calculating the size of the select inverter. At this point, simulations are
needed to determine the beta ratio for the select inverter depending on the beta ratio type for the cell.
62
ARM Confidential
Figure 112 MXT2 Schematic
he output stage of an MXT2 cell is an inverter. Size the output stage inverter just like a single-stage inverter.
T
For example, an MXT2_X1X cell has an output stage inverter with the same sizes as INV_X1X. Now that the
output stage inverter has been sized, use the stick diagram to determine the lengths of the input wires, the “na”
and “nb” wires, the “ny” wire, and the output wire.
he next step is to size the input stage inverter – transmission gate pair. The total transistor size of the inverter –
T
transmission gate pairs can be found using Logical Effort, since the output stage inverter size, the “ny” wire
length, and the logical effort of an inverter – transmission gate pair are known. Size the n-channel transistors of
the input inverters and the transistors of the transmission gates the same. At this point, simulations are needed
to determine the p-channel transistor size for the input inverters depending on the beta ratio type for the cell.
inally, the select inverter needs to be sized. Use the stick diagram to determine the length of the “ns0” wire.
F
The total transistor size of the select inverter can be found using Logical Effort, since the transmission gate sizes,
the “ns0” wire length, and the logical effort of inverter are known. The logical effort of an inverter is one by
definition. Use a stage effort of two, when calculating the size of the select inverter. At this point, simulations are
needed to determine the beta ratio for the select inverter depending on the beta ratio type for the cell.
11.2.2MXIT2
he MXIT2 cell is an inverter – transmission gate pair with a select inverter as shown in Figure 11-3. This cell is
T
similar to the MXT2 cell, except it does not have an output inverter.
63
ARM Confidential
Figure 113 MXIT2 Schematic
he output stage of an MXIT2 cell is an inverter – transmission gate pair. For the ‘X1’ cell, draw the largest
T
single-fingered transmission gate with the p-channel and n-channel transistors having equal size. Then set the
‘A’ and ‘B’ inverters’ p-channel size to the largest single-fingered size. Set the ‘A’ and ‘B’ inverters’ n-channel
size to the transmission gates’ transistor size.
ow that the inverter – transmission gate pair has been sized, use the stick diagram to determine the lengths of
N
the input wires, the “na” and “nb” wires, and the output wire.
inally, the select inverter needs to be sized. Use the stick diagram to determine the length of the “ns0” wire.
F
The total transistor size of the select inverter can be found using Logical Effort, since the transmission gate sizes,
the “ns0” wire length, and the logical effort of inverter are known. The logical effort of an inverter is one by
definition. Use a stage effort of two, when calculating the size of the select inverter. At this point, simulations are
needed to determine the beta ratio for the select inverter depending on the beta ratio type for the cell.
11.2.3MXT4
he MXT4 cell is an inverter – transmission gate – transmission gate triplet driving another inverter with a select
T
inverter as shown in Figure 11-4.
64
ARM Confidential
Figure 114 MXT4 Schematic
he output stage of an MXT4 cell is an inverter. Size the output stage inverter just like a single-stage inverter.
T
For example, an MXT4_X1X cell has an output stage inverter with the same sizes as INV_X1X. Now that the
output stage inverter has been sized, use the stick diagram to determine the lengths of the input wires, the
internal wires, the “ny” wire, and the output wire.
he next step is to size the input stage inverter – transmission gate – transmission gate triplet. The total
T
transistor size of the inverter – transmission gate – transmission gate triplets can be found using Logical Effort,
since the output stage inverter size, the “ny” wire length, and the logical effort of an inverter – transmission gate –
transmission gate triplet are known. Size the n-channel transistors of the input inverters and the transistors of the
transmission gates the same. At this point, simulations are needed to determine the p-channel transistor size for
the input inverters depending on the beta ratio type for the cell.
inally, the select inverters need to be sized. Use the stick diagram to determine the length of the “ns0” and
F
“ns1” wires. The total transistor size of the select inverters can be found using Logical Effort, since the
transmission gate sizes, the “ns0” and “ns1” wire lengths, and the logical effort of inverter are known. The logical
effort of an inverter is one by definition. Use a stage effort of two, when calculating the size of the select
inverters. At this point, simulations are needed to determine the beta ratio for the select inverters depending on
the beta ratio type for the cell.
11.2.4MXIT4
he MXIT4 cell is an inverter – transmission gate driving another inverter – transmission gate driving an inverter
T
with a select inverter as shown in Figure 11-5. This cell is similar to the MXT4 cell, except it has an extra pair of
inverters.
65
ARM Confidential
Figure 115 MXIT4 Schematic
he output stage of an MXIT4 cell is an inverter. Size the output stage inverter just like a single-stage inverter.
T
For example, an MXIT4_X1X cell has an output stage inverter with the same sizes as INV_X1X. Now that the
output stage inverter has been sized, use the stick diagram to determine the lengths of the input wires, the
internal wires, the “ny” wire, and the output wire.
he next step is to size the middle stage inverter – transmission gate pair. The total transistor size of the inverter
T
– transmission gate pairs can be found using Logical Effort, since the output stage inverter size, the “ny” wire
length, and the logical effort of an inverter – transmission gate pair are known. Size the n-channel transistors of
the inverters and the transistors of the transmission gates the same. Size the p-channel transistors of the
inverters using the inverter ‘M’ beta ratio.
ow size the input stage inverter – transmission gate pair. The transmission gates should have the same sizes as
N
the middle stage transmission gates. Size the n-channel transistors of the inverters and the transistors of the
transmission gates the same. Simulations are needed to determine the size of the p-channel transistors of the
input inverters.
Finally, the select inverters need to be sized. Use the stick diagram to determine the length of the “ns0” and
“ns1” wires. The total transistor size of the select inverters can be found using Logical Effort, since the
transmission gate sizes, the “ns0” and “ns1” wire lengths, and the logical effort of inverter are known. The logical
effort of an inverter is one by definition. Use a stage effort of two, when calculating the size of the select
66
ARM Confidential
inverters. At this point, simulations are needed to determine the beta ratio for the select inverters depending on
the beta ratio type for the cell.
12 ADDERS
12.1 ADDH
he ADDH cell has two inputs and two outputs as shown in Figure 12-1. This cell should be sized to minimize
T
the maximum delay. The propagation delay will be larger to the ‘S’ output than ‘CO’ because of the extra stage
of delay.
he output stage of an ADDH cell is an inverter. Size the inverter just like a single-stage inverter. For example,
T
an ADDH_X1M cell has output inverters with the same sizes as INV_X1M. Now that the inverters have been
sized, use the stick diagram to determine the lengths of the input wires, the “ns” wire, the “nco” wire, and the
output wires.
he next step is to size the OAI21 gate. The total transistor size of the OAI21 can be found using Logical Effort,
T
since the output inverter size, the “ns” wire length, and the logical effort of OAI21 are known. The beta ratio of
the OAI21 will be determined later by simulation, so for now set the OAI21 gate to the beta ratio used in the
single-stage OAI21 cells.
he last gate to size is the NAND2 gate. The total transistor size of the NAND2 can be found using Logical Effort,
T
since the output inverter size, the OAI21 total transistor size, the “nco” wire length, and the logical effort of
NAND2 are known. Sweep the beta ratio of the NAND2 gate to find the minimum of the maximum propagation
delay for ‘CO’. Then with the NAND2 gate size fixed, sweep the beta ratio of the OAI21 gate to find the minimum
of the maximum propagation delay for ‘S’. By sizing the ADDH cell this way, both ‘S’ and ‘CO’ will be sized to
have the minimum of the maximum delay.
12.2 ADDF
he ADDF cell has three inputs and two outputs as shown in Figure 12-2. There are many ways to design full
T
adders. This version is area efficient compared to the others. This design is known as non-canonical static
because the p-channel stacks are not complements of the n-channel stacks. This cell should be sized to
minimize the maximum delay. The propagation delay will be larger to the ‘S’ output than ‘CO’ because of the
extra stages of delay.
67
ARM Confidential
Figure 12-2 ADDF Schematic
he output stage of an ADDF cell is an inverter as shown in “GROUP 1” of Figure 12-3. Size the inverter just like
T
a single-stage inverter. For example, an ADDF_X1M cell has output inverters with the same sizes as INV_X1M.
Now that the inverters have been sized, use the stick diagram to determine the lengths of the input wires, the
“ns” wire, the “nco” wire, and the output wires.
he next step is to size the transistors noted as ‘GROUP 2’ in Figure 12-4. The total transistor size of this group
T
can be found using Logical Effort, since the output inverter size, the “ns” wire length, and the logical effort of
AOI21 are known. The logical effort of AOI21 can be used since that cell and this group have a two high
p-channel stack and a two high n-channel stack. The beta ratio of this group will be determined later by
simulation, so for now set the beta ratio of this group to one.
68
ARM Confidential
Figure 12-4 ADDF Schematic – GROUP 2
he next step is to size the transistors noted as ‘GROUP 3’ in Figure 12-5. The only time that the transistors in
T
GROUP 3 will affect the logic state of output ‘S’ is if ‘A’, ‘B’, and ‘CI’ are all either logic zero or logic one. If this
condition is true, then ‘S’ is only a function of ‘A’, ‘B’, and ‘CI’. Since ‘S’ is not a function of ‘nco’ in this case, the
transistors in GROUP 3 can have the same total transistor size as the transistors in GROUP 2 even though
GROUP 3 has three high transistor stacks. So, as a starting point, size the transistors in GROUP 3 with the same
sizes as the ones in GROUP 2. These values might need to change after simulations have been run.
he next step is to size the transistors noted as ‘GROUP 4’ in Figure 12-6. The total transistor size of this group
T
can be found using Logical Effort, since the output ‘CO’ inverter size, the ‘GROUP 2’ total transistor size, the
“nco” wire length, and the logical effort of AOI21 are known. The logical effort of AOI21 can be used since that
cell and this group have a two high p-channel stack and a two high n-channel stack. The beta ratio of this group
will be determined later by simulation, so for now set the beta ratio of this group to one. An important thing to
note about this group of transistors is that they should never be folded, no matter what the drive strength of the
ADDF cell. Due to the topology of the cell, these transistors can not be folded.
69
ARM Confidential
Figure 12-6 ADDF Schematic – GROUP 4
he next step is to size the transistors noted as ‘GROUP 5’ in Figure 12-7. These transistors should be sized the
T
same as the transistors in GROUP 4. An important thing to note about this group of transistors is that they
should never be folded, no matter what the drive strength of the ADDF cell. Due to the topology of the cell, these
transistors can not be folded.
ow that all of the transistors have been sized initially and the total transistor size has been determined,
N
simulations need to be run to determine the timing from each of the inputs to each of the outputs. The minimum
of the maximum timing needs to be found for each input to ‘CO’ and also for each input to ‘S’. The total
transistor size of the cell should not change, only the beta ratio of GROUPS 2 – 5 will change. The GROUP 1
output inverter sizes and beta ratio are fixed depending on the beta ratio of the cell.
70
ARM Confidential
13 LATCHES
he output stage of a LATQ cell is an inverter as shown in Figure 13-1. Size the inverter just like a single-stage
T
inverter. For example, a LATQ_X1X cell has an output inverter with the same sizes as INV_X1X. Now that the
output inverter has been sized, use the stick diagram to determine the lengths of the input wires, the “nm” wire,
and the output wire.
The inverter that drives net ‘m’ and the tri-state inverter have minimum sized transistors.
he input inverter and transmission gate should be sized as a pair using a stage effort of four as a starting point.
T
The clock inverter should be sized so that the clock to output delay closely matches the input to output delay.
The clock inverter and transmission gate need to be sized with power in mind. These gates should be sized
using the assumption that a one percent improvement in delay is worth a three percent increase in power. These
71
ARM Confidential
ates should not be upsized if doing so will result in a greater than 3 – 1 ratio of power increase to performance
g
improvement.
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘G’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.1.2 LATQN
The LATQN cell is an inverting, phi1 latch as shown in Figure 13-2.
he output stage of a LATQN cell is an inverter as shown in Figure 13-2. Size the inverter just like a single-stage
T
inverter. For example, a LATQN_X1X cell has an output inverter with the same sizes as INV_X1X. Now that the
output inverter has been sized, use the stick diagram to determine the lengths of the input wires, the “nm” wire,
the “m” wire, and the output wire.
he tri-state inverter has minimum sized transistors. The inverter that drives net “m” is sized using a stage effort
T
of four. The beta ratio of this inverter needs to be determined by simulation.
he input inverter and transmission gate should be sized as a pair using a stage effort of four as a starting point.
T
The clock inverter should be sized so that the clock to output delay closely matches the input to output delay.
The clock inverter and transmission gate need to be sized with power in mind. These gates should be sized
using the assumption that a one percent improvement in delay is worth a three percent increase in power. These
gates should not be upsized if doing so will result in a greater than 3 – 1 ratio of power increase to performance
improvement.
Simulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘G’ to ‘QN’ timing, and the power of the cell.
13.3.1.3 LATRQ
The LATRQ cell is a non-inverting, phi1 latch with an active low reset as shown in Figure 13-3.
72
ARM Confidential
Figure 13-3 LATRQ Schematic
he output stage of a LATRQ cell is an inverter as shown in Figure 13-3. Size the inverter just like a single-stage
T
inverter. For example, a LATRQ_X1X cell has an output inverter with the same sizes as INV_X1X. Now that the
output inverter has been sized, use the stick diagram to determine the lengths of the input wires, the “nm” wire,
and the output wire.
he inverter that drives net ‘m’ has minimum sized transistors. The three p-fet transistors driven my ‘G’, ‘m’, and
T
‘RN’ are minimum sized. The three n-fet transistors driven by ‘m’, ‘nclk’, and ‘RN’ are sized about 1/3 larger than
minimum size.
he input device and transmission gate should be sized as a pair using the LATQ sizing as a starting point. For
T
example, if the LATQ_X1X cell has an input inverter sized as 0.5u/0.35u and a transmission gate sized as
0.3/0.3u, then the LATRQ_X1X initial sizing should be 0.5u/0.5u for the input device and 0.3u/0.3u for the
transmission gate size. The clock inverter should be sized the same as the LATQ with the same drive strength.
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘G’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.1.4 LATRPQN
The LATRPQN cell is an inverting, phi1 latch with an active high reset as shown in Figure 13-4.
he tri-state inverter has minimum sized transistors. The NOR2 that drives net “m” is sized using a stage effort of
T
four. The beta ratio of this NOR2 needs to be determined by simulation.
he input inverter and transmission gate should be sized as a pair using the LATQN sizing as a starting point. For
T
example, if the LATQN_X1X cell has an input inverter sized as 0.5u/0.35u and a transmission gate sized as
0.3/0.3u, then the LATRPQN_1x initial sizing should be 0.5u/0.35u for the input inverter and 0.3u/0.3u for the
transmission gate size. The clock inverter should be sized the same as the LATQN with the same drive strength.
Simulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘G’ to ‘QN’ timing, and the power of the cell.
13.3.1.5 LATSPQ
The LATSPQ cell is a non-inverting, phi1 latch with an active high set as shown in Figure 13-5.
he output stage of a LATSPQ cell is an inverter as shown in Figure 13-5. Size the inverter just like a single-stage
T
inverter. For example, a LATSPQ_X3M cell has an output inverter with the same sizes as INV_X3M. Now that the
output inverter has been sized, use the stick diagram to determine the lengths of the input wires, the “nm” wire,
and the output wire.
he inverter that drives net ‘m’ has minimum sized transistors. The three p-fet transistors driven my ‘G’, ‘m’, and
T
‘S’ are sized about 1/3 larger than minimum size. The three n-fet transistors driven by ‘m’, ‘nclk’, and ‘S’ are
minimum sized.
he input device and transmission gate should be sized as a pair using the LATQ sizing as a starting point. For
T
example, if the LATQ_X1X cell has an input inverter sized as 0.5u/0.35u and a transmission gate sized as
0.3/0.3u, then the LATSPQ_X1X initial sizing should be 0.7u/0.35u for the input device and 0.3u/0.3u for the
transmission gate size. The clock inverter should be sized the same as the LATQ with the same drive strength.
74
ARM Confidential
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘G’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.1.6 LATSQN
The LATSQN cell is an inverting, phi1 latch with an active low set as shown in Figure 13-6.
he output stage of a LATSQN cell is an inverter as shown in Figure 13-6. Size the inverter just like a
T
single-stage inverter. For example, a LATSQN_X1X cell has an output inverter with the same sizes as INV_X1X.
Now that the output inverter has been sized, use the stick diagram to determine the lengths of the input wires,
the “nm” wire, the “m” wire, and the output wire.
he tri-state inverter has minimum sized transistors. The NAND2 that drives net “m” is sized using a stage effort
T
of four. The beta ratio of this NAND2 needs to be determined by simulation.
he input inverter and transmission gate should be sized as a pair using the LATQN sizing as a starting point. For
T
example, if the LATQN_X1X cell has an input inverter sized as 0.5u/0.35u and a transmission gate sized as
0.3/0.3u, then the LATRPQN_X1X initial sizing should be 0.5u/0.35u for the input inverter and 0.3u/0.3u for the
transmission gate size. The clock inverter should be sized the same as the LATQN with the same drive strength.
imulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘G’ to ‘QN’ timing, and the power of the cell.
S
If the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to
‘QN’ delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.2Phi2 Latches
13.3.2.1 LATNQ
The LATNQ cell is a non-inverting, phi2 latch as shown in Figure 13-7.
75
ARM Confidential
Figure 13-7 LATNQ Schematic
This cell should be sized using the LATQ sizing of the same drive strength as a starting point.
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘GN’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.2.2 LATNQN
The LATNQN cell is an inverting, phi2 latch as shown in Figure 13-8.
This cell should be sized using the LATQN sizing of the same drive strength as a starting point.
imulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘GN’ to ‘QN’ timing, and the power of the cell.
S
If the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to
‘QN’ delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.2.3 LATNRQ
The LATNRQ cell is a non-inverting, phi2 latch with an active low reset as shown in Figure 13-9.
76
ARM Confidential
Figure 13-9 LATNRQ Schematic
This cell should be sized using the LATRQ sizing of the same drive strength as a starting point.
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘GN’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.2.4 LATNRPQN
The LATNRPQN cell is an inverting, phi2 latch with an active high reset as shown in Figure 13-10.
This cell should be sized using the LATRPQN sizing of the same drive strength as a starting point.
Simulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘GN’ to ‘QN’ timing, and the power of the cell.
13.3.2.5 LATNSPQ
The LATNSPQ cell is a non-inverting, phi2 latch with an active high set as shown in Figure 13-11.
77
ARM Confidential
Figure 13-11 LATNSPQ Schematic
This cell should be sized using the LATSPQ sizing of the same drive strength as a starting point.
imulations need to be run to determine the ‘D’ to ‘Q’ timing, the ‘GN’ to ‘Q’ timing, and the power of the cell. If
S
the latch is not flood-filled (X), the output inverter’s beta ratio can be adjusted to minimize the maximum ‘D’ to ‘Q’
delay. If the latch is flood-filled, the output inverter’s transistor sizes can not be changed.
13.3.2.6 LATNSQN
The LATNSQN cell is an inverting, phi2 latch with an active low set as shown in Figure 13-12.
This cell should be sized using the LATSQN sizing of the same drive strength as a starting point.
Simulations need to be run to determine the ‘D’ to ‘QN’ timing, the ‘GN’ to ‘QN’ timing, and the power of the cell.
78
ARM Confidential
14 FLOPS
he clock to output delay is measured with a large setup time. The setup time is defined as the point where the
T
clock to output delay increases by ten percent over the delay measured with a large setup time. For example, if
the clock to output delay measured with a large setup time is 100 ps and the clock to output delay measured
with a setup time of 40 ps is 110 ps, then the clock to output delay is 100 ps and the setup time is 40 ps.
he scan flops should be sized first and then the non-scan flops can be quickly sized by removing the scan
T
signals from the scan flops and simulating to find the cell timing. In particular, the set of scan flops known as the
“Base 9” should be sized first. The “Base 9” flops consist of all five drive strengths of the SDFFQ cell and all four
drive strengths of the SDFFQN cell. Most of the design effort is spent getting these cells to be optimal.
79
ARM Confidential
Figure 14-1 SDFFQ Schematic
lthough there are many inverters, tri-state inverters, and transmission gates in flops, many of them are either for
A
scan or feedback. The transistors that have the most effect on the timing of the flop are shown with a dashed
line box around them in Figure 14-2. The most important transistors are the clock inverters and the ‘D’ to ‘Q’
forward path.
Figure 14-2 SDFFQ Schematic with Important Gates Noted in the Dashed Line Boxes
he output stage of an SDFFQ cell is an inverter as shown in Figure 14-2. Size the output inverter just like a
T
single-stage inverter. For example, a SDFFQ_X1X cell has an output inverter with the same sizes as INV_X1X.
Now that the output inverter has been sized, use the stick diagram to determine the lengths of the input wires,
the internal wires, and the output wire.
he feedback tri-state inverters have minimum sized transistors. The tri-state inverter driven by ‘SI’ should have
T
the n-channel transistor set to minimum size. The p-channel transistor should be set to the minimum size
transistor times the inverter ‘M’ beta ratio. The inverter that drives net ‘ns’ is initially sized using a stage effort of
four. The beta ratio of this inverter needs to be determined by simulation.
he inverter that drives net ‘m’ and the transmission gate that drives net ‘s’ should be sized as a pair using a
T
stage effort of four as a starting point. Likewise, the input device in the dashed line box in Figure 14-2 that drives
net ‘nmux’ and the transmission gate that drives net ‘nm’ should be sized as a pair. This transmission gate
should have the same total transistor size as the other transmission gate. The clock inverters and transmission
gates need to be sized with power in mind. These gates should be sized using the assumption that a one
percent improvement in delay is worth a three percent increase in power. These gates should not be upsized if
doing so will result in a greater than 3 – 1 ratio of power increase to performance improvement.
or the SDFFQ_X4M cell, increase the cell size by one track if the slave transmission gate can be made larger
F
without folding. Be sure to include the larger wire length when tuning.
80
ARM Confidential
imulations need to be run to determine the ‘CK’ to ‘Q’ timing, the ‘D’ to ‘CK’ timing (setup time), and the power
S
of the cell.
14.3.1.2 SDFFQN
The SDFFQN cell is an inverting, phi2/phi1 flop as shown in Figure 14-3.
lthough there are many inverters, tri-state inverters, and transmission gates in flops, many of them are either for
A
scan or feedback. The transistors that have the most effect on the timing of the flop are shown with a dashed
line box around them in Figure 14-4. The most important transistors are the clock inverters and the ‘D’ to ‘QN’
forward path.
81
ARM Confidential
Figure 14-4 SDFFQN Schematic with Important Gates Noted in the Dashed Line Boxes
he output stage of an SDFFQN cell is an inverter as shown in Figure 14-4. Size the output inverter just like a
T
single-stage inverter. For example, a SDFFQN_X1X cell has an output inverter with the same sizes as INV_X1X.
Now that the output inverter has been sized, use the stick diagram to determine the lengths of the input wires,
the internal wires, and the output wire.
he feedback tri-state inverters and the inverter that drives net ‘ns’ have minimum sized transistors. The tri-state
T
inverter driven by ‘SI’ should have the n-channel transistor set to minimum size. The p-channel transistor should
be set to the minimum size transistor times the inverter ‘M’ beta ratio.
he inverter that drives net ‘m’ and the transmission gate that drives net ‘s’ should be sized as a pair using a
T
stage effort of four as a starting point. Likewise, the input device in the dashed line box in Figure 14-4 that drives
net ‘nmux’ and the transmission gate that drives net ‘nm’ should be sized as a pair. This transmission gate
should have the same total transistor size as the other transmission gate. The clock inverters and transmission
gates need to be sized with power in mind. These gates should be sized using the assumption that a one
percent improvement in delay is worth a three percent increase in power. These gates should not be upsized if
doing so will result in a greater than 3 – 1 ratio of power increase to performance improvement.
imulations need to be run to determine the ‘CK’ to ‘QN’ timing, the ‘D’ to ‘CK’ timing (setup time), and the
S
power of the cell.
he remaining flops should not be sized until the SDFFQ and SDFFQN flops have been tuned, layed out, and
T
retuned based on the layout.
14.3.1.3 SDFFRPQ
The SDFFRPQ cell is a non-inverting, phi2/phi1 flop with active high reset as shown in Figure 14-5.
82
ARM Confidential
Figure 14-5 SDFFRPQ Schematic
ize this cell using the same clock transistor sizes and transmission gate sizes as SDFFQ. The n-channel
S
transistors of the slave latch feedback structure should be minimum sized. The p-channel transistors should be
about 1/3 larger than minimum size. The NOR2 gate should initially be sized with the same n-channel transistor
size as the inverter that drives net ‘m’ in SDFFQ. The p-channel transistor size should be initially set using the
NOR2 ‘M’ beta ratio.
14.3.1.4 SDFFRPQN
The SDFFRPQN cell is an inverting, phi2/phi1 flop with active high reset as shown in Figure 14-6.
ize this cell using the same clock transistor sizes and transmission gate sizes as SDFFQN. The n-channel
S
transistors of the slave latch feedback structure should be minimum sized. The p-channel transistors should be
about 1/3 larger than minimum size. The NOR2 gate should initially be sized with the same n-channel transistor
size as the inverter that drives net ‘m’ in SDFFQ. The p-channel transistor size should be initially set using the
NOR2 ‘M’ beta ratio.
14.3.1.5 SDFFSQ
The SDFFSQ cell is a non-inverting, phi2/phi1 flop with active low set as shown in Figure 14-7.
83
ARM Confidential
Figure 14-7 SDFFSQ Schematic
ize this cell using the same clock transistor sizes and transmission gate sizes as SDFFQ. The p-channel
S
transistors of the slave latch feedback structure should be minimum sized. The n-channel transistors should be
about 1/3 larger than minimum size. The NAND2 gate should initially be sized with the same p-channel transistor
size as the inverter that drives net ‘m’ in SDFFQ. The n-channel transistor size should be initially set using the
NAND2 ‘M’ beta ratio.
14.3.1.6 SDFFSQN
The SDFFSQN cell is an inverting, phi2/phi1 flop with active low set as shown in Figure 14-8.
84
ARM Confidential
Figure 14-8 SDFFSQN Schematic
ize this cell using the same clock transistor sizes and transmission gate sizes as SDFFQN. The p-channel
S
transistors of the slave latch feedback structure should be minimum sized. The n-channel transistors should be
about 1/3 larger than minimum size. The NAND2 gate should initially be sized with the same p-channel transistor
size as the inverter that drives net ‘m’ in SDFFQ. The n-channel transistor size should be initially set using the
NAND2 ‘M’ beta ratio.
14.3.1.7 SDFFSRPQ
he SDFFSRPQ cell is a non-inverting, phi2/phi1 flop with active low set and active high reset as shown in Figure
T
14-9. The set signal has priority over reset.
ize this cell using the same clock transistor sizes and transmission gate sizes as SDFFQ. The transistors of the
S
slave latch feedback structure should be about 1/3 larger than minimum size. Simulations are needed to
determine the sizes of the transistors of the master latch forward path.
14.3.1.8 SDFFYQ
The SDFFYQ cell is a non-inverting, phi2/phi1 flop as shown in Figure 14-10.
85
ARM Confidential
Figure 14-10 SDFFYQ Schematic
he SDFFYQ flop is sized exactly the same as the SDFFQ flop except that the two clock inverters are upsized
T
compared to the SDFFQ flop. The clock inverter driving ‘bclk’ is sized using a stage effort of three. Also, the
feedback tri-state inverters should be made double the minimum size.
14.3.1.9 A2SDFFQ
he A2SDFFQ cell is a non-inverting, phi2/phi1 flop with an AND gate integrated to the front as shown in Figure
T
14-11.
86
ARM Confidential
Figure 14-11 A2SDFFQ Schematic
he A2SDFFQ flop is sized exactly the same as the SDFFQ flop except that the input stage size needs to be
T
determined by simulation.
14.3.1.10 A2SDFFQN
he A2SDFFQN cell is an inverting, phi2/phi1 flop with an AND gate integrated to the front as shown in Figure
T
14-12.
he A2SDFFQN flop is sized exactly the same as the SDFFQN flop except that the input stage size needs to be
T
determined by simulation.
14.3.1.11 ESDFFQ
The ESDFFQ cell is a non-inverting, phi2/phi1 flop with an active high enable as shown in Figure 14-13.
87
ARM Confidential
Figure 14-13 ESDFFQ Schematic
he ESDFFQ flop is sized using the SDFFQN flop as a starting point. The inverter that drives net ‘semux’ should
T
be sized using a beta ratio of one with the same sizes as the transmission gate that it drives. The remaining three
transmission gates should all be sized the same. Initially they should all be set to the size of the transmission
gate that drives net ‘m’. The input inverter and the inverter that drives net ‘nfb’ should also be sized the same.
The beta ratio of the input inverter needs to be determined by simulation. The n-channel transistor of the input
inverter should be set equal to the n-channel size of the transmission gate that drives net ‘nenmux’. Finally, the
enable inverter should be sized using a stage effort of two with the inverter ‘M’ beta ratio.
14.3.1.12 ESDFFQN
The ESDFFQN cell is an inverting, phi2/phi1 flop with an active high enable as shown in Figure 14-14.
88
ARM Confidential
Figure 14-14 ESDFFQN Schematic
he ESDFFQN flop is sized using the SDFFQ flop as a starting point. The inverter that drives net ‘semux’ should
T
be sized using a beta ratio of one with the same sizes as the transmission gate that it drives. The remaining three
transmission gates should all be sized the same. Initially they should all be set to the size of the transmission
gate that drives net ‘m’. The input inverter and the inverter that drives net ‘nfb’ should also be sized the same.
The beta ratio of the input inverter needs to be determined by simulation. The n-channel transistor of the input
inverter should be set equal to the n-channel size of the transmission gate that drives net ‘nenmux’. Finally, the
enable inverter should be sized using a stage effort of two with the inverter ‘M’ beta ratio.
14.3.1.13 M2SDFFQ
The M2SDFFQ cell is a non-inverting, phi2/phi1 flop with a MUX integrated to the front as shown in Figure 14-15.
89
ARM Confidential
Figure 14-15 M2SDFFQ Schematic
he M2SDFFQ flop is sized using the SDFFQN flop as a starting point. The inverter that drives net ‘semux’
T
should be sized using a beta ratio of one with the same sizes as the transmission gate that it drives. The
remaining three transmission gates should all be sized the same. Initially they should all be set to the size of the
transmission gate that drives net ‘m’. The ‘D0’ and ‘D1’ input inverters should also be sized the same. The beta
ratio of the input inverters needs to be determined by simulation. The n-channel transistor of the input inverters
should be set equal to the n-channel size of the transmission gate that drives net ‘nenmux’. Finally, the select
inverter should be sized using a stage effort of two with the inverter ‘M’ beta ratio.
14.3.1.14 M2SDFFQN
The M2SDFFQN cell is an inverting, phi2/phi1 flop with a MUX integrated to the front as shown in Figure 14-16.
90
ARM Confidential
Figure 14-16 M2SDFFQN Schematic
he M2SDFFQN flop is sized using the SDFFQ flop as a starting point. The inverter that drives net ‘semux’
T
should be sized using a beta ratio of one with the same sizes as the transmission gate that it drives. The
remaining three transmission gates should all be sized the same. Initially they should all be set to the size of the
transmission gate that drives net ‘m’. The ‘D0’ and ‘D1’ input inverters should also be sized the same. The beta
ratio of the input inverters needs to be determined by simulation. The n-channel transistor of the input inverters
should be set equal to the n-channel size of the transmission gate that drives net ‘nenmux’. Finally, the select
inverter should be sized using a stage effort of two with the inverter ‘M’ beta ratio.
91
ARM Confidential
Figure 14-17 SDFFNQ Schematic
he sizing strategy for the SDFFNQ flop is the same as the SDFFQ flop. However, the SDFFNQ flop will have
T
much different clock inverter sizes and transmission gate sizes.
14.3.2.2 SDFFNRPQ
The SDFFNRPQ cell is a non-inverting, phi1/phi2 flop with active high reset as shown in Figure 14-18.
92
ARM Confidential
he sizing strategy for the SDFFNRPQ flop is the same as the SDFFRPQ flop. However, the SDFFNRPQ flop will
T
have much different clock inverter sizes and transmission gate sizes.
14.3.2.3 SDFFNSQ
The SDFFNSQ cell is a non-inverting, phi1/phi2 flop with active low set as shown in Figure 14-19.
he sizing strategy for the SDFFNRPQ flop is the same as the SDFFRPQ flop. However, the SDFFNRPQ flop will
T
have much different clock inverter sizes and transmission gate sizes.
14.3.2.4 SDFFNSRPQ
he SDFFNSRPQ cell is a non-inverting, phi1/phi2 flop with active low set and active high reset as shown in
T
Figure 14-20. The set signal has priority over reset.
93
ARM Confidential
Figure 14-20 SDFFNSRPQ Schematic
he sizing strategy for the SDFFNSRPQ flop is the same as the SDFFQ flop. However, the SDFFNSRPQ flop will
T
have much different clock inverter sizes and transmission gate sizes.
94
ARM Confidential
he DFFQ cell is similar to the SDFFQ cell. The DFFQ cell does not have a scan enable inverter, a scan in
T
tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFQ cell sizing
should be made the same as the SDFFQ cell except for the input inverter. The n-channel transistor size should
be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio of the
input inverter needs to be determined by simulation.
14.3.3.2 DFFQN
The DFFQN cell is an inverting, phi2/phi1 non-scan flop as shown in Figure 14-22.
he DFFQN cell is similar to the SDFFQN cell. The DFFQN cell does not have a scan enable inverter, a scan in
T
tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFQN cell
sizing should be made the same as the SDFFQN cell except for the input inverter. The n-channel transistor size
should be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio
of the input inverter needs to be determined by simulation.
14.3.3.3 DFFRPQ
The DFFRPQ cell is a non-inverting, phi2/phi1 non-scan flop with active high reset as shown in Figure 14-23.
95
ARM Confidential
Figure 14-23 DFFRPQ Schematic
he DFFRPQ cell is similar to the SDFFRPQ cell. The DFFRPQ cell does not have a scan enable inverter, a scan
T
in tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFRPQ cell
sizing should be made the same as the SDFFRPQ cell except for the input inverter. The n-channel transistor size
should be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio
of the input inverter needs to be determined by simulation.
14.3.3.4 DFFRPQN
The DFFRPQN cell is an inverting, phi2/phi1 non-scan flop with active high reset as shown in Figure 14-24.
96
ARM Confidential
he DFFRPQN cell is similar to the SDFFRPQN cell. The DFFRPQN cell does not have a scan enable inverter, a
T
scan in tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The
DFFRPQN cell sizing should be made the same as the SDFFRPQN cell except for the input inverter. The
n-channel transistor size should be set equal to the n-channel transistor size of the transmission gate that drives
net ‘nm’. The beta ratio of the input inverter needs to be determined by simulation.
14.3.3.5 DFFSQ
The DFFSQ cell is a non-inverting, phi2/phi1 non-scan flop with active low set as shown in Figure 14-25.
he DFFSQ cell is similar to the SDFFSQ cell. The DFFSQ cell does not have a scan enable inverter, a scan in
T
tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFSQ cell
sizing should be made the same as the SDFFSQ cell except for the input inverter. The n-channel transistor size
should be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio
of the input inverter needs to be determined by simulation.
14.3.3.6 DFFSQN
The DFFSQN cell is an inverting, phi2/phi1 non-scan flop with active low set as shown in Figure 14-26.
97
ARM Confidential
Figure 14-26 DFFSQN Schematic
he DFFSQN cell is similar to the SDFFSQN cell. The DFFSQN cell does not have a scan enable inverter, a scan
T
in tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFSQN cell
sizing should be made the same as the SDFFSQN cell except for the input inverter. The n-channel transistor size
should be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio
of the input inverter needs to be determined by simulation.
14.3.3.7 DFFSRPQ
he DFFSRPQ cell is a non-inverting, phi2/phi1 non-scan flop with active low set and active high reset as shown
T
in Figure 14-27. The set signal has priority over reset.
98
ARM Confidential
he DFFSRPQ cell is similar to the SDFFSRPQ cell. The DFFSRPQ cell does not have a scan enable inverter, a
T
scan in tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The
DFFSRPQ cell sizing should be made the same as the SDFFSRPQ cell except for the input inverter. The
n-channel transistor size should be set equal to the n-channel transistor size of the transmission gate that drives
net ‘nm’. The beta ratio of the input inverter needs to be determined by simulation.
14.3.3.8 DFFYQ
The DFFYQ cell is a non-inverting, phi2/phi1 non-scan flop as shown in Figure 14-28.
he DFFYQ cell is similar to the SDFFYQ cell. The DFFYQ cell does not have a scan enable inverter, a scan in
T
tri-state inverter, and has an inverting input stage instead of a tri-state inverter input stage. The DFFYQ cell
sizing should be made the same as the SDFFYQ cell except for the input inverter. The n-channel transistor size
should be set equal to the n-channel transistor size of the transmission gate that drives net ‘nm’. The beta ratio
of the input inverter needs to be determined by simulation.
14.3.3.9 A2DFFQ
he A2DFFQ cell is a non-inverting, phi2/phi1 non-scan flop with an AND gate integrated to the front as shown in
T
Figure 14-29.
99
ARM Confidential
Figure 14-29 A2DFFQ Schematic
he A2DFFQ cell is similar to the A2SDFFQ cell. The A2DFFQ cell does not have a scan enable inverter, a scan
T
in tri-state inverter, and has an NAND2 input stage instead of a tri-state NAND2 input stage. The A2DFFQ cell
sizing should be made the same as the A2SDFFQ cell except for the input NAND2 gate. The p-channel transistor
size should be set equal to the p-channel transistor size of the input gate of the A2SDFFQ cell. The beta ratio of
the input NAND2 gate needs to be determined by simulation.
14.3.3.10 A2DFFQN
he A2DFFQN cell is an inverting, phi2/phi1 non-scan flop with an AND gate integrated to the front as shown in
T
Figure 14-30.
he A2DFFQN cell is similar to the A2SDFFQN cell. The A2DFFQN cell does not have a scan enable inverter, a
T
scan in tri-state inverter, and has an NAND2 input stage instead of a tri-state NAND2 input stage. The A2DFFQN
100
ARM Confidential
ell sizing should be made the same as the A2SDFFQN cell except for the input NAND2 gate. The p-channel
c
transistor size should be set equal to the p-channel transistor size of the input gate of the A2SDFFQN cell. The
beta ratio of the input NAND2 gate needs to be determined by simulation.
14.3.3.11 EDFFQ
The EDFFQ cell is a non-inverting, phi2/phi1 non-scan flop with an active high enable as shown in Figure 14-31.
he EDFFQ cell is similar to the ESDFFQ cell. The EDFFQ cell does not have a scan enable inverter, a scan in
T
tri-state inverter, or a scan enable transmission gate. The EDFFQ cell sizing should be made the same as the
ESDFFQ cell except for the input inverter. The n-channel transistor size should be set equal to the n-channel
transistor size of the transmission gate that drives net ‘nm’. The beta ratio of the input inverter needs to be
determined by simulation. Both of the ‘E’ transmission gates need to be sized the same. Likewise, the input
inverter and the inverter driving net ‘nfb’ need to be sized the same.
14.3.3.12 EDFFQN
The EDFFQN cell is an inverting, phi2/phi1 non-scan flop with an active high enable as shown in Figure 14-32.
101
ARM Confidential
Figure 14-32 EDFFQN Schematic
he EDFFQN cell is similar to the ESDFFQN cell. The EDFFQN cell does not have a scan enable inverter, a scan
T
in tri-state inverter, or a scan enable transmission gate. The EDFFQN cell sizing should be made the same as the
ESDFFQN cell except for the input inverter. The n-channel transistor size should be set equal to the n-channel
transistor size of the transmission gate that drives net ‘nm’. The beta ratio of the input inverter needs to be
determined by simulation. Both of the ‘E’ transmission gates need to be sized the same. Likewise, the input
inverter and the inverter driving net ‘nfb’ need to be sized the same.
14.3.3.13 M2SDFFQ
he M2DFFQ cell is a non-inverting, phi2/phi1 non-scan flop with a MUX integrated to the front as shown in
T
Figure 14-33.
102
ARM Confidential
Figure 14-33 M2DFFQ Schematic
he M2DFFQ cell is similar to the M2SDFFQ cell. The M2DFFQ cell does not have a scan enable inverter, a scan
T
in tri-state inverter, or a scan enable transmission gate. The M2DFFQ cell sizing should be made the same as the
M2SDFFQ cell except for the input inverters. The n-channel transistor size should be set equal to the n-channel
transistor size of the transmission gates that drive net ‘nenmux’. The beta ratio of the input inverters needs to be
determined by simulation. Both of the ‘S0’ transmission gates need to be sized the same. Likewise, the input
inverters need to be sized the same.
14.3.3.14 M2DFFQN
he M2DFFQN cell is an inverting, phi2/phi1 non-scan flop with a MUX integrated to the front as shown in Figure
T
14-34.
103
ARM Confidential
Figure 14-34 M2DFFQN Schematic
he M2DFFQN cell is similar to the M2SDFFQN cell. The M2DFFQN cell does not have a scan enable inverter, a
T
scan in tri-state inverter, or a scan enable transmission gate. The M2DFFQN cell sizing should be made the
same as the M2SDFFQN cell except for the input inverters. The n-channel transistor size should be set equal to
the n-channel transistor size of the transmission gates that drive net ‘nenmux’. The beta ratio of the input
inverters needs to be determined by simulation. Both of the ‘S0’ transmission gates need to be sized the same.
Likewise, the input inverters need to be sized the same.
104
ARM Confidential
Figure 14-35 DFFNQ Schematic
he sizing strategy for the DFFNQ flop is the same as the DFFQ flop. However, the DFFNQ flop will have much
T
different clock inverter sizes and transmission gate sizes.
14.3.4.2 DFFNRPQ
The DFFNRPQ cell is a non-inverting, phi1/phi2 non-scan flop with active high reset as shown in Figure 14-36.
he sizing strategy for the DFFNRPQ flop is the same as the DFFRPQ flop. However, the DFFNRPQ flop will
T
have much different clock inverter sizes and transmission gate sizes.
105
ARM Confidential
14.3.4.3 DFFNSQ
The DFFNSQ cell is a non-inverting, phi1/phi2 non-scan flop with active low set as shown in Figure 14-37.
he sizing strategy for the DFFNSQ flop is the same as the DFFSQ flop. However, the DFFNSQ flop will have
T
much different clock inverter sizes and transmission gate sizes.
14.3.4.4 DFFNSRPQ
he DFFNSRPQ cell is a non-inverting, phi1/phi2 non-scan flop with active low set and active high reset as
T
shown in Figure 14-38. The set signal has priority over reset.
106
ARM Confidential
Figure 14-38 DFFNSRPQ Schematic
he sizing strategy for the DFFNSRPQ flop is the same as the DFFSRPQ flop. However, the DFFNSRPQ flop will
T
have much different clock inverter sizes and transmission gate sizes.
15 BUFZ
ize the p-channel transistor driven by input ‘A’ by dividing the output p-channel transistor size by two. Size the
S
n-channel transistor driven by input ‘A’ by dividing the output n-channel transistor size by two. Size the
p-channel transistors driven by input ‘OE’ and net ‘noe’ the same. Their sizes are half the size of the p-channel
transistor driven by input ‘A’. Size the n-channel transistors driven by input ‘OE’ and net ‘noe’ the same. Their
sizes are half the size of the n-channel transistor driven by input ‘A’.
Finally, size the inverter driven by input ‘OE’ using a stage effort of two with the inverter ‘M’ beta ratio.
107
ARM Confidential
16 DLY4
he next step is to size the three tri-state inverters. The total transistor size of the tri-state inverter that drives net
T
‘nba’ can be found using Logical Effort, since the output inverter size, the ‘nba’ wire length, and the logical effort
of a tri-state inverter are known. Ignore the transistors used as capacitors when sizing the tri-state inverter. The
other two tri-state inverters should be sized the same as this tri-state inverter. At this point, simulations are
needed to determine the beta ratio for the tri-state inverters depending on the beta ratio type for the cell, with the
two transistors used as capacitors set to zero width. Once the tri-state inverters have been sized, set the
transistors used as capacitors to the size of the same transistors in the DLY2 cell.
he layout area of this cell should match the layout area of two equivalent buffers. For instance, a DLY4_X0P5M
T
cell should have the same area as two BUF_X0P5M cells.
108
ARM Confidential
17.1 TIEHI
17.1.1Cell Usage
TIEHI cells are combinatorial cells used to generate logic one voltage values.
17.1.2Cell Structure
Figure 17-1 shows the schematic of a TIEHI cell.
17.1.3Cell Sizing
ize the p-channel transistor that drives the output the same as the p-channel transistor of an inverter with the
S
same drive strength. For example, a TIEHI_X1M cell has a p-channel transistor size with the same size as the
p-channel transistor of INV_X1M.
he n-channel transistors are set to minimum size. The remaining p-channel transistor is set to the minimum size
T
times the inverter ‘M’ beta ratio.
17.2 TIELO
17.2.1Cell Usage
TIELO cells are combinatorial cells used to generate logic zero voltage values.
17.2.2Cell Structure
Figure 17-2 shows the schematic of a TIELO cell.
109
ARM Confidential
17.2.3Cell Sizing
ize the n-channel transistor that drives the output the same as the n-channel transistor of an inverter with the
S
same drive strength. For example, a TIELO_X1M cell has an n-channel transistor size with the same size as the
n-channel transistor of INV_X1M.
he other n-channel transistor is set to minimum size. The p-channel transistor on the left is set to the minimum
T
size times the inverter ‘M’ beta ratio. The other p-channel transistor is set to minimum size.
18.1 RF1R1WS
18.1.1Cell Usage
RF1R1WS cells are latch cells with one read port and one write port.
18.1.2Cell Structure
Figure 18-1 shows the schematic of an RF1R1WS cell.
18.1.3Cell Sizing
se a beta ratio of one for the output transmission gate. For the RF1R1WS_X1M cell, the transistor size is set to
U
the largest single finger transmission gate size. For other drive strengths, the transistor sizes are scaled
accordingly.
ize the n-channel transistor of the inverter that drives net ‘rbl_int’ the same as the output transmission gate size.
S
Size the p-channel transistor using the inverter ‘M’ beta ratio.
110
ARM Confidential
ize the input inverter and transmission gate as a pair using a stage effort of four. Use a beta ratio of one for the
S
input transmission gate. Size the n-channel transistor of the input inverter the same as the input transmission
gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
he input inverter and transmission gate can not be folded. If a stage effort of four results in these devices being
T
more than finger, they need to be downsized to a single finger size.
Size the WWL and RWL inverters using a stage effort of two and the inverter ‘M’ beta ratio.
18.2 RF2R1WS
18.2.1Cell Usage
RF2R1WS cells are latch cells with two read ports and one write port.
18.2.2Cell Structure
Figure 18-2 shows the schematic of an RF2R1WS cell.
18.2.3Cell Sizing
se a beta ratio of one for the output transmission gates. For the RF2R1WS_X1M cell, the transistor size is set to
U
the largest single finger transmission gate size. For other drive strengths, the transistor sizes are scaled
accordingly.
111
ARM Confidential
ize the n-channel transistor of the inverters that drives net ‘rbl1_int’ and ‘rbl2_int’ the same as the output
S
transmission gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
ize the input inverter and transmission gate as a pair using a stage effort of four. Use a beta ratio of one for the
S
input transmission gate. Size the n-channel transistor of the input inverter the same as the input transmission
gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
he input inverter and transmission gate can not be folded. If a stage effort of four results in these devices being
T
more than finger, they need to be downsized to a single finger size.
Size the WWL, RWL1, and RWL2 inverters using a stage effort of two and the inverter ‘M’ beta ratio.
18.3 RF1R2WS
18.3.1Cell Usage
RF1R2WS cells are latch cells with one read port and two write ports.
18.3.2Cell Structure
Figure 18-3 shows the schematic of an RF1R2WS cell.
112
ARM Confidential
Figure 18-3 RF1R2WS Schematic
18.3.3Cell Sizing
se a beta ratio of one for the output transmission gate. For the RF1R2WS_X1M cell, the transistor size is set to
U
the largest single finger transmission gate size. For other drive strengths, the transistor sizes are scaled
accordingly.
ize the n-channel transistor of the inverter that drives net ‘rbl_int’ the same as the output transmission gate size.
S
Size the p-channel transistor using the inverter ‘M’ beta ratio.
et the feedback inverter to minimum size. Set the three high p-channel transistor and three high n-channel
S
transistor feedback stack to about one-third larger than minimum size.
ize the input inverters and transmission gates as a pair using a stage effort of four. Use a beta ratio of one for
S
the input transmission gate. Size the n-channel transistor of the input inverters the same as the input
transmission gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
he input inverter and transmission gate can not be folded. If a stage effort of four results in these devices being
T
more than finger, they need to be downsized to a single finger size.
Size the WWL, WWL2, and RWL inverters using a stage effort of two and the inverter ‘M’ beta ratio.
113
ARM Confidential
18.4 RF2R2WS
18.4.1Cell Usage
RF2R2WS cells are latch cells with one read port and two write ports.
18.4.2Cell Structure
Figure 18-4 shows the schematic of an RF2R2WS cell.
18.4.3Cell Sizing
se a beta ratio of one for the output transmission gates. For the RF2R2WS_X1M cell, the transistor size is set to
U
the largest single finger transmission gate size. For other drive strengths, the transistor sizes are scaled
accordingly.
ize the n-channel transistor of the inverters that drives net ‘rbl1_int’ and ‘rbl2_int’ the same as the output
S
transmission gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
et the feedback inverter to minimum size. Set the three high p-channel transistor and three high n-channel
S
transistor feedback stack to about one-third larger than minimum size.
114
ARM Confidential
ize the input inverters and transmission gates as a pair using a stage effort of four. Use a beta ratio of one for
S
the input transmission gate. Size the n-channel transistor of the input inverters the same as the input
transmission gate size. Size the p-channel transistor using the inverter ‘M’ beta ratio.
he input inverters and transmission gates can not be folded. If a stage effort of four results in these devices
T
being more than finger, they need to be downsized to a single finger size.
Size the WWL1, WWL2, RWL1, and RWL2 inverters using a stage effort of two and the inverter ‘M’ beta ratio.
● NTENNA
A
● FILL
● FILLCAP
● FILLTIE
● ENDCAPTIE
The only layout finishing cells that have schematics and symbols are the following.
A
● NTENNA
● FILLCAP
19.1.2Cell Structure
Figure 19-1 shows the schematic of an ANTENNA cell.
115
ARM Confidential
19.1.3Cell Sizing
he sizing of this cell is different from all of the previous cells. ANTENNA cells do not have transistor sizes;
T
instead they have diode area and perimeter values. When the layout is complete, the diode area and perimeter
values must be measured and added to the schematic.
he perimeter value is the perimeter of the n-type diffusion. It is not the perimeter of the cell. It is usually
T
expressed in units of microns. For example, if the n-type diffusion has a length of 0.22μand a widthof 0.25μ,
then the perimeter value is 0.94μ (2 * length + 2 * width).
he area value is the area of the n-type diffusion. It is not the area of the cell. It can be expressed in units of
T
microns, picometers, or femtometers. Using the sizes from the example above, the area value is 0.000000055μ,
0.055p, or 55f.
19.2.2Cell Structure
Figure 19-2 shows the schematic of a FILLCAP cell.
19.2.3Cell Sizing
or FILLCAP cells, simply set the transistor width and length equal to the sizes in layout. Use the ‘no_conn’
F
symbol to tie off the VPW net.
There are five basic types of ATK cells as shown in Table 20-1.
Cell Type Cell Topologies
116
ARM Confidential
Full Adders ADDFCIN, ADDFH
Booth Encoders BENC
Booth Muxes BMXIT, BMXT
Carry Generators CGENCIN, CGENCON, CGENI, CGEN
Compressors CMPR42
20.1.1ADDFCIN
20.1.1.1 Cell Usage
ADDFCIN cells are adder cells with an inverted carry input.
117
ARM Confidential
0.1.1.3
2 Cell Sizing
The output stage of an ADDFCIN cell is an inverter. Size the output inverters just like a single-stage inverter. For
example, an ADDFCIN_X1M cell has output inverters with the same sizes as INV_X1M. Now that the output
inverters have been sized, use the stick diagram to determine the lengths of the input wires, the internal wires,
and the output wires.
he eight transmission gates can not be folded. Only the two output inverters can be folded. All eight
T
transmission gates should be sized the same. They should all be set to the largest single finger transmission
gate size.
he p-channel size of the five input inverters should be set equal to the largest single finger p-channel transistor
T
size. The n-channel transistor sizes need to be determined by simulation. The inverters driving ‘na’ and ‘ba’
should be sized the same as a starting point. Also, the inverters driving ‘ci’ and ‘cinb’ should be sized the same
as a starting point. The inverter driving ‘nb’ should be sized the same as the inverter driving ‘ci’ as a starting
point.
20.1.2ADDFH
20.1.2.1 Cell Usage
DDFH cells are high speed adder cells. They are similar to the ADDFCIN cells except that these cells have a
A
non-inverting carry input.
118
ARM Confidential
Figure 20-2 ADDFH Schematic
119
ARM Confidential
Figure 20-3 BENC Schematic
120
ARM Confidential
Figure 20-4 BENC High Drive Strength Schematic
0.2.1.3
2 Cell Sizing
The output stage of a BENC cell is an inverter. Size the output inverters just like a single-stage inverter. For
example, a BENC_X2M cell has output inverters with the same sizes as INV_X2M. Now that the output inverters
have been sized, use the stick diagram to determine the lengths of the input wires, the internal wires, and the
output wires.
oth AOI21 gates should be sized the same. These gates can not be folded. For the smaller drive strengths, use
B
a stage effort of four. When a stage effort of four results in folded gates, use a higher stage effort up to a stage
effort of 5.5 to maintain a single fold. When a stage effort of 5.5 results in folded gates, the cell topology needs
to be modified as shown in Figure 20-4.
hen using the schematic shown in Figure 20-4, size the inverters driving nets ‘a’ and ‘s’ using a stage effort of
W
four. Use a stage effort of four to size the OAI21 gates. When a stage effort of four results in folded OAI21 gates,
use a higher stage effort to maintain a single fold.
In either the AOI21 or OAI21 case, the beta ratio needs to be determined by simulation.
se a stage effort of four to size the inverter that drives net ‘bm0’ and the transmission gate that it drives. The
U
inverter that drives net ‘nm0’ and the transmission gate that it drives should be sized the same as the other
inverter and transmission gate. The beta ratios of the inverters need to be determined by simulation. These
inverters and transmission gates can not be folded. Increase the stage effort to 5.5 before adding an inverter to
the path as shown in Figure 20-4. The n-channel transistor of the inverter that drives output ‘X2’ can be changed
to improve the delay.
he inverter driven by input ‘M1’ should be sized using a stage effort of three. This stage effort is used because
T
although it is a “one-zero fork”, it is also used to drive the AOI21 or OAI21 gate. The beta ratio of this inverter
needs to be determined by simulation.
he inverter driven by input ‘M2’ should be sized using a stage effort of four. The beta ratio of this inverter needs
T
to be determined by simulation.
20.3.1BMXIT
20.3.1.1 Cell Usage
BMXIT cells are inverting radix-4 booth mux cells. They are used in conjunction with booth encoders.
121
ARM Confidential
Figure 20-5 BMXIT Schematic
0.3.1.3
2 Cell Sizing
The output stage of a BMXIT cell is an inverter. Initially, size the output inverter just like a single-stage inverter.
For example, a BMXIT_X2M cell has an output inverter with the same sizes as INV_X2M. The p-channel or
n-channel transistor size can be changed later if it improves the cell timing. Now that the output inverters have
been sized, use the stick diagram to determine the lengths of the input wires, the internal wires, and the output
wire.
he inverter – transmission gate – transmission gate triplet should be sized as a set using a stage effort of four.
T
The inverters driven by inputs ‘AN’ and ‘SN’ should be sized the same. The beta ratio of these inverters needs to
be determined by simulation. Also, all six transmission gates should be sized the same. Sometimes the two
transmission gates closest to the outputs will need to be downsized due to the layout. These inverters and
transmission gates can not be folded. When a stage effort of four results in folded gates, use a higher stage
effort to maintain a single fold.
se a stage effort of two to size the inverters that are driven by inputs ‘D0’, ‘D1’, and ‘X2’. The beta ratio of these
U
inverters needs to be determined by simulation.
122
ARM Confidential
20.3.2 BMXT
20.3.2.1 Cell Usage
BMXT cells are non-inverting radix-4 booth mux cells. They are used in conjunction with booth encoders.
0.3.2.3
2 Cell Sizing
The output stage of a BMXT cell is an inverter. Initially, size the output inverter just like a single-stage inverter.
For example, a BMXT_X2M cell has an output inverter with the same sizes as INV_X2M. The p-channel or
n-channel transistor size can be changed later if it improves the cell timing. Now that the output inverters have
been sized, use the stick diagram to determine the lengths of the input wires, the internal wires, and the output
wire.
123
ARM Confidential
he inverter – transmission gate pairs that drive net ‘npp’ should be sized as a set using a stage effort of four.
T
The inverters that drive nets ‘nint0’ and ‘nint1’ should be sized the same using the inverter ‘M’ beta ratio. Also,
the two transmission gates that drive net ‘npp’ should be sized the same. These inverters and transmission
gates can not be folded. When a stage effort of four results in folded gates, use a higher stage effort to maintain
a single fold.
he four transmission gates closest to the inputs should have the same sizes as the other two transmission
T
gates. The beta ratio of the inverters driven by inputs ‘AN’ and ‘SN’ need to be determined by simulation.
Generally, this beta ratio is greater than the ‘M’ beta ratio.
se a stage effort of two to size the inverters that are driven by inputs ‘D0’, ‘D1’, and ‘X2’. The beta ratio of these
U
inverters needs to be determined by simulation.
20.4.1CGENCIN
20.4.1.1 Cell Usage
CGENCIN cells are carry generator cells with an inverted carry input.
124
ARM Confidential
Figure 20-7 CGENCIN Schematic
Folding summary (folding is not allowed on any device unless explicitly stated here):
1. Folding allowed on output transmission gates.
2. Folding allowed on inverters driven by CIN and driven by “nb”.
Sizing constraints:
1. Four non-output transmission gates are sized identically to each other. Maintain a beta ratio of at least 1.
2. Inverters driven by B, A, and “na” may be sized independently, maintaining a beta ratio of 1 or higher.
3. Inverters driven by CIN and “nb” must be sized identically, in order to maintain similar drive
characteristics for the two possible output paths.
4. The nfet or pfet of any inverter driving the input of a transmission gate cannot be smaller than the nfet or
pfet of the receiving transmission gate.
20.4.2CGENCON
20.4.2.1 Cell Usage
CGENCON cells are carry generator cells with an inverted carry output.
125
ARM Confidential
Figure 20-8 shows the schematic of a CGENCON cell.
0.4.2.3
2 Cell Sizing
Size the CGENCON cell the same as the CGENCIN cell. The only topology difference is that this cell does not
have an inverter driven by net ‘nb’.
20.4.3CGENI
20.4.3.1 Cell Usage
GENI cells are carry generator cells with an inverted carry output. They have the same function as the
C
CGENCON cells, but these cells has a higher density and fewer transistors.
126
ARM Confidential
Figure 20-9 CGENI Schematic
0.4.3.3
2 Cell Sizing
The CGENI cell is very easy to size, since this cell is a single-stage cell. All of the p-channel transistors should be
the same size and all of the n-channel transistors should be the same size. The transistor sizes should be sized
the same as the AOI22 cell. Sometimes the layout will not support the same sizes as the AOI22 cell. In that
case, downsize both the p-channel and n-channel transistors to maintain the proper beta ratio.
20.4.4CGEN
20.4.4.1 Cell Usage
CGEN cells are carry generator cells.
0.4.4.3
2 Cell Sizing
The output stage of a CGEN cell is an inverter. Size the output inverter just like a single-stage inverter. For
example, a CGEN_X2M cell has an output inverter with the same sizes as INV_X2M. Now that the output inverter
has been sized, use the stick diagram to determine the lengths of the input wires, the internal wires, and the
output wire.
ize the remaining transistors (the input stage) using a stage effort of four. Use the same beta ratio as the CGENI
S
cell. However, these transistors can not be folded. When a stage effort of four results in folded transistors, use a
higher stage effort to maintain a single fold.
127
ARM Confidential
20.5 Compressors
CMPR42 is the only cell topology that was previously a part of the ATK library.
20.5.1CMPR42
20.5.1.1 Cell Usage
CMPR42 cells are 4-2 compressor cells.
0.5.1.2
2 Cell Structure
There are two cell structures for CMPR42 cells depending on the number of tracks, the process, and whether or
not Metal 2 can be used for wiring within the cell.
If the number of tracks is small (roughly less than twelve tracks) or if Metal 2 can not be used in the cell, then the
CMPR42 cell structure is simply two ADDF cells tied back-to-back. In the sc library, this cell is called
“CMPR42_ALT”.
n the other hand, if there are many tracks and Metal 2 can be used in the cell, then the structure shown in
O
Figure 20-11 can be used.
or 32nm and newer process technologies, the CMPR42_ALT topology is used in all cases. The CMPR42
F
topology shown in Figure 20-11 is not used because it creates large glitches at small process technologies.
128
ARM Confidential
Figure 20-11 CMPR42 Schematic
here are many other possible cell topologies for the CMPR42 cell. These are just a couple of ways that have
T
been used in previous libraries. Other possibilities include using NAND2 and OAI21 structures to form the four
input XNOR instead of using transmission gates.
0.5.1.3
2 Cell Sizing
The sizing depends on the topology used. If the topology is ADDF based, simply use the ADDF sizing
techniques to size the CMPR42 cell. If the topology is the one shown in Figure 20-11, size the cell initially using
the techniques of Logical Effort and then simulate and retune to find the minimum of the maximum delay from
each input to each output.
129
ARM Confidential
21 LVS GUIDELINES
21.1.4Transistor Folding
urrent ARM schematics, drawn using Cadence tools, may not always have the ability to represent the exact
C
layout configuration with respect to device folding. Netlists generated from Cadence Virtuoso will usually be
hierarchical in nature and may also share the same inability to represent device fold configuration in some cases.
DA LVS tools generally have the ability to recognize and merge folded devices, and can perform adequate
E
comparison for internal development. However, some customers use LVS flows that reject the ability to
recognize and merge folded devices. Thus, they require that ARM provide netlists that reflect the exact layout
configuration with respect to device folding.
his is accomplished by (1) Verifying ARM hierarchical schematic vs. layout as usual, with device merging
T
enabled, as proof that layout conforms to the “golden” hierarchical schematic. (2) Generating a flattened
transistor-level netlist directly from the layout by using an LVS tool such as Calibre or Hercules. (3) Verifying that
the flattened transistor netlist matches the layout by using an LVS tool.
In the case of cells that do not contain devices but do contain tap structures that need to be modeled with
*.CONNECT statements, flattened netlist generation cannot be accomplished with current LVS tools. Use the
Cadence-generated netlist, instead. These cells will be covered in the cell-specific guidelines, below.
130
ARM Confidential
21.3 Cell-Specific Guidelines
nly cells that require special treatment during cell-level LVS will be addressed in this section. The reader may
O
assume that all other cell families can be verified without special accommodation.
21.3.1.2 FILL
urrently, neither Calibre nor Hercules LVS tools have the ability to perform cell-level LVS compare on this
C
topology, due to its lack of semiconductor devices. However, note that the CDL netlist should have the following
format in order to support block-level LVS:
subckt FILL VDD VNW VPW VSS
.
.ends FILL
21.3.1.3 FILLTIE
urrently, neither Calibre nor Hercules LVS tools have the ability to perform cell-level LVS compare on this
C
topology, due to its lack of semiconductor devices. However, note that the CDL netlist should have the following
format in order to support block-level LVS:
subckt FILLTIE VDD VNW VPW VSS
.
*.CONNECT VNW VDD
*.CONNECT VPW VSS
.ends FILLTIE
21.3.1.4 FILLTIESB
urrently, neither Calibre nor Hercules LVS tools have the ability to perform cell-level LVS compare on this
C
topology, due to its lack of semiconductor devices. However, note that the CDL netlist should have the following
format in order to support block-level LVS:
subckt FILLTIESB VDD VNW VPW VSS
.
*.CONNECT VSB VSS
.ends FILLTIESB
22 ELECTROMIGRATION
22.1 Definition
lectromigration is also known as metal migration or more commonly, EM. It is the movement of metal ions in a
E
conductor due to the influence of an electric field and the collision of electrons with atoms that leads to
momentum transfer. Metal atoms gather in the direction of current flow which causes the conductor to shrink in
width or even break over time. Along with metal, contacts and vias also become degraded due to
electromigration.
131
ARM Confidential
22.2 Causes
lectromigration is caused by heat and current density. High temperatures increase the amount of electron
E
scattering against the atoms of the conductor. High current density increases the number of electrons that are
scattering.
here are typically three current densities that can cause electromigration failures: peak current, average current,
T
and rms (root mean squared) current. Process design rules have specific equations for the maximum allowed
values of these currents for metal, contacts, and vias.
22.4 Prevention
he best way to prevent EM from ruining circuits is to follow the guidelines that are given for each process. The
T
largest cells might need to have metal widths that are larger than minimum and have more than one contact or
via.
22.5 Pre-Analysis
efore EM analysis is run, the inverters need to be layed out a couple of different ways: C-shaped outputs and
B
H-shaped outputs. After they have been layed out, RC timing simulations need to be run using SPICE to
determine which layout type results in better performance for each beta ratio and drive strength. The H-shaped
output should be better for low drive strength inverters and the C-shaped output should be better for high drive
strength inverters. The point of this analysis is to determine the point where C-shaped outputs become preferred
over H-shaped outputs.
22.6 Analysis
he best way to determine which cells need to have larger metal widths and/or more contacts and vias is to run
T
SPICE simulations. The first simulation is needed to determine the output load. The other simulation is needed
to measure the current. The current values are then compared to the EM design rules for the process. If either
the peak, average, or rms current is greater than the values specified in the design rules, the metal width needs
to increase and/or there needs to be more contacts or vias. If the metal width needs to increase, the C-shape
metal of a C-shaped output needs to increase or the “–“ shaped metal of an H-shaped output needs to increase.
The width of the metal fingers needs to be set so that the fingers can drive X2 DC and RMS current.
This analysis applies to clock or signal nets only. It does not apply to supply nets.
22.6.1Schematic
he schematic that is used for analyzing EM for inverters is shown in Figure 21-1. The voltage sources ‘Vp’ and
T
‘Vn’ are used only to measure current and are set to zero volts.
132
ARM Confidential
Figure 21-1 EM Analysis Schematic for Inverters
he schematic that is used for analyzing EM for nand2 cells is shown in Figure 21-2. The voltage sources ‘Vp’
T
and ‘Vn’ are used only to measure current and are set to zero volts.
he ‘mult =4’ blocks are ‘imult’ symbols in the armPrimitives library. They are used to generate a fanout of four
T
for the first three inverters. In Figure 20-1, ‘wp_inv’ and ‘wn_inv’ are the p-channel and n-channel transistor sizes
of the inverter that is being analyzed for EM. In Figure 20-2, ‘wp_nand2’ and ‘wn_nand2’ are the p-channel and
n-channel transistor sizes of the nand2 that is being analyzed for EM. Also in Figure 20-2, ‘wp_inv’ and ‘wn_inv’
have a total device width equal to the sum of ‘wp_nand2’ and ‘wn_nand2’ and they have a beta ratio equal to the
‘m’ or ‘x’ beta ratio. ‘load’ is a parameter that is swept in the first SPICE simulation. In the second SPICE
simulation, ‘load’ is set to the value determined in the first simulation.
ther high drive cells, such as nor cells, might need to be analyzed for EM depending on the results of the EM
O
analysis for inverters and nand cells. If the largest nand cells need to have larger than minimum width metal for
EM, then the largest nor cells need to be analyzed.
22.6.2Load Simulation
he first SPICE simulation determines the output capacitance that is used in the second simulation. The details
T
of the simulation are given below with sample library parameters in parenthesis.
● slow transistor models (SS)
● high temperature (125° C)
133
ARM Confidential
● 9
0% of nominal Vdd of the highest voltage domain supported by the product operating condition
definition (1.08 V)
● t he lowest threshold voltage that the library will support (NVT because LVT is not available in the sample
library)
● square wave input: rises at 0 ns, falls at 1 ns
● 2 ns simulation time
● ‘Vp’ and ‘Vn’ are set to zero volts
he ‘load’ parameter is swept until the edge rate of the slower of the rising or falling edge of the ‘out’ signal is
T
200 ps, which is 20% of the cycle time. Note that the clock cycle time for this example is 1 ns. We simulate a
rising edge in one clock cycle and a falling edge in the other clock cycle because this models the worst case for
a 100% activity factor. The edge rates are measured ten percent of Vdd to ninety percent of Vdd (0.09 V to 0.81
V for the sample library). This ‘load’ value is then used in the second SPICE simulation.
22.6.3Current Simulation
he second SPICE simulation determines the values of the peak, average, and rms currents. The details of the
T
simulation are given below with the sample library parameters in parenthesis.
● fast transistor models (FF)
● temperature determined by EM guidelines for each process (110° C for the sample library)
● n
ominal Vdd of the highest voltage domain supported by the product operating condition definition (1.2
V for TSMC 65G)
● t he lowest threshold voltage that the library will support (NVT because LVT is not available in the sample
library)
● square wave input: rises at 0 ns, falls at 1 ns
● 2 ns simulation time
● ‘Vp’ and ‘Vn’ are set to zero volts
● ‘load’ is set equal to the value determined in the first SPICE simulation
2.6.3.1
2 Average Current
The average current is measured using the following two lines in SPICE.
ompare the larger of ‘avgip’ and ‘avgin’ to the average current values specified in the Design Rules for the
C
process. The average current limit is a unidirectional current limit that applies to Metal 1, Via 1, and contacts. It
can also apply to Metal 2 when used in standard cells.
2.6.3.2
2 Peak Current
The peak current is measured using the following two lines in SPICE.
134
ARM Confidential
ompare the larger of ‘maxip’ and ‘maxin’ to the average current values specified in the Design Rules for the
C
process. It is rare to have EM violations due to peak current. The peak current limit is a unidirectional current
limit that applies to Metal 1. It can also apply to Metal 2 when used in standard cells.
2.6.3.3
2 RMS Current
The rms current is measured using the following line in SPICE.
ompare ‘rmsi’ to the rms current values specified in the Design Rules for the process. Use the temperature rise
C
specified by the customer for Joule heating. The rms current limit is a bidirectional current limit that applies to all
metal layers.
ther fabs and processes will have their own set of EM guidelines. It is essential to read the EM guidelines for
O
each process carefully, as some of the terminology will vary depending on the process.
2.7.2.1
2 Average Current
The average current is measured using the following two lines in SPICE.
or Metal 1 only, compare the larger of ‘avgip’ and ‘avgin’ to the average current values specified in the table in
F
the library design document. Table 21-1 shows the minimum values for ‘w’, the width of the metal line for the
sample library.
135
ARM Confidential
If the current value is larger in the table in the TSMC document than the value measured in SPICE for a cell, then
use the minimum Metal 1 width for that cell. If the current value is smaller in the table in the TSMC document
than the value measured in SPICE for a cell, increase the ‘w’ value in 0.01 um increments until the value
measured in SPICE is smaller than the value in the table in the TSMC document. The increased ‘w’ value is the
size that the Metal 1 line must be increased to for that particular cell. Metal 2 and up do not need to follow the
average current guidelines unless they are used in standard cells.
or contacts, compare the larger of ‘avgip’ and ‘avgin’ to the average current values specified in the table in
F
Section 9.1.1.3 “Maximum DC Current for Contacts and Vias (Tj = 110° C)” of the TSMC document to findthe
number of contacts per finger. Divide the larger of ‘avgip’ and ‘avgin’ by 0.296 mA (the value in the table for
TSMC 65G) and round up. For instance, if ‘avgip’ is 0.24 mA and ‘avgin’ is 0.22 mA, divide 0.24 by 0.296.
Round this number up to one; only one contact per finger is necessary. As another example, if ‘avgip’ is 0.3 mA
and ‘avgin’ is 0.4 mA, divide 0.4 by 0.296. Round this number up to two; two contacts per finger are necessary
for this example.
or vias, compare the larger of ‘avgip’ and ‘avgin’ to the average current values specified in the table in Section
F
9.1.1.3 “Maximum DC Current for Contacts and Vias (Tj = 110° C)” of the TSMC document to find the numberof
Via 1’s needed for supply. Divide the larger of ‘avgip’ and ‘avgin’ by 0.158 mA (the value in the table for TSMC
65G) and round up. For instance, if ‘avgip’ is 0.12 mA and ‘avgin’ is 0.11 mA, divide 0.12 by 0.158. Round this
number up to one; only one Via 1 for supply is necessary. As another example, if ‘avgip’ is 0.15 mA and ‘avgin’
is 0.2 mA, divide 0.2 by 0.158. Round this number up to two; two Via 1’s for supply are necessary for this
example.
2.7.2.2
2 Peak Current
The peak current is measured using the following two lines in SPICE.
In the TSMC 65G Design Rules document, two subsections describe measuring the peak current: Section 9.1.3.1
“Pulsed Signal Terminology” and Section 9.1.3.4 “Peak Current”. Section 9.1.3.1 gives definitions of peak
current, period (tau), and duration (tD) . This sectionalso contains waveforms that show how to measure these
values. Section 9.1.3.4 gives a definition of peak current in terms of a peak DC current, the period, and duration.
This section also contains a table of peak DC current for each metal layer.
ince the TSMC 65G EM rules are in terms of peak DC current and not peak current, the peak current that is
S
measured in SPICE (‘maxip’ and ‘maxin’) must be converted to an equivalent peak DC current. The following
SPICE commands show how to do this conversion.
.param tau=2n
.measure tran current_widthp trig I1(vp) Val = 'maxip*0.5' rise=1 targ I1(vp) Val = 'maxip*0.5' fall=1
.measure tran current_widthn trig I1(vn) Val = 'maxin*0.5' rise=1 targ I1(vn) Val = 'maxin*0.5' fall=1
.measure duty_ratiop param='current_widthp/tau'
.measure duty_ration param='current_widthn/tau'
.measure peakdcip param='maxip*sqrt(duty_ratiop)'
.measure peakdcin param='maxin*sqrt(duty_ration)'
136
ARM Confidential
he first line sets the parameter of tau (the period) to 2 ns. The next two lines measure the duration (tD) of the
T
current waveform through the p-channel and n-channel transistors of the output, respectively. The following two
lines divide the duration (tD) by the period (tau). This value is referred to as ‘r’ or the ‘duty ratio’ in the TSMC 65G
EM rules. The last two lines find the peak DC current for the p-channel and n-channel transistors respectively.
These calculations are based on the equation Ipeak equals Ipeak_DCdivided by the square root of r,found in Section
9.1.3.4 in the TSMC 65G EM rules.
If the value for Ipeak_DCin the table in Section9.1.3.4 is larger than the maximum of ‘peakdcip’ and ‘peakdcin’, then
the peak current EM rules are not violated. If the maximum of ‘peakdcip’ and ‘peakdcin’ is larger than the value
for Ipeak_DC, increase the ‘w’ value in 0.01 um incrementsuntil the value measured in SPICE is smaller than the
value in the table in the TSMC document. The increased ‘w’ value is the size that the metal line must be
increased to for that particular cell.
he TSMC 65G Design Rules document states that peak current is not an issue for contacts and vias. Therefore,
T
the number of signal Via 1’s is always one.
2.7.2.3
2 RMS Current
The rms current is measured using the following line in SPICE.
In the TSMC 65G Design Rules document, rms current is discussed in Section 9.1.3.3 “Root-Mean-Square
Current”. This section gives a definition of rms current and contains tables of current for each metal layer.
ompare ‘rmsi’ to the rms current values specified in the tables. Use 10° C as the temperature rise due to Joule
C
heating, referred to as ΔT in the TSMC 65G design rules document.
If the value for Irmsin the table in Section 9.1.3.3.1is larger than ‘rmsi’, then the rms current EM rules are not
violated. If ‘rmsi’ is larger than the value for Irms, increase the ‘w’ value in 0.01 um incrementsuntil the value
measured in SPICE is smaller than the value in the table in the TSMC document. The increased ‘w’ value is the
size that the metal line must be increased to for that particular cell.
he TSMC 65G Design Rules document states that rms current is not an issue for contacts and vias. Therefore,
T
the number of signal Via 1’s is always one unless more are required by other design rules.
s a practical matter, when running EM analysis, start with the largest inverter and go down to the next smaller
A
inverter until you find the one that can have minimum width metal and single contacts and vias. All of the cells
that are smaller will not have EM problems. Any cell that uses this size of inverter on its output stage should
follow the EM characteristics determined for the stand-alone inverter. If the smallest stand-alone inverter which
needed to be upsized is smaller than the highest drive versions of other logical functions in the library, then the
EM analysis described above needs to be run for these topologies as well. Start with the logical function that
137
ARM Confidential
as the lowest logical effort for the output stage. There is no need to run EM analysis on any topology whose
h
output stage’s logical effort is higher than the logical effort of a cell that passes EM with no upsizing.
23 CONCLUSION
esigning high quality libraries can be achieved by understanding how the cells are used, which topologies are
D
optimal, and which device sizes give the best power, performance, and area.
138
ARM Confidential