pragmatic simulation-based verification of clock …€¢ violation of setup and hold times causes...

24
Copyright © 2006 Verilab DVCon 2006 Pragmatic Simulation-Based Verification of Clock Domain Crossing Signals and Jitter using SystemVerilog Assertions Mark Litterick (Verification Consultant) mark. litterick @ verilab .com

Upload: vodieu

Post on 30-Apr-2018

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

Copyright © 2006 Verilab DVCon 2006

Pragmatic Simulation-Based Verification

of Clock Domain Crossing Signals and

Jitter using SystemVerilog Assertions

Mark Litterick (Verification Consultant)

[email protected]

Page 2: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

2

Copyright © 2006 Verilab DVCon 2006

Introduction

Clock Domain Crossing signals require special verification techniques

• Overview of metastability : what is the problem?

• Overview of ABV : why is it appropriate?

• Practical methodology using ABV for CDC verification

– basic steps for CDC verification; independent of tools

• Analysis of SVA for synchronizer circuits

– targeted at simulation-based validation

• CDC jitter emulation

– using ABV and leveraging coverage to validate convergence

• Example project results

Page 3: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

3

Copyright © 2006 Verilab DVCon 2006

Metastability

• Violation of setup and hold times causes metastability

• Analogue effect in real-world transistor circuits

– metastable value decays to 0 or 1; but can’t predict which!

– Mean Time Between Failures statistically predicts if metastable value

will decay in time for next clock event

clk

d

q

setup

metastable

hold

eTs/Tc

TwFcFdMTBF =

Ts = settling window

Tc = settling time constant*

Tw = window of susceptibility*

Fc = destination clock frequency

Fd = data rate

* technology dependant

Page 4: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

4

Copyright © 2006 Verilab DVCon 2006

Metastability : Uncertainty

• Sampled value subject to uncertainty

– sampled values that violate hold

=> next clock in simulation; 0 or 1 clock earlier in real-life

– sampled values that violate setup (shown)

=> current clock in simulation; 0 or 1 clock later in real-life

clk

d

real q

setup

sim q

Page 5: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

5

Copyright © 2006 Verilab DVCon 2006

Metastability : Filtering

• Values propagated in simulation may get filtered in real-life

– single clock samples that violate setup or hold

=> 1-clock pulse in simulation; 1 or 0 in real-life

– two clock samples that violate setup and next hold (shown)

=> 2-clock pulse in simulation; 2, 1 or 0 in real-life

clk

d

real q

setup

hold

sim q

Page 6: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

6

Copyright © 2006 Verilab DVCon 2006

Metastability : Generation

• Values missed in simulation may get generated in real-life

– unsampled values that violate hold or next setup

=> not seen in simulation; 0 or 1-clock pulse in real-life

– unsampled values that violate hold and next setup (shown)

=> not seen in simulation; 0, 1 or 2-clock pulse in real-life

clk

d

real q

hold

setup

sim q

Page 7: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

7

Copyright © 2006 Verilab DVCon 2006

Metastability : CDC Jitter

• Combination of uncertainty, filtering and generation is called

Clock Domain Crossing Jitter

• Affects all CDC signals with independent probabilities

– including properly synchronized signals

• Real-world has unpredictable deviation from simulation

– not visible in normal RTL or Gate-Level simulations

– effect can be modeled for simulation or formal analysis

clk

sim q

d

real q

clk

sim q

d

real q

su h susuh suclk

sim q

d

real q

h su

Page 8: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

8

Copyright © 2006 Verilab DVCon 2006

Assertion-Based Verification

• Assertion-Based Verification is a methodology for improvingthe effectiveness of a verification environment

– define properties that specify expected behavior of design

– check property assertions by simulation or formal analysis

• Benefits of ABV include:

– improved error detection and reduced debug time due to observability

– improved integration due to built-in self-checking

• ABV is a good fit for CDC verification:

– low-level structural problem well encapsulated by ABV checks

– SVA temporal expressions good for describing synchronizer protocols

– CDC defects need to be identified at source to enable efficient debug

• ABV is only part of solution: require CDC methodology

Page 9: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

9

Copyright © 2006 Verilab DVCon 2006

CDC Verification Steps

1 Structural analysis to identify all CDC signals

