You are on page 1of 28

INTRODUCTION TO ASIC - Part-1

Evolution of VLSI:

What is an ASIC? Application-specific integrated circuit Customized for a particular use customized for a particular use, rather than intended for generalpurpose use For example, a chip designed solely to run a cell phone is an ASIC. [Not ASICs: Generalpurpose processors, memory chips and other standard components] Dedicated to single function, or limited range of functions. A typical ASIC is a circuit, where functions are designed by the customer and layout and the fabrication is done by the silicon vendor. Designers of digital ASICs use a hardware description language (HDL), such as Verilog or VHDL, to describe the functionality of ASICs. The maximum complexity (and hence functionality) possible in an ASIC has grown from 5,000 gates to over 100 million

Types of ASIC: 1. Full Custom ASICs 2. Standard Cell Based ASICs (CBIC) 3. Gate Array Based ASICs

3. a. Channeled Gate Array 3. b. Channel-less Gate Array 3. c. Embedded Gate Array 4. Programmable Logic Devices 4. a. Field Programmable Gate Arrays 4. b. Complex PLD (CPLD)

Full Custom ASIC: In a full-custom ASIC, an engineer designs some or all of the logic cells, circuits, or layout specifically for one ASIC. This means the designer abandons the approach of using pretested and pre-characterized cells for all or part of that design. It makes sense to take this approach only if there are no suitable existing cell libraries available that can be used for the entire design. This might be because existing cell libraries are not fast enough, or the logic cells are not small enough or consume too much power. Hand drawn geometry and all layers are customized. Can be used for both, Digital and analog. High density, High performance & Long design time.

Standard Cell Based ASIC (CBIC):

