Front-cover
Front-matter
Dedication
Table of Contents
About the Author
List of Examples
Foreword
Acknowledgments
Introduction
CHAPTER 1 Creating PLI Applications Using VPI Routines
CHAPTER 2 Interfacing VPI Applications to Verilog Simulators
CHAPTER 3 How to Use the VPI Routines
3.1 specification of $show_all_nets and $show_all_signals
3.2 The VPI routine library
3.3 Advantages of the VPI library
3.4 Verilog HDL objects
3.4.1 The vpiHandle data type
3.4.2 Object relationships
3.5 Obtaining object handles
3.5.1 Obtaining ahandle for a one-to-one relationship
3.5.2 Obtaining a handle for a one-to-many relationship
3.5.3 Comparing VPI handles
3.6 Accessing the arguments of asystem task/function
3.7 Printing messages from VPI applications
3.8 Accessing object properties
3.8.1 Object type properties
3.8.2 Object name properties
3.9 Reading the logic values of Verilog objects
3.10 Reading the current simulation time
3.11 Controlling simulation from PLI applications
3.12 A complete PLI application using VPI routines
3.13 Obtaining handles for reg and varibale data types
3.13.1 Acomplete PLI application for $show_all_signals
3.14 Obtaining a handle to the current hierarchy scope
3.15 Obtaining handles to multiple task/function arguments
CHAPTER 4 Details about the VPI Routine Library
4.1 PLI application performance considerations
4.2 The VPI string buffer
4.3 VPI error handling
4.4 VPI object diagrams
4.5 Obtaining handles for objects
4.5.1 Traversing one to one relationships
4.5.2 Traversing one to many relationships
4.5.3 When to use vpi_free_object() on iterator handles
4.5.4 Obtaining intermodule path object handles
4.5.5 Obtaining object handles using an object's name
4.5.6 Obtaining object handles using an object's index number
4.5.7 Obtaining handles for reg, variable and net arrays
4.6 System task and system function objects
4.6.1 System task/function arguments
4.6.2 Multiple instances of system tasks and system functions
4.6.3 Obtaining a handle for system task/function instance
4.6.4 Accessing the arguments of system tasks and system functions
4.7 Storing data for each instance of a system task/function
4.8 Traversing Verilog hierarchy using object relationships
4.9 Writing messages to files
4.10 Reading and using simulation times
4.11 User-defined invocation options
4.12 Controlling Simulations
CHAPTER 5 Reading and Modifying Values Using VPI Routines
5.1 Accessing objects which have logic values
5.2 Reading object logic values
5.2.1 Working with a 4 logic value multiple strength level system
5.2.2 The vpi_get_value() routine
5.2.3 Reading 2 state logic as 32 bit c integers
5.2.4 Reading 2 state logic as C doubles
5.2.5 Reading Verilog string values into C strings
5.2.6 Reading 4-state logic as c strings
5.2.7 Reading verilog 4-state logic vectors as encoded a val/bval pairs
5.2.8 Representing Verilog strength values in C
5.2.9 Reading verilog time variables
5.2.10 Reading verilog values without determining the verilog data type
5.3 Writing values to Verilog objects
5.4 Returning logic values of system function
5.5 Reading and writing automatic variables
5.6 Reading IEEE 1364-2001 verilog attributes
5.7 Reading IEEE 1364-1995 specparam constant attributes
5.8 Accessing verilog net, reg, memory and arrays
5.9 Reading and modifying delay values
5.9.1 Verilog objects which have delay values
5.9.4 Writing delay values into an object
CHAPTER 6 Synchronizing to Simulations Using VPI Callbacks
CHAPTER 7 Interfacing to C Models Using VPI Routines
CHAPTER 8 Creating PLI Applications Using TF and ACC Routines
CHAPTER 9 Interfacing TF/ACC Applications to Verilog Simulators
CHAPTER 10 How to Use the TF Routines
CHAPTER 11 Reading and Writing Values Using TF Routines
CHAPTER 12 Synchronizing toSimulations Using Misctf Routines
CHAPTER 13 Interfacing to C Models Using TF Routines
CHAPTER 14 How to Use the ACC Routines
CHAPTER 15 Details on the ACC Routine Library
CHAPTER 16 Reading and ModifyingValues Using ACC Routines
CHAPTER 17 Using the Value Change Link (VCL)
CHAPTER 18 Interfacing to C Models Using ACC Routines