Escolar Documentos
Profissional Documentos
Cultura Documentos
2.1 SPECIFICATION
Figure 2.2 indicates the beginning of the ASIC flow: the specification of a
design. This is Step 1 of an ASIC design flow. The design of an ASIC chip
begins here.
Specification is the most important portion of an ASIC design flow. In this
step, the features and functionalities of an ASIC chip are defined. Chip
planning is also performed in this step.
During this process, architecture and microarchitecture are derived from
the required features and functionalities. This derivation is especially impor-
3
4 ASIC DESIGN FLOW
Post-layout Yes
timing analysis
No
Simulation pass?
Post-layout No
No Logic
Pass synthesis verification
tweaks pass?
Yes and synthesis
Standard cell Yes
technology Synthesis Timing
library constraints
Tapeout
FIGURE 2.1. Diagram showing an ASIC design flow. Sections 2.1 to 2.9 explain each
section of the ASIC flow in detail.
STEP 1
Post-layout Yes
timing analysis
No pass?
Simulation
No
No Post-layout Logic
Pass synthesis Verification
tweaks Pass?
Yes and synthesis
Standard cell Yes
technology Synthesis Timing
library constraints
Tapeout
Pre-layout Pre-layout
No Yes Back
timing analysis APR
synthesis annotation
tweaks pass?
Specification
Architecture
definition
Architectural Microarchitecture
simulation definition
No Simulation Yes
pass?
Figure 2.4 shows Step 2 of the ASIC design flow. This is the beginning of the
design phase. The microarchitecture is transformed into a design by convert-
ing it into RTL code.
As shown in Section 2.1 (Step 1 of the ASIC design flow), architecture and
microarchitecture are derived from specification. In Step 2, the micro-
architecture, which is the implementation of the design, is coded in synthe-
sizable RTL.
6 ASIC DESIGN FLOW
STEP 2
Post-layout Yes
No timing analysis
Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
tweaks pass?
Yes and synthesis
Standard cell Yes
technology Synthesis Timing
library constraints
Tapeout
FIGURE 2.4. Diagram indicating Step 2 of an ASIC design flow: RTL coding.
There are several ways to obtain the RTL code. Some designers use graphi-
cal entry tools like Summit Design’s Visual HDL or Mentor Graphics HDL
Designer. These graphical entry tools allow designers to use bubble diagrams,
flow charts, or truth table to implement the microarchitecture, which subse-
quently generate the RTL code either in Verilog or VHDL. However, some
designers prefer writing the RTL code rather than using a graphical entry tool.
Both approaches end in the same result: synthesizable RTL code that
describes logic functionality of the specification.
Figure 2.5 shows Step 3 in the ASIC design flow, which involves creation of
test benches. These are used to simulate the RTL code.
A test bench is basically a wraparound environment surrounding a design,
which enables the design to be simulated. It injects a specified set of stimulus
TEST BENCH AND SIMULATION 7
input inputA, inputB, inputC, input inputA, inputB, input inputA, inputB,
inputD; inputC, inputD; inputC, inputD;
output outputA; output outputA; output outputA;
reg outputA; reg outputA; wire n30;
always @ (inputA or inputB always @ (inputA or inputB AN3 U8 ( .A(inputA),
or inputC or inputD) or inputC or inputD) .B(n30), .C(inputB),
begin begin .Z(outputA) );
if (inputA & inputB if (inputA & inputB &
EO U9 ( .A(inputD),
& ~inputD) ~inputD)
.B(inputC), .Z(n30) );
outputA = inputC; outputA = #5
else if (inputA & inputC; endmodule
inputD & ~inputC) else if (inputA &
outputA = inputB; inputD & ~inputC)
else outputA = #3
outputA = 0; inputB;
end else if ((inputA ==
1'bx) | (inputB ==
endmodule 1'bx) | (inputC ==
1'bx) | (inputD ==
1'bz))
outputA = #7 1'bx;
else if ((inputA ==
1'bz) | (inputB ==
1'bZ))
outputA = #7 1'bZ;
else
outputA = #3 0;
end
endmodule
8 ASIC DESIGN FLOW
inputA
inputD
inputC EO AN3
inputB
Post-layout Yes
No timing analysis
STEP 3 Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
Yes tweaks pass?
and synthesis
Standard cell Yes
technology Synthesis Timing
library constraints
Tapeout
FIGURE 2.5. Diagram indicating Step 3 of an ASIC design flow: test bench and
simulation.
into the inputs of the design, check/view the output of the design to ensure
the design’s output patterns/waveforms match designer’s expectations.
RTL code and the test bench are simulated using HDL simulators. If the
RTL code is written in Verilog, a Verilog simulator is required. If the RTL code
is written in VHDL, a VHDL simulator is required. Cadence’s Verilog XL,
SYNTHESIS 9
Synopsys’s VCS, and Mentor Graphic’s Modelsim are among some of the
Verilog simulators used. Cadence’s NCSim and Mentor Graphic’s Modelsim
are capable of simulating both Verilog and VHDL. Synopsys’s Scirocco is an
example of a VHDL simulator. Apart from these simulators, there are many
other VHDL and Verilog simulators. Whichever simulator is used, the end
result is the verification of the RTL code of the design based on the test bench
that is written.
If the designer finds the output patterns/waveforms during simulation do
not match what he or she expects, the design needs to be debugged. A non-
matching design output can be caused by a faulty test bench or a bug in the
RTL code. The designer needs to identify and fix the error by fixing the test
bench (if the test bench is faulty) or making changes to the RTL code (if the
error is caused by a bug in the RTL code).
Upon completion of the change, the designer will rerun the simulation.
This is iterated in a loop until the designer is satisfied with the simulation
results. This means that the RTL code correctly describes the required logical
behavior of the design.
2.4 SYNTHESIS
Figure 2.6 shows Step 4 of the ASIC design flow, which is synthesis. In this
step, the RTL code is synthesized. This is a process whereby the RTL code is
converted into logic gates. The logic gates synthesized will have the same logic
functionality as described in the RTL code.
Post-layout Yes
No timing analysis
Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
tweaks pass?
Yes
STEP 4 and synthesis
Standard cell Yes
technology Timing
Synthesis
library constraints
Tapeout
In Step 4, a synthesis tool is required to convert the RTL code to logic gates.
More common tools used in the ASIC industry include Synopsys’s Design
Compiler and Cadence’s Ambit.
The synthesis process requires two other input files to make the conversion
from RTL to logic gates. The first input file that the synthesis tool must have
before making the conversion is the “technology library” file. It is a library file
that contains standard cells. During the synthesis process, the logic function-
ality of the RTL code is converted to logic gates using the available standard
cells in the technology library. The second input file, “constraints file,” helps to
determine the optimization of the logic being synthesized. This file normally
consists of information like timing and loading requirements and optimization
algorithms that the synthesis tool needs to optimize the logic, and even pos-
sibly design rule requirements that need to be considered during synthesis.
Step 4 is a very important step in the ASIC design flow. This step ensures
that synthesis tweaks are performed to obtain the most optimal results
possible, should the design not meet the specified performance or area.
If, upon final optimization, the required performance or area utilization is
still not within acceptable boundaries, the designer must reconsider the
microarchitecture as well as architectural definitions of the design. The
designer must re-evaluate to ensure the specified architecture and microar-
chitecture can meet the required performance and area. If the requirements
cannot be met with the current architecture or microarchitecture, the designer
will have to consider changing the definition of the architecture or microar-
chitecture. This is undesirable, as changing the architecture or microarchitec-
ture can potentially bring the design phase back to the early stages of Step 1
of the ASIC design flow (specification). If by changing the architecture and
microarchitecture definition the design is still unable to provide the kind of
performance or area utilization required, the designer must resort to the
possibility of changing the specification itself.
Post-layout Yes
No timing analysis
Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
Yes tweaks pass?
and synthesis
Standard cell
Timing Yes
technology Synthesis
library constraints
Tapeout
A common fix for hold violation is to add delay cells into the path that is
failing hold time check. A common fix for setup violation is to reduce the
overall delay of the path that failed the setup timing check.
These synthesis tweaks are used to resynthesize the design. Another
pre-layout timing analysis is performed.
Step 5 in the ASIC flow sometimes varies depending on the design project.
Some design projects will proceed to Step 6, although having timing failures
in pre-layout timing analysis. The reason for this is because it is pre-layout
timing analysis. The interconnect parasitics that are used for timing analysis
are estimations and may not be accurate.
A more common method used in Step 5 is to fix timing failures that are
above certain values. The designer can set a value of x nanoseconds allowed
timing violation. The path that fails more than x nanoseconds is fixed. The path
that fails less than x nanoseconds is not fixed. Again, this can be attributed to
the fact that the parasitics used in the timing analysis are not accurate, because
no back annotated information is used during this step (pre-layout timing
analysis).
2.6 APR
Post-layout Yes
No timing analysis
Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
Yes tweaks pass?
and synthesis
Standard cell Yes
technology Timing
Synthesis constraints
library
Tapeout
used for APR (Fig. 2.8). In this step, synthesized logic gates are placed and
routed. The process of this placement and routing has some degree of flexi-
bility whereby the designer can place the logic gates of each submodule
according to a predefined floor plan.
Most designs have critical paths that are tight in terms of timing. These
paths can be specified by the designer as high-priority paths. The APR tool
will route these high-priority paths first before routing other paths to allow
for the most optimal routing.
APR is also the step involved in clock tree synthesis. Most APR tools can
handle routing of clock tree with built-in special algorithms. This is an espe-
cially important portion of the APR flow because it is critical that the clock
tree be “routed” correctly with an acceptable clock skew. Most APR tools
allow a designer to specify a required clock skew and buffers up each branch
on the clock tree to the desired clock skew.
Back annotation is the step in the ASIC design flow where the RC parasitics
in layout is extracted (Fig. 2.9). The path delay is calculated from these RC
parasitics. For deep submicron design, these parasitics can cause a significant
increase in path delay. Long routing lines can significantly increase the inter-
connect delay for a path. This could potentially cause paths that are previously
POST-LAYOUT TIMING ANALYSIS 13
Post-layout Yes
No timing analysis
Simulation pass?
No
No Post-layout Logic
Pass synthesis verification
Yes tweaks pass?
and synthesis
Standard cell Yes
technology Timing
Synthesis
library constraints
Tapeout
(in pre-layout) not critical in timing to be timing critical. It could also cause
paths that are meeting the timing requirements to now become critical paths
that no longer meet the timing requirements.
Back annotation is an important step that bridges the differences between
synthesis and physical layout. During synthesis, design constraints are used
by the synthesis tool to generate the logic that is required. However, these
design constraints are only an estimation of constraints that apply to each
module. The real physical constraints caused by the RC parasitics may or
may not reflect the estimated constraints accurately. More likely than not,
the estimations are not accurate. As a result, these will cause differences
between synthesis and physical layout. Back annotation is the step that bridges
them.
Post-layout Yes
No timing analysis
Simulation pass?
STEP 8
No
No Post-layout Logic
Pass synthesis verification
Yes tweaks pass?
and synthesis
Standard cell Yes
technology Timing
Synthesis constraints
library
Tapeout
FIGURE 2.10. Diagram indicating Step 8 of an ASIC design flow: post-layout timing
analysis.
violations to reduce the path delay. Any hold violation is fixed by adding
buffers to the path to increase the path delay.
Post-layout synthesis tweaks are used to make these timing fixes during
resynthesis. This allows logic optimization of those failing paths.
When post-layout synthesis is completed,APR, back annotation, and timing
analysis are performed again. This will occur in a loop until all the timing
violations are fixed. When there are no longer timing violations in the layout
database, the design is ready for logic verification.
When post-layout timing analysis is completed, the next step is logic verifica-
tion (Fig. 2.11). This step acts as a final sanity check to ensure the design has
the correct functionality. In this step, the design is resimulated using the exist-
ing test benches used in Step 3 but with additional timing information obtained
from layout.
LOGIC VERIFICATION 15
Post-layout Yes
No timing analysis
Simulation pass?
STEP 9 No
No Post-layout Logic
Pass synthesis verification
tweaks pass?
Yes
and synthesis
Standard cell Yes
technology Timing
Synthesis
library constraints
Tapeout
FIGURE 2.11. Diagram indicating Step 9 of an ASIC design flow: logic verification.
Although the design has been verified in Step 3, the design may have fail-
ures in Step 9. The failures may be caused by timing glitches or race condi-
tions due to layout parastics. If there are failures, the designer has to fix these
failures by either moving back to Step 2 (RTL coding) or Step 8 (post-layout
synthesis tweaks).
When the design has finally passed logic verification, it proceeds to tapeout.