Digital Design Verification Course Instructor: Debdeep Mukhopadhyay - - PDF document

digital design verification
SMART_READER_LITE
LIVE PREVIEW

Digital Design Verification Course Instructor: Debdeep Mukhopadhyay - - PDF document

Digital Design Verification Course Instructor: Debdeep Mukhopadhyay Dept of Computer Sc. and Engg. Indian Institute of Technology Madras IIT Madras, Even Semester 1 1/12/2007 Course No: CS 676 Verification ??? What is meant by


slide-1
SLIDE 1

1

1/12/2007 IIT Madras, Even Semester Course No: CS 676 1

Digital Design Verification

Course Instructor:

Debdeep Mukhopadhyay Dept of Computer Sc. and Engg. Indian Institute of Technology Madras

1/12/2007 IIT Madras CS 676 2

Verification ???

  • What is meant by

“Formal Property Verification”?

  • Options :
  • 1. Formal method of verifying a

property

  • 2. Verifying of Formal Properties
  • Ambiguity of English (natural)

Language

  • Formal Specifications
  • Bugs are more costly than

transistors !!!

slide-2
SLIDE 2

2

1/12/2007 IIT Madras CS 676 3

Verification??

Process used to demonstrate that the intent

  • f design is preserved in its implementation

70% of design effort goes behind verification

DESIGN UNDER VERIFICATION

Verification Environment

1/12/2007 IIT Madras CS 676 4

Testing vs Verification

Testing verifies that the design was

manufactured properly

Verification ensures that a design meets

its functional intent

Spec. HW Design verification Manufacturing Testing Netlist Silicon Reconvergence Model: Conceptual representation of the verification process

slide-3
SLIDE 3

3

1/12/2007 IIT Madras CS 676 5

Types of Verification

Formal Property Verification

Formal Technique to verify formal properties Verifies all properties of the design satisfy the

properties

Static Property Verification

Assertion Based Verification

Properties checked during simulation Verification confined to those areas that are

encountered during simulation

Dynamic Property Verification

1/12/2007 IIT Madras CS 676 6

What is being verified?

Equivalence Checking

Mathematically proves that the origin and

  • utput of a transformation of a netlist are

logically equivalent

Synthesis Equivalence Checking RTL Or netlist RTL Or netlist

slide-4
SLIDE 4

4

1/12/2007 IIT Madras CS 676 7

Property Checking

RTL coding Interpretation Property Checking assertions Specifications RTL Assertions: Characteristics of a design

1/12/2007 IIT Madras CS 676 8

Functional Verification

Ensures that a design implements

intended functionality

Can show but not prove

RTL coding Functional Verification Specification RTL

slide-5
SLIDE 5

5

1/12/2007 IIT Madras CS 676 9

What is a test-bench?

Simulation code used to create a pre-

determined input sequence to a design and check the output response

Verification Challenge:

What input patterns are to be applied to the

DUV

What is the expected output response of a

proper design under the applied stimuli

1/12/2007 IIT Madras CS 676 10

Types of mistakes

Type I (False negative) Type II (False Positive)

Bad Design Good Design Fail Pass

slide-6
SLIDE 6

6

1/12/2007 IIT Madras CS 676 11

Verification Methodolgies

Linting Simulation: Most common tool for

verification

Approximation of reality: 0, 1, x, z Requires stimulus Responses are validated against design

intends

1/12/2007 IIT Madras CS 676 12

Event Driven Simulation

Simulators are always slow Outputs change only when an input

changes 1..1 0..0 1..1

slide-7
SLIDE 7

7

1/12/2007 IIT Madras CS 676 13

1..1 0..1 1..0

The simulator could execute only when one of the inputs change assign out = in1 ^ in2; //verilog code snipet

1/12/2007 IIT Madras CS 676 14

What if both the inputs change?

Logical world vs physical world Unknown or ‘x’ state Black box simulation

