Kluwer Academic - System-On-A-Chip Verification - Methodology and Techniques

download Kluwer Academic - System-On-A-Chip Verification - Methodology and Techniques

of 393

  • date post

    30-Oct-2014
  • Category

    Documents

  • view

    102
  • download

    10

Embed Size (px)

Transcript of Kluwer Academic - System-On-A-Chip Verification - Methodology and Techniques

SYSTEM-ON-A-CHIP VERIFICATIONMethodology and Techniques

This page intentionally left blank.

SYSTEM-ON-A-CHIP VERIFICATIONMethodology and Techniques

Prakash Rashinkar Peter Paterson Leena Singh Cadence Design Systems, Inc.

KLUWER ACADEMIC PUBLISHERSNEW YORK, BOSTON, DORDRECHT, LONDON, MOSCOW

eBook ISBN: Print ISBN:

0 -3 0 6- 4 6 9 9 5-2 0 -7 9 2-3 7 2 7 9-4

2002 Kluwer Academic Publishers New York, Boston, Dordrecht, London, Moscow

All rights reserved

No part of this eBook may be reproduced or transmitted in any form or by any means, electronic, mechanical, recording, or otherwise, without written consent from the Publisher

Created in the United States of America

Visit Kluwer Online at: and Kluwer's eBookstore at:

http://www.kluweronline.com http://www.ebooks.kluweronline.com

Contents

v

ContentsAuthors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix CHAPTER 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Technology Challenges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Timing Closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2 Capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3 Physical Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.4 Design Productivity Gap . . . . . . . . . . . . . . . . . . . . . . 4 1.1.5 Time-to-Market Trends . . . . . . . . . . . . . . . . . . . . . . . 5 1.1.6 SOC Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Verification Technology Options . . . . . . . . . . . . . . . . . . . . . 7 1.2.1 Simulation Technologies . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1.1 Event-based Simulators . . . . . . . . . . . . . . . . . . 8 1.2.1.2 Cycle-based Simulators . . . . . . . . . . . . . . . . . . 8 1.2.1.3 Transaction-based Verification . . . . . . . . . . . . 9 1.2.1.4 Code Coverage . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.1.5 HW/SW Co-verification . . . . . . . . . . . . . . . . . . 9 1.2.1.6 Emulation Systems . . . . . . . . . . . . . . . . . . . . . 10 1.2.1.7 Rapid Prototyping Systems . . . . . . . . . . . . . . 10 1.2.1.8 Hardware Accelerators . . . . . . . . . . . . . . . . . . 11 1.2.1.9 AMS Simulation . . . . . . . . . . . . . . . . . . . . . . .11 1.2.2 Static Technologies . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.2.1 Lint Checking . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.2.2 Static Timing Verification . . . . . . . . . . . . . . . 12 1.2.3 Formal Technologies . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2.3.1 Theorem Proving Technique . . . . . . . . . . . . . 12 1.2.3.2 Formal Model Checking . . . . . . . . . . . . . . . . . 12 1.2.3.3 Formal Equivalence Checking . . . . . . . . . . . . 13 1.2.4 Physical Verification and Analysis . . . . . . . . . . . . . 13 1.2.5 Comparing Verification Options . . . . . . . . . . . . . . . 13 1.2.5.1 Which Is the Fastest Option . . . . . . . . . . . . . . 14 1.3 Verification Methodology . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.1 System-Level Verification . . . . . . . . . . . . . . . . . . . . 16 1.3.2 SOC Hardware RTL Verification . . . . . . . . . . . . . . . 17

vi

SOC Verification