2 Classification of CDC signal types

3 CDC signal verification

• operation of synchronizers

• usage of synchronizers

4 CDC jitter verification

• operation of complete device in presence of synchronizers

Page 10: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

10

Copyright © 2006 Verilab DVCon 2006

1. Structural Analysis

• Essential to identify all CDC signals

– commercial automated CDC tools

– script based in-house tools

– manual inspection and code reviews

• Minimize risk by using structural CDC implementation

– instantiate CDC building blocks; don’t infer from distributed code

– ensures metastable nets are not abused

– encapsulate assertions as part of building blocks, not separate checkers

– allows easier emulation of CDC jitter

• Repeat analysis for gate-level netlist and compare results

– later in design cycle

Page 11: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

11

Copyright © 2006 Verilab DVCon 2006

2. Classification of Signals

• Classify CDC signals according to intent, for example:

– regular signal (needing synchronized, e.g. interrupt)

– level or pulse-based handshake protocol (groups of signals;

some need synchronized, others need protocol checks only)

– asynchronous FIFO (used when handshake latency is unacceptable)

– static signal (e.g. only changed during configuration)

• All CDC signals should fall into an identified class

• All signal types can be checked using assertions

– synchronizer operation and usage

– associated handshake controller protocol

– static checks during operation

Page 12: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

12

Copyright © 2006 Verilab DVCon 2006

3. CDC Signal Verification

• Assert properties to check:

– correct operation of synchronizer circuits

– correct use of synchronizer circuits

• Encapsulate assertions in CDC building blocks

– no assumed relationships between clocks

– no manual specification parameters to specify relationships

– clock relationships change dynamically and between derivatives

– avoid manual instantiation of checkers and distributed code

• Validate assertions by simulation or formal analysis

– assertions presented here are aimed at dynamic validation

Page 13: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

13

Copyright © 2006 Verilab DVCon 2006

d_in d_out

clk

m

2-Flip-Flop Synchronizer

• Sampled values must be stable for 3 destination clock edges

– otherwise value may not be transported to destination clock domain

• Input changes must be sampled by destination clock

– narrow values may get transported in real-life, but not in simulation

– note: combinational logic not allowed on CDC paths

clk

sim: m

sim: d_out

real: m

real: d_out

d_in

h su hsu h

Page 14: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

14

Copyright © 2006 Verilab DVCon 2006

SVA for 2-FF Synchronizer

• p_stability check

covers values

sampled by clock

• p_no_glitch check

validates transitions

between clock edges

– in this context glitch

means any transition

that is missed by

destination clock

domain

property p_stability; @(posedge clk) !$stable(d_in) |=> $stable(d_in) [*2];endproperty

property p_no_glitch; logic data;

@(d_in) (1, data = !d_in) |=> @(posedge clk) (d_in == data);endproperty

assert property(p_stability);assert property(p_no_glitch);

Page 15: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

15

Copyright © 2006 Verilab DVCon 2006

Timing Diagram for

p_no_glitch

property p_no_glitch; logic data;

@(d_in) (1, data = !d_in) |=> @(posedge clk) (d_in == data);endproperty

clk

d_in

(data=1)

(data=0)

(data=1)

d_in

S

@(posedge d_in) $sample(d_in) == 0

@(negedge d_in) $sample(d_in) == 1

Page 16: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

16

Copyright © 2006 Verilab DVCon 2006

Dual-Clock

Asynchronous FIFO

• never write to a full FIFO

• never read from an empty FIFO

• no unknown control and status (anytime)

• no unknown data (during transfers)

• pointers gray-coded in source clock domain

• data integrity (correct values and order)

RAM

remptyWrite

Control

Read

Control

wa rinc

rdata

rclk

wen

wd

ra

rd

winc

wdata

wfull

wclk

wptr rptr

Page 17: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

17

Copyright © 2006 Verilab DVCon 2006

SVA for Data Integrity in

Asynchronous FIFO

int wcnt, rcnt;always @(posedge wclk) if (winc) wcnt = wcnt + 1;always @(posedge rclk) if (rinc) rcnt = rcnt + 1;