slide-8
SLIDE 8

8

1/12/2007 IIT Madras CS 676 15

Cycle Based Simulation

DFF Q1 AND S1 OR S2 XOR S3 DFF Q2 1

  • Assume Q1 holds a zero and Q2 holds a 1 initially
  • An Event Driven simulation requires 6 events and 7 models
  • If we are interested only in the final states of Q1 and Q2, the

simulation could be optimized by acting only on the events for Q1 and Q2

  • Simulation is based on clock cycles

1/12/2007 IIT Madras CS 676 16

CBS

When the circuit description is compiled

all combinatorial functions are collapsed into a single expression that can be used to determine all the ff values depending

  • n the current state of the fan-in flops

Ex: S3 = Q1 (check)

slide-9
SLIDE 9

9

1/12/2007 IIT Madras CS 676 17

During simulation, whenever the clock

input rises the value of the ff-s are updated using the input value returned by the pre-compiled combinatorial input functions

CBS requires generation of 2 events and

execution of one model

The number of logical computations

does not change

1/12/2007 IIT Madras CS 676 18

Gain when time required to perform logic

computations are smaller than that required to schedule intermediate events

Thumb rule: Large number of registers

changing state at every clock cycle

Loss: All timing and delay information is lost Assumes that setup and hold time are met Use a static timing analyzer Dynamic and static timing analysis

slide-10
SLIDE 10

10

1/12/2007 IIT Madras CS 676 19

Synchronous Asynchronous inputs, latches or multiple-

clock domains cannot be simulated accurately

1/12/2007 IIT Madras CS 676 20

Few other points about simulators

Co-simulators Avoid wave-form viewers Use assertions

slide-11
SLIDE 11

11

1/12/2007 IIT Madras CS 676 21

Coverage

Code Coverage Statement Coverage Path Coverage

1/12/2007 IIT Madras CS 676 22

Tasks of a Verification Engineer

Development of the formal property

specification

Check the consistency and

completeness of the specifications

Verifying the implementation against the

formal property specifications

slide-12
SLIDE 12

12

1/12/2007 IIT Madras CS 676 23

Example of a priority arbiter

  • mem-arbiter(input r1,r2,clk,output g1,g2)
  • Design Intent:

1.

Request r1 has a higher priority. When r1 goes high, grant g1 goes high for the next two clock cycles

2.

When none of the request lines are high, g2 is high in the next clock cycle

3.

The grant lines g1 and g2 are mutually exclusive

1/12/2007 IIT Madras CS 676 24

Writing Formal Specifications

Lots of languages Temporal Languages

Propositional logic Temporal Operators: truth of propositions

  • ver time

Concept of time

slide-13
SLIDE 13

13

1/12/2007 IIT Madras CS 676 25

Linear Temporal Language (LTL)

X: The Next Time Operator

The property Xφ is true at a state if φ is true

in the next cycle, where φ may be another temporal property or boolean property.

F: The Future Operator

The property Fφ is true at a state if φ is true

at some time in the future

1/12/2007 IIT Madras CS 676 26

LTL (contd.)

G: Global Operator

The property Gφ is true at a state if the

property φ is always true

U: Until Operator

The property φUΨ is true at a state, if Ψ is

true at some future state t, and φ is true at all states leading to t.

slide-14
SLIDE 14

14

1/12/2007 IIT Madras CS 676 27

Property 1 in LTL

  • 1. Request r1 has a higher priority.

When r1 goes high, grant g1 goes high for the next two clock cycles

LTL Spec: G[ r1 => Xg1 Λ XXg1] G : The property must hold at all states

1/12/2007 IIT Madras CS 676 28

Property 2 & 3 in LTL

2.

When none of the request lines are high, g2 is high in the next clock cycle:

3.

The grant lines g1 and g2 are mutually exclusive:

1 2 2

[ ] G r r Xg ¬ ∧ ¬ ⇒