1.3.3 SOC Software Verification . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.4 Netlist Verification . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.5 Physical Verification . . . . . . . . . . . . . . . . . . . . . . . . 18 1.3.6 Device Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.4 Testbench Creation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.4.1 Testbench in HDL . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.2 Testbench in PLI . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.3 Waveform-based . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.4 Transaction-based . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.5 Specification-based . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.5 Testbench Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.5.1 Testbench Migration from Functional to RTL . . . . 22 1.5.2 Testbench Migration from RTL to Netlist. . . . . . . . . . 22 1.6 Verification Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.7 Verification IP Reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.8 Verification Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.8.1 Top-Down Design and Verification Approach . . . . 24 1.8.2 Bottom-Up Verification Approach . . . . . . . . . . . . . 26 1.8.3 Platform-based Verification Approach . . . . . . . . . . 28 1.8.4 System Interface-driven Verification Approach . .. 29 1.9 Verification and Device Test . . . . . . . . . . . . . . . . . . . . . . . 29 1.9.1 Device Test Challenges . . . . . . . . . . . . . . . . . . . . . . 30 1.9.2 Test Strategies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 1.10 Verification Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.10.1 Project Functional Overview . . . . . . . . . . . . . . . . . 31 1.10.2 Verification Approach . . . . . . . . . . . . . . . . . . . . . . 31 1.10.3 Abstraction Levels . . . . . . . . . . . . . . . . . . . . . . . . . 32 1.10.4 Verification Technologies . . . . . . . . . . . . . . . . . . . 32 1.10.5 Abstraction Level for Intent Verification . . . . . . . 32 1.10.6 Test Application Approach . . . . . . . . . . . . . . . . . . 32 1.10.7 Results Checking . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.10.8 Functional Verification Flow . . . . . . . . . . . . . . . . . 33 1.10.9 Test Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.10.10 Testbench Requirements . . . . . . . . . . . . . . . . . . . 33 1.10.11 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 1.10.12 Testbench Elements . . . . . . . . . . . . . . . . . . . . . . . 34 1.10.13 Verification Metrics . . . . . . . . . . . . . . . . . . . . . . . 34 1.10.14 Regression Testing . . . . . . . . . . . . . . . . . . . . . . . 35 1.10.15 Issue Tracking and Management . . . . . . . . . . . . . 35 1.10.16 Resource Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 1.10.17 Project Schedule . . . . . . . . . . . . . . . . . . . . . . . . . 35

Contents

vii

1.11 Bluetooth SOC: A Reference Design . . . . . . . . . . . . . . . . 35 1.11.1 Bluetooth Device Elements . . . . . . . . . . . . . . . . . . 37 1.11.2 Bluetooth Network . . . . . . . . . . . . . . . . . . . . . . . . . 37 1.11.3 Bluetooth SOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1.11.3.1 Design Blocks . . . . . . . . . . . . . . . . . . . . . . . 39 1.11.3.2 SOC Operation . . . . . . . . . . . . . . . . . . . . . . 41

CHAPTER 2

System-Level Verification

. . . . . . . . . . . . . . . . . . . . . . . 45 2.1 System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.1.1 Functional/Behavioral Design . . . . . . . . . . . . . . . . . 47 2.1.2 Architecture Mapping . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2 System Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.2.1 Functional Verification . . . . . . . . . . . . . . . . . . . . . . . 49 2.2.2 Performance Verification . . . . . . . . . . . . . . . . . . . . . 50 2.2.3 System-Level Testbench . . . . . . . . . . . . . . . . . . . . . 50 2.2.4 Creating a System-Level Testbench . . . . . . . . . . . . . 50 2.2.5 System Testbench Metrics . . . . . . . . . . . . . . . . . . . . 51 2.2.6 Applying the System-Level Testbench . . . . . . . . . . 52 2.2.6.1 Emulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.2.6.2 Hardware Acceleration . . . . . . . . . . . . . . . . . . 54 2.2.6.3 Hardware Modeling . . . . . . . . . . . . . . . . . . . . 54 2.2.6.4 Mixed-Level Simulation . . . . . . . . . . . . . . . . 55 2.2.6.5 Design Partitioning . . . . . . . . . . . . . . . . . . . . . 56 2.2.7 System Testbench Migration . . . . . . . . . . . . . . . . . . 56 2.2.7.1 Migrating a Testbench to Different Abstraction Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.2.7.2 Migrating a System Testbench to Different Environments . . . . . . . . . . . . . . . . . . . . . . . 58 2.3 Bluetooth SOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Block-Level Verification . . . . . . . . . . . . . . . . . . . . . . . . 67 3.1 IP Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.2 Block Level Verification . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3 Block Details of the Bluetooth SOC . . . . . . . . . . . . . . . . . . 70 3.3.1 Arbiter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.3.2 Arbiter Testbench . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.3.2.1 Verilog Testbench . . . . . . . . . . . . . . . . . . . . . 77 3.3.2.2 PLI Testbench . . . . . . . . . . . . . . . . . . . . . . . . 78 3.3.2.3 Waveform-based Testbench . . . . . . . . . . . . . . 79 3.3.2.4 Testbenches with Timing . . . . . . . . . . . . . . . . 84 3.3.3 Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

CHAPTER 3

viii

SOC Verification

3.4 3.5

3.6

3.7

3.8 3.9

3.3.4 ASB Master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.3.5 ASB Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.3.6 ASB/APB Bridge