Lefdefref
Lefdefref
Lefdefref
Lecture 4:
Standard Cell Libraries
Semester A, 2016-17
Lecturer: Dr. Adam Teman
27 November 2016
Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited;
however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed,
please feel free to email adam.teman@biu.ac.il and I will address this as soon as possible.
Motivation
• A standard cell library is a collection of well defined and appropriately
characterized logic gates that can be used to implement a digital design.
• Similar to LEGO, standard cells must meet predefined specifications to
be flawlessly manipulated by synthesis, place, and route algorithms.
• Therefore, a standard cell library is
delivered with a collection of files
that provide all the information needed
by the various EDA tools.
2
Example
• Inverter standard
cell layout
• Pay attention to:
• Cell height
• Cell width
• Voltage rails
• Well definition
• Pin Placement
• Metal layers
• PR Boundary
http://www.csee.umbc.edu/~tinoosh/cmpe641/
Ideally, Standard Cells should be routed entirely in M1 !
3
1 2 5
3 4
Motivation Library Other
LEF LIB
Contents Contents
6
Clock Cells
• General standard cells are optimized for speed.
• That doesn’t mean they’re balanced… tp,LH tp,HL
min tpd min tp,LH tp,HL
• This isn’t good for clock nets… 2
• Unbalanced rising/falling delays will result in unwanted skew.
• Special “clock cells” are designed with balanced rising/falling delays to
minimize skew.
• These cells are usually less optimal for data and so should not be used.
• In general, only buffers/inverters should be used on clock nets
• But sometimes, we need gating logic.
• Special cells, such as integrated clock gates,
provide logic for the clock networks.
7
Sequentials
• Flip Flops and Latches, including
• Positive/Negative Edge Triggered
• Synchronous/Asynchronous Reset/Set
• Q/QB Outputs
• Enable
• Scan
• etc., etc.
8
Level Shifters
• Level shifter cells are placed between voltage domains to pass
signals from one voltage to another.
VDDH
OUTH
• LH shifter
• Needs 2 voltages VSS
VDDL
9
Filler and Tap Cells
• Filler cells Must be inserted in empty areas in rows
• Ensure well and diffusion mask continuity
• Ensure density rules on bottom layers
• Provide dummy poly for scaled technologies
• Sometimes, special cells are needed at the
boundaries of rows. These are known as “End Caps”
• Other fillers may include MOSCAPs between VDD
and GND for voltage stability. These are called “DeCAP cells”
11
My favorite word… ABSTRACTION!
• So, what is a cell?
• I guess that the detailed layout is sufficient to know (guess) anything and
everything about a standard cell.
• Or it would be easier, if we got the whole Open Access database of the cell…
• But do we really need to know everything?
• For example, does logic simulation need to know if your inverter is CMOS or
Pseudo-NMOS?
• And does a logic synthesizer need to know what type of transistors you used?
• No!
• To make life (and calculations) simpler, we will abstract away this info.
• Each tool will get only the data it really needs.
12
What files are in a standard cell library?
• Behavioral Views: Behavioral (.v)
• Verilog (or Vital) description used for simulation, logic equivalence.
• Physical Views: Abstract (.lef)
• Layout of the cells (GDSII format) for DRC, LVS, Custom Layout.
• Abstract of the cells (LEF format) for P&R, RC extraction. Layout (.gds)
• Transistor Level:
• Spice/Spectre netlist for LVS, transistor-level simulation. Spice (.spi, .cdl)
• Often provided both with parasitics (post-layout) and without.
• Timing/Power:
• Liberty files with characterization of timing and power for STA. Timing (.lib)
13
1 2 5
3 4
Motivation Library Other
LEF LIB
Contents Contents
15
Library Exchange Format (LEF)
16
Technology LEF
• Technology LEF Files contain (simplified) information about
the technology for use by the placer and router:
• Layers and layer types.
• Sites (x and y grids of the library) – i.e., double height cells!
• Via definitions
LAYER MET1
• Design Rules TYPE ROUTING ;
PITCH 3.5 ;
• Parasitic and Antenna data. WIDTH 1.2 ;
SPACING 1.4 ;
DIRECTION HORIZONTAL ;
RESISTANCE RPERSQ .7E-01 ;
CAPACITANCE CPERSQDIST .46E-04 ;
END MET1
LAYER VIA
TYPE CUT ;
END VIA
17
VDD
Technology LEF W1
horizontal M1 wires.
• The more tracks, the wider the
transistors, the faster the cells. W1
19
1 2 5
3 4
Motivation Library Other
LEF LIB
Contents Contents
Note that every .lib will provide timing/power/noise information for a single
corner, i.e., process, voltage, temperature, RCX, etc.
21
Liberty (.lib): General
library (nameoflibrary) {
• Timing data of standard cells is ... /* Library level simple and complex attributes */
• For example, operating conditions, /* timing group within the pin level */
timing(){
wire load models, look-up tables ... /* timing level simple attributes */ }
• Cell: ... /* additional timing groups */
24
Liberty (.lib): Timing Models
• Current Source Models (CCS, ECSM)
• Model a cell's nonlinear output
behavior as a current source
Courtesy: Cadence
• Driver model:
• Nonlinear current source
• Receiver model:
• Changing capacitance
• Requires many more values
• Requires a bit more calculation
• Essential under 130nm
• Within 2% of SPICE.
Courtesy: Synopsys
25
Liberty (.lib): Timing Models
• NLDM vs CCS/ECSM
Courtesy:
26 Synopsys
Liberty (.lib): Wire Load Models
• How do you estimate the parasitics (RC) of a net
before placement and routing?
• Wire Load Models estimate the parasitics based on the fanout of a net.
library (myLib) {
wire_load(“WLM1”)
resistance: 0.0006 ; // R per unit length
capacitance: 0.0001 ; // C per unit length
area : 0.1 ; // Area per unit length
slope : 1.5 ; // Used for linear extrapolation
fanout_length(1, 0.002) ; // for fo=1, Lwire=0.002
fanout_length(2, 0.006) ; // for fo=2, Lwire=0.006
fanout_length(3, 0.009) ; // for fo=3, Lwire=0.009
fanout_length(4, 0.015) ; // for fo=4, Lwire=0.015
fanout_length(5, 0.020) ; // for fo=5, Lwire=0.020
fanout_length(6, 0.028) ; // for fo=6, Lwire=0.028
}
} /* end of library */
29
Documentation and Datasheets
• So, are we just supposed to look through and see what the vendor
decided to provide us with?
• Yes!
• However they probably supplied some PDFs describing the library.
• And usually there are data sheets with numbers for each corner.
30 www.vlsi.ce.titech.ac.jp/kunieda/lecture
And what about other IPs?
• All IPs will be provided as a library, including most of the views a
standard cell library will have.
• These are required for integration of the hard macros in the standard
design flow (simulation, synthesis, P&R, verification, etc.)
• Memories (SRAMs) are a special case, as they usually come with a
memory compiler that generates the particular memory cut the
designer requires.
31
Main References
• IDESA
• Synopsys
• Cadence
• Mississippi State
• Arizona State
32