property p_data_integrity; int cnt; logic [15:0] data; @(posedge wclk) (winc, cnt=wcnt, data=wdata) |=> @(posedge rclk) first_match(##[0:$] (rinc & (rcnt==cnt))) ##0 (rdata==data);endproperty

assert property (p_data_integrity);

Page 18: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

18

Copyright © 2006 Verilab DVCon 2006

Timing Diagram for

p_data_integrity

wclk

A B C D

A DF C

winc

wdata

rclk

rinc

rdata

(cnt=0,data=A)

(cnt=1,data=B)(cnt=2,data=C)

(etc...)

@(posedge wclk) (winc, cnt=wcnt, data=wdata) |=>@(posedge rclk) first_match(##[0:$] (rinc & (rcnt==cnt))) ##0 (rdata==data);

@(posedge wclk) (winc, cnt=wcnt, data=wdata) |=>@(posedge rclk) first_match(##[0:$] (rinc & (rcnt==cnt))) ##0 (rdata==data);

Page 19: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

19

Copyright © 2006 Verilab DVCon 2006

CDC Convergence

• Convergence of CDC signals can cause unreliable operation of

synchronizer or downstream circuits

– even with correctly synchronized CDC signals

– independent CDC jitter causes unpredictable temporal relationships

– logic must be coded to allow for all possible jitter timing relationships

– convergence can be local (e.g. inputs to FSM) or remote (e.g. many

sequential elements in destination domain before convergence)

Page 20: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

20

Copyright © 2006 Verilab DVCon 2006

4. CDC Jitter Verification

• Identify convergent CDC signals by structural analysis

• Assert additional properties in areas of convergence

• Emulate CDC jitter using model or formal tool

• Validate assertions by simulation or formal analysis

– checks properties in rest of design, not just synchronizers

– need reasonable assertion density in areas of convergence

– formal is particularly effective for jitter convergence

=> since it can prove all possible jitter combinations

– simulation only observes actual generated scenarios

=> add functional coverage points to improve effectiveness

Page 21: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

21

Copyright © 2006 Verilab DVCon 2006

CDC Jitter Model

d_in

clk

d_out

m1 m2 m3

random@(m2 or m3)

random

clk

normal : mnormal : d_out

jitter : m2jitter : m3

d_in

jitter : d_out

d_in

clk

d_outm

always @(posedge clk) begin randcase 1: m2 <= $past(d_in); 1: m2 <= d_in; endcase m3 <= m2;endalways @(m2 or m3) randcase 1: d_out = m2; 1: d_out = m3; endcase

Page 22: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

22

Copyright © 2006 Verilab DVCon 2006

Timing Diagram for

CDC Jitter Model

always @(posedge clk) begin randcase 1: m2 <= $past(d_in); 1: m2 <= d_in; endcase m3 <= m2;end

m3d_out

m2

m3d_out

m2

clk

m2m3

d_in

m3d_out

m2

m3d_out

m2

illegal conditions are never generated; e.g. d_out

always @(m2 or m3) randcase 1: d_out = m2; 1: d_out = m3; endcase

Page 23: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

23

Copyright © 2006 Verilab DVCon 2006

Example Project Results

• Hardware graphics accelerator for mobile applications

– mature VHDL design with modifications and derivatives planned

– established VHDL testbench environment including FPGA prototype

– ABV introduced late in design cycle to subsystem level

– many CDC defects were detected by ABV using simulation

Internal I/F

CDC

Registers

Memory

External I/F

Other

RTL

Spec

Tool

SVA

Issue Type RTL Defect Type

Page 24: Pragmatic Simulation-Based Verification of Clock …€¢ Violation of setup and hold times causes metastability • Analogue effect in real-world transistor circuits – metastable

24

Copyright © 2006 Verilab DVCon 2006

Conclusion

• Practical assertion-based methodology for simulation flows

– accessible to most FPGA and ASIC teams: no special tools

– successfully applied to a number of different projects

• Structural approach to CDC building block implementation

– minimizes risk of incorrect or abused synchronizers

– few important properties on key CDC blocks reused as required

– no assumptions about clock relationships - tougher design rules

• Special assertions improve quality of dynamic validation

– static signal checks, glitch detection, multi-clock assertions

• Validate device operation in presence of CDC jitter

– identify convergence, increase assertion density, emulate jitter effects,

add functional coverage points

[email protected]