SlideShare a Scribd company logo
Lecture 14: Timing Analysis and
Timed Simulation
UCSD ECE 111
Prof. Farinaz Koushanfar
Fall 2017
Some slides are courtesy of Prof. Patrick Schaumont
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Topics
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Static and Dynamic Timing Analysis
❑ Static Timing Analysis
▪ Delay Model
▪ Path Delay
▪ False Paths
▪ Timing Constraints
▪ FPGA Design Flow & STA: Sorter Example
❑ Dynamic Timing Analysis
▪ FPGA Design Flow & Timed Simulation
▪ Delay back-annotation with SDF files
▪ Demonstration
Static and Dynamic Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Digital
Synchronous
Design
Input Output
fCLK
❑ Suppose that we want to automatically find the maximum clock
frequency of a given design
▪ written in Verilog
▪ and synthesized to a given technology
❑ Approach 1: Static Timing Analysis = use analysis techniques
on the netlist to define fclk,max
❑ Approach 2: Dynamic Timing Analysis = use simulation and
selected input stimuli to measure the slowest path
Static and Dynamic Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Static Timing Analysis seems ideal, since it is done by a design
tool that starts from the netlist and runs automatically
❑ However, Static Timing Analysis may report pessimistic results
and report delays that will never occur during operation
❑ Dynamic Timing Analysis is nice, because we can combine it with
the simulations which we do for functional verification
❑ However, Dynamic Timing Analysis may be too optimistic, in
particular if we do not simulate the worst possible case (which
may be hard to predict in a complex netlist)
❑ In this lecture, we put the two techniques side-to-side
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA looks for the worst of the following delays in a
chip
Delay from
input to
register
Delay from
register to
register
Delay from
register to
output
Combinational
Logic
Combinational
Logic
Combinational
Logic
IN OUT
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA relies on a similar model as we discussed before
Combinational
Logic
CLK
Tclk,min = Tclk->Q + TLogic + TRouting +TSetup
Property of
the component
(flipflop)
Property of
the netlist
Property of
the component
(flipflop)
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA also takes delay on the clock connection into
account. This is called clock skew.
❑ The effect of clock skew is highly dependent on circuit
topology
Combinational
Logic
CLK
Tskew
Tclk,min = Tclk->Q + TLogic + TRouting + TSetup - TSkew
Here, skew works
'in favor' of us.
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA also takes delay on the clock connection into
account. This is called clock skew.
❑ The effect of clock skew is highly dependent on circuit
topology
Combinational
Logic
CLK
Tskew
Tclk,min = Tclk->Q + TLogic + TRouting + TSetup + TSkew
Here, skew works
'against' us.
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA also takes delay on the clock connection into
account. This is called clock skew.
❑ The effect of clock skew is highly dependent on circuit
topology
▪ the physical layout of the chip including the placement of
components and the routing of wires
❑ The best clock skew is 0.
▪ Chips will distribute the clock signal so that it arrives at every
flip-flop at exactly the same moment
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ So, once the technology is chosen, STA needs to find
the longest combinational path, consisting of Tlogic +
Trouting
❑ Path delay = delay from an input to an output. M
inputs, N outputs -> M x N path delays possible
Combinational Logic
10 ns
15 ns
12 ns
9 ns
Worst case delay = 15ns
Delay of single path
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Path delay =
Intrinsic Gate Delay + Fan-out Delay + Wire Delay
❑ Intrinsic Delay:
1 ns
In
intrinsic delay = 1ns
(delay of each gate
when not connected)
Out
Delay of a path
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Gate Fan-out Delay: Delay caused by the input
capacitance of gates in fan-out
1 ns
In
Out
Ci
Fan-out = 4
Each gate input represents a unit load
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Gate Fan-out Delay:
▪ Ci = Capacitive load of a CMOSinput
1 ns
V 1 load
t
V
Fan-out
Delay
Vi,H
RC-delay
R ~ drive capability of
inverter output stage
C ~ loading of output
Ci
Vinput
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Gate Fan-out Delay:
▪ Appromated by N (fan-out) x D (delay per fan-out)
▪ Eg. a gate has 0.5 ns delay per fanout, then driving 3 gates
will cost 1.5 ns delay
1 ns
V 1 load
3 load
t
V
Delay
Vi,H
Ci
Vinput
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ The path shown has 1ns + 2ns + 1ns = 4ns delay.
2 ns
4 x 0.5 ns
2 ns
❑ After placement and routing has completed, additional
correction factors can be included (delay of wires)
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA may find paths that are never activated during
operation. Such paths are called false paths
Select
Comb
Logic
Comb
Logic
1
0
1
0
Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA may find paths that are never activated during
operation. Such paths are called false paths.
❑ Designers must indicate such false paths to the STA
tools (based on constraints)
Select
Logic
Logic
1
0
1
0
Even though the red path has the longest
delay, it will never be triggered in practice.
This is a false path
Timing Constraints
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Timing Constraints are additional directives provided
by the designer to the synthesis tools
▪ Timing Constraints are used by STA to verify if the timing of
the resulting circuit is OK: clock period, setup time of flip-flops,
etc
▪ Timing Constraints are used by the Place & Route tools to
decide how components should be mapped into a chip
❑ The most simple timing constraint is the clock period of
the clock signal
▪ Knowing this value, STA can evaluate the slack for each path
slack = Tclk -Tclk,min
FPGA Design Flow and Static Timing
Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
RTL Verilog
Constraints
(ucf)
- pinout
- clock period
No timing information known
(apart from cycle boundaries)
Synthesis
(+translate)
Timing estimated based on components only
(only fan-out and intrinsic delay)
Mapper
Timing estimated based on components only
(only fan-out and intrinsic delay)
Place and
Route
Timing estimated based on final
netlist (fan-out, intrinsic, and wire delay)
Bitstream
Generation
STA on Design Example
UCSD ECE 111, Prof. Koushanfar, Fall 2017
sort2 sort2
a b
a1 a2 a3 a4
sort4_stage
registers
sort2
min(a,b)
max(a,b)
q1 q2 q3 q4
sort4_stage
registers
STA on Design Example
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ This design has many equally bad long paths.
❑ As long as we hit 2 sort2 cells per sorter4_stage, we
will be on a long path
❑ Some examples:
a b
a1 a2 a3 a4
sort4_stage
registers
sort2 sort2
min(a,b)
max(a,b)
sort2
q1 q2 q3 q4
sort4_stage
registers
STA on Design Example
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ We will capture this circuit in Verilog, synthesize it, and
evaluate the timing with STA. We need
▪ sort2
▪ sort4_stage
▪ register stage
▪ top cell
Sort2 cell
UCSD ECE 111, Prof. Koushanfar, Fall 2017
a, b);
module sorter2c(qa, qb,
output [3:0] qa, qb;
input [3:0] a, b;
assign qa = (a > b) ?
assign qb = (a > b) ?
a.: b;
b.: a;
endmodule
Sort4_stage
UCSD ECE 111, Prof. Koushanfar, Fall 2017
module sort4_stage(q1, q2, q3, q4, a1, a2, a3, a4);
output [3:0] q1, q2, q3, q4;
input [3:0] a1, a2, a3, a4;
wire [3:0] w1, w2, w3, w4;
sorter2 S1 (w1, w2, a1, a2);
sorter2 S2 (w3, w4, a3, a4);
sorter2 S3 (q2, q3, w2, w3);
assign q1 = w1;
assign q4 = w4;
endmodule
sort2 sort2
sort2
max(a,b)
min(a,b)
a1 a2
a b
a3 a4
sort4_stage
Register stage
UCSD ECE 111, Prof. Koushanfar, Fall 2017
module regblock(q1, q2, q3, q4, a1, a2, a3, a4, clk);
output [3:0] q1, q2, q3, q4;
reg [3:0] q1, q2, q3, q4;
input [3:0] a1, a2, a3, a4;
input clk;
always @(posedge clk) begin
q1 <= a1;
q2 <= a2;
q3 <= a3;
q4 <= a4;
end
endmodule
Toplevel
UCSD ECE 111, Prof. Koushanfar, Fall 2017
module fullsorter(q1, q2, q3, q4, a1, a2, a3, a4, clk);
output [3:0] q1, q2, q3, q4;
a1, a2, a3, a4;
input
input
[3:0]
clk;
wire
wire
wire
[3:0]
[3:0]
[3:0]
w1, w2, w3, w4;
v1, v2, v3, v4;
u1, u2, u3, u4;
regblock R0(w1, w2, w3, w4, a1, a2, a3, a4, clk);
v2, v3, v4, w1, w2, w3, w4);
u2, u3, u4, v1, v2, v3, v4);
q2, q3, q4, u1, u2, u3, u4, clk);
sort4_stage S0(v1,
sort4_stage S1(u1,
regblock R1(q1,
endmodule
Timing Constraints
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ We will only specify the period of the clock signal
❑ This is done by adding a 'PERIOD' constraint:
NET "clk" PERIOD = 20 ns HIGH 50 %;
NET "clk" TNM_NET = "clk";
sorter.v
(sort2,
sort4_stage,
register stage,
toplevel)
sorter.ucf +
Synthesis
(+translate)
Synthesis, Translate, Map
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Next, we synthesize the circuit
▪ After MAP, the Verilog is converted into a netlist of FPGA
components: LUTs, flipflops, buffers, etc ..
▪ You can look at the netlist with the 'Technology Schematic'
❑ The MAP step can also use static timing analysis on
the netlist
▪ There is a separate interactive timing analysis tool
Timing Analyzer
Delay Summary
Nets +
Components
in
Longest
Path
gital Design II Patri
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Analysis of the 'PERIOD' constraint
UCSD ECE 111, Prof. Koushanfar, Fall 2017
============================================================================
Timing constraint: NET "clk_BUFGP/IBUFG" PERIOD = 20 ns HIGH 50%;
30002 items analyzed, 0 timing errors detected. (0 setup errors, 0 hold
errors)
Minimum period is 9.739ns.
---------------------------------------------------------------------------
10.261ns (requirement - (data path - clock path skew +
Slack:
uncertainty))
Source:
Destination:
Requirement:
Data Path Delay:
Clock Path Skew:
Source Clock:
Destination Clock:
Clock Uncertainty:
R0/q4_3 (FF)
R1/q3_2 (FF)
20.000ns
9.739ns (Levels of Logic = 12)
0.000ns
clk_BUFGP rising at 0.000ns
clk_BUFGP rising at 20.000ns
0.000ns
R0/q4_3
R1/q3_2
q4, bit 3
a period measures from reg output to reg output
12 levels of logic
(includes setup)
9.739 ns
STA on Design Example (after MAP)
UCSD ECE 111, Prof. Koushanfar, Fall 2017
sort2 sort2
a b
min(a,b)
a1 a2 a3 a4
sort4_stage
registers R0/q4_3
9.739 ns
sort2
max(a,b)
q1 q2 q3 q4
sort4_stage
registers R1/q3_2
STA will also tells
us what components
are in this path
STA on Design Example (after MAP)
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Data Path: R0/q4_3 to R1/q3_2
Delay type Delay(ns)
----------------------------
Tiockiq 0.442
Logical Resource(s)
-------------------
R0/q4_3
net (fanout=4) e 0.100 w4<3>
Tilo 0.612 S0/S2/q1_cmp_gt0000121
net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7
// some lines skipped ...
Starting Point
net (fanout=3) e 0.100 S1/w3<1>
Tilo 0.612 S1/S3/q1_cmp_gt0000145
net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O
Tilo 0.612 S1/S3/q1_cmp_gt0000173
net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000
Tilo 0.612 S1/S3/q2<2>1
net (fanout=1) e 0.100 u3<2>
R1/q3_2
Tioock 0.595
----------------------------
Total 9.739ns
Ending Point
---------------------------
(8.439ns logic, 1.300ns route)
(86.7% logic, 13.3% route)
STA on Design Example (after MAP)
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Data Path: R0/q4_3 to R1/q3_2
Delay type Delay(ns) Logical Resource(s)
// some lines skipped ...
Logic
---------------------------- ------------------- Delays
Tiockiq 0.442
net (fanout=4) e 0.100
R0/q4_3
w4<3>
(LUTs)
Tilo 0.612 S0/S2/q1_cmp_gt0000121
net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7
net (fanout=3) e 0.100 S1/w3<1>
Tilo 0.612 S1/S3/q1_cmp_gt0000145
net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O
Tilo 0.612 S1/S3/q1_cmp_gt0000173
net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000
Tilo 0.612 S1/S3/q2<2>1
net (fanout=1) e 0.100 u3<2>
Tioock 0.595 R1/q3_2
----------------------------
Total 9.739ns
---------------------------
(8.439ns logic, 1.300ns route)
(86.7% logic, 13.3% route)
STA on Design Example (after MAP)
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Data Path: R0/q4_3 to R1/q3_2
Delay type Delay(ns)
----------------------------
Logical Resource(s)
-------------------
// some lines skipped ...
Net
Tiockiq 0.442 R0/q4_3 Delays
net (fanout=4) e 0.100 w4<3> (estimated)
Tilo 0.612 S0/S2/q1_cmp_gt0000121
net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7
net (fanout=3) e 0.100 S1/w3<1>
Tilo 0.612 S1/S3/q1_cmp_gt0000145
net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O
Tilo 0.612 S1/S3/q1_cmp_gt0000173
net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000
Tilo 0.612 S1/S3/q2<2>1
net (fanout=1) e 0.100 u3<2>
Tioock 0.595 R1/q3_2
----------------------------
Total 9.739ns
---------------------------
(8.439ns logic, 1.300ns route)
(86.7% logic, 13.3% route)
STA after Place and Route
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ We know the exact loading of each interconnection, so
we can get a more precise timing estimate
Analysis after Place and Route
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ We need 10ns more, just to move data around in the
chip!
▪ This is not only the case for this example. In modern logic
design, routing delay is typically as large as logic delay !!
========================================================================
Timing constraint: NET "clk_BUFGP/IBUFG" PERIOD = 20 ns HIGH 50%;
30002 items analyzed, 0 timing errors detected. (0 setup errors, 0 hold
errors)
Minimum period is 19.000ns.
----------------------------------------------------------------------
1.000ns (requirement - (data path - clock path
of Logic = 12)
at 0.000ns
at 20.000ns
Slack:
skew + uncertainty))
Source:
Destination:
Requirement:
Data Path Delay:
Clock Path Skew:
Source Clock:
Destination Clock:
Clock Uncertainty:
R0/q1_3 (FF)
R1/q3_1 (FF)
20.000ns
18.979ns (Levels
-0.021ns
clk_BUFGP rising
clk_BUFGP rising
0.000ns
Path Analysis confirms that wires are
slow ..
UCSD ECE 111, Prof. Koushanfar, Fall 2017
Data Path: R0/q1_3 to R1/q3_1 Delay type
Delay(ns)
----------------------------
Tiockiq
net (fanout=4)
// some lines skipped ...
Tilo
net (fanout=1)
Tilo
net (fanout=6)
Tilo
net (fanout=1)
Tioock
----------------------------
Total 18.979ns
0.442
2.142
Logical Resource(s)
-------------------
R0/q1_3
w1<3>
0.612
0.298
0.612
0.604
0.660
0.725
0.595
S1/S3/q1_cmp_gt0000145
S1/S3/q1_cmp_gt0000145/O
S1/S3/q1_cmp_gt0000173
S1/S3/q1_cmp_gt0000
S1/S3/q2<1>1
u3<1>
R1/q3_1
---------------------------
(8.631ns logic, 10.348ns route)
(45.5% logic, 54.5% route)
Summary Static Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ STA uses an analytic delay model based on
▪ intrinsic gate delay
▪ fan-out
▪ wire delay (if available)
❑ STA will automatically check timing constraints set by
a user
❑ STA is a good general checking technique but may
stumble into false paths
❑ Analyzing STA results (and improving them) requires
an understanding of the netlist by the designer
▪ but if you want the fastest implementation possible, it may be
worth it ..
Dynamic Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Simulation is used extensively in a digital design flow
for verification
❑ Since this simulation is a timed simulation, we may as
well try to use intermediate design representations as
simulation targets
▪ The lower-level synthesis blocks are still pin-compatible with
the RTL top-level
▪ Hence, the same simulation testbench can be used
❑ Constraint-checking now becomes the role of the
designer
▪ The designer needs to verify if the result of the timed
simulation is still corresponding to the results of the RTL
simulation
Dynamic Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
RTL Verilog
Constraints
Synthesis
(+translate)
Post Synthesis
Netlist
Testbench
Testbench
Mapper
Bitstream
Generation
Place and
Route
Post Map
Netlist
Post P&R
Netlist
Testbench
Testbench
Dynamic Timing Analysis
UCSD ECE 111, Prof. Koushanfar, Fall 2017
RTL Verilog
Post Synthesis
Netlist
Netlist in terms of FPGA components
no logic delay (functional simulation)
requires
simulation
library
Post Map
Netlist
Post P&R
Netlist
Netlist in terms of FPGA components
logic delay included
Netlist in terms of FPGA components
logic delay and wire delay included
Synthesis and Simulation are integrated
UCSD ECE 111, Prof. Koushanfar, Fall 2017
external
simulator
ISE
(synthesis)
How does a post-synthesis netlist look
like?
UCSD ECE 111, Prof. Koushanfar, Fall 2017
q2, a1, a2);
module sorter2_INST_5 (q1,
output [3 : 0] q1;
output [3 : 0] q2;
input
input
[3 : 0] a1;
[3 : 0] a2;
// .. some lines skipped
defparam q1<3>1 .INIT = 4'hE;
LUT2 q1<3>1 (
.I0(a2[3]),
.I1(a1[3]),
.O(q1[3])
);
// .. some lines skipped
endmodule
This is a component
from an FPGA
simulation library.
The component has an
parameter called INIT.
In this case, the parameter
captures the configuration
of a LUT lookup table.
The LUT contains an OR.
a2[3] a1[3] q1[3]
0 0 0
1 0 1
0 1 1
1 1 1
= 4'hE
LUT2 from library
UCSD ECE 111, Prof. Koushanfar, Fall 2017
|| (s[1]^s[0] ==0))
module LUT2 (O, I0, I1);
parameter INIT = 4'h0;
input I0, I1;
output O;
reg O;
wire [1:0] s;
assign s = {I1, I0};
always @(s)
if ((s[1]^s[0] ==1)
O = INIT[s];
else if ((INIT[0]
(INIT[2]
(INIT[0]
O = INIT[0];
== INIT[1]))
== 1) == INIT[3]))
== 0) == INIT[2]))
== 1)
== INIT[1]) &&
== INIT[3]) &&
== INIT[2]))
== 0) && (INIT[0]
&& (INIT[2]
&& (INIT[0]
&& (INIT[1] == INIT[3]))
else if ((s[1]
O = INIT[0];
else if ((s[1]
O = INIT[2];
else if ((s[0]
O = INIT[0];
else if ((s[0]
O = INIT[1];
else
O = 1'bx;
endmodule
How does a post-PAR netlist look like?
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Contains placement information and uses library
components that support timing specifications
q2);
module sorter2_INST_5 (a1, a2, q1,
input [3 : 0] a1;
input [3 : 0] a2;
output [3 : 0] q1;
output [3 : 0] q2;
LUT configuration
// some lines skipped ..
defparam q1_cmp_gt0000143.INIT = 16'h22B2;
defparam q1_cmp_gt0000143.LOC = "SLICE_X25Y91";
X_LUT4 q1_cmp_gt0000143 (
.ADR0(a1[1]),
.ADR1(a2[1]),
.ADR2(a1[0]),
.ADR3(a2[0]),
.O(q1_cmp_gt0000143/O )
);
Placement
information
SDF Timing Information
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Timing information from Place and Route is not stored
in the Post-PAR netlist, but in a separate SDF File
(Standard Delay Format)
❑ The Modelsim simulator will read this SDF file together
with the Verilog netlist and back-annotate the delay
information from the SDF file into the netlist
Verilog Netlist
Place and Route
SDF Data
Modelsim
Post-PAR
Simulation
Testbench
Verilog Netlist with
Placement Information
Demonstration
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ (this slide shows the demo script. I will upload the
sorter example on Blackboard)
❑ Include testbench with sorter design
❑ Choices for Post-nnnnn models:
▪ Post-synthesis, Post-translate, Post-map, Post-PAR model
❑ Post-PAR Static Timing Analysis
▪ Analyze -> against timing constraints
▪ Slowest path: R0/q4 to R1/q3
▪ (if time left: cross-probe feature)
Demonstration (2)
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Simulate Post-PAR Model
▪ Ilustrate delay & cross check with STA
❑ Show netlist
▪ Post-synthesis
▪ Isolate one component (LUT)
▪ Verify LUT location in simulation library
▪ Post-PAR
▪ Compare Post-PAR component with post-synthesis
Summary STA and Timed Simulation
UCSD ECE 111, Prof. Koushanfar, Fall 2017
❑ Static Timing Analysis estimates the worst possible
delay in a network based on network topology and
components
❑ Dynamic Timing Analysis performs a timed simulation,
with time delays modeled based on the intermediate
synthesis results
❑ Performance optimizations will typically use static
timing analysis. Specific worst-case conditions can be
easily triggered using dynamic timing analysis.

More Related Content

Similar to 15757597 (1).ppt

Dynamic Shift Frequency Scaling Of ATPG Patterns
Dynamic Shift Frequency Scaling Of ATPG PatternsDynamic Shift Frequency Scaling Of ATPG Patterns
Dynamic Shift Frequency Scaling Of ATPG Patterns
Aditya Ramachandran
 
VLSI Design Sequential circuit design
VLSI Design Sequential circuit designVLSI Design Sequential circuit design
VLSI Design Sequential circuit design
tamil arasan
 
Random access scan
Random access scan Random access scan
Random access scan
Harish Peta
 
Digital design slides for engineering
Digital  design   slides for engineeringDigital  design   slides for engineering
Digital design slides for engineering
kasheen2803
 
Standard cells library design
Standard cells library designStandard cells library design
Standard cells library design
Bharat Biyani
 
Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1
colman mboya
 
Ece512 h1 20139_621386735458ece512_test2_solutions
Ece512 h1 20139_621386735458ece512_test2_solutionsEce512 h1 20139_621386735458ece512_test2_solutions
Ece512 h1 20139_621386735458ece512_test2_solutionsnadia abd
 
Pipelining
PipeliningPipelining
A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink
Jaewook. Kang
 
Timing notes 2006
Timing notes 2006Timing notes 2006
Timing notes 2006pavan kumar
 
1524 elliptic curve cryptography
1524 elliptic curve cryptography1524 elliptic curve cryptography
1524 elliptic curve cryptography
Dr Fereidoun Dejahang
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdf
FrangoCamila
 
Sta by usha_mehta
Sta by usha_mehtaSta by usha_mehta
Sta by usha_mehta
Usha Mehta
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processing
Vasia Kalavri
 
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Flink Forward
 
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
Tokyo Institute of Technology
 
07_Digital timing_&_Pipelining.ppt
07_Digital timing_&_Pipelining.ppt07_Digital timing_&_Pipelining.ppt
07_Digital timing_&_Pipelining.ppt
BUCHUPALLIVIMALAREDD2
 
PLL
PLLPLL

Similar to 15757597 (1).ppt (20)

Dynamic Shift Frequency Scaling Of ATPG Patterns
Dynamic Shift Frequency Scaling Of ATPG PatternsDynamic Shift Frequency Scaling Of ATPG Patterns
Dynamic Shift Frequency Scaling Of ATPG Patterns
 
OFDM
OFDMOFDM
OFDM
 
VLSI Design Sequential circuit design
VLSI Design Sequential circuit designVLSI Design Sequential circuit design
VLSI Design Sequential circuit design
 
Random access scan
Random access scan Random access scan
Random access scan
 
Digital design slides for engineering
Digital  design   slides for engineeringDigital  design   slides for engineering
Digital design slides for engineering
 
Standard cells library design
Standard cells library designStandard cells library design
Standard cells library design
 
Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1Te442 lecture02-2016-14-4-2016-1
Te442 lecture02-2016-14-4-2016-1
 
Ece512 h1 20139_621386735458ece512_test2_solutions
Ece512 h1 20139_621386735458ece512_test2_solutionsEce512 h1 20139_621386735458ece512_test2_solutions
Ece512 h1 20139_621386735458ece512_test2_solutions
 
Lecture set 4
Lecture set 4Lecture set 4
Lecture set 4
 
Pipelining
PipeliningPipelining
Pipelining
 
A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink A Simple Communication System Design Lab #1 with MATLAB Simulink
A Simple Communication System Design Lab #1 with MATLAB Simulink
 
Timing notes 2006
Timing notes 2006Timing notes 2006
Timing notes 2006
 
1524 elliptic curve cryptography
1524 elliptic curve cryptography1524 elliptic curve cryptography
1524 elliptic curve cryptography
 
design-compiler.pdf
design-compiler.pdfdesign-compiler.pdf
design-compiler.pdf
 
Sta by usha_mehta
Sta by usha_mehtaSta by usha_mehta
Sta by usha_mehta
 
Self-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processingSelf-managed and automatically reconfigurable stream processing
Self-managed and automatically reconfigurable stream processing
 
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
Self Managed and Automatically Reconfigurable Stream Processing - Vasiliki Ka...
 
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
Integrating Cache Oblivious Approach with Modern Processor Architecture: The ...
 
07_Digital timing_&_Pipelining.ppt
07_Digital timing_&_Pipelining.ppt07_Digital timing_&_Pipelining.ppt
07_Digital timing_&_Pipelining.ppt
 
PLL
PLLPLL
PLL
 

More from RevathiMohan14

authentication u5.ppt
authentication u5.pptauthentication u5.ppt
authentication u5.ppt
RevathiMohan14
 
unit5NtwManagement.ppt
unit5NtwManagement.pptunit5NtwManagement.ppt
unit5NtwManagement.ppt
RevathiMohan14
 
Lec-4-Simulators.pdf
Lec-4-Simulators.pdfLec-4-Simulators.pdf
Lec-4-Simulators.pdf
RevathiMohan14
 
RobertPresentation.ppt
RobertPresentation.pptRobertPresentation.ppt
RobertPresentation.ppt
RevathiMohan14
 
MOSFET_Scaling0803.ppt
MOSFET_Scaling0803.pptMOSFET_Scaling0803.ppt
MOSFET_Scaling0803.ppt
RevathiMohan14
 

More from RevathiMohan14 (6)

authentication u5.ppt
authentication u5.pptauthentication u5.ppt
authentication u5.ppt
 
unit5NtwManagement.ppt
unit5NtwManagement.pptunit5NtwManagement.ppt
unit5NtwManagement.ppt
 
BJTu5.pdf
BJTu5.pdfBJTu5.pdf
BJTu5.pdf
 
Lec-4-Simulators.pdf
Lec-4-Simulators.pdfLec-4-Simulators.pdf
Lec-4-Simulators.pdf
 
RobertPresentation.ppt
RobertPresentation.pptRobertPresentation.ppt
RobertPresentation.ppt
 
MOSFET_Scaling0803.ppt
MOSFET_Scaling0803.pptMOSFET_Scaling0803.ppt
MOSFET_Scaling0803.ppt
 

Recently uploaded

Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
DeeptiGupta154
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
Celine George
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
timhan337
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
EugeneSaldivar
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Po-Chuan Chen
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
Sandy Millin
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
Jisc
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
Anna Sz.
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Atul Kumar Singh
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Thiyagu K
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
Thiyagu K
 

Recently uploaded (20)

Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
Overview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with MechanismOverview on Edible Vaccine: Pros & Cons with Mechanism
Overview on Edible Vaccine: Pros & Cons with Mechanism
 
How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17How to Make a Field invisible in Odoo 17
How to Make a Field invisible in Odoo 17
 
Honest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptxHonest Reviews of Tim Han LMA Course Program.pptx
Honest Reviews of Tim Han LMA Course Program.pptx
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...TESDA TM1 REVIEWER  FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
TESDA TM1 REVIEWER FOR NATIONAL ASSESSMENT WRITTEN AND ORAL QUESTIONS WITH A...
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdfAdversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
Adversarial Attention Modeling for Multi-dimensional Emotion Regression.pdf
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...2024.06.01 Introducing a competency framework for languag learning materials ...
2024.06.01 Introducing a competency framework for languag learning materials ...
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...How libraries can support authors with open access requirements for UKRI fund...
How libraries can support authors with open access requirements for UKRI fund...
 
CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
Polish students' mobility in the Czech Republic
Polish students' mobility in the Czech RepublicPolish students' mobility in the Czech Republic
Polish students' mobility in the Czech Republic
 
Guidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th SemesterGuidance_and_Counselling.pdf B.Ed. 4th Semester
Guidance_and_Counselling.pdf B.Ed. 4th Semester
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Unit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdfUnit 2- Research Aptitude (UGC NET Paper I).pdf
Unit 2- Research Aptitude (UGC NET Paper I).pdf
 
Unit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdfUnit 8 - Information and Communication Technology (Paper I).pdf
Unit 8 - Information and Communication Technology (Paper I).pdf
 

15757597 (1).ppt

  • 1. Lecture 14: Timing Analysis and Timed Simulation UCSD ECE 111 Prof. Farinaz Koushanfar Fall 2017 Some slides are courtesy of Prof. Patrick Schaumont UCSD ECE 111, Prof. Koushanfar, Fall 2017
  • 2. Topics UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Static and Dynamic Timing Analysis ❑ Static Timing Analysis ▪ Delay Model ▪ Path Delay ▪ False Paths ▪ Timing Constraints ▪ FPGA Design Flow & STA: Sorter Example ❑ Dynamic Timing Analysis ▪ FPGA Design Flow & Timed Simulation ▪ Delay back-annotation with SDF files ▪ Demonstration
  • 3. Static and Dynamic Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 Digital Synchronous Design Input Output fCLK ❑ Suppose that we want to automatically find the maximum clock frequency of a given design ▪ written in Verilog ▪ and synthesized to a given technology ❑ Approach 1: Static Timing Analysis = use analysis techniques on the netlist to define fclk,max ❑ Approach 2: Dynamic Timing Analysis = use simulation and selected input stimuli to measure the slowest path
  • 4. Static and Dynamic Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Static Timing Analysis seems ideal, since it is done by a design tool that starts from the netlist and runs automatically ❑ However, Static Timing Analysis may report pessimistic results and report delays that will never occur during operation ❑ Dynamic Timing Analysis is nice, because we can combine it with the simulations which we do for functional verification ❑ However, Dynamic Timing Analysis may be too optimistic, in particular if we do not simulate the worst possible case (which may be hard to predict in a complex netlist) ❑ In this lecture, we put the two techniques side-to-side
  • 5. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA looks for the worst of the following delays in a chip Delay from input to register Delay from register to register Delay from register to output Combinational Logic Combinational Logic Combinational Logic IN OUT
  • 6. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA relies on a similar model as we discussed before Combinational Logic CLK Tclk,min = Tclk->Q + TLogic + TRouting +TSetup Property of the component (flipflop) Property of the netlist Property of the component (flipflop)
  • 7. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA also takes delay on the clock connection into account. This is called clock skew. ❑ The effect of clock skew is highly dependent on circuit topology Combinational Logic CLK Tskew Tclk,min = Tclk->Q + TLogic + TRouting + TSetup - TSkew Here, skew works 'in favor' of us.
  • 8. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA also takes delay on the clock connection into account. This is called clock skew. ❑ The effect of clock skew is highly dependent on circuit topology Combinational Logic CLK Tskew Tclk,min = Tclk->Q + TLogic + TRouting + TSetup + TSkew Here, skew works 'against' us.
  • 9. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA also takes delay on the clock connection into account. This is called clock skew. ❑ The effect of clock skew is highly dependent on circuit topology ▪ the physical layout of the chip including the placement of components and the routing of wires ❑ The best clock skew is 0. ▪ Chips will distribute the clock signal so that it arrives at every flip-flop at exactly the same moment
  • 10. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ So, once the technology is chosen, STA needs to find the longest combinational path, consisting of Tlogic + Trouting ❑ Path delay = delay from an input to an output. M inputs, N outputs -> M x N path delays possible Combinational Logic 10 ns 15 ns 12 ns 9 ns Worst case delay = 15ns
  • 11. Delay of single path UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Path delay = Intrinsic Gate Delay + Fan-out Delay + Wire Delay ❑ Intrinsic Delay: 1 ns In intrinsic delay = 1ns (delay of each gate when not connected) Out
  • 12. Delay of a path UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Gate Fan-out Delay: Delay caused by the input capacitance of gates in fan-out 1 ns In Out Ci Fan-out = 4 Each gate input represents a unit load
  • 13. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Gate Fan-out Delay: ▪ Ci = Capacitive load of a CMOSinput 1 ns V 1 load t V Fan-out Delay Vi,H RC-delay R ~ drive capability of inverter output stage C ~ loading of output Ci Vinput
  • 14. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Gate Fan-out Delay: ▪ Appromated by N (fan-out) x D (delay per fan-out) ▪ Eg. a gate has 0.5 ns delay per fanout, then driving 3 gates will cost 1.5 ns delay 1 ns V 1 load 3 load t V Delay Vi,H Ci Vinput
  • 15. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ The path shown has 1ns + 2ns + 1ns = 4ns delay. 2 ns 4 x 0.5 ns 2 ns ❑ After placement and routing has completed, additional correction factors can be included (delay of wires)
  • 16. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA may find paths that are never activated during operation. Such paths are called false paths Select Comb Logic Comb Logic 1 0 1 0
  • 17. Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA may find paths that are never activated during operation. Such paths are called false paths. ❑ Designers must indicate such false paths to the STA tools (based on constraints) Select Logic Logic 1 0 1 0 Even though the red path has the longest delay, it will never be triggered in practice. This is a false path
  • 18. Timing Constraints UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Timing Constraints are additional directives provided by the designer to the synthesis tools ▪ Timing Constraints are used by STA to verify if the timing of the resulting circuit is OK: clock period, setup time of flip-flops, etc ▪ Timing Constraints are used by the Place & Route tools to decide how components should be mapped into a chip ❑ The most simple timing constraint is the clock period of the clock signal ▪ Knowing this value, STA can evaluate the slack for each path slack = Tclk -Tclk,min
  • 19. FPGA Design Flow and Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 RTL Verilog Constraints (ucf) - pinout - clock period No timing information known (apart from cycle boundaries) Synthesis (+translate) Timing estimated based on components only (only fan-out and intrinsic delay) Mapper Timing estimated based on components only (only fan-out and intrinsic delay) Place and Route Timing estimated based on final netlist (fan-out, intrinsic, and wire delay) Bitstream Generation
  • 20. STA on Design Example UCSD ECE 111, Prof. Koushanfar, Fall 2017 sort2 sort2 a b a1 a2 a3 a4 sort4_stage registers sort2 min(a,b) max(a,b) q1 q2 q3 q4 sort4_stage registers
  • 21. STA on Design Example UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ This design has many equally bad long paths. ❑ As long as we hit 2 sort2 cells per sorter4_stage, we will be on a long path ❑ Some examples: a b a1 a2 a3 a4 sort4_stage registers sort2 sort2 min(a,b) max(a,b) sort2 q1 q2 q3 q4 sort4_stage registers
  • 22. STA on Design Example UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ We will capture this circuit in Verilog, synthesize it, and evaluate the timing with STA. We need ▪ sort2 ▪ sort4_stage ▪ register stage ▪ top cell
  • 23. Sort2 cell UCSD ECE 111, Prof. Koushanfar, Fall 2017 a, b); module sorter2c(qa, qb, output [3:0] qa, qb; input [3:0] a, b; assign qa = (a > b) ? assign qb = (a > b) ? a.: b; b.: a; endmodule
  • 24. Sort4_stage UCSD ECE 111, Prof. Koushanfar, Fall 2017 module sort4_stage(q1, q2, q3, q4, a1, a2, a3, a4); output [3:0] q1, q2, q3, q4; input [3:0] a1, a2, a3, a4; wire [3:0] w1, w2, w3, w4; sorter2 S1 (w1, w2, a1, a2); sorter2 S2 (w3, w4, a3, a4); sorter2 S3 (q2, q3, w2, w3); assign q1 = w1; assign q4 = w4; endmodule sort2 sort2 sort2 max(a,b) min(a,b) a1 a2 a b a3 a4 sort4_stage
  • 25. Register stage UCSD ECE 111, Prof. Koushanfar, Fall 2017 module regblock(q1, q2, q3, q4, a1, a2, a3, a4, clk); output [3:0] q1, q2, q3, q4; reg [3:0] q1, q2, q3, q4; input [3:0] a1, a2, a3, a4; input clk; always @(posedge clk) begin q1 <= a1; q2 <= a2; q3 <= a3; q4 <= a4; end endmodule
  • 26. Toplevel UCSD ECE 111, Prof. Koushanfar, Fall 2017 module fullsorter(q1, q2, q3, q4, a1, a2, a3, a4, clk); output [3:0] q1, q2, q3, q4; a1, a2, a3, a4; input input [3:0] clk; wire wire wire [3:0] [3:0] [3:0] w1, w2, w3, w4; v1, v2, v3, v4; u1, u2, u3, u4; regblock R0(w1, w2, w3, w4, a1, a2, a3, a4, clk); v2, v3, v4, w1, w2, w3, w4); u2, u3, u4, v1, v2, v3, v4); q2, q3, q4, u1, u2, u3, u4, clk); sort4_stage S0(v1, sort4_stage S1(u1, regblock R1(q1, endmodule
  • 27. Timing Constraints UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ We will only specify the period of the clock signal ❑ This is done by adding a 'PERIOD' constraint: NET "clk" PERIOD = 20 ns HIGH 50 %; NET "clk" TNM_NET = "clk"; sorter.v (sort2, sort4_stage, register stage, toplevel) sorter.ucf + Synthesis (+translate)
  • 28. Synthesis, Translate, Map UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Next, we synthesize the circuit ▪ After MAP, the Verilog is converted into a netlist of FPGA components: LUTs, flipflops, buffers, etc .. ▪ You can look at the netlist with the 'Technology Schematic' ❑ The MAP step can also use static timing analysis on the netlist ▪ There is a separate interactive timing analysis tool
  • 29. Timing Analyzer Delay Summary Nets + Components in Longest Path gital Design II Patri UCSD ECE 111, Prof. Koushanfar, Fall 2017
  • 30. Analysis of the 'PERIOD' constraint UCSD ECE 111, Prof. Koushanfar, Fall 2017 ============================================================================ Timing constraint: NET "clk_BUFGP/IBUFG" PERIOD = 20 ns HIGH 50%; 30002 items analyzed, 0 timing errors detected. (0 setup errors, 0 hold errors) Minimum period is 9.739ns. --------------------------------------------------------------------------- 10.261ns (requirement - (data path - clock path skew + Slack: uncertainty)) Source: Destination: Requirement: Data Path Delay: Clock Path Skew: Source Clock: Destination Clock: Clock Uncertainty: R0/q4_3 (FF) R1/q3_2 (FF) 20.000ns 9.739ns (Levels of Logic = 12) 0.000ns clk_BUFGP rising at 0.000ns clk_BUFGP rising at 20.000ns 0.000ns R0/q4_3 R1/q3_2 q4, bit 3 a period measures from reg output to reg output 12 levels of logic (includes setup) 9.739 ns
  • 31. STA on Design Example (after MAP) UCSD ECE 111, Prof. Koushanfar, Fall 2017 sort2 sort2 a b min(a,b) a1 a2 a3 a4 sort4_stage registers R0/q4_3 9.739 ns sort2 max(a,b) q1 q2 q3 q4 sort4_stage registers R1/q3_2 STA will also tells us what components are in this path
  • 32. STA on Design Example (after MAP) UCSD ECE 111, Prof. Koushanfar, Fall 2017 Data Path: R0/q4_3 to R1/q3_2 Delay type Delay(ns) ---------------------------- Tiockiq 0.442 Logical Resource(s) ------------------- R0/q4_3 net (fanout=4) e 0.100 w4<3> Tilo 0.612 S0/S2/q1_cmp_gt0000121 net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7 // some lines skipped ... Starting Point net (fanout=3) e 0.100 S1/w3<1> Tilo 0.612 S1/S3/q1_cmp_gt0000145 net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O Tilo 0.612 S1/S3/q1_cmp_gt0000173 net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000 Tilo 0.612 S1/S3/q2<2>1 net (fanout=1) e 0.100 u3<2> R1/q3_2 Tioock 0.595 ---------------------------- Total 9.739ns Ending Point --------------------------- (8.439ns logic, 1.300ns route) (86.7% logic, 13.3% route)
  • 33. STA on Design Example (after MAP) UCSD ECE 111, Prof. Koushanfar, Fall 2017 Data Path: R0/q4_3 to R1/q3_2 Delay type Delay(ns) Logical Resource(s) // some lines skipped ... Logic ---------------------------- ------------------- Delays Tiockiq 0.442 net (fanout=4) e 0.100 R0/q4_3 w4<3> (LUTs) Tilo 0.612 S0/S2/q1_cmp_gt0000121 net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7 net (fanout=3) e 0.100 S1/w3<1> Tilo 0.612 S1/S3/q1_cmp_gt0000145 net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O Tilo 0.612 S1/S3/q1_cmp_gt0000173 net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000 Tilo 0.612 S1/S3/q2<2>1 net (fanout=1) e 0.100 u3<2> Tioock 0.595 R1/q3_2 ---------------------------- Total 9.739ns --------------------------- (8.439ns logic, 1.300ns route) (86.7% logic, 13.3% route)
  • 34. STA on Design Example (after MAP) UCSD ECE 111, Prof. Koushanfar, Fall 2017 Data Path: R0/q4_3 to R1/q3_2 Delay type Delay(ns) ---------------------------- Logical Resource(s) ------------------- // some lines skipped ... Net Tiockiq 0.442 R0/q4_3 Delays net (fanout=4) e 0.100 w4<3> (estimated) Tilo 0.612 S0/S2/q1_cmp_gt0000121 net (fanout=1) e 0.100 S0/S2/q1_cmp_gt00001_map7 net (fanout=3) e 0.100 S1/w3<1> Tilo 0.612 S1/S3/q1_cmp_gt0000145 net (fanout=1) e 0.100 S1/S3/q1_cmp_gt0000145/O Tilo 0.612 S1/S3/q1_cmp_gt0000173 net (fanout=6) e 0.100 S1/S3/q1_cmp_gt0000 Tilo 0.612 S1/S3/q2<2>1 net (fanout=1) e 0.100 u3<2> Tioock 0.595 R1/q3_2 ---------------------------- Total 9.739ns --------------------------- (8.439ns logic, 1.300ns route) (86.7% logic, 13.3% route)
  • 35. STA after Place and Route UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ We know the exact loading of each interconnection, so we can get a more precise timing estimate
  • 36. Analysis after Place and Route UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ We need 10ns more, just to move data around in the chip! ▪ This is not only the case for this example. In modern logic design, routing delay is typically as large as logic delay !! ======================================================================== Timing constraint: NET "clk_BUFGP/IBUFG" PERIOD = 20 ns HIGH 50%; 30002 items analyzed, 0 timing errors detected. (0 setup errors, 0 hold errors) Minimum period is 19.000ns. ---------------------------------------------------------------------- 1.000ns (requirement - (data path - clock path of Logic = 12) at 0.000ns at 20.000ns Slack: skew + uncertainty)) Source: Destination: Requirement: Data Path Delay: Clock Path Skew: Source Clock: Destination Clock: Clock Uncertainty: R0/q1_3 (FF) R1/q3_1 (FF) 20.000ns 18.979ns (Levels -0.021ns clk_BUFGP rising clk_BUFGP rising 0.000ns
  • 37. Path Analysis confirms that wires are slow .. UCSD ECE 111, Prof. Koushanfar, Fall 2017 Data Path: R0/q1_3 to R1/q3_1 Delay type Delay(ns) ---------------------------- Tiockiq net (fanout=4) // some lines skipped ... Tilo net (fanout=1) Tilo net (fanout=6) Tilo net (fanout=1) Tioock ---------------------------- Total 18.979ns 0.442 2.142 Logical Resource(s) ------------------- R0/q1_3 w1<3> 0.612 0.298 0.612 0.604 0.660 0.725 0.595 S1/S3/q1_cmp_gt0000145 S1/S3/q1_cmp_gt0000145/O S1/S3/q1_cmp_gt0000173 S1/S3/q1_cmp_gt0000 S1/S3/q2<1>1 u3<1> R1/q3_1 --------------------------- (8.631ns logic, 10.348ns route) (45.5% logic, 54.5% route)
  • 38. Summary Static Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ STA uses an analytic delay model based on ▪ intrinsic gate delay ▪ fan-out ▪ wire delay (if available) ❑ STA will automatically check timing constraints set by a user ❑ STA is a good general checking technique but may stumble into false paths ❑ Analyzing STA results (and improving them) requires an understanding of the netlist by the designer ▪ but if you want the fastest implementation possible, it may be worth it ..
  • 39. Dynamic Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Simulation is used extensively in a digital design flow for verification ❑ Since this simulation is a timed simulation, we may as well try to use intermediate design representations as simulation targets ▪ The lower-level synthesis blocks are still pin-compatible with the RTL top-level ▪ Hence, the same simulation testbench can be used ❑ Constraint-checking now becomes the role of the designer ▪ The designer needs to verify if the result of the timed simulation is still corresponding to the results of the RTL simulation
  • 40. Dynamic Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 RTL Verilog Constraints Synthesis (+translate) Post Synthesis Netlist Testbench Testbench Mapper Bitstream Generation Place and Route Post Map Netlist Post P&R Netlist Testbench Testbench
  • 41. Dynamic Timing Analysis UCSD ECE 111, Prof. Koushanfar, Fall 2017 RTL Verilog Post Synthesis Netlist Netlist in terms of FPGA components no logic delay (functional simulation) requires simulation library Post Map Netlist Post P&R Netlist Netlist in terms of FPGA components logic delay included Netlist in terms of FPGA components logic delay and wire delay included
  • 42. Synthesis and Simulation are integrated UCSD ECE 111, Prof. Koushanfar, Fall 2017 external simulator ISE (synthesis)
  • 43. How does a post-synthesis netlist look like? UCSD ECE 111, Prof. Koushanfar, Fall 2017 q2, a1, a2); module sorter2_INST_5 (q1, output [3 : 0] q1; output [3 : 0] q2; input input [3 : 0] a1; [3 : 0] a2; // .. some lines skipped defparam q1<3>1 .INIT = 4'hE; LUT2 q1<3>1 ( .I0(a2[3]), .I1(a1[3]), .O(q1[3]) ); // .. some lines skipped endmodule This is a component from an FPGA simulation library. The component has an parameter called INIT. In this case, the parameter captures the configuration of a LUT lookup table. The LUT contains an OR. a2[3] a1[3] q1[3] 0 0 0 1 0 1 0 1 1 1 1 1 = 4'hE
  • 44. LUT2 from library UCSD ECE 111, Prof. Koushanfar, Fall 2017 || (s[1]^s[0] ==0)) module LUT2 (O, I0, I1); parameter INIT = 4'h0; input I0, I1; output O; reg O; wire [1:0] s; assign s = {I1, I0}; always @(s) if ((s[1]^s[0] ==1) O = INIT[s]; else if ((INIT[0] (INIT[2] (INIT[0] O = INIT[0]; == INIT[1])) == 1) == INIT[3])) == 0) == INIT[2])) == 1) == INIT[1]) && == INIT[3]) && == INIT[2])) == 0) && (INIT[0] && (INIT[2] && (INIT[0] && (INIT[1] == INIT[3])) else if ((s[1] O = INIT[0]; else if ((s[1] O = INIT[2]; else if ((s[0] O = INIT[0]; else if ((s[0] O = INIT[1]; else O = 1'bx; endmodule
  • 45. How does a post-PAR netlist look like? UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Contains placement information and uses library components that support timing specifications q2); module sorter2_INST_5 (a1, a2, q1, input [3 : 0] a1; input [3 : 0] a2; output [3 : 0] q1; output [3 : 0] q2; LUT configuration // some lines skipped .. defparam q1_cmp_gt0000143.INIT = 16'h22B2; defparam q1_cmp_gt0000143.LOC = "SLICE_X25Y91"; X_LUT4 q1_cmp_gt0000143 ( .ADR0(a1[1]), .ADR1(a2[1]), .ADR2(a1[0]), .ADR3(a2[0]), .O(q1_cmp_gt0000143/O ) ); Placement information
  • 46. SDF Timing Information UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Timing information from Place and Route is not stored in the Post-PAR netlist, but in a separate SDF File (Standard Delay Format) ❑ The Modelsim simulator will read this SDF file together with the Verilog netlist and back-annotate the delay information from the SDF file into the netlist Verilog Netlist Place and Route SDF Data Modelsim Post-PAR Simulation Testbench Verilog Netlist with Placement Information
  • 47. Demonstration UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ (this slide shows the demo script. I will upload the sorter example on Blackboard) ❑ Include testbench with sorter design ❑ Choices for Post-nnnnn models: ▪ Post-synthesis, Post-translate, Post-map, Post-PAR model ❑ Post-PAR Static Timing Analysis ▪ Analyze -> against timing constraints ▪ Slowest path: R0/q4 to R1/q3 ▪ (if time left: cross-probe feature)
  • 48. Demonstration (2) UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Simulate Post-PAR Model ▪ Ilustrate delay & cross check with STA ❑ Show netlist ▪ Post-synthesis ▪ Isolate one component (LUT) ▪ Verify LUT location in simulation library ▪ Post-PAR ▪ Compare Post-PAR component with post-synthesis
  • 49. Summary STA and Timed Simulation UCSD ECE 111, Prof. Koushanfar, Fall 2017 ❑ Static Timing Analysis estimates the worst possible delay in a network based on network topology and components ❑ Dynamic Timing Analysis performs a timed simulation, with time delays modeled based on the intermediate synthesis results ❑ Performance optimizations will typically use static timing analysis. Specific worst-case conditions can be easily triggered using dynamic timing analysis.