A cell-based ASIC (cell-based IC, or CBIC uses pre-designed logic cells (AND gates, OR gates, multiplexers, and flip-flops, for example) known as standard cells. The advantage of CBICs is that designers save time, money, and reduce risk by using a predesigned, Pre-tested, and pre-characterized standard-cell library Standard cells organized in rows (and, or, flip-flops, etc.) Cells made as full custom by vendor (not user). Medium- high density, Medium-high performance & Reasonable design time. All layers are customized.

Standard Cell:

Cells are configured in rows and have constant height and variable width. Each cell is optimized for an efficient implementation. Gate Array: A gate array chip contains prefabricated adjacent rows of PMOS and NMOS transistors. The gate array is configured by the interconnect structure. Predefined transistors connected via metal Only metal layers customized Fixed array sizes (normally 5-10 different)

Digital cells in library (and, or, flip-flops, etc.) Simulation at gate level (digital) Medium density & Medium performance Reasonable design time

Channeled Gate Array:

Only the interconnect is customized. The interconnect uses spaces between rows of base cells

Channel-less Gate Array (Sea of Gates):

Only the interconnect is customized.

Cells are connected via unused transistors

Embedded Gate Array:

Only the interconnect is customized. Custom Blocks can be embedded.

BASIC STA Part-1


Timing Analysis: Timing analysis is necessary to calculate the designs system performance, describes the chips specification, accounts for chip pad loading, helps in achieving clock speed and above all of the reasons, determines if the chip works in two contrast places, like Sahara and Switzerland. Types of timing analysis: 1. Dynamic timing analysis (DTA) 2. Static timing analysis (STA) Dynamic Timing Analysis (Gate level Simulation): A series of vectors over a time are applied during a simulation run, simulation calculates the logic value and delays over that time. So, in that manner we check the designs functionality with time.

Static Timing Analysis: Static timing analysis is a method for determining if a circuit meets timing constraints without having to simulate. So, it validates the design for desired frequency of operation, without checking the functionality of the design.

Comparison of Analysis

Dynamic timing 1. 2. 3. 4. 5. 6. Requires exhaust set of vectors Checks for both functional and timing problems Requires more resources like run time, CPU memory, etc. Can work with any type of Logic either synchronous or asynchronous Slower as compared to STA. Easy to learn

Static timing 1. 2. 3. 4. 5. 6. Doesn't requires any set of vectors. Checks for timing only. Requires fewer resources than DTA. Restricted to synchronous part of the design only. Faster as compared to DTA. Difficult to learn

Why Static timing Analysis? 1. To analyze the timing relationships of a given circuit to verify that the circuit works at the specified frequency (verification). 2. 100 % path coverage is possible because no design specific pattern is required. 3. You cant achieve the clock speed without it. 4. All paths are assumed critical. 5. Process variation across die can be modeled. 6. Constraints and reports are concise and easy to interpret. 7. It can detect other serious problems like glitches, slow paths and clock skew. Note: This analysis is done to provide the engineer feedback in order to help modify the design and/or modify the constraints to improve the timing quality of the design.

Place of STA in the ASIC Flow

STA involves three main steps: 1. Design is broken down into sets of timing paths. 2. Delay of each path is calculated. 3. Path delays are checked to see if timing constraints have been met. But first some Basic STA concepts: Timing Paths:

Each path has a startpoint and an endpoint 1. Startpoints: Input ports (A, Q)

Clock pins of sequential devices (CLk) 2. Endpoints: Output ports (D, Z) Data input pins of sequential devices (D)

Basic Timing Paths Generally recognizes five types of default timing paths: 1. 2. 3. 4. Clock to setup Clock to pad Pad to pad Pad to set up

Clock to setup: A clock to setup path starts at flip flop clock inputs, propagates through the flip flop Q out put and any number of levels of combinational logic, and ends at non clock flip flop register inputs.

Clock to pad: It starts at a clock input of a flip-flop, propagates through the flip-flop Q output and any number of levels of combinational logic, and ends at an output pad.

Pad to Pad :

A pad to pad path starts at an input of the chip, propagates through one or more levels of combinational logic, and end at an output pad of the chip.

Pad to Setup: A pad to setup path starts at an input pad of chip and ends at flip flop input.

BASIC STA Part-2


Timing Violations:

Setup or Hold violation:

1. Leads to improper operation of the flip flop and the connected components, it can result in missed data or ignored actions. 2. The output of the flip flop goes into a state of metastability in the case of Setup/Hold violations.

Recovery and Removal Violations :

1. Violations of Preset and Clear signal with respect to the Clock.

Setup Time:

The time required for the input data to be stable before the triggering clock edge. So, Set-up check establishes that the path is fast enough for the desired clock frequency.

Hold Time:

The time required for the data to remain stable after the triggering clock edge. So, hold check ensures that the path is not too fast so that data is not passed through.

Why Setup & Hold? 1. Setup & Hold times are because of the intrinsic delays of the flip flop. Intrinsic delays are the actual delays of the transistors inside the cell. 2. Setup and Hold are the times required for charging the capacitances present inside in cell.

Delay of an Inverter:

t = Rp * C The delay is decided by the resistance of Pmos and the output capacitance. The product RC is called the TIME CONSTANT. This determines the delay of the cell.

When Vo = Logic 1 t = Rn * C The delay is decided by the resistance of Nmos and the output capacitance.

How to remove Setup & Hold violations:

To solve setup violation 1. By optimizing and restructuring the combinational logic between the flops of design. In big designs, we dont do this by ourselves, generally tool does this for us. And what are the ways that tool follows for the same? We'll discuss that in next post. 2. By using Tweak flops to offer less setup delay. Since, Tweak launch-flop have better slew at the clock pin and this makes CK->Q of launch flop faster, so that it helps in fixing setup violations. 3. By using Useful- skews.

To solve Hold Violations 1. By adding delay/buffer cell. Since the simple buffer offers less delay, so we use special Delay cells whose functionality remains same, i.e. Y=A, but with more delay. 2. By providing delay to the launch flop clock. 3. Where the hold time requirement is huge, we can use Lock-up Latches also. Few GOOGLIES for you: 1. What is negative setup? And where we use that? 2. In most of the design, generally memory block has very less time margin to meet setup or hold requirements. In that case how you'll be able to meet the timing? Note: For more faqs, keep visiting http://vlsifaqs.blogspot.com STA: Critical terms
1. Critical path: The path between an input and an output with the maximum delay. 2. Recovery time: It is the minimum time that an asynchronous control must be stable before

the clock active-edge transition.


3. Removal time: It is the minimum length of time that an asynchronous control must be

stable after the clock active-edge transition.

Jitter : Variation in period from clock source (PLL)

Insertion Delay

The delay between the clock root pin and clock sink pin of the flip flop

Glitch- A glitch is a short-lived fault in a system.

An electrical pulse of short duration that is usually the result of a fault or design error, particularly in a digital circuit

Input Delay:

Output Delay:

Single Cycle Paths:

By default, static timing tools assume all timing paths to be single cycle paths

There could be exceptions defined to the above behavior: 1. Multi-cycle paths 2. False paths

Multi-Cycle Paths:

Those paths that require more than one clock period for execution are called as multi-cycle paths. Its essential that multi-cycle paths in the design be identified both for synthesis and STA.

False Paths:

A path that can never be sensitized in the actual circuit These paths are those that are logically/functionally impossible The goal in static timing analysis is to do timing analysis on all true timing paths, these paths are excluded from timing analysis.

Combinational Loop:

Most STAs cant leave combinational loops in the design, because a race condition will occur.

GOOD ONE: If i am not defining the False or Multicycle paths or Combinational Loops or Input/Output Delay in my constraint file (.sdc). In that case, what can be the effects you will find in your reports? (Analyze this one by one.) Note: For more faqs, keep visiting http://vlsifaqs.blogspot.com

Clock skews (timing skew):

Clock signal in synchronous circuits arrives at different components at different times.

Clock skew = clock insertion delay of FF1 - clock insertion delay of FF2 Reasons for the Skew: 1. 2. 3. 4. 5. Wire-interconnect length Temperature variations Variation in intermediate devices Capacitive coupling Material imperfections

Two Types of Clock Skew: 1. Negative skew 2. Positive skew Positive skew:

Occurs when the clock reaches the receiving register later than it reaches the register sending data to the receiving register.

Negative skew:

Is the opposite:- the receiving register gets the clock earlier than the sending register.

Basic STA Part-3

Net and Cell Timing Arcs:

The actual path delay is the sum of net and cell delays along the timing path

Net/Interconnect Delay and Cell/Gate Delay:

Net/Interconnect Delay refers to the total time needed to charge or discharge all the parasitics of a given net. Total net parasitics are affected by 1. Net length 2. Net fanout

Cell/Gate delay refers to the total time needed to reach the signal from cell input the output Total cell delay affected by

1. Slew rate 2. Input Capacitance

Net Delay Calculation: Prior routing stage we use Wire Load Model to estimate the delay and after routing we use the real post routed delay information for static timing analysis. WLM is an estimation of delay, based on area and fanout. It is obsolete technology and after physical synthesis theres no use of it. It comes from your library or from a floorplanning tool. It is the method to initially estimate your delays and is usually overly pessimistic.

Cell Delay Calculation Prior to Routing, cell delays are calculated from tables in the technology library. The tables are commonly indexed by input transition versus total output loading For Example: As shown in below figure, if input transition is of 0 ns and the total output load is 0.4 fF, then the cell delay will be 6 ps.

Now you know how we do the pre-layout STA and from where we get the delay values. But can you compare it with post layout STA and why we do that? Here few things are mentioned, I think quite enough to start thinking. Later on, well discuss this in detail.

Clock Source latency and Network latency

So the Clock source latency is the delay from the oscillator to the clock pin of the chip, and the Clock network latency is the delay between the clock pin of the chip to the flop.

Slack Slack is generally defined as the difference between the Required Times (RT) and Arrival Times (AT) at an end point. Arrival time means actual value of time getting by tool from from level one to end of level Required arrival time (RT) is the time before which a signal must arrive to avoid a timing violation.

STEP1: Calculate timing level for each node STEP2: Calculate AT from level 1 to level n Assumptions:

1. 2. 3. 4. 5. 6.

Input arrival time of 1 Wire delay 0.2, cell delay 0.5 Blue colored numbers are showing levels. Green colored numbers are showing Arrival times. Red colored numbers are showing Required times. Purple colored numbers are showing respective Slacks.

Calculation of RT from level n to level 1 Assumptions: Output required time of 2.8 Gate delay 0.5, wire delay 0.5 Calculation of Slack Slack =RT AT

Rectification of Violations: There are so many methods and methodologies which are followed by the tools and the designers. Few of them are mentioned here. Dont predict that these all methods are followed by the designer itself, nowadays tools are smart enough to use these to meet timings.

Swapping pins: Swap connections on cumulative pins or among equivalent nets. As you can see in the below given example, how it helps to meet timings.

Resize cell: 1. Up size: If fan-out and Capacitance loading is more 2. Down size: If fanout and load is less.

Buffering: We use buffering at various stages in the whole flow, so many times, 1. To improve the signal strength 2. To provide delay

Cloning: Cloning is a good method to distribute the load and to improve the signal strength.

Re-design Fanout Tree: This method is also used to meet timing, as you can see the longest path in the first design is of 5 (top most, in right side of both design, AND is of 3). But by redesigning it, we can achieve the longest path of 4.

Re-design Fan-in Tree:

Decomposition:

Requirements in the perspective of EDA tools:

Inputs & Outputs of STA


Inputs Netlist (.v): The gate level netlist, having circuit description.
1. Constraints (.sdc): Synopsys Design Constraint file. It contains all the timing related

information about the design. Includes the Clock definition (Created clock, generated clock, Virtual clock), Uncertainty (Jitter, Skew, Extra margin), IO Delays, False paths, Multi-cycle paths, Max trans, Max fanout, Max cap, Fanout load. 2. SDF (.sdf): Standard Delay Format File containing back-annotated delays. OR

4. Standard Parasitic Exchange Format (.spef): These are the parasitic of the

design extracted from physical design tools.


5. Liberty File (.lib): The delay model of every cell in the library.

Outputs Reports: Different timing paths reports, which can be used for debugging.

Various tools used in STA


1. Prime Time (PT) - Synopsys 2. Design Time (DT) - Synopsys 3. Nano Time - Synopsys 4. Path Mill - Synopsys 5. ETS - Cadence 6. Pearl - Cadence 7. Velocity - Mentor Graphics 8. Eins Timer - IBM 9. Eins TLT - IBM 10. Motive - Viewlogic (Now owned by Synopsys) 11. Time Craft - Incentia

LinkW

You might also like