Lecture 15 – Physical Design Flow and Timing Analysis

Ryan Robucci

Table of Contents

References

Objectives

Electronic Design Tools

CAD: Computer Aided Design
CEA: Computer Aided Engineering
EDA: Electronic Design Automation

Historically,

ASIC vs FGPA Design

http://www.xilinx.com/company/gettingstarted/fpgavsasic.htm

▶︎
all
running...
Red dot
Original Image: http://www.xilinx.com/company/gettingstarted/fpgavsasic.htm

Automated Physical Design

Synthesis and Mapping

Packing

Packing is grouping of LUT and registers into CLBs

Place and Route

Place and Route is the process of placing CLBs and finding routing configuration to make required interconnections

Timing Verification vs Logical Verification

Timing Analysis and Post-Place-and-Route simulation

FPGA vs ASIC Physical Design Tools

Static Timing Analysis

Clock Period Constraint

Clock Domain Defined by Seq. Elements

Clock Network

Clock Buffer Depection Reference: S. A. Tawfik and V. Kursun, "Buffer Insertion and Sizing in Clock Distribution Networks with Gradual Transition Time Relaxation for Reduced Power Consumption," 2007 14th IEEE International Conference on Electronics, Circuits and Systems, Marrakech, Morocco, 2007, pp. 845-848, doi: 10.1109/ICECS.2007.4511123.

Timing requirements for Registers

Clock Jitter / Uncertainty

Setup and Hold Times

Clock Skew

Positive Clock Skew

Negative Clock Skew

Setup Timing Slack in Critical Path

Critical Path Timing requirement: Tclk+Tskew>TPD+TsetupT_{\rm clk} +T_{\rm skew}> {\rm TPD} + T_{\rm setup}
TskewT_{\rm skew}: Time from when clk edge occurs at an source flip-flip to when the edge occurs at a destination (e.g. clock delay 1 -clock delay 2) As defined here, positive clock skew with respect to a critical path increases setup slack, while negative skew reduces it.

Setup Time Analysis (slack)

Hold Time Analysis and Slack

Contamination Delay for Hold Time Analysis (and async. removal time)

Unconstrained Paths and CDC Clock Domain Crossing

Clock Domain Crossing (CDC) Signals

Asynchronous Inputs

Multicycle Paths

False Paths

Other Examples:
https://www.edn.com/design/integrated-circuit-design/4433229/Basics-of-multi-cycle---false-paths

Asynchronous Signals (e.g. Async Clear)

Wherever sensitivity to glitches exits, using registered output logic to generate the control signal is a good idea, otherwise ensure a hazard-free logic path:

Dynamic Timing Analysis

Dynamic Timing Analysis using Event-Driven Simulation

Verilog tools include several methods for annotating timing including use of

Async Signal Timing Checks

reference: https://www.intel.com/content/www/us/en/docs/programmable/683539/20-4/recovery-and-removal-checks.html

Dynamic vs Static Timing Analysis; Functional vs Timing Verification

Overview Static vs Dynamic Timing Analysis

FPGA vendors role in EDA

Additional Materials

SDF Timing Annotation

DELAYFILE
(SDFVERSION "3.0")
(DESIGN "BIGCHIP")
(DATE "March 12, 1995 09:46")
(VENDOR "Southwestern ASIC")
(PROGRAM "Fast program")
(VERSION "1.2a")
(DIVIDER /)
(VOLTAGE 5.5:5.0:4.5)
(PROCESS "best:nom:worst")
(TEMPERATURE -40:25:125)
(TIMESCALE 100 ps)
(CELL
(CELLTYPE "BIGCHIP")
(INSTANCE top)
(DELAY
(ABSOLUTE
(INTERCONNECT mck b/c/clk (.6:.7:.9))
(INTERCONNECT d[0] b/c/d (.4:.5:.6))
)
)
)
(CELL
(CELLTYPE "AND2")
(INSTANCE top/b/d)
(DELAY
(ABSOLUTE
(IOPATH a y (1.5:2.5:3.4) (2.5:3.6:4.7))
(IOPATH b y (1.4:2.3:3.2) (2.3:3.4:4.3))
)
)
)
(CELL
(CELLTYPE "DFF")
(INSTANCE top/b/c)
(DELAY
(ABSOLUTE
(IOPATH (posedge clk) q (2:3:4) (5:6:7))
(PORT clr (2:3:4) (5:6:7))
)
)
(TIMINGCHECK
(SETUPHOLD d (posedge clk) (3:4:5) (-1:-1:-1))
(WIDTH clk (4.4:7.5:11.3))
)
)
(CELL
. . .
)
)

Engineering Change Order (ECO)

Design Rule Checking DRC

checks at various stages as to if the physical or logic design

Cycle-Based Simulators

https://www.veripool.org/verilator/

Two-State vs Four-State Simulation

example of cycle-based 2-state simulator https://www.veripool.org/verilator/

Lecture 15 – Physical Design Flow and Timing Analysis