1 2

[ ] G g g ¬ ∨ ¬

slide-15
SLIDE 15

15

1/12/2007 IIT Madras CS 676 29

Specification of correctness?

Very difficult to check. No formal property to check against However we may check for contradiction

among the properties

1/12/2007 IIT Madras CS 676 30

In-consistencies

G[ r1 => Xg1 Λ XXg1]

1 2 2

[ ] G r r Xg ¬ ∧ ¬ ⇒

Environment: r1 is high at time t but low at time (t+1), r2 is low at time t and (t+1) Hence, g1 should be high at time (t+2), by property 1 g2 should be high at time (t+2), by property 2 Contradicts property 3. Model: GAME Environment Wins

1 2

[ ] G g g ¬ ∨ ¬

slide-16
SLIDE 16

16

1/12/2007 IIT Madras CS 676 31

Removing the In-consistency

G[ r1 => Xg1 Λ XXg1]

Environment: r1 is high at time t but low at time (t+1), r2 is low at time t and (t+1) Hence, g1 should be high at time (t+2), by property 1 g2 should be low at time (t+2), by property 2 Does not contradict property 3. Model: GAME Environment Does not Win

1 2

[ ] G g g ¬ ⇒

1 2

[ ] G g g ¬ ∨ ¬

1/12/2007 IIT Madras CS 676 32

Is the specification complete?

Chicken and egg

problem

Formal vs structural

coverage

Look back at: G[ r1 => Xg1 Λ XXg1]

1 2

[ ] G g g ¬ ⇒

Ask the following questions

  • 1. Is g1 ever high?
  • 2. Is g2 ever high?
  • 3. Is r1 required?
  • 4. Is r2 required?

1 1 1

[ ] G r X r XX g ¬ ∧ ¬ ⇒ ¬

1 2

[ ] G g g ¬ ∨¬

slide-17
SLIDE 17

17

1/12/2007 IIT Madras CS 676 33

Design under verification

g1 g2 FF FF r1 r2

1/12/2007 IIT Madras CS 676 34

Verilog Code Snipet

module arbiter(r1,r2,g1,g2,clk);

input clk, r1, r2;

  • utput g1, g2;

reg g1, g2; always @(posedge clk) begin g2<=r2 & ~r1 & ~g1; g1<=r1; end endmodule

slide-18
SLIDE 18

18

1/12/2007 IIT Madras CS 676 35

How do you verify??

  • Assertion based verification (ABV)

1.

Simulation based verification

2.

More close to the designer (as he has to learn less new techniques)

3.

More close to the old simulation framework

  • Formal based verification (FBV)

1.

Formal techniques to verify properties

2.

Mathematical Techniques involved

1/12/2007 IIT Madras CS 676 36

ABV

DUV

r1 g2 g1 r2

Master 1 Master 2 Clk gen DUT interface Test Bench Test Generation Engine Property Checker Simulation Platform Property Specs

slide-19
SLIDE 19

19

1/12/2007 IIT Madras CS 676 37

Design under verification

FF FF g1=0 g2=0 r1=0 r2=0 Contradicts the second property that g2 is default grant!!!

1/12/2007 IIT Madras CS 676 38

Hurdles of ABV

Generating the test cases which lead to

all the scenarios

Directed Testing vs Randomized Testing We shall see one such language, called

“e” in this course

slide-20
SLIDE 20

20

1/12/2007 IIT Madras CS 676 39

FBV (FSM Extraction)

FF FF r1 r2

g1 g2

1x 00 01 00 01 10 11 1x 0x 0x 01 00 1x 1x State labels : g1, g2 Input Labels: r1, r2 DUV FSM models

1/12/2007 IIT Madras CS 676 40

FBV (contd.)

00 01 10 11 1x 0x 0x 01 00 1x 1x Formal Properties Model Checker 00 State labels : g1, g2 Input Labels: r1, r2