Signalscan Waves User Guide

Transcription

Signalscan Waves User Guide
Signalscan Waves User Guide
Product Version 6.5
June 2000
 1994-2000 Cadence Design Systems, Inc. All rights reserved.
Printed in the United States of America.
Cadence Design Systems, Inc., 555 River Oaks Parkway, San Jose, CA 95134, USA
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this
document are attributed to Cadence with the appropriate symbol. For queries regarding Cadence’s trademarks,
contact the corporate legal department at the address shown above or call 1-800-862-4522.
All other trademarks are the property of their respective holders.
Restricted Print Permission: This publication is protected by copyright and any unauthorized use of this
publication may violate copyright, trademark, and other laws. Except as specified in this permission statement,
this publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted, or
distributed in any way, without prior written permission from Cadence. This statement grants you permission to
print one (1) hard copy of this publication subject to the following conditions:
1. The publication may be used solely for personal, informational, and noncommercial purposes;
2. The publication may not be modified in any way;
3. Any copy of the publication or portion thereof must include all original copyright, trademark, and other
proprietary notices and this permission statement; and
4. Cadence reserves the right to revoke this authorization at any time, and any such use shall be
discontinued immediately upon written notice from Cadence.
Disclaimer: Information in this publication is subject to change without notice and does not represent a
commitment on the part of Cadence. The information contained herein is the proprietary and confidential
information of Cadence or its licensors, and is supplied subject to, and may be used only by Cadence’s customer
in accordance with, a written agreement between Cadence and its customer. Except as may be explicitly set
forth in such agreement, Cadence does not make, and expressly disclaims, any representations or warranties
as to the completeness, accuracy or usefulness of the information contained in this document. Cadence does
not warrant that use of such information will not infringe any third party rights, nor does Cadence assume any
liability for damages or costs of any kind that may result from use of such information.
Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in
FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
Signalscan Waves User Guide
Contents
1
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Overview of Signalscan Waves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sample Signalscan Waves Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Opening Signalscan Waves from the Affirma SimVision Analysis Environment . . . .
Finding an Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grouping Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining an Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting a Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Viewing Sequence Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining a Mnemonic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating a Register Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Control—Go To Submenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exiting Signalscan Waves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Remaining Chapters in this Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
Invoking Signalscan Waves
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Automatically Restoring Your Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Invoking Signalscan Waves from SimControl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding New Objects to Existing Waveform Windows . . . . . . . . . . . . . . . . . . . . . . . . .
Invoking Signalscan Waves from the Operating System . . . . . . . . . . . . . . . . . . . . . . . . .
Invoking Signalscan Waves on UNIX Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Invoking Signalscan Waves on Windows Platforms . . . . . . . . . . . . . . . . . . . . . . . . . .
Initial Signalscan Waves Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
12
12
13
14
14
14
15
16
17
18
19
21
22
22
2
25
25
27
28
29
33
34
Product Version 6.5
Signalscan Waves User Guide
3
Navigating Through Your Design
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Traversing Your Design Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Current File Field and Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Current Instance Field and Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bookmarks Field and Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instances Pane and Instances Filter Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Variables Pane, Nodes/Variables Filter Field and Variable Type Buttons . . . . . . . . . .
Groups Field and Drop-Down List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
To Add Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Busses with Bus Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus Template Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bus Template Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Displaying Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Displaying All Probed Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Displaying Selected Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
36
38
39
40
41
42
42
42
43
43
44
45
45
45
4
The Waveform Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Overview of The Waveform Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Waveform Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Viewing Signals in the Waveform Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Predefined Markers in the Waveform Pane . . . . . . . . . . . . . . . . . . . . . . . .
Defining and Using Custom Markers in the Waveform Pane . . . . . . . . . . . . . . . . . . .
Using the Zooming Features of the Waveform Window . . . . . . . . . . . . . . . . . . . . . . .
The Time Status and Times Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TimeA Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interactive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cursor1 and Cursor2 Markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Multi-List Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The Names Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting Objects in the Names Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reordering Objects in the Names Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Searching for Objects in the Names Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
3
47
48
48
49
53
54
54
56
57
57
58
60
61
63
63
Product Version 6.5
Signalscan Waves User Guide
Adding Comments to the Names Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Changing the Height of an Analog Object in the Names Pane . . . . . . . . . . . . . . . . . . 64
Changing the Names Pane Width . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
The Button Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
The Menu Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Control Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Format Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Options Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Windows Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Help Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Defining and Using Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Defining and Using Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Defining an Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Scrolling the Events Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Modifying an Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Finding an Event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Defining and Using Busses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Creating a User-Defined Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Modifying a Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Viewing Components of a Bus in the Waveform Window . . . . . . . . . . . . . . . . . . . . . 102
Using the Signalscan Waves Cause Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Invoking from the Waveform Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Defining and Using Constants and Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Defining and Using Mnemonics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Defining a Mnemonic Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Defining a Mnemonic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Modifying a Mnemonic Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Applying a Mnemonic to a Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Viewing Waveforms in Sequence Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Sequence Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Using the Multivalue Indication Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
June 2000
4
Product Version 6.5
Signalscan Waves User Guide
Viewing Multi-Dimensional Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Printing the Waveform Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5
Defining Design Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Overview of the Register Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiple Register Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
View-Only Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TimeA Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Current Sim Time Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RegPage Name and Selected Variable Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selection Mode and Text Mode Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Previous and Next Value Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Define Mode Interactive Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multi-List Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Register and Multi-List Pane Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating and Customizing a Register Page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selecting Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grouping and Ungrouping Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding Simulation Objects to the Register Page . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifying Object Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Adding Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifying Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Moving Text and Simulation Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Changing the Font Size of Text Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rearranging Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deleting Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
121
122
122
123
123
123
123
124
124
126
126
126
127
129
129
129
130
130
130
130
131
131
131
6
Analog Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Using Overlay Groups with Analog Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating an Overlay Group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modifying Overlay Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Converting Overlaid Signals to Stacked Signals . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
5
133
133
134
134
Product Version 6.5
Signalscan Waves User Guide
Printing Overlay Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Analog Waveform Height Bracket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zooming and Panning Analog Signals and Overlay Groups . . . . . . . . . . . . . . . . . . . . .
Using the Vertical Zoom Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Horizontal Zoom Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Area Zoom Feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Panning Analog Waveforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Customizing the Display of Analog Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Data Points and Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimum and Maximum Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Display Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saving Analog Display Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Performing Analog-to-Digital Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating and Using Analog Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Escaping Special Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Expressions with Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Specifying Expressions in a Do-File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Expression Example Using Analog to Digital Function . . . . . . . . . . . . . . . . . . . . . .
Performing Measurements on Analog Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Value at Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Slope For Values at Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Minimum, Maximum, and Peak-to-Peak Between Cursors . . . . . . . . . . . . . . . . . . .
Rise/Fall Time at Cursor1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Average Values Between Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RMS Values Between Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
134
134
135
135
136
136
137
137
137
138
138
139
141
141
143
144
144
145
145
146
147
148
150
151
153
155
7
Transaction-Based Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Transaction Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hierarchical Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Multiple Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Transactions from Verilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining Basic Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining Bounded and Hierarchical Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
6
157
159
159
161
161
163
Product Version 6.5
Signalscan Waves User Guide
Assigning Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TVM Declaration/Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Defining Multi-Threaded TVMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Identifying Related Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
164
165
165
168
8
Viewing Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Basic Transaction Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction Hierarchies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Locating Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
The error_count Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
174
175
176
178
179
9
Recording Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Transaction Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Instances: TVMs, Tests, and DUVs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Threads: TVM Threads, Test Threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Basic Property Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Type and Format Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpolated Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Searching Property Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction Recording System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRST Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Module Instance System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Thread System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Transaction System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
7
182
182
182
182
183
183
183
183
184
185
187
187
188
191
192
192
192
195
198
203
Product Version 6.5
Signalscan Waves User Guide
Transaction Tag System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Property Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Utility System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Error Rollup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Verilog Plus Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Logging Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A
Saving and Restoring Your Configuration
210
212
213
215
216
216
216
. . . . . . . . . . . . . . . . . . . . 218
Do-Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.signalscanrc File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saving Your Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Restoring Your Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
218
218
218
220
B
Signalscan Waves Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Lexical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Command Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. (period) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
? ................................................................
about . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ali[as] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
always . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cen[ter] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
clo[se] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
col[lapse] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
con[tinue] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cop[y] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cre[ate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
def[ine] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
8
221
221
221
221
221
222
224
224
224
225
225
225
225
226
226
227
227
Product Version 6.5
Signalscan Waves User Guide
del[ete] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
desel[ect] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dis[play] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
dup[licate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
exe[cute] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
exp[and] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
force . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
gen[erate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
hide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inc[lude] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
init[iate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
inv[ert] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
me[rge] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
mov[e] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
pa[ste] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
print . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
pwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
quit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rel[ease] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ren[ame] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
rep[lace] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
reveal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
sel[ect] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
show . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
June 2000
9
233
233
234
234
234
234
234
235
235
235
235
235
236
236
236
236
236
237
237
237
237
237
238
238
238
240
240
240
240
240
241
241
241
241
241
242
Product Version 6.5
Signalscan Waves User Guide
source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ste[p] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
sto[p] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
term[inate] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
topl[evel] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
undo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
upscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
242
243
243
243
243
243
243
243
244
244
C
Hot Keys, Colors, and Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Hot Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Custom Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Using the Define Buttons Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Entering a Signalscan Waves Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Custom Colors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Colors When Zooming Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
245
246
246
248
249
249
250
Index.............................................................................................................................. 252
June 2000
10
Product Version 6.5
Signalscan Waves User Guide
1
Introduction
This chapter provides you with a brief overview of the Signalscan Waves waveform viewing
tool and includes a simple example of a Signalscan Waves session. This chapter also
contains a brief description of the contents of each of the remaining chapters in this manual.
This chapter contains the following sections:
■
“Overview of Signalscan Waves” on page 12
■
“Sample Signalscan Waves Session” on page 12
■
“Remaining Chapters in this Manual” on page 22
June 2000
11
Product Version 6.5
Signalscan Waves User Guide
Introduction
Overview of Signalscan Waves
Signalscan Waves is a powerful tool for analyzing your simulation results and debugging your
designs. Its high-performance, waveform viewing technology lets you analyze large amounts
of complex simulation data both quickly and accurately.
The reason for the high performance level of Signalscan Waves is its use of the SST2
Signalscan Turbo 2 (SST2) database format. You can open SST2 databases from different
simulations and view them simultaneously. You can use a simulator to generate an SST2
database, or you can use Signalscan Waves to automatically translate a VCD file into an
SST2 database file. For design flows that rely on VCD files, Signalscan Waves can also
translate an SST2 database file into the VCD format.
You can use Signalscan Waves interactively with the simulator by using the AffirmaTM
SimVision analysis environment, which lets you view the waveforms of your simulation results
as they are generated, or you can view a post-simulation results database. You can also view
results from several previous simulations together in the same Waveform window with data
from a currently running simulation, so that you can quickly and easily compare current and
past results.
Sample Signalscan Waves Session
This session provides you with a simple example that shows you how to open and analyze
an SST2 database in Signalscan Waves.
June 2000
12
Product Version 6.5
Signalscan Waves User Guide
Introduction
Opening Signalscan Waves from the Affirma SimVision Analysis
Environment
Click the Waveform View button in the upper-right corner of the SimControl
window. The Signalscan Waves Waveform window appears, showing the
waveforms of your current simulation results, as shown in Figure 1-1 on page 13.
Figure 1-1 The Signalscan Waves Waveform Window
Time Status Pane
Times
Pane
Multi-List
Pane
Waveform
Pane
Names Pane
Horizontal Resize Bars
Objects that are selected in the Source File Browser in the SimControl window appear in the
Waveform window, as shown in Figure 1-1 on page 13. If you select other objects in the
SimControl window and then click the Waveform View button again, the newly selected
objects appear in the same Waveform window.
The names of the objects and their current values are listed in the Names pane of the
Waveform window, and their waveforms are shown in the Waveform pane.
June 2000
13
Product Version 6.5
Signalscan Waves User Guide
Introduction
The Time Status pane shows the time value of the TimeA marker, the simulation end time,
and the difference in time between the Cursor1 and Cursor2 markers.
The TimeA marker synchronizes the Waveform window and the Register window at the same
simulation time value. The values of the objects in the Names pane and the values of any
objects that are displayed on Register pages are the values that those objects have at TimeA.
Cursor1 and Cursor2 are used as temporary markers in the Waveform pane for functions
such as zooming and performing measurements.
See “The Time Status and Times Panes” on page 54 for instructions on how to reset TimeA,
Cursor1, and Cursor2.
Finding an Object
Choose Edit—Find and Edit—Find Next to search for an object name in the Names pane.
Grouping Objects
Objects in the Names pane are organized into groups. A group is a collection of objects that
are displayed together. You can define multiple groups, and you can place any object any
number of times in one or more groups.
By default, Signalscan Waves creates a Group A for you when you first open a Waveform
window. You can rename this group and create new groups. You can select objects and copy
and paste them or drag them into new groups.
To scroll the Waveform window display to a particular group, change the Multi-List pane (as
shown in Figure 1-1 on page 13) to list Groups and click on the name of the group that you
want to see.
See “Defining and Using Groups” on page 95 for more information on grouping objects for
viewing.
Defining an Event
An event is a set of objects that have a specific set of values. You can easily navigate to each
simulation time at which a particular event occurs.
To define an event:
1. In the Waveform window, click on an object in the Names pane.
June 2000
14
Product Version 6.5
Signalscan Waves User Guide
Introduction
2. Choose Edit—Create—Event to create the event.
An Events window appears.
The event event001 is created using the selected object and its value at Cursor1, as
shown in Figure 1-2 on page 15.
Figure 1-2 Events Window
To scroll the Waveform window to display the next occurrence of an event, change the
Multi-List pane to list Events and click on the name of the event that you want to find.
See “Defining and Using Events” on page 96 for information on how to change the name,
value, and composition of an event.
Setting a Marker
You can define markers to mark locations in your simulation that you want to quickly return to
later.
To create a marker, choose Edit—Create—Marker. A form appears showing the Cursor1
time as the default marker time, as shown in Figure 1-3 on page 16.
June 2000
15
Product Version 6.5
Signalscan Waves User Guide
Introduction
Figure 1-3 Creating a Marker
This form lets you specify a name for the marker and edit the time. The marker is placed at
the marker time that you specify.
To scroll the Waveform window to display a particular marker, change the Multi-List pane to
list Markers and click on the name of the marker that you want to view.
See “Defining and Using Custom Markers in the Waveform Pane” on page 53 for more
information on creating and using markers.
Viewing Sequence Time
Sequence Time lets you view and debug activities that conceptually take place at the same
simulation time, but are actually executed in a specific order by the simulator.
Sequence Time works with another feature, Multivalue Indication , which marks single time
units during which an object changes value more than once. Multivalue Indication points on
a waveform are identified by pink dots. See Figure 4-41 on page 113 and Figure 4-5 on
page 55 for examples of these points.
To expand a time point to see the true sequential ordering of events:
1. Click on a pink dot in the Waveform window.
This positions Cursor1 at the dot.
June 2000
16
Product Version 6.5
Signalscan Waves User Guide
Introduction
2. Choose View—Expand Sequence Time—At Cursor1 .
The time point expands to show the sequence of all of the events that take place at that
simulation time, as shown in Figure 1-4 on page 17.
Figure 1-4 Expanded Sequence Time
For more information about Sequence Time and Multivalue Indication, and for instructions on
how to record sequence time so that you can expand it in Signalscan Waves, see “Viewing
Waveforms in Sequence Time” on page 112.
Creating a Bus
To create a bus:
1. In the Names pane, select the objects that you want to put together as a bus.
June 2000
17
Product Version 6.5
Signalscan Waves User Guide
Introduction
2. Click your middle mouse button in the Names pane where you want to place the new bus
in the waveform display.
3. Select Edit—Create—Bus .
The Make Bus From Selected Variable(s) form appears, as shown in Figure 1-5 on
page 18.
Figure 1-5 Defining a Bus
4. Click OK .
For more information about modifying and using busses, see “Defining and Using Busses” on
page 99.
Defining a Mnemonic
Signalscan Waves lets you define mnemonics for any values, and display those mnemonics
in the Waveform and Register windows.
To define a mnemonic:
1. Select Options—Define Mnemonic Maps .
The Define Mnemonic Mapping form displays, as shown in Figure 1-6 on page 19.
June 2000
18
Product Version 6.5
Signalscan Waves User Guide
Introduction
2. Click anywhere in the Value pane, and enter a value.
3. Press the Tab key, or click anywhere in the Mnemonic pane, and enter the mnemonic for
that value.
Figure 1-6 Define Mnemonic Mapping Form
Value Pane
Mnemonic Pane
To apply a mnemonic to a bus:
1. Select a bus in the Names pane of the Waveform window.
2. Choose Format—Variable Radix .
3. Select a mnemonic map name from the bottom of the list of options on the pull-down
menu.
For more information on defining mnemonics and applying them to busses, see “Defining and
Using Mnemonics” on page 107 and “Applying a Mnemonic to a Bus” on page 111.
Creating a Register Page
Register pages show customized views of your design. To create a Register page:
June 2000
19
Product Version 6.5
Signalscan Waves User Guide
Introduction
1. Select the objects that you want to show on your Register page from the Names pane of
the Waveform window.
2. Choose Edit—Create—Register Page .
3. A Create Register form appears, as shown in Figure 1-7 on page 20.
Figure 1-7 Register Page Form
4. Type rpage1 as the register name and click OK .
5. A Register page, named rpage1, is created and is displayed in the Register window, as
shown in Figure 1-8 on page 21. The selected objects are listed in the Register pane of
this window.
June 2000
20
Product Version 6.5
Signalscan Waves User Guide
Introduction
Figure 1-8 Register Window
Multi-List
Pane
Register Pane
The register values are displayed for the time that the TimeA marker indicates. When you
move the TimeA marker in the Waveform window, these register values update automatically.
The Register window can display multiple Register pages. To switch between pages, click on
the name of the Register page that you want to view in the Multi-List pane on the right-hand
side of the Register window.
Using the Control—Go To Submenu
The Control—Go To menu option appears on several Signalscan Waves windows: the
Waveform window, the Source Code window, the Register window, and the Design Browser.
The Control—Go To menu option activates a submenu that contains the following options:
Table 1-1 Control—Go To Submenu Options
Option
Description
Cause
Displays the cause of the selected register,
variable, or net value in the Source Code window.
See “Using the Signalscan Waves Cause Finder”
on page 102 for more information.
June 2000
21
Product Version 6.5
Signalscan Waves User Guide
Introduction
Table 1-1 Control—Go To Submenu Options
Option
Description
Definition
Displays the definition of the selected variable in the
Source Code window.This option only appears if
you have a standalone Signalscan license and are
not running Signalscan Waves with the Affirma
Simvision analysis environment.
Schematic
Displays the selected structure in the Schematic
Tracer. Schematic Tracer is not available in this
release.
Exiting Signalscan Waves
To close the session or exit from Signalscan Waves:
1. Choose File—Exit from any Signalscan Waves window.
A form displays the message:
Are you sure you want to exit Signalscan Waves?
2. Click Exit .
To save this particular Signalscan Waves configuration (groups, markers, events, window
positions, and many other features), choose Save Do-File instead of Exit . See Appendix A,
“Saving and Restoring Your Configuration,” for more information on saving and restoring
Signalscan Waves configurations.
If you want to exit Signalscan Waves at the same time that you exit the Affirma SimVision
analysis environment:
1. Choose Options—Preferences in the SimVision SimControl window.
2. Choose the box at the top of the form that is labeled:
On exiting SimControl, also exit Waveforms
Remaining Chapters in this Manual
This manual contains the following remaining chapters:
June 2000
22
Product Version 6.5
Signalscan Waves User Guide
Introduction
Chapter 2, “Invoking Signalscan Waves,” describes the different ways in which you can invoke
Signalscan Waves.
Chapter 3, “Navigating Through Your Design,” describes how you can traverse your design
hierarchy and select objects for viewing in a Waveform window if you are not using the Affirma
SimVision analysis environment to do this.
Chapter 4, “The Waveform Window,” describes how to use a Waveform window to find signals
and events, place time markers, rearrange signals, view Sequence Time, define busses,
define mnemonics, and print waveforms.
Chapter 5, “Defining Design Views,” describes how to use the Register window to create
customized views of your design on register pages.
Chapter 6, “Analog Analysis,” describes how you can manipulate analog signals and perform
various measurements and calculations on them.
Chapter 7, “Transaction-Based Verification” provides you with an introduction to
transaction-based verification — a process that lets you simulate and debug your designs at
a high level of abstraction.
Chapter 8, “Viewing Transactions” describes how to display transactions along with signals
and scopes in your design.
Chapter 9, “Recording Transactions” describes how to collect transaction information for your
design.
Appendix A, “Saving and Restoring Your Configuration,” tells you how to create and use
Do-Files to save and restore a particular Signalscan Waves configuration.
Appendix B, “Signalscan Waves Commands,” gives the syntax of the Signalscan Waves
commands that you can enter in a Do-File.
Appendix C, “Hot Keys, Colors, and Buttons,” lists the Signalscan Waves keyboard shortcuts
and describes how to customize the Signalscan Waves colors and button bars.
June 2000
23
Product Version 6.5
Signalscan Waves User Guide
2
Invoking Signalscan Waves
You can invoke Signalscan Waves from the SimControl window in the Affirma™ SimVision
analysis environment or directly from your operating system. This chapter describes the
methods by which you can invoke the Signalscan Waves waveform viewer, both from the
Affirma SimVision analysis environment and from your operating system.
This chapter contains the following sections:
■
“Automatically Restoring Your Configuration Settings” on page 25
■
“Invoking Signalscan Waves from SimControl” on page 25
■
“Invoking Signalscan Waves from the Operating System” on page 28
June 2000
24
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Automatically Restoring Your Configuration Settings
Regardless of the method by which you invoke Signalscan Waves, the program always tries
to execute an optional Do-File, .signalscanrc, from the current directory when you first
invoke it. If it cannot find a .signalscanrc file in the current working directory, Signalscan
Waves looks in your home directory. If the file does not exist, Signalscan Waves starts with
the default appearance and color scheme.
See Appendix A, “Saving and Restoring Your Configuration,” for more information on using
Do-Files to save and restore Signalscan Waves configurations.
Invoking Signalscan Waves from SimControl
You invoke Signalscan Waves from the SimControl window of the Affirma SimVision analysis
environment by selecting the objects whose waveforms you want to view from the Signal Flow
Browser and then performing one of the following operations from the SimControl window:
■
Select Wave Trace from the Source File Browser pop-up menu.
Press the right mouse button in the Source File Browser window to display the Source
File Browser pop-up menu, shown in Figure 2-1 on page 26, and choose the Wave
Trace menu option.
June 2000
25
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Figure 2-1 Select Wave Trace from the Source File Browser Pop-Up Menu
The simulator probes the selected items if it has not already done so, the Signalscan
Waves Waveform window opens, and the waveforms of the selected items appear in the
Waveform window, as shown in Figure 2-2 on page 27.
Note: If you do not select any items in the Signal Flow Browser, the Wave Trace pop-up
menu option is grayed out, and you cannot use it to invoke Signalscan Waves.
■
Choose Tools—Waveform from the SimControl main menu.
June 2000
26
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
The Signalscan Waves Waveform window opens and displays the waveforms of the
selected items, as shown in Figure 2-2 on page 27.
Note: If you do not select any items in the Signal Flow Browser before you use the
Tools—Waveform menu option, an empty Waveform window appears.
■
Click the Waveform View button.
You can click the Waveform View button at the top of the SimControl, Navigator,
Watch, or Signal Flow Browser window. The Signalscan Waves Waveform window
opens and displays the waveforms of the selected items, as shown in Figure 2-2
on page 27.
Note: If you do not select any items before you click the Waveform View button, an
empty Waveform window appears.
Adding New Objects to Existing Waveform Windows
After you invoke Signalscan Waves using one of the above operations, a Signalscan Waves
Waveform window appears, containing the waveforms of all of the items that you have
selected, as shown in Figure 2-2 on page 27.
Figure 2-2 Items Selected in SimControl Appear in the Waveform Window
SimControl Window
June 2000
Signalscan Waves Waveform Window
27
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Once you open a Signalscan Waves Waveform window, you can use any one of the
invocation operations that are listed in this section to add selected items to the open
Waveform window at any time during your session. However, you must set the insertion
marker (click your middle or right mouse button) in the Names pane of the open Waveform
window at the location at which you want to add the new items before you perform the
invocation operation.
Signalscan Waves adds any new items that you select just before the insertion marker in the
Waveform window. You can then use groups and comments to organize the different sets of
items that you add to the Waveform window. See Chapter 5, “Defining Design Views,” for
instructions on how to do this.
Items that you select in any Affirma SimVision analysis environment window are also
simultaneously selected (highlighted) in the Signalscan Waves Waveform window if you have
previously added them to the Waveform window. Similarly, items that you select in the Names
pane of the Waveform window are simultaneously selected in any Affirma SimVision analysis
environment windows in which those items appear.
Note: If you run a simulation for some time before you set probes on some items, and then
you view those items in Signalscan Waves, values prior to the times at which you set the
probes display as undefined in Signalscan Waves.
Invoking Signalscan Waves from the Operating System
You can enter a command line or click a desktop button to invoke Signalscan Waves directly
from your operating system, without using the Affirma SimVision analysis environment. When
you start Signalscan Waves from your operating system, the Waveform window appears, as
it does when you use the Affirma SimVision analysis environment to start Signalscan Waves.
However, if you have a standalone Signalscan license, a Control window appears from which
you can connect to a simulation database file and perform other related tasks. Figure 2-3 on
page 29 shows the Signalscan Waves Control window that opens when you invoke
Signalscan Waves directly and you only have the standalone Signalscan Waves license.
June 2000
28
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Figure 2-3 Signalscan Control Window
The following sections describe the files that you must use to invoke Signalscan Waves
directly from the operating system and describe how to invoke Signalscan Waves on UNIX
and Windows NT platforms.
Invoking Signalscan Waves on UNIX Platforms
To invoke Signalscan Waves from your UNIX command prompt, use the following command
syntax:
% signalscan [options ] [input_filename ...]
The following sections explain the signalscan command-line options and describe the
input files that you can specify with the signalscan command.
Signalscan Waves Command-Line Options
To see a list of the options that you can use with the signalscan command, you can, enter:
June 2000
29
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
% signalscan -h
Table 2-1 on page 30 describes these options:
Table 2-1 Signalscan Waves Command-Line Options
Option
Description
-analog
Use the default analog configuration. The
differences between this and the digital (default)
configuration are as follows:
■
Analog overlay in the Design Browser is turned
on by default.
■
Grid in the Waveform Window is turned on by
default.
■
Default button bar configuration in the
Waveform window is different.
-auto
Automatically convert input files to
filename .dsn and filename .trn without
prompting for confirmation or a new filename.
-big
Run the graphical user interface using larger fonts.
-black or -blackwhite
Display the graphical user interface in black and
white.
-compress
Translate a VCD file to the compressed SST2
database file format.
-digital
Use the default configuration.
-do do_filename
Execute the specified Do-File. See Appendix A,
“Saving and Restoring Your Configuration,” for
instructions on how to create and use Do-Files.
-gray or -grey
Display the graphical user interface in grayscale.
-h or -help
Display a list of the signalscan command-line
options.
-hidectrlwin
Hide the Control window.
-noposition
Do not use the windows manager’s default window
position.
June 2000
30
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Table 2-1 Signalscan Waves Command-Line Options, continued
Option
Description
-position
Use the windows manager’s default window
position. This is the default.
-product affirma
Start Signalscan Waves using the license provided
with the Affirma SimVision analysis environment,
rather than with a standalone Signalscan license.
-sequence
Translate a VCD file to the SST2 database file
format with sequence information.
-small
Run the graphical user interface with the default
font size.
-sst sst2_database_name
Specify the name of the output SST2 database, if
you are converting a database to SST2 format. The
resulting files are called
sst2_database_name .trn and
sst2_database_name .dsn.
-stdio
Read commands from the standard input in
addition to accepting input from the window menus.
This option is only available on UNIX systems.
-v or -vers or -version
Display the Signalscan Waves version number and
exit.
-vcd vcd_filename
Specify the name of the output VCD file, if you are
converting a database to VCD format.
-waves
Start Signalscan Waves by opening the Waveform
window instead of the Control window. If you open a
database, the Design Browser does not
automatically open. Use the Windows menu pm tje
Waveform window to open the Design Browser or
any other window that you need.
-x
Exit Signalscan Waves after any file translation. You
must also specify the -product affirma option
when using the -x option.
Signalscan Waves Input Files
Signalscan Waves operates on SST2 database files and on Do-Files. These files are called
input files , and you can specify them on the Signalscan command line, as follows:
June 2000
31
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
■
You specify a transition data file, or .trn file, as in the following example:
% signalscan mydesign.trn
Note: You cannot specify a .dsn file as an input file.
■
You specify a Do-File, or .do file, with the -do option, as in the following example:
% signalscan -do mydesign.do
■
You can specify both a Do-File and a transition data file, as in the following example:
% signalscan -do color.do -do otherpreferences.do mydesign.trn
■
You can specify a directory name, as in the following example:
% signalscan waves.shm
If you specify any directory name, Signalscan Waves opens all of the .trn files that it
finds in that directory.
■
You can specify a VCD file, as in the following example:
% signalscan mydesign.dump
Signalscan Waves converts the specified VCD file into an SST2 database, so that in
addition to mydesign.dump, you also have mydesign.dsn and mydesign.trn.
Signalscan Waves then operates on the new SST2 database.
Note: When Signalscan Waves converts a VCD file to SST2 format, some information,
such as port information, is lost from the design.
If you do not specify an input file on the signalscan command line, you must either choose
File—Open Simulation File from the Signalscan Waves Waveform window to select and
open a .trn file or choose File—Execute Do-File to select and execute a .do command
file.
If you do specify an input file, Signalscan Waves loads that file during startup.
June 2000
32
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Table 2-2 on page 33 describes the input files that Signalscan Waves uses.
Table 2-2 Signalscan Waves Input Files
Filename Suffix
Description
.dsn
Contains the symbol and scope information for a design.
Signalscan Waves uses this file to view all simulations of the
design. This file must be in the same directory as the
corresponding .trn file that you specify with the signalscan
command. A .dsn file and its corresponding .trn file comprise an
SST2 database .
Note: Signalscan Waves creates and uses .dsn files
automatically. You cannot specify .dsn files with the signalscan
command.
.trn
Contains all of the transition (event) data for a given simulation.
This is the input file that you specify with the signalscan
command.
.do
Contains a snapshot of a Signalscan Waves session. This type of
file is called a Do-File. A Do-File is a text file that contains
Signalscan Waves commands. See Appendix B, “Signalscan
Waves Commands,” for information on the commands that you can
use in Signalscan Waves Do-Files.
You can use a Do-File to run Signalscan Waves with a particular
configuration. See Appendix A, “Saving and Restoring Your
Configuration,” for information on how to use Do-Files to create and
use custom Signalscan Waves configurations.
Invoking Signalscan Waves on Windows Platforms
You can use any of the following methods to invoke Signalscan Waves on Windows 95,
Windows 98, or Windows NT:
■
Double-click on a .trn file.
■
Select the Signalscan Waves version that you want to use from the Signalscan Waves
Waves program group on your Windows Start menu.
■
Enter signalscan at the command prompt. You must enter the entire pathname to the
executable if you have not updated your PATH environment variable.
June 2000
33
Product Version 6.5
Signalscan Waves User Guide
Invoking Signalscan Waves
Initial Signalscan Waves Windows
When you start Signalscan directly from your operating system, your initial Signalscan display
differs depending on which Signalscan product you invoke and whether you specify input files
with your signalscan command, as follows:
■
Signalscan Waves
If your copy of Signalscan Waves came with your copy of the Affirma™ SimVision
analysis environment and you do not have a separate Signalscan Waves license, then
the Waveform window opens when you invoke Signalscan Waves, as described
previously in this chapter. See Chapter 4, “The Waveform Window,” for more information
on the Waveform window.
If you did not specify a database input file on the command line, an empty Waveform
window appears, and you must select File—Open Simulation File to open a database
and display it in the Waveform window. You can then select Windows—Design
Browser from the main menu bar to open the Design Browser to navigate your design
and add signals to the Waveform window. See Chapter 3, “Navigating Through Your
Design,” for information about the Design Browser.
■
DAI Signalscan Waves
If you have used previous versions of Signalscan, you may have a Signalscan Waves
license separate from your Affirma SimVision analysis environment license. In this case,
the Signalscan Waves Control window opens when you invoke Signalscan Waves, as
shown in Figure 2-3 on page 29. See your existing DAI Signalscan User’s Guide for
more information on how to use this window.
June 2000
34
Product Version 6.5
Signalscan Waves User Guide
3
Navigating Through Your Design
You use the Signalscan Waves Design Browser, shown in Figure 3-1 on page 36, to navigate
your design hierarchy within Signalscan Waves. As you traverse your design hierarchy in the
Design Browser, you can:
■
Group objects to organize them in the Design Browser window.
■
Create busses within your design.
■
Select objects in the Design Browser window and display their waveforms in the
Waveform window.
This chapter describes the features of the Design Browser window, and explains how to
define busses using bus templates in the Design Browser, and how to select objects in the
Design Browser to organize them in the Design Browser window and to display them in the
Waveform window.
This chapter contains the following sections:
■
“Traversing Your Design Hierarchy” on page 36
■
“Creating Busses with Bus Templates” on page 43
■
“Displaying Waveforms” on page 45
June 2000
35
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
Traversing Your Design Hierarchy
The Design Browser window, shown in Figure 3-1 on page 36, lets you view the instances
and variables that make up your design at any hierarchical level. In the Design Browser
window, you can easily select and view different hierarchical levels, or scopes , in your design,
and you can select and group objects in each scope, so that you can analyze them in the
Waveforms window. You can select different scopes from the current scope, from the list of
previously selected scopes, and from the bookmarks list. You can also use filter options to
focus on specific data in a scope, and you can open multiple Design Browser windows to view
objects simultaneously at different hierarchical levels.
Figure 3-1 Design Browser Window
Current File
Drop-Down List
Current Instance
Drop-Down List
Bookmarks
Drop-Down List
Button Bar
Groups
Drop-Down
List
Instances
Pane
To Add
Pane
Variables
Filter Field
Variable
Type
Buttons
Instances Filter Field
Bus Templates Field
Variables Pane
You generally use the Design Browser to traverse your design hierarchy as follows:
■
To descend a level in the design hierarchy, click on an instance name in the Instances
pane. This changes the current scope to the selected instance, bringing you down one
June 2000
36
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
level in the design hierarchy. The Design Browser now displays the scopes and variables
in the instance that you selected.
■
■
To ascend a level in the design hierarchy, you can do one of the following:
❑
Choose Control—CD..(UpScope) from the menu bar.
❑
Click the CDUpScope button on the button bar.
❑
Click your right mouse button anywhere in the Instances pane
To return to a previously browsed level in the design hierarchy, select the bookmark that
you created when you browsed that scope. To create a bookmark, press Control-k or
choose Edit—Create—Bookmark . To select the bookmark, click on the arrow to the
right of the Bookmarks field, and then click on the scope that you want to view from the
drop-down list. See “Bookmarks Field and Drop-Down List” on page 40 for more
information on creating and using bookmarks.
As you traverse through the design hierarchy, the Current Instance field at the top of the
Design Browser window updates to show the full hierarchical path of the current scope, and
the Instances and Variables panes update to show the instances and variables that are in the
current scope.
In addition to moving up and down the design hierarchy in steps, you can use the following
features of the Design Browser window to quickly view any scope, variable, or instance in any
design source file:
■
Current File Field and Drop-Down List
Displays the name of the design file that you are currently browsing and lets you choose
a new design file to view in the Design Browser.
■
Current Instance Field and Drop-Down List
Displays the name of the current design scope (or displays no text if you are at the top
level of your design hierarchy) and lets you choose a new scope to display in the Design
Browser.
■
Bookmarks Field and Drop-Down List
Lets you view any scope that you have previously bookmarked. (See “Bookmarks Field
and Drop-Down List” on page 40 for instructions on how to create and use bookmarks.)
■
Instances Pane
Displays the names of the modules that are instantiated in the current scope.
■
Instances Filter Field
June 2000
37
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
Lets you filter the list of instances that appears in the Instances pane.
■
Variables Pane
Displays the variables in the current scope.
■
Nodes/Variables Filter Field
Lets you filter the list of variables that appears in the Variables pane.
■
Variable Type Buttons
Let you filter the list of variables that appears in the Variables pane to only display specific
types of variables.
■
Groups Field and Drop-Down List
Displays the group to which you are currently adding selected objects and lets you
choose a new group and add selected objects to it.
■
To Add Pane
Displays the objects that you have selected but have not yet added to the Waveform
window.
Current File Field and Drop-Down List
The Current File field displays the name of the SST2 database that you are currently
browsing. You can browse a different database by clicking on the arrow to the right of the
Current File field and selecting a database file from the drop-down list. You can also enter a
database filename in the Current File text field to view any simulation file, regardless of
whether it is currently open. If you enter the name of an unopened file in this field, Signalscan
Waves asks you to confirm that you want to open the file, as shown in Figure 3-2 on page 39.
June 2000
38
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
Figure 3-2 Open Simulation File Confirmation
Current Instance Field and Drop-Down List
The Current Instance field displays the name of the instance whose scope you are currently
browsing. You can enter the hierarchical path to a specific instance in the Current Instance
field to set the scope to that instance.
You can also go directly to any one of the last ten scopes in which you selected objects and
added them to the To Add Pane by clicking on the arrow to the right of the Current Instance
field and selecting the desired scope from the drop-down list.
By default, the scope history in the Current Instance drop-down list does not include
references to the simulation files that contain the scopes in the list. This means that if the
current simulation file changes, and you choose a previous scope that you visited in another
file, Signalscan Waves checks to see if the previous scope path exists in the current file. If the
path exists in the new design, the scope path remains the same, but you view it under the new
design. If the path does not exist in the new design, Signalscan Waves sets the scope to the
top level of the new design.
You can choose to save the references from the scopes that you visit to the design files that
contain them by changing a preference. To do this, choose Options—Define Preferences .
The Define Preferences form appears, as shown in Figure 3-3 on page 40.
June 2000
39
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
Figure 3-3 Define General Preferences Form
Click the General button and select the Include File Name With Scope History option to
save the references to the simulation files that contain the scopes that you visit within your
scope history.
Bookmarks Field and Drop-Down List
The Bookmarks drop-down list contains the name of the scopes that have bookmarked. You
can go directly to any scope that you have bookmarked in the current design file by clicking
June 2000
40
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
the arrow to the right of the Bookmarks field and selecting the desired scope name from the
drop-down list of bookmarked scopes.
To create a bookmark for the current scope, press Control-k or choose
Edit—Create—Bookmark . By default, this menu command creates a bookmark that
includes the current scope and the current simulation file. To save only the scope name
without the design file, choose Options—Define Preferences . The Define Preferences
form appears, as shown in Figure 3-3 on page 40. Click the General button and select the
Include File Name With Bookmarks option to bookmark scope names, but not simulation
filenames. To edit the bookmark list, choose Options—Define Bookmarks . The Define
Bookmarks form appears, as shown in Figure 3-4 on page 41.
Figure 3-4 Define Bookmarks Form
Instances Pane and Instances Filter Field
The Instances pane displays the names of the modules that are instantiated in the current
scope.
June 2000
41
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
You can enter a regular expression in the Instances Filter field to filter the list of instances
that appears in the Instances pane. If you enter an expression in this field, only those instance
names that match the expression appear in the Instances pane. The asterisk character (*) is
a wild card that matches zero or more characters; it is also the default filter and causes all
instances to be displayed. The question mark character (?) matches any single character.
Variables Pane, Nodes/Variables Filter Field and Variable Type Buttons
The Variables pane lists all of the available (probed/recorded) objects that are in the current
instance.
You can enter a regular expression in the Nodes/Variables Filter field to filter the list of
variables that appears in the Variables Pane. If you enter an expression in this field, only those
variable names that match the expression appear in the Variables pane. The asterisk
character (*) is a wild card that matches zero or more characters; it is also the default filter
and causes all variables to be displayed. The question mark character (?) matches any single
character.
You can also use the Variable Type buttons to filter the list of variables that appears in the
Variables Pane. Press these buttons to display only inputs, outputs, inouts, or non-port
variables.
Groups Field and Drop-Down List
The Groups field displays the name of the group to which you are currently adding any
objects that you select. When you click on the To Add Pane, the objects that you select to add
to a group automatically appear at the insertion point. You can click on the arrow to the right
of the Groups field and select a group name from the drop-down list of existing groups to
begin adding selected items to a new group. See “The Button Bar” on page 65 and “Using
Overlay Groups with Analog Signals” on page 133 for more information on creating and using
groups.
To Add Pane
The To Add Pane displays the objects that you have selected and added to the current group,
but have not yet added to the Waveform window.
To add a new object to a group:
1. Select the group from the Groups drop-down list at the top of the To Add pane.
June 2000
42
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
2. Use your right mouse button to position the insertion marker in the To Add Pane. Objects
will be added at that position in the list.
3. Select the objects from the Variables pane that you want to add to the group.
Objects are added to the To Add pane as soon as you click on them in the Variables
pane.
To add an object from the To Add pane to the Waveform window, click the AddToWave button
on the button bar or choose Control—Add Variables or Control—Add Variables and
Close Window.
Creating Busses with Bus Templates
You can use the Design Browser to create busses based on Bus Templates that you define.
Bus templates let you collapse objects that have similar names into user-defined busses.
This feature is most useful when you are looking at a synthesized schematic, in which a bus
has been broken into scalar signals by the synthesis tool.
To define a bus template, you enter the command syntax described in the next section in the
Bus Templates field in the Design Browser. (See Figure 3-1 on page 36 for an illustration of
the Bus Templates field.)
Bus Template Syntax
Table 3-1 on page 43 describes the syntax that you use to create Bus Templates. In this table,
x and y are any positive integral values. Unless otherwise specified, busses are created in
ascending order.
Table 3-1 Bus Template Syntax
Syntax
Description
busname [x :y ]
Generates a bus with a range of x to y. The bus can be in either
ascending or descending order, depending on whether x is less than
or greater than y.
busname [*<x ]
Finds consecutive bits less than x and creates a bus in ascending
order.
busname [*>x ]
Finds consecutive bits greater than x and creates a bus in descending
order.
June 2000
43
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
Table 3-1 Bus Template Syntax, continued
Syntax
Description
busname [x :*]
Creates a bus in ascending order from x to the highest contiguous
signal available.
busname [*<*]
Collapses all signals that have a name of the form busname followed
only by digits.
or
busname *
busname [*>*]
Creates all busses in ascending order.
Collapses all signals that have a name of the form busname followed
only by digits.
Creates all busses in descending order.
*
or
* [*:*]
*[*>*]
Creates all possible busses for signals that satisfy the Bus Template
rules.
Creates all busses in ascending order.
Creates all possible busses for signals that satisfy the Bus Template
rules.
Creates all busses in descending order.
!busname [x :y ] Prevents the use of the specified bits in the creation of busses.
This option must be preceded by one or more of the above-mentioned
Bus Template options, and must be separated from the previous option
by a space.
Note: You can use multiple expressions to describe the Bus Template search pattern. To do
so, separate the expressions with spaces.
Bus Template Examples
Assume that a scope of a design consists of only the following objects: mybus1, mybus2,
mybus3, mybus4, mybus5, mybus6, mybus7, mybus8, mybus9, and mybus10.
If you type the following text in the Bus Templates field in the Design Browser window:
mybus[1:10] !mybus[4]
The following busses are created:
mybus[1:3] mybus[5:10]
June 2000
44
Product Version 6.5
Signalscan Waves User Guide
Navigating Through Your Design
If you type the following text in the Bus Templates field:
*[*:*]
The following bus is created:
mybus[1:10]
Displaying Waveforms
You can use the Design Browser to add objects to the Waveform window for further analysis.
This section describes how to select and organize objects in the Design Browser and display
them in the Waveform window.
Displaying All Probed Objects
To add to the Waveform window all of the objects in the current design that have been probed,
perform the following steps:
1. In the Instances pane of the Design Browser, make sure you are at the top of your design
hierarchy. (The Current Instance field should be empty.)
Use the hierarchy traversal methods that are described above to return to the top scope
if you are not already there.
2. Click the GetDeepAll button on the Design Browser button bar.
This retrieves all of the variables at all of the different levels of your design, from the
current scope down to the lowest-level scope.
3. Click the AddToWave button on the Design Browser button bar.
The Waveform window opens if it was not already open. The names of the objects that
you probed appear in the Names pane of the Waveform window, and their waveforms are
displayed in the Waveform pane.
Displaying Selected Objects
You can also use the Design Browser to add only selected or groups of objects to the
Waveform window. See “The Button Bar” on page 65, “Adding Objects to a Group from the
Design Browser” on page 96, and “Using Overlay Groups with Analog Signals” on page 133
for instructions on how to group objects and add them to the Waveform window.
June 2000
45
Product Version 6.5
Signalscan Waves User Guide
4
The Waveform Window
The Waveform window is the first window that appears when you start Signalscan Waves.
The Waveform window is the central Signalscan Waves window, from which you perform all
of your waveform viewing and debugging tasks.
This chapter describes how to use the Waveform window to find signals and events (where
an expression is true), place time markers, rearrange signals, view Sequence Time, define
busses, define mnemonics, and print waveforms.
This chapter discusses the following topics:
■
“Overview of The Waveform Window” on page 47
■
“The Waveform Pane” on page 48
■
“The Time Status and Times Panes” on page 54
■
“The Multi-List Pane” on page 58
■
“The Names Pane” on page 60
■
“The Button Bar” on page 65
■
“The Menu Bar” on page 65
■
“Defining and Using Events” on page 96
■
“Defining and Using Busses” on page 99
■
“Using the Signalscan Waves Cause Finder” on page 102
■
“Defining and Using Constants and Expressions” on page 105
■
“Defining and Using Mnemonics” on page 107
■
“Viewing Waveforms in Sequence Time” on page 112
■
“Viewing Multi-Dimensional Objects” on page 114
■
“Printing the Waveform Window” on page 117
June 2000
46
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Overview of The Waveform Window
The Waveform window displays the values of objects you select from your simulation so that
you can analyze and debug the design. You can monitor the progress of a simulation by
looking at the objects as the simulation runs, or you can open a database from a previous
simulation and view objects at specific times during that simulation. See Chapter 2, “Invoking
Signalscan Waves,” for more information on starting Signalscan Waves to view previous and
current simulations in the Waveform window.
The Waveform window allows you to view the results of multiple simulations from the same
or different simulators all in the same window. The Waveform window displays signal values
and strengths as well as Sequence Time. You can even view analog and digital waveforms
within the same window.
Figure 4-1 on page 47 shows the main features of the Waveform window.
Figure 4-1 Waveform Window
Menu Bar
Button
Bar
Time
Status
Pane
Times
Pane
Names
Pane
Multi-List
Pane
Waveform
Pane
Horizontal Resize Bars
June 2000
47
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
For more information on these features, see:
■
“The Waveform Pane” on page 48
■
“The Time Status and Times Panes” on page 54
■
“The Names Pane” on page 60
■
“The Multi-List Pane” on page 58
The Waveform Pane
The Waveform pane displays the waveforms of the objects listed in the Names pane.
Note: If you open Signalscan waves or add items to the Waveform window after the
simulation has run for some time, values prior to that time are undefined.
Viewing Signals in the Waveform Pane
You can use the Waveform pane to view the waveforms of any signal that you have probed or
are currently probing at any specific simulation time or signal value change. You can move
forwards or backwards between simulation times and signal value changes in the Waveform
pane in any one of the following ways:
■
You can use the scrollbars in the Waveform pane to scroll through the pane either
vertically or horizontally. Click beside the slider in a scrollbar to move one screen width
or one screen height. Use the arrows in the scrollbars for smooth scrolling.
■
You can use Cursor1 and Cursor2 to adjust your view of the Waveform pane. If you
double-click in the Waveform pane, both the TimeA marker and Cursor1 move to the
location that you double-clicked.
■
You can use Cursor1 to adjust the center position of the Waveform pane. To do this,
position Cursor1 at the time at which you want to center the view, and then choose
View—Center On Cursor1 (Control-t) from the main menu. Signalscan Waves
scrolls the Waveform pane so that Cursor1 is displayed at the center.
■
You can define your own markers to quickly view your waveforms at any simulation time.
Markers are vertical lines in the Waveform pane that have labels (names and simulation
times) associated with them in the Times pane. See “Defining and Using Custom
Markers in the Waveform Pane” on page 53 for instructions on how to define markers and
use them to move through a simulation.
■
You can define events to quickly move to the next simulation time at which a particular
set of objects has a particular set of values. An event is a definition of values for a
June 2000
48
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
collection of objects. See “Defining and Using Events” on page 96 for instructions on how
to create events and use them to move through a simulation.
■
You can select one or more objects in the Names pane, and then choose Control—
Variable Change—Previous (Control-v) or Control—Variable Change—Next
(Control-n) from the main menu. The Waveform pane scrolls to the previous or next
value change for any of the selected objects, and Cursor1 moves to that simulation time.
■
You can select Markers or Events from the drop-down list at the top of the Multi-List
pane and then select a particular marker or event in the list. If you select a marker, the
Waveform pane scrolls horizontally to that marker, and Cursor1 moves to that simulation
time. If you select an event, the Waveform pane scrolls horizontally to the next
occurrence of that event and Cursor1 moves to that simulation time.
■
You can select Groups from the drop-down list at the top of the Multi-List pane and then
select the name of a group from the list. A group is a collection of objects that are
displayed together in the Waveform pane. Both the Names pane and the Waveform pane
scroll vertically to show the group that you select in the Multi-List pane.
Using the Predefined Markers in the Waveform Pane
The Waveform pane contains three predefined markers that appear in the pane by default.
These markers help you to move through your simulation quickly and easily, and they also
help you to perform certain operations on your waveforms, such as performing analog
measurements. The three predefined markers that appear in the Waveform pane are:
■
TimeA
■
Cursor1
■
Cursor2
The following sections show you how to use the three predefined markers to move through
your simulation and perform operations on your waveforms.
Using the TimeA Marker
The TimeA marker synchronizes the Waveform window and the Register window at the same
simulation time value. When you explicitly set TimeA, the values of the objects that are
displayed in the Names pane and the values of the objects that are displayed in Register
windows are the values that those objects have at TimeA.
When you change the value of TimeA, if you are running Signalscan Waves in post-simulation
mode, using a database that you created for a previous simulation, the Waveform pane simply
June 2000
49
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
scrolls to show the simulation as it appears at TimeA, as described above. However, if you
are running Signalscan Waves interactively with the simulator and you reset TimeA, the
Waveform window shows only the signal values at the new TimeA, and the waveforms no
longer update as the simulation runs. To return to interactive mode, in which the waveforms
update continually as the simulation runs, choose Control—Define Mode Interactive . For
more information on running Signalscan Waves in interactive mode, see “Interactive Mode”
on page 57.
To change the value of TimeA for all Signalscan Waves windows, you can do any of the
following:
■
Double-click or double-click and drag your left mouse button in the Waveform pane. This
also sets Cursor1.
■
Press and drag your left or middle mouse button on the TimeA label or arrow in the
Times pane of the Waveform window.
■
Go to the previous or next value change of an object. This also sets Cursor1.
■
Edit the TimeA field in the Register window. See “TimeA Marker” on page 56 for an
example of using the TimeA marker in the Register window.
Using Cursor1 and Cursor2
You use the Cursor1 and Cursor2 markers in the Waveform pane to temporarily mark
simulation times and events, so that you can perform operations such as zooming in and out
and performing measurements at specific points in your simulation. For example, you can use
Cursor1 and Cursor2 to measure the time between transitions, expand the events that occur
at a Sequence Time at Cursor1, or zoom between cursors. You can even use Cursor1 and
Cursor2 to make various analog measurements. See “Performing Measurements on Analog
Signals” on page 146 for instructions on how to do this.
Setting Cursor1
You can set Cursor1 to a specific simulation time, to the next or previous value change on an
object, or to a specific predefined event.
To set Cursor1 to a specific simulation time, you can do either of the following:
■
Click or click and drag your left mouse button in the Waveform pane. Cursor1 moves to
the point at which you release the mouse button.
■
Click and drag your left or middle mouse button on the Cursor1 label in the Times pane.
Cursor1 moves to the time at which you release the mouse button.
June 2000
50
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
To set Cursor1 to the next or previous value change on a signal, you perform the following
steps:
1. In the Names pane, select the name of the signal along which you want to move Cursor1.
2. Choose Control—Variable Change—Next (Control-n) or Control—Variable
Change—Previous (Control-v).
Cursor1 moves to the next or previous value change on the selected signal.
To set Cursor1 to the next or previous occurrence of an event, perform the following steps:
1. Choose Events from the drop-down list at the top of the Multi-List pane.
2. Click the >> (forward) or << (backward) button to the right of the label Events to set the
event search direction, or choose Control—Define Event Search Direction from the
main menu.
3. In the Multi-List pane, click on the event that you want to see. The Waveform pane scrolls
to that event and Cursor1 is set to that event time.
Setting Cursor2
To set Cursor2, you can do either of the following:
■
Click or click and drag your middle mouse button in the Waveform pane. Cursor 2 moves
to the point at which you release the mouse button.
■
Click and drag your left or middle mouse button on the Cursor2 label in the Times pane.
Cursor2 moves to the time at which you release the mouse button.
Moving Cursors to the Nearest Value Change
If you want Cursor1 and Cursor2 to move to the nearest value change when you click your
right or middle mouse button in the Waveform pane, perform the following steps:
1. Choose Options—Define Preferences from the main menu. The Define Preferences
form appears, as shown in Figure 4-2 on page 52.
June 2000
51
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-2 Define Preferences - Waveforms
2. At the top of the Define Preferences form, click the Waveforms button.
3. Make sure the Snap Cursor To Signal Transition preference is selected.
4. Click OK to apply the change and dismiss the form.
June 2000
52
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Defining and Using Custom Markers in the Waveform Pane
User-defined markers appear as vertical lines in the Waveform pane, with the user-defined
marker name and time at the top of the marker. A user-defined marker is a type of
bookmark that you can place at any time in your simulation and give any name you like. You
use markers to mark the times in your simulation to which you want to be able to move quickly
from any other point in the simulation.
To create a user-defined marker, choose Edit—Create—Marker (Control-m) from the
Waveform window main menu. The Create Marker form appears showing the Cursor1 time
as the default marker time, as shown in Figure 4-3 on page 53.
Figure 4-3 Create Marker Form
Use the Create Marker form to specify the name of your new marker and the time at which
you want to place the marker. Then click OK. The marker appears in the Waveform pane at
the time that you specify.
To scroll the Waveform pane to display a particular marker, choose Markers from the dropdown list in the Multi-List pane, and then click on the name of the desired marker.
To delete a marker, click on the name of the marker in the Multi-List pane to select it, and then
click the Delete button or choose Edit—Delete from the main menu.
June 2000
53
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Using the Zooming Features of the Waveform Window
In addition to letting you move between simulation times and events, the Waveform window
also supports a variety of commands that let you zoom in and out on portions of the
waveform. The button bar contains the buttons ZoomInX , ZoomOutX , and ZmOutXFull .
The ZoomInX and ZoomOutX buttons expand or contract the view by a factor of two while
retaining the center point of the Waveform pane. ZmOutXFull zooms out until it fits the entire
simulation in the Waveform pane.
The above zoom commands also appear on the View menu. To zoom in, select View—
Zoom—In (Control-i). Signalscan Waves increases the magnification of the waveforms
in the Waveform pane by a factor of two. To zoom out, select View—Zoom—Out
(Control-o). Signalscan Waves reduces the magnification of the waveforms in the
Waveform pane by a factor of two. To zoom out enough to see the whole simulation in the
Waveform pane, choose View—Zoom—Out Full (Control-f). Signalscan Waves shrinks
the start and end times to fit the entire simulation into the Waveform pane.
In addition to the zoom features that appear on the Waveform window button bar, there is one
zoom feature that you can only use from the View menu. You can fit a particular view into the
Waveform pane by positioning Cursor1 and Cursor2 on the boundaries of the view that you
want to isolate, and then either clicking your right mouse button or choosing View—Zoom—
Between Cursors (Control-z). Signalscan Waves resizes the area between Cursor1 and
Cursor2 to fit the entire Waveform pane.
The Time Status and Times Panes
The Time Status pane, shown in Figure 4-4 on page 54, shows the time value of the TimeA
marker, the simulation end time, and the difference in time between the Cursor1 and Cursor2
markers.
Figure 4-4 The Times Status Pane
Time Status
Pane
June 2000
54
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
The Times pane, shown in Figure 4-5 on page 55, displays the simulation time in regular
increments and contains labels at the tops of the marker lines for TimeA, Cursor1, Cursor2,
and user-defined markers.
Figure 4-5 The Times Pane
Times Pane
To change the time units that are used in the Times pane, choose Options—Define
Preferences , and then click the Time Units button on the Define Preferences form that
appears, as shown in Figure 4-6 on page 56. Select your desired time units and then click OK
to apply the change and exit the form.
June 2000
55
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-6 Define Preferences - Time Units
TimeA Marker
The TimeA marker synchronizes the Waveform window and the Register window at the same
simulation time value. When you explicitly set TimeA, then the values of the objects displayed
in the Names pane and the values of objects displayed on register pages are the values that
those objects have at TimeA.
June 2000
56
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
See also “TimeA Field” on page 123.
To change TimeA for all Signalscan Waves windows, do any of the following:
■
Double-click or double-click and drag your left mouse button in the Waveform pane. This
also sets Cursor1.
■
Press and drag your left or middle mouse button on the TimeA label or arrow in the Times
pane of the Waveform window.
■
Go to the previous or next value change of an object. This also sets Cursor1. See
“Moving Cursors to the Nearest Value Change” on page 51.
■
Edit the TimeA field directly in the Register window. See “TimeA Field” on page 123.
Interactive Mode
If you are running Signalscan Waves interactively with the simulator and you reset TimeA, the
Waveform window is fixed on the new TimeA and the waveforms no longer update as the
simulation runs. To return to interactive mode, where the waveforms update continually as the
simulation runs, select Control—Define Mode Interactive . For more information, see
“Using the Define Mode Interactive Option” on page 124.
Cursor1 and Cursor2 Markers
Cursor1 and Cursor2 are used as temporary markers for operations such as zooming and
performing measurements. For example, you can use Cursor1 and Cursor2 to measure the
time between transitions, expand Sequence Time at Cursor1, or zoom between cursors.
Moving Cursor1
To move Cursor1 to a user-selected time, do either of the following:
■
Click or click and drag your left mouse button in the Waveform pane.
■
Press and drag your left or middle mouse button on the Cursor1 label in the Times pane.
To move Cursor1 to the next or previous change of an object:
1. Select the object name in the Names pane.
2. Select Control—Variable Change—Next (Control-n) or Control—Variable
Change—Previous (Control-v).
June 2000
57
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
To move Cursor1 to the next or previous occurrence of an event:
1. Select Events from the drop-down list at the top of the Multi-List pane.
2. Click the >> or << button to the right of the label “Events” to set the event search
direction, or select Control—Define Event Search Direction .
3. In the Multi-List pane, click on the event you want to find. The Waveform pane scrolls to
that event, and Cursor1 is set to that event time.
Moving Cursor2
To move Cursor2, do either of the following:
■
Click or click and drag your middle mouse button in the Waveform pane.
■
Press and drag your left or middle mouse button on the Cursor2 label in the Times pane.
Snapping to Transition
If you want Cursor1 and Cursor2 to snap to the nearest transition when you click your right or
middle mouse button in the Waveform pane:
1. Select Options—Define Preferences .
2. At the top of the Define Preferences form that displays, click on the Waveforms button.
3. Make sure the Snap Cursor To Signal Transition preference is selected.
The Multi-List Pane
The Multi-List pane, shown in Figure 4-7 on page 59, displays the groups, markers, and
events that you define in the Waveform window.
June 2000
58
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-7 The Multi-List Pane
Multi-list Pane
Drop-down list
You can click on the down arrow in the top right corner of this pane, to display a drop-down
list. Click on an item in the drop-down list to change the display in the Multi-List pane to show
a list of the Groups , Markers , or Events that are currently defined for your simulation.
When you display Groups in the Multi-List pane, you can scroll the Names pane and the
Waveform pane vertically to show any group by clicking on the name of that group in the MultiList pane. See “The Button Bar” on page 65 for more information on grouping signals and
viewing those groups in the Waveform window.
When you display Markers in the Multi-List pane, you can scroll the Waveform pane
horizontally to show any marker by clicking on the name of the marker in the Multi-List pane.
See “Defining and Using Custom Markers in the Waveform Pane” on page 53 for instructions
on how to create and use markers to move quickly through a simulation.
When you display Events in the Multi-List pane, you can search forward or backward in the
Waveform pane for the next occurrence of an event by clicking on the name of that event in
the Multi-List pane. The Waveform pane scrolls to display the event that you click in the MultiList pane, and Cursor1 moves to that simulation time. To change the search direction, click
on the >> or << button to the right of the label Events or choose Control—Define Event
Search Direction from the Waveform window main menu. See “Defining and Using Events”
on page 96 for more information about creating events and using them to move quickly
through a simulation in the Waveform window.
June 2000
59
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
The Names Pane
The Names pane, shown in Figure 4-8 on page 60, displays the names and values of the
objects that you display in the Waveform window.
Figure 4-8 The Names Pane
Names Pane
In the Names pane, you can:
■
Select objects on which you want to operate. See “Selecting Objects in the Names Pane”
on page 61 for instructions on how to select different combinations of objects in the
Names pane.
■
Move objects around in the Names pane. See “Select, Move, and Copy in the Names
Pane” on page 62 for instructions on how to do this.
■
Add and delete objects in the Names pane. See “Adding or Deleting Objects in an Event”
on page 98 for instructions on how to do this.
■
Reorder and reorganize objects. See “Reordering Objects in the Names Pane” on
page 63 for instructions on how to do this.
■
Organize objects into groups. See “Defining and Using Groups” on page 95 for
instructions on how to create and use groups of objects.
June 2000
60
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Change the format of either the name or the value of an object. See “Format Menu” on
page 87 for instructions on how to do this.
■
Change the height of an analog object. See “Changing the Height of an Analog Object
in the Names Pane” on page 64 for instructions on how to do this.
■
Add comments to the Names pane. See “Adding Comments to the Names Pane” on
page 63 for instructions on how to do this.
■
Add constants and expressions to the Waveform window. See “Defining and Using
Constants and Expressions” on page 105 for instructions on how to do this.
■
Search for specific objects. See “Searching for Objects in the Names Pane” on page 63
for instructions on how to do this.
■
Change the relative width of the Names pane. See “Selecting Objects in the Names
Pane” on page 61 for instructions on how to do this.
By default, objects in the Names pane are displayed as simply the local object name with the
value at Cursor1. Use the Format menu to add or remove any combination of the filename,
path name, or full design hierarchy name to all object names in the Names pane. (See
“Format Menu” on page 87 for instructions on how to do this.
The display value of an object indicates the variable radix, the strength of the object, and
whether the value is inverted or shifted. Analog objects also have a units specifier and a
height bracket (see “Changing the Height of an Analog Object in the Names Pane” on
page 64).
The Names pane contains a horizontal yellow line called the insertion marker. Objects that
you paste, move, or duplicate are added at the insertion marker.
Selecting Objects in the Names Pane
You can cut, copy, paste, delete, move, or duplicate an object in the Names pane (Edit menu).
You can re-order a set of objects (Edit menu). You can change a group name or a bus name
(Edit—Modify ). You can add the drivers and module inputs of an object to the Names pane
(Control menu). You can expand a bus and overlay or stack analog objects (Edit menu). You
can show the strength of an object (Format—Show Strength ).
For these operations and many others, you first need to select one or more object names in
the Names pane. Table 4-1 on page 62 describes how to select any set of objects. (See also
June 2000
61
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
“Adding New Objects to Existing Waveform Windows” on page 27.) This table also describes
how to use your mouse to move or copy objects or groups and to move the insertion marker.
Table 4-1 Select, Move, and Copy in the Names Pane
Operation
Action
Select one object or group
Click your left mouse button on the object or group
name.
Select a contiguous range of
objects or groups
Press your left mouse button on an object or group
name, drag the mouse pointer through a range of
names, and then release the mouse button. If you
started by selecting an object name, then only object
names are selected, even if you drag over a group name.
Extend the selected range from
the previous selected object
Click your left mouse button on one object name. Hold
down the Shift key and click on another object name.
The two objects you clicked on and all objects between
those two are selected, even if they are in different
groups.
Select a non-contiguous set of
objects or groups
Hold down the Control key while you click your left
mouse button on the objects you want to select.
De-select all objects or groups
that are currently selected
Click your left mouse button on any object or group that
is currently selected. All are de-selected.
De-select some but not all
objects or groups that are
currently selected
Hold down the Control key and click your left mouse
button on the objects or groups you want to de-select.
Select all objects
Select Edit—Select All .
Move the insertion marker
Click either your middle or right mouse button where you
want to position the insertion marker.
Move an object or group
Press your middle or right mouse button on the object or
group name, drag the object or group to a new position,
and release the mouse button. The insertion marker is
repositioned immediately below the moved object or
group. See also Move alternatives on page 63.
Move multiple objects or groups Select a set of objects or groups as described above in
this table, press your middle or right mouse button on
any of the selected names, drag the mouse pointer to the
new position, and release the mouse button. See also
Move alternatives below.
June 2000
62
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Table 4-1 Select, Move, and Copy in the Names Pane, continued
Operation
Action
Move alternatives
Select the objects you want to move, position the
insertion marker where you want to move the objects,
and click the Move button or select Edit—Move . Or,
select the objects you want to move, click the Cut button
or select Edit—Cut , position the insertion marker, and
click the Paste button or select Edit—Paste .
Copy objects or groups
Same as Move described above, except hold down the
Shift key while you press the middle or right mouse
button. Alternatively, use Copy and Paste buttons or
Edit menu options.
Reordering Objects in the Names Pane
You can re-order or reorganize objects in the Names pane by moving them around with your
mouse as described in Table 4-1 on page 62, by using the Cut and Paste options on the Edit
menu, and by using the Sort and Reverse options on the Edit menu.
■
Edit—Paste . The set of objects that was operated on the last time you selected Edit—
Copy or Edit—Cut is pasted at the insertion marker.
■
Edit—Sort . The selected objects are sorted alphabetically by object name. They are not
moved but are sorted in place. Objects that are not selected are not affected, even if a
non-contiguous set is selected.
■
Edit—Reverse . The selected objects are displayed in reverse order in the Names pane
(the opposite order in which they are currently displayed). They are not moved but are
re-ordered in place. Objects that are not selected are not affected, even if a noncontiguous set is selected.
Searching for Objects in the Names Pane
Choose Edit—Find and Edit—Find Next from the Waveform window main menu to search
for an object name in the Names pane.
Adding Comments to the Names Pane
Use comments in the Names pane to help organize and annotate the sets of objects in the
Waveform window.
June 2000
63
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
1. Position the insertion marker.
2. Select Edit—Create—Comment .
3. Enter the text of your comment in the form that is displayed, and click the OK button, as
shown in “Create Comment Form” on page 64.
Figure 4-9 Create Comment Form
To change a comment, first select the comment in the Names pane, and then select Edit—
Modify.
Changing the Height of an Analog Object in the Names Pane
A ] (closed bracket symbol) appears to the right of the object name for analog objects. You
can drag the bracket to change the display of an analog object.
To change the height of an analog waveform:
1. Move your cursor over the top or bottom of the height bracket to the right of the object
name.
The cursor changes to a double-headed vertical arrow.
2. While the cursor is a double-headed arrow, press your left mouse button and drag the
bracket up or down to the desired height.
When you release the mouse button, the waveforms and the grid underlying the waveforms
(if any) compress or expand to fit the new height.
June 2000
64
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
See Chapter 6, “Analog Analysis,” for more information on special Signalscan Waves features
for analog objects.
Changing the Names Pane Width
To change the width of the Names pane:
1. Position your mouse pointer between the Names pane and the Waveform pane (see the
“Horizontal Resize Bar” in Figure 4-1 on page 47) so that the mouse pointer looks like a
double-headed horizontal arrow with a vertical line in the middle of it.
2. Press your left mouse button and drag it horizontally.
To save this change, select Names pane Percentage from the Preferences list when you save
a Do-File. See Appendix A, “Saving and Restoring Your Configuration,” for more information
on saving Do-Files.
The Button Bar
The button bar provides quick access to menu commands. For example, clicking the Undo
button is the same as selecting Edit - Undo from the pulldown menu.
Figure 4-10 Button Bar
Button Bar
The number of buttons visible in the button bar is dependent on the size of the window.
Figure 4-10 on page 65 shows a relatively small window with only eight buttons visible.
Use the Options - Define Buttons menu choice to change or reorganize the buttons. See
“Custom Buttons” on page 246 for information on customizing the button bar.
The Menu Bar
The menu bar provides access to most Signalscan Waves commands.
June 2000
65
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-11 Menu Bar
File Menu
Control Menu
Format Menu
Edit Menu
View Menu
Options Menu
Windows Menu
Help Menu
File Menu
The File menu provides commands to work with environment and data files.
■
Open Simulation File
Open the transition data file (.trn) component of the SST2 database. This file contains all
of the recorded transition (event) data for a simulation.
June 2000
66
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-12 Open a Simulation File
■
Close Simulation File
Close an open simulation file and leave Signalscan running.
June 2000
67
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-13 Close a Simulation File
■
Rename Simulation File
Use this menu option to move or rename simulation files.
June 2000
68
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-14 Rename a Simulation File
■
Replace/Reload Simulation File Data
Reload data from the simulation file. This is useful if you have modified what is shown on
the screen and want to return to the initial display. You could also close and re-open the
file.
■
List Open Simulation Files
List all open simulation files. The listing describes the file location and creation date for
each file, as shown in List Open Simulation Files figure on page 70.
June 2000
69
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-15 List Open Simulation Files
■
Execute Do-File
Restore a configuration from a previous Signalscan Waves session. Your configuration
includes groups, markers, events, and register pages that you have defined. See
Appendix A, “Saving and Restoring Your Configuration” for more information.
June 2000
70
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-16 Execute Do-File
■
Save Do-File
Capture your current session configuration. See Appendix A, “Saving and Restoring
Your Configuration” for more information.
June 2000
71
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-17 Save Do-File
■
Write VCD for Selected Variables
Record variables you have selected in the Names pane to a VCD file. See “write” on
page 244 for more information.
June 2000
72
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-18 Write VCD for Selected Variables
■
Write VCD for All Recorded Variables
Write all variables to a VCD file. You can use this command to convert an SST2 database
to a VCD file.
June 2000
73
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-19 Write VCD for all Variables
■
Merge SST Files
Merge incremental SST files into a single database.
June 2000
74
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-20 Merge SST Files
■
Print
Displays the print form. You can customize the following characteristics:
❑
Header Info
❑
Destination
❑
Time Range
❑
Variable Range
❑
Page Info
❑
Paper Size
❑
Color
June 2000
75
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
See “Printing the Waveform Window” on page 117 for more information.
■
Close Window
Close the Waveform window, but do not exit Signalscan Waves.
■
Exit
Exit Signalscan Waves. You have the option to save your configuration in a do-file, as
shown in Figure 4-21 on page 76.
Figure 4-21 Exit Signalscan Waves
June 2000
76
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Edit Menu
The Edit menu provides commands to work with variables displayed in the Waveform
window.
■
Undo
Return to the state prior to the last command.
■
Cut
Remove selected items (events, groups, etc.) from the display and load them into the
paste buffer.
■
Copy
Copy selected items from the display into the paste buffer.
June 2000
77
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Paste
Write selected items from the paste buffer to the display.
■
Delete
Remove selected items from the display.
■
Modify
Modify the selected group or bus. Figure 4-22 on page 78 shows the resulting dialog box
if you select a bus to be modified.
Figure 4-22 Modify Bus
■
Move
Move the selected item to the bottom of the display.
■
Duplicate
Create a copy of the selected item and put it at the bottom of the display.
■
Sort
Alphabetize the selected items.
■
Reverse
June 2000
78
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Reverse the order of the selected items on the display.
■
Expand
Expand a bus to show all components.
■
Overlay
Display both analog and digital waveforms. See “Using Overlay Groups with Analog
Signals” on page 133 for more information.
■
Stack
Separate items displayed in an overlay group. See “Converting Overlaid Signals to
Stacked Signals” on page 134 for more information.
■
Create:
❑
Group - See “Defining and Using Groups” on page 95.
❑
Marker - See “Defining and Using Custom Markers in the Waveform Pane” on
page 53.
❑
Event - See “Defining and Using Events” on page 96
❑
Expression - See “Defining and Using Constants and Expressions” on page 105.
❑
Breakpoint - Set a breakpoint in the simulation. Figure 4-23 on page 80 shows the
breakpoint options.
June 2000
79
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-23 Create Breakpoint
■
❑
Register Page - See “Creating and Customizing a Register Page” on page 127.
❑
Bus - See “Defining and Using Busses” on page 99.
❑
Comment - See “Adding Comments to the Names Pane” on page 63
❑
Constant - See “Defining and Using Constants and Expressions” on page 105.
Find
Search the simulation file for a specified variable. The Waveform pane changes to
display the found item.
June 2000
80
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-24 Find Form
■
Find/Next
Search for the next occurrence of the variable you specified with the Edit - Find
command. If the search direction is backward, Find/Next finds the previous occurrence.
■
Select All
Select all variables instead of individually clicking on them.
June 2000
81
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Control Menu
The Control menu provides commands that allow you to show more information in the
Waveform window.
■
Add Trace
Expand the display of the selected object to include driver information.
■
Add Module Inputs
Expand the display of the selected object to include other objects connected to its input
or inout ports.
■
Define Event Search Direction
Set the event search direction either forward or backward, to find next or previous events.
■
Define Mode Interactive
June 2000
82
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Switch to interactive mode. See Define Mode Interactive Option on page 125 for more
information.
■
Step
Increment the simulation to the next event change.
■
Continue
Continue the simulation to the next breakpoint.
■
Stop
Stop a running simulation.
■
Variable Change
Scroll the Waveform pane to display the previous or next variable change.
■
■
Go to:
❑
Cause - See Using the Signalscan Waves Cause Finder on page 102.
❑
Definition - If you have a standalone Signalscan license, this option takes you to the
line of code that defines the selected variable.
❑
Instantiation - If you have a standalone Signalscan licences, this option takes you to
the source code line that instantiates the selected module.
❑
Schematic - Not available in this release.
Show Properties
List all the properties assigned to the selected transaction. See Transaction Navigation
on page 176 for information.
■
Show Parent Transactions
See Transaction Hierarchies on page 175 for information.
■
Show Child Transactions
See Transaction Hierarchies on page 175 for information.
■
Show Related Transactions
See Transaction Hierarchies on page 175 for information.
■
Show Next Error
See Locating Errors on page 178 for information.
June 2000
83
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Add Unadded Highlighted Transactions
View Menu
■
Zoom
The Waveform window supports a variety of commands for zooming in and out on
portions of the waveform. See “The Time Status and Times Panes” on page 54 for more
information.
The following zoom options are available:
❑
In X
❑
In Y
❑
Out X
❑
Out Y
❑
Out X Full
❑
Out Y Full
June 2000
84
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
❑
Between Cursors
❑
Between Highlighted Transaction
Center on Cursor1
Scroll the Waveform pane so that Cursor 1 is in the center.
■
Expand Sequence Time
Expand the display to show the sequence of all events taking place at a specific
simulation time. See “Sequence Time” on page 112 for more information.
You can select the following times:
■
❑
At Cursor1
❑
Between Cursors
❑
All Times
Collapse Sequence Time
Return to the unexpanded view of events. You can select the following times:
■
❑
At Cursor1
❑
Between Cursors
❑
All Times
Analog Display Mode
Change from digital to analog display of waveforms. See Chapter 6, “Analog Analysis”
for more information.
■
Grid
Enable or disable vertical and horizontal grid lines in the Waveform pane, as shown in
Figure 4-25 on page 86.
June 2000
85
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-25 Grid Enabled in Waveform Pane
■
Define Grid
Set the start time and interval for grid lines in the Waveform pane.
June 2000
86
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-26 Define Grid
■
Value at Cursors
See “Value at Cursors” on page 147
■
Slope for Value at Cursors
See “Slope For Values at Cursors” on page 148.
■
Min/Max/Peak-to-Peak Between Cursors
See “Minimum, Maximum, and Peak-to-Peak Between Cursors” on page 150.
■
Rise/Fall Time at Cursor1
See “Rise/Fall Time at Cursor1” on page 151.
■
Average Values Between Cursors
See “Average Values Between Cursors” on page 153.
■
RMS Value Between Cursors
See “Average Values Between Cursors” on page 153.
Format Menu
The Format menu contains commands to modify variables and waveforms in the Waveform
window. Note that formatting is applied to an object for display purposes, and it does not
June 2000
87
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
create a new variable. Therefore, some formatting is removed when you expand an object,
such as a bus.
■
Variable Radix
Set the radix (or base) of selected variables to one of the following:
❑
Binary
❑
Octal
❑
Decimal
❑
Signed Decimal
❑
Hexadecimal
❑
ASCII
The object changes in the Names pane to reflect the radix. For example, if an object is
set to hexadecimal display, the format would be:
object-name = ‘h object-state
■
Invert
Invert the bits of the selected objects. An inverted object is identified in the Names pane
as:
object-name = ‘i object-state
June 2000
88
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Show Strength
Display the strength of selected objects. The strength is shown in the Names pane as:
object-name = strength object-state
■
Analog Format
Change the selected signals, busses, and real numbers to display their values in an
analog format.
■
Shift
Graphically shift objects the an absolute or relative time amount. The Waveform window
displays shifted objects using a special color and appends the amount of the time shift
to the object’s name.
To unshift objects, select the objects and shift to absolute time zero.
You can save shifted objects to Do-Files and write them to VCD files.
You can shift either:
❑
Selected Variables
Figure 4-27 Shift Selected Variables
❑
June 2000
All Recorded Variables
89
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-28 Shift All Recorded Variables
■
Define Analog Min/Max Values
See “Minimum and Maximum Values” on page 138.
■
Define Variable Display Scale
See “Display Scale” on page 139.
■
Full Hierarchy Names
Include or exclude the full hierarchy name of each object.
■
File Names
Include or exclude the file name of the SST2 database containing the object.
■
Full Path File Names
Include or exclude the full path of the SST2 database containing the object. You must
also select Format - File Names if you use this option.
June 2000
90
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Options Menu
The Options menu contains commands to customize your Signalscan Waves session.
■
Define Buttons
See “Custom Buttons” on page 246.
■
Define Colors
“Colors” on page 249.
■
Define Preferences
You can customize various aspects of the Signalscan Waves display and operation. The
Define Preferences form allows you to set:
■
❑
display characteristics (color, black and white, grayscale, etc.)
❑
the default time interval
❑
various waveform characteristics as shown in Figure 4-2 on page 52
❑
general behavioral characteristics as shown in Figure 3-3 on page 40.
Define Mnemonic Maps
See “Defining and Using Mnemonics” on page 107.
■
Define Sources Search P.ath
Set the search path location, as shown in Figure 4-29 on page 92.
June 2000
91
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-29 Define Sources Search Path
June 2000
92
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Windows Menu
The Windows menu contains commands for starting other Signalscan Waves windows.
■
Control
If you have the standalone Signalscan license, this menu option starts the control
window. The control window allows you to perform operating-system level I/O.
■
Design Browser
Launch the Design Browser to navigate your design hierarchy. See Chapter 3,
“Navigating Through Your Design”.
■
Waveform
Launch another Waveform window.
■
Register
Launch the Register window. See “Overview of the Register Window” on page 121.
■
Source
If you have the standalone Signalscan license, launch the Source Code window.
■
Events
Launches the Events window. See “Defining and Using Events” on page 96.
June 2000
93
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Breakpoints
List any breakpoints defined for the simulation, as shown in Figure 4-30 on page 94.
Figure 4-30 List Breakpoints
■
Transaction List
Launch the Transaction List window. See “Transaction Navigation” on page 176 for more
information.
■
Schematic Tracer
The Schematic Tracer is not available in this release.
■
TXE Explorer
Launch the Transaction Explorer. See Chapter 7, “Transaction-Based Verification” for
more information about transactions. See the Transaction Explorer User Guide for
more information about the Transaction Explorer.
■
You can also switch to any currently opened Signalscan Waves window listed by name
at the bottom of the menu.
June 2000
94
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Help Menu
The Help menu launches the Cadence online documentation system and allows you to
perform searches on the Signalscan Waves User Guide .
Defining and Using Groups
Objects displayed in the Names pane are organized into groups. A group is a collection of
objects displayed together. You can define multiple groups, and place any object any number
of times in one or more groups.
Group A is created by default. If you add objects without creating a group, they are
automatically added to Group A.
You can create a group either in the Waveform window or from the Design Browser. When
you change the content of a group in either of these windows, the new content of the group
is displayed in the Waveform window. The Design Browser does not display the complete
content of a group but only allows you to add new content.
To scroll the Waveform window display to a particular group, change the Multi-List pane to
display Groups and click on the name of the desired group.
See also “Creating an Overlay Group” on page 133.
Creating a Group
1. In the Names pane of the Waveform window, position the insertion marker where you
want the new group to be.
2. In either the Waveform window or the Design Browser, select Edit—Create—Group or
enter Control-g from your keyboard. (To open a Design Browser, select Windows—
Design Browser.)
Signalscan Waves displays the Create Group form.
3. Enter a name for the new group in the form and click the OK button.
The new group is added to the Waveform window Names pane below the group that
contains the insertion marker and it is also added to the drop-down list above the To Add
June 2000
95
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
pane in the Design Browser. In the Waveform window, use your mouse (see Table 4-1 on
page 62) and the Edit menu to move, rename (Modify ), or delete a group.
Adding Objects to a Group in the Waveform Window
To add objects to a group in the Waveform window, do any of the following:
■
Copy and paste or move objects that are already listed in the Names pane (see Table 4-1
on page 62).
■
Position the insertion marker in the group where you want the objects to be added, and
then select objects in the SimControl window and add them to the Waveform window
(see “Invoking Signalscan Waves from SimControl” on page 25).
■
Select objects in the Design Browser and add them to this group (see below).
Adding Objects to a Group from the Design Browser
To use the Design Browser to add objects to a group:
1. Select the group name you want to add objects to from the drop-down list above the
To Add pane.
2. Select objects in the Variables pane (see Chapter 3, “Navigating Through Your Design”).
Objects are added to the To Add pane as soon as you click your left mouse button on
them in the Variables pane.
3. Click the AddToWave button or select Control—Add Variables .
The objects in the To Add pane are added to the Waveform window in the group that is
selected in the To Add drop-down list.
Defining and Using Events
An event is a definition of values for a collection of objects. Use events to search through
your simulation history.
Defining an Event
To define an event:
1. Select one or more objects in the Names pane.
June 2000
96
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
2. Optionally, place Cursor1 at the location in the Waveform pane that most resembles the
event you want to define. This will save you some editing in the Events window.
3. Select Edit—Create—Event (Control-e).
An Events window is displayed, as shown in Figure 4-31 on page 97, with a new event,
eventn , that consists of the selected objects and their values at Cursor1.
Figure 4-31 Events Window
Scrolling the Events Window
To find an event in the Events window, either use the scroll bar to the right of the Value pane,
or click your left mouse button on an event name in the Event List. The Names pane and
Value pane scroll to display all the objects in that event.
June 2000
97
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Modifying an Event
Changing the Name
To change the default event name assigned by Signalscan Waves:
1. Drag your left mouse button to highlight the name of the event in the Names pane in the
Events window.
2. Type the new name. The name changes in the Event List as soon as you click away from
that name or press your Enter key.
Changing the Object Values
The initial value for each object is its value at Cursor1. You can edit any values in the Value
pane by highlighting them with your left mouse button and overwriting them.
To change the value of an object being searched for to be rising edge, falling edge, or any
edge, select Control—Define as Rising Edge , Control—Define as Falling Edge , or
Control—Define as Any Edge .
Adding or Deleting Objects in an Event
To add objects to an existing event:
1. Select the objects in the Names pane of the Waveform window.
2. Click the Copy button or select Edit—Copy in the Waveform window.
3. In the Events window, position the insertion marker in the Names pane where you want
the selected objects to be added.
4. Click the Paste button or select Edit—Paste in the Events window.
To remove objects from an event:
1. Select the objects in the Names pane of the Events window.
2. Click the Delete button or select Edit—Delete .
You can manipulate objects in the Names pane of the Events window the same way you can
manipulate objects in the Names pane of the Waveform window. See Table 4-1 on page 62.
June 2000
98
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Finding an Event
To scroll the Waveform window display to the next occurrence of an event, change the MultiList pane to display Events and click on the name of the desired event. Cursor1 moves to that
simulation time.
Selecting an event name in the Event List in the Events window scrolls the Events window to
display all objects in that event; it does not find the next occurrence of that event in the
Waveform window.
In the Events window, you can use two menu options under the Control menu: Define
Logical And and Define Logical Or to select the clauses that you want to And or Or
together. You can then use the appropriate menu item on the result.
For example, suppose you have an event with signals a, b, and c. Normally all clauses must
be true to match. Suppose you want to instead match ((a && b) || c). First select signals
a and b and Define Logical And . Then select the resulting clause, signal c and Define
Logical Or. Now you have an event that will match ((a && b) || c). There is still an
implied And between separate uncombined clauses, so for example if you then pasted in a d
clause, the event would match ((a && b) || c) && d. In this case, ((a && b) || c)
is one clause, and d is another clause.
You can only define a logical operation if you have at least two clauses selected and each one
matches a numerical or logic value. Edges, strength comparisons, wildcard values, shifted
values, and mnemonic or enumerated values cannot be combined in this way.
Since the names can get long when complicated expressions are defined, you can resize the
names panes in the Events window with a size bar (like the Waveform window) so that you
can make the names pane wider if desired. Also, the default width of the Events window
names pane is slightly larger and the default width of the value pane is decreased by the
same amount, leaving the window the same size.
Defining and Using Busses
This section describes how to create a bus in the Waveform window. To learn how to create
a bus in the Design Browser, see “Creating Busses with Bus Templates” on page 43.
Creating a User-Defined Bus
To create a user-defined bus in the Waveform window:
1. In the Names pane, select the objects that you want to put together as a bus.
June 2000
99
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
2. With your middle mouse button, position the insertion marker where you want the new
bus to be located.
3. Select Edit—Create—Bus (Control-w).
The Make Bus From Selected Variable(s) form displays as shown in Figure 4-32 on
page 100.
4. Click the OK button to create the new bus.
Figure 4-32 Defining a Bus
You can change the name of the bus (see “Changing the Name of the Bus” on page 101),
change the msb and the lsb, and invert the contents of the bus (click the Flip Contents
button). The number of bits is enforced, so if you change the msb, the lsb is also changed to
reflect the correct bit count.
If you select the Replace Original option, the objects that were selected in the Waveform
window are deleted from the Waveform window and replaced by this bus. If you de-select the
Replace Original option, both the bus component objects and the new bus display in the
Waveform window.
For analog designs, see also “Performing Analog-to-Digital Conversion” on page 141.
June 2000
100
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Default Bus Name
If all the object names selected have the same prefix, and the trailing bit numbers are
consecutive, the default name is the common prefix, and the suffix is the bit index.
If not all of the selected objects have a common name (a bundle ), the default name is the
concatenation of the names of the selected objects, separated by a comma, as shown in
Figure 4-33:
Figure 4-33 Bundle of Objects Used to Create a Bus
Select Objects clock and multiToggle for the Bus
A Bus is Created Named with Concatenated Object Names
When you change the content of the bundle, the name also changes to reflect its content. By
default, the bus name is the common name, followed by the indices, and the bundle name is
the concatenation of the signals of which it is composed.
Changing the Name of the Bus
■
In the Make Bus From Selected Variable(s) form (see Figure 4-32 on page 100), click the
New Name button and enter a new name.
■
Select the Display Indices option to display indices.
You can change the value of the indices displayed by editing the msb and lsb. The
number of bits is enforced, so if you change the msb, the lsb is also changed to reflect
the correct bit count.
Note: Changing the msb and lsb in the Name section affects only the name of the bus
created and not its contents.
June 2000
101
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Modifying a Bus
To view the components of an existing bus or modify an existing bus:
1. Select either a user-defined bus or a Verilog bus in the Names pane of the Waveform
window.
2. Select Edit—Modify to display the Modify Selected Bus form.
The contents of the original bus are displayed at the top of the form as well as the bit
contents of the bus.
3. Change the bits referenced from the original bus to modify the bus.
The default name is the original name with the new modified indices. To rename the bus,
click the New Name button.
Viewing Components of a Bus in the Waveform Window
To expand a bus to show its constituent bits in the Names pane and Waveform pane, select
either a user-defined bus or a Verilog bus in the Names pane of the Waveform window, and
then select Edit—Expand .
Note: The Expand operation cannot be undone. You may want to copy and paste the bus
first and expand the copy or view the expanded bits in a register page (see “Creating and
Customizing a Register Page” on page 127).
Using the Signalscan Waves Cause Finder
The Signalscan Waves Cause Finder feature shows you the possible causes of a selected
value change using the SimControl Signal Flow Browser and Source Code window.
You can invoke the Cause Finder feature from the Waveform window, from the Design
Browser window, or from the Register window.
Invoking from the Waveform Window
To invoke Cause Finder from the Waveform window, either:
■
Ctrl+double-click (press the Control keyboard key while you double-click your left mouse
button) on a transition in the Waveform window.
or
June 2000
102
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
■
Select a transition and then select the Control—Go To—Cause menu option.
Cursor1 and TimeA are set to the time of the transition, as shown in Figure 4-34 on page 103.
Figure 4-34 Go To Cause from Transition in Waveform Pane
Cursor1
The SimControl Signal Flow Browser displays a list of possible causes of the transition, as
shown in Figure 4-35 on page 104. In the Source Code window, an arrow is displayed to the
left of the line corresponding to the first possible cause.
June 2000
103
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-35 Signal Flow Browser with Multiple Choices
When you select one of the possible causes in the SimControl Signal Flow Browser, the arrow
in the Source Code window will point to the line corresponding to that cause, as shown in
Figure 4-36 on page 105.
June 2000
104
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-36 Source Code Window with Single Cause Identified
Defining and Using Constants and Expressions
Select Edit—Create—Constant to add a constant at the insertion point. Enter the name of
the constant and its value in the Create Constant form, as shown in Figure 4-37 on page 106.
June 2000
105
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
You can use this feature to create constant zero or one if you are going to create a userdefined bus and you want to fill it with zeros or ones.
Figure 4-37 Create Constant Form
June 2000
106
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
See “Creating and Using Analog Expressions” on page 143 for a description of how to add
an expression at the insertion point.
To change a constant or expression, first select the constant or expression in the Names
pane, and then select Edit—Modify.
Defining and Using Mnemonics
Signalscan Waves allows you to define mnemonics for any values, and to display those
mnemonics in the Waveform and Register windows.
Defining a Mnemonic Map
1. Select Options—Define Mnemonic Maps .
The Define Mnemonic Mapping form displays.
The first time you open this form, it displays a default map named mmap1 that contains
one value/mnemonic pair that maps Default to <‘h> (hexadecimal display), as shown
in Figure 4-38 on page 108.
The Default value cannot be changed, but its mnemonic can be changed. The
Default mnemonic matches any value not matched by any other value in the map.
June 2000
107
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-38 Define Mnemonic Mapping Form
2. To create a new map, click the New Map button on the right side of the form.
3. To rename this mnemonic map, drag or double-click your left mouse button over the map
name and type over it.
4. To change the value radix for this mnemonic map, click on the down-pointing arrow to the
right of the Value Radix field, and select a new value radix from the drop-down list. The
Value Radix field specifies the default value radix for this map. You can specify a different
value radix for a particular mnemonic in the map by entering the appropriate string in the
Mnemonic pane: <‘b>, <‘o>, <‘d>, <‘s>, <‘h>, or <‘a>.
5. Add mnemonics to the map, as described in “Defining a Mnemonic” on page 109.
June 2000
108
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
6. Click the OK button at the bottom of the form.
Defining a Mnemonic
1. Click your left mouse button anywhere in the Value pane.
A text cursor appears at the next new entry point.
2. Enter a value.
3. Press the Tab key to move to the Mnemonic pane.
4. Enter the mnemonic for that value.
The mnemonic may include one of <‘b> (binary), <‘o> (octal), <‘d> (decimal), <‘h>
(hexadecimal), <‘s> (signed decimal), or <‘a> (ascii).
The mnemonics on each map are automatically sorted by value.
Figure 4-39 on page 110 shows a custom mnemonic map:
June 2000
109
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-39 Custom Mnemonic Map
Modifying a Mnemonic Map
You can change the name and value radix of the mnemonic map as described above.
To change the relative sizes of the Value pane and Mnemonic pane, move your mouse over
the line between the two panes until your mouse pointer looks like a double-headed horizontal
arrow with a vertical line in the middle of it. Then press and drag your left mouse button.
To change the value or mnemonic name of a particular mnemonic, drag or double-click your
left mouse button over the field to highlight it, and then type over it. If you change the value,
June 2000
110
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
the mnemonics are resorted as necessary. You cannot change the value of the Default
mnemonic.
To use the mnemonic editing buttons on the right side of the Define Mnemonic Mapping form,
you must first select one or more mnemonics. To select a mnemonic, click your left mouse
button on the number to the left of the value for that mnemonic. Drag your left mouse button,
or press the Shift or Control keys, to select more than one mnemonic.
To delete mnemonics, select them and then click either the Delete or Cut button. You cannot
delete the Default mnemonic. The Default mnemonic matches any value not matched by
any other value in the map.
To copy or move mnemonics to other maps:
1. Select one or more mnemonics.
2. Click either the Copy or Cut button.
3. Select a different map from the drop-down list at the top of the form, or click the New
Map button.
4. Click the Paste button.
The pasted mnemonics are automatically sorted by value as they are added to the list.
You cannot rearrange the mnemonics on a map. They are automatically sorted by value.
Applying a Mnemonic to a Bus
1. Select a bus in the Names pane of the Waveform window.
2. Select Format—Variable Radix .
The mnemonic map names appear on the bottom of the list of options.
3. Select a mnemonic map name.
In the Names pane, ‘mmapname is displayed in front of the value, and the appropriate
mnemonics are displayed in the Waveform pane, as shown in Figure 4-40 on page 111.
Figure 4-40 Mnemonic Map Applied to a Bus
June 2000
111
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Viewing Waveforms in Sequence Time
Sequence Time
Sequence Time (patent pending) lets you view and debug activities that conceptually take
place at the same instant, but that the simulator executes in a specific order. When different
execution orders yield different results, a sequence order problem exists. By graphically
displaying the actual object assignment sequence within a given time step, Sequence Time
lets you pinpoint and eliminate this class of problems early in the design cycle, before they
result in more serious gate-level problems downstream.
You can view the order in which the objects changed by expanding the sequence time at
Cursor1, between cursors, or at all times. These options are available under View—Expand
Sequence Time . For example, to expand sequence time at Cursor1, click your left mouse
button on a Using the Multivalue Indication Feature point (a pink dot) in the Waveform window,
and select View—Expand Sequence Time—At Cursor1 . See Figure 4-41 on page 113.
If you do not want to view the sequence time, you can collapse the sequence time information
by using View—Collapse Sequence Time .
Recording Sequence Time
To view sequence time, you must first record sequence information into your SST2 Database.
■
■
For NC Verilog, either:
❑
Select the record all events option on the Open Database form.
❑
Specify the -event option on the database command. See the Tcl command
reference for your simulator.
For Verilog-XL, specify the event field on the $shm_probe system task.
You cannot view Sequence Time in a Leapfrog simulation.
Note: You cannot record sequence time for part of a simulation or a subset of probed objects.
You must specify sequence time recording when you first open the database, and then
sequence time (all events) is recorded for all probed objects.
Using the Multivalue Indication Feature
Multivalue Indication graphically identifies areas where sequence order problems may exist:
zero-time glitches where objects have received multiple values during a single time step.
June 2000
112
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Such a glitch may indicate a reliance on the simulator’s ordering of events, which could later
turn into a serious timing problem. Once a glitch is identified, you can further investigate the
problem by expanding into the Sequence Time domain.
Multivalue Indication is graphically represented as a pink dot on top of the waveform at the
location where it occurred. You can view the actual object assignment sequence within a
given time step by using the Sequence Time feature of Signalscan Waves. See Figure 4-41
on page 113.
Figure 4-41 Multivalue Indication and Sequence Time
MultiValue Indication
June 2000
Sequence Time
113
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Viewing Multi-Dimensional Objects
The Signalscan Waves Waveform window can view only one-dimensional objects. To view a
multi-dimensional object, you must view each dimension separately.
Each dimension of a multi-dimensional object is treated as a scope in Signalscan Waves.
Each scope is one vector of an array or one object of a record. Thus, to view multiple
dimensions of a multi-dimensional object in the Waveform pane, you need to iterate the
following process:
1. In the Design Browser, select (single-click your left mouse button on) a scope that
represents a multi-dimensional object from the Instances in Current Context list. The
Instances in Current Context list updates to display all the scopes in the first dimension
of that selected object.
2. Select one of the scopes listed in the new Instances in Current Context list. The objects
for that scope (for that dimension of the multi-dimensional object) are listed in the Nodes/
Variables in Current Context list.
3. Select one or more of the objects in that dimension from the Nodes/Variables in Current
Context list. The selected object names are added to the Design Browser’s To Add pane.
4. Go back to Step 1 and select another scope. You can re-select the design (Current File
field) to refresh the Instances in Current Context list.
5. Click the AddToWave button.
In the following example, select the scope ARRAY3X4 in Figure 4-42 on page 115 to list the
three scopes in the first dimension of the ARRAY3X4 scope. Select the scope ARRAY3X4[2]
in Figure 4-43 on page 116 to list the nodes in that scope. Select the node ARRAY3X4[2][2]
in Figure 4-44 on page 117 to add that node to the To Add pane.
June 2000
114
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-42 Select a Multi-Dimensional Object
June 2000
115
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-43 Select a Scope in the First Dimension
June 2000
116
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-44 Select Nodes in One of the Scopes in the First Dimension
Printing the Waveform Window
Signalscan Waves supports printing the Waveform window both in black-and-white and in
color.
Select File—Print from the Waveform window. The Printing form is displayed as shown in
Figure 4-45 on page 118. Buttons across the top of the Printing form allow you to specify
header information for each printed page, the printer or file name to print to, the color mode,
and which objects to print for which times. You can print all objects, currently selected objects,
or currently visible objects, and you can print all times, currently visible times, or the time
between specified start and end times. You can scale the printout to fit a specified number of
pages, and you can specify the size of paper to use.
June 2000
117
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Figure 4-45 Printing Form - Header Info
Use the Time Range button to specify a range of time for which you want data to be printed.
You can select various options as shown in Figure 4-46 on page 118.
Figure 4-46 Printing Form - Time Range Options
June 2000
118
Product Version 6.5
Signalscan Waves User Guide
The Waveform Window
Use the Color button to choose one of the following three formats, as shown in Figure 4-47
on page 119:
■
Black on White. Print black lines and labels on a white background. Analog signals in an
overlay group are printed using different line patterns. A sample of the line pattern used
for each signal is shown next to the signal name in the printout.
■
Color on White. Print color lines and labels on a white background.
■
Full Color. Print the window the same way you see it on your monitor.
Figure 4-47 Printing Form - Color Options
June 2000
119
Product Version 6.5
Signalscan Waves User Guide
5
Defining Design Views
This chapter describes how to use the Register window to create customized views of your
design on register pages. This chapter contains the following sections:
■
“Overview of the Register Window” on page 121
■
“Creating and Customizing a Register Page” on page 127
June 2000
120
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Overview of the Register Window
The Register window allows you to create customized views of your design. Each of these
views is called a register page . Figure 5-1 on page 121 shows a Register window with one
register page defined.
You can define multiple register pages in one Register window and select them by name to
jump between them, or you can define different register pages in separate Register windows
to keep multiple register pages visible on your screen simultaneously.
The Register window makes it much easier to monitor subsets of important objects among
the many objects displayed in the Waveform window. You can also annotate each object on
a register page much more than you can in the Waveform window.
You can put any object from the Waveform window on a register page. You can put the same
object on multiple register pages, and you can put copies of the same object on one register
page. You can arrange the objects on a register page any way that is most useful to you.
Figure 5-1 Register Window
Selection
Mode
Button
Multi-list
Pane
Text
Mode
Button
June 2000
121
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Multiple Register Windows
When you create a new register page, that page is added to an existing Register window if
there is one. To open multiple Register windows, select Windows—Register from any
Signalscan Waves window. Register windows are sequentially numbered beginning with 1.
View-Only Mode
You can lock a Register window into view-only mode. You may want to do this so that you do
not accidentally change the layout of a register page by sliding your mouse across it.
To toggle between view-only and edit modes, click the Lock/Unlock button above the
Register pane vertical scrollbar.
In view-only mode, the Multi-List pane, menu bar, and other less used controls are hidden,
and the Register pane becomes read-only so that you cannot modify the register page in that
window. However, if you modify the register page in another Register window, the changes
are reflected in all Register windows, including the ones in view-only mode. Also, the object
values continue to update when the page is displayed in a view-only Register window.
Figure 5-2 Register Window in View-Only Mode
June 2000
122
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
TimeA Field
TimeA is a simulation time that is used to synchronize all Signalscan Waves windows. When
you explicitly set TimeA, then the values of the objects displayed in the Register pane of the
Register window and in the Names pane of the Waveform window are the values that those
objects have at TimeA.
You can edit this field to display values at a different time. To edit TimeA in the Register
window:
1. Click your left mouse button in the TimeA field.
2. Edit the value.
3. Press your Enter key.
When you press the Enter key, TimeA is automatically updated in all other Signalscan
Waves windows that use TimeA, and Cursor1 is moved to the new TimeA value in the
Waveform window. See also “TimeA Marker” on page 56.
Current Sim Time Field
The Current Sim Time field displays the current simulation time for as long as the simulation
is active. When you are not running Signalscan Waves in interactive mode, this field is blank.
RegPage Name and Selected Variable Fields
The RegPage Name field (see Figure 5-1 on page 121) is a read-only field that shows the
name of the register page that is currently displayed in the Register pane. You cannot edit this
field to display a different register page. If you want to display a different register page, you
must click on the name of page in the Multi-List pane.
The Selected Variable field is a read-only field that shows the full name of any one object
you select in the Register pane. If you have not selected (highlighted) an object, this field is
blank.
Selection Mode and Text Mode Buttons
You can use the Selection Mode and Text Mode buttons to toggle the Register window
between selection and text modes. See “Creating and Customizing a Register Page” on
page 127 for information on how to use these buttons.
June 2000
123
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Previous and Next Value Change
TimeA and Cursor1 also automatically update whenever you select the previous or next value
change of an object from the Register window.
To select the previous or next value change in the Register window:
■
Click the previous or next value change button (see Figure 5-1 on page 121).
■
Enter Control-v (previous) or Control-n (next).
■
Select Control—Value Change .
TimeA and Cursor1 automatically update to the time of the previous or next change in value
of the selected object so that values for all objects are shown for that simulation time. If more
than one object is selected, the previous or next value change of any of the selected objects
is found. If no objects are selected, the previous or next value change of any of the objects
on the current register page is found.
Using the Define Mode Interactive Option
When you invoke Signalscan Waves from a simulator, you are automatically running the
wavforrm viewer in interactive mode . In interactive mode, TimeA is equal to the current
simulation time and the values of the objects in each Singlascan Waves window update
continuously as the simulation runs.
If you display the Control menu in the Register window when you are in interactive mode, you
see that the Define Mode Interactive option is automatically selected, as shown in
Figure 5-3 on page 125.
June 2000
124
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Figure 5-3 Define Mode Interactive Option
After you start Signalscan Waves in interactive mode, if at any time you change TimeA in any
Signalscan Waves window, go to the previous or next value change of an object in a Register
window, or select a marker or event in the Register window, Signalscan Waves leaves
interactive mode. This means that:
■
The Control—Define Mode Interactive menu option in the Register window is
automatically deselected.
■
The waveforms in all Signalscan Waves windows no longer update at regular intervals
as the simulation runs.
■
TimeA remains fixed in all Signalscan Waves windows at the time to which you set it
when you performed an operation from the list above.
■
The Current Sim Time field in the Register window continues to update as the
simulation runs.
If you select the Control—Define Mode Interactive menu option, then in all Signalscan
Waves windows:
■
TimeA synchronizes with the current simulation time again.
■
The waveforms again update at regular intervals as the simulation runs.
June 2000
125
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Multi-List Pane
The Multi-List pane displays the register pages, markers, and events that are defined. Click
on the down arrow in the top right corner of this pane, to the right of the label, to display a
drop-down list. Click on an item in the drop-down list to change the display in the Multi-List
pane to RegPages , Markers , or Events .
Displaying a Different Register Page
1. Display the RegPages list in the Multi-List pane.
2. Click on the name of the register page you want to display.
Deleting a Register Page
1. Display the RegPages list in the Multi-List pane.
2. Click on the name of the register page you want to delete.
The name of the page is highlighted in the RegPage Name field.
3. While the name of the page is still highlighted, click the Delete button or select Edit—
Delete .
Displaying a Marker or Event
See “The Multi-List Pane” on page 58.
Note: In the Register window, when you select a marker or event, both TimeA and Cursor1
are moved to that simulation time. This behavior is different from the behavior you get when
you select a marker or event in the Waveform window.
Register Pane
The Register pane displays the contents of the register page named in the RegPage Name
field. See “Creating and Customizing a Register Page” below for information on how to add,
move, group, modify, and delete simulation objects and text in this pane.
Register and Multi-List Pane Sizes
To change the relative sizes of the Register pane and Multi-List pane, move your mouse over
the line between the two panes until your mouse pointer looks like a double-headed horizontal
June 2000
126
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
arrow with a vertical line in the middle of it. Then press and drag your left mouse button to
position the divider between the two panes.
Creating and Customizing a Register Page
A register page is a customized view of a set of simulation objects that you can display in a
Register window. A register page can contain any arrangement of text, objects, and object
values. An object value is the value of an object at TimeA, though you can shift individual
values in time or invert them. You can use a register page to display vector values in binary,
octal, decimal, signed decimal, hexadecimal, or ASCII. You can place text in any open space
in the Register pane, and you can move and group text and simulation objects any way that
meets your needs.
To create a register page from the Waveform window, you perform the following steps:
1. Select some objects from the Names pane of the Waveform window.
2. Press Control-r or select Edit—Create—Register Page from the Waveform window
main menu.
The Create Register form appears, as shown in Figure 5-4 on page 127.
Figure 5-4 Create Register Form
3. Enter a name for the register page, and click OK .
A register page with the name you entered is created and is displayed in the Register
window, as shown in Figure 5-1. The selected objects are listed in the Register pane of
this window.
June 2000
127
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
To create a register page from the Register window:
1. Click the CrtRegPage button, press Control-r, or choose Edit—Create—Register
Page .
The Create Register form appears as shown above.
2. Enter a name for the register page, and click OK .
A register page that has the name you entered is created and is displayed in the Register
window. The Register pane is blank. See “Adding Simulation Objects to the Register
Page” on page 129 for instructions on adding new objects to your empty register page.
When you create a new register page, Signalscan Waves adds that page to an existing
Register window if there is one. To open multiple Register windows, choose Windows—
Register from any Signalscan Waves window. Signalscan Waves numbers multiple Register
windows sequentially, beginning with 1.
The object values that appear in a new register window are the values that objects have at
TimeA. These values update when TimeA changes.
Note: A Register window can display multiple register pages. You can switch between
register pages by clicking on the register page name in the RegPages list in the Multi-List
pane on the right-hand side of the Register window.
Figure 5-5 on page 128 shows a register page with groups and annotations.
Figure 5-5 Customized Register Page
June 2000
128
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Selecting Objects
Before you can operate on any object on a register page, you need to select it in the Register
window. To select an object in the Register window, peform the following steps:
1. Click the selection mode button (see Figure 5-1 on page 121) to make sure you are in
selection mode and not text mode.
2. Click on the objects and text that you want to select. Hold down the Control key while
clicking to select multiple items.
Note: You cannot drag your mouse to select multiple items. If you click and drag your mouse,
the item you first clicked on moves as you drag the mouse.
Grouping and Ungrouping Objects
You may want to group several simulation objects and text objects together to treat them as
a block on your register page.
In addition, you may want to ungroup some items to work separately with them. For example,
by default, the name and value of an object are grouped together so that you can easily move
them together. You may want to decouple them temporarily to move the value closer to or
farther from the name.
To group or ungroup items, perform the following steps:
1. Select them as described in ““Selecting Objects” on page 129”.
2. Choose Edit—Group Registers or Edit—Ungroup Registers from the Register
window main menu.
Adding Simulation Objects to the Register Page
To add simulation objects from a separate window to a Register page, perform the following
steps:
1. Select the objects that you want to add to the register page in the Names pane of the
Waveform window or in any other register page.
2. Copy or cut the objects from the original window. Use the Edit —Copy menu item or the
Copy or Cut buttons on the original window to copy the selected items.
3. Select the register page where you want to put the objects. You can use the Multi-List
pane of the Register window to display the RegPages list and select the register page
to which you want to add the selected objects.
June 2000
129
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
4. Paste the cut or copied objects into the selected register page. Use the Edit—Paste
menu item or the Paste button on the Register window to paste the objects that you have
just cut or copied.
Modifying Object Values
The Invert , Show Strength , and Shift options on the Format menu work as described in
“Format Menu” on page 87.
Adding Text
To add text to any area of a register page, perform the following steps:
1. Click the A button to enter text mode.
2. Click in any unused area of the register page.
A text box appears at the location that you clicked.
3. Type in the text that you wish to add to the area and press the Enter key.
Modifying Text
To modify any text that you have added to a register page, perform the following steps:
1. Click the A button to enter text mode.
2. Click in any unused area of the register page.
A text box appears at the location that you clicked.
3. Type in the text that you wish to add to the area and press the Enter key.
Moving Text and Simulation Objects
To move text objects or simulation objects within a register page, perform the following steps:
1. Select items as described in “Selecting Objects” on page 129.
2. Continue to hold down your left mouse button, and drag your mouse to move the selected
items.
The selected items move to the location at which you release the mouse button.
June 2000
130
Product Version 6.5
Signalscan Waves User Guide
Defining Design Views
Changing the Font Size of Text Objects
To change the font size of items in a register page, perform the following steps:
1. Select the items as described in “Selecting Objects” on page 129.
2. Select Format—Font Size from the Register window main menu.
3. Select a font size from the submenu that appears.
The text objects that you selected appear in the new font size that you chose from the
submenu.
Rearranging Objects
If you move items so that they overlap, or if you increase the font size of an item so that it
overlaps another item, you can choose Edit—Rearrange Registers from the Register
window main menu to automatically move objects as necessary so that no items overlap.
Deleting Objects
To remove text or simulation objects from a register page, perform the following steps:
1. Select the items you want to delete as described in “Selecting Objects” on page 129.
2. Click the Delete or Cut button or select Edit—Delete or Edit—Cut from the Register
window main menu.
June 2000
131
Product Version 6.5
Signalscan Waves User Guide
6
Analog Analysis
Signalscan Waves supports the opening and viewing of any number of digital and analog files
simultaneously in the same Waveform window. To view the waveforms of analog signals,
then, you only need to add those signals to the Waveform window in the same way that you
add digital signals.
This chapter explains how to use the analog waveform viewing features that are available in
Signalscan Waves. This chapter contains the following sections:
■
“Using Overlay Groups with Analog Signals” on page 133
■
“Using the Analog Waveform Height Bracket” on page 134
■
“Zooming and Panning Analog Signals and Overlay Groups” on page 135
■
“Customizing the Display of Analog Signals” on page 137
■
“Saving Analog Display Configurations” on page 141
■
“Performing Analog-to-Digital Conversion” on page 141
■
“Creating and Using Analog Expressions” on page 143
■
“Performing Measurements on Analog Signals” on page 146
June 2000
132
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Using Overlay Groups with Analog Signals
Signalscan Waves lets you overlay the waveforms of analog objects in the Waveform window.
A set of overlaid signals is called an overlay group. The Waveform window can display both
overlay groups and stacked objects at the same time, just as it can display both analog and
digital objects at the same time. A single named group in the Names pane of the Waveform
window (such as Group A) can contain both stacked objects and one or more overlay groups.
You can create any number of overlay groups and display them simultaneously be created in
the Waveform window.
Creating an Overlay Group
To create an overlay group in Signalscan Waves, you can use either the Design Browser or
the Waveform window.
Creating an Overlay Group in the Design Browser
To create an overlay group in the Design Browser window, you perform the following steps:
1. Add the signals that you want to overlay to an existing named group.
2. Select the overlay analog option by pressing the Overlay Analog button.
The Overlay Analog option is selected by default if you specify the -analog option
when you invoke Signalscan Waves. Deselect the Overlay Analog button to load the
signals in stacked mode.
The Overlay Analog option can be saved to a configuration file (.do file). To do this, you
can choose Define Add Variable Overlay from the Preferences list in the Options for
Saving a Do-File form. This saves the current setting of the Overlay Analog option in
the Design Browser window in the Do-File. See “Saving Your Configuration” on page 218
for more information.
You can also or enter the following text into a Do-File:
define add variable default overlay on
3. Click the AddToWave button in the button bar.
Signalscan Waves adds the signals that you selected to an overlay group and overlays the
signals on top of one another.
Note: Signalscan Waves does not overlay the new overlay group on top of any of the other
singals or overlay groups in the named group.
June 2000
133
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Creating an Overlay Group in the Waveform Window
To create an overlay group in the Waveform window, you perform the following steps:
1. Select one or more signals in the Names pane of the Waveform window.
You can press the Shift key or the Control key along with the left mouse button to
select multiple signals. You can select signals from different groups if you wish.
2. Select Edit—Overlay from the main menu.
Signalscan Waves creates and displays an overlay group that contains the selected signals.
The new overlay group appears at the insertion marker (yellow line) in the Names pane.
Modifying Overlay Groups
You can move nodes into and out of overlay groups in the Names pane of the Waveform
window, and you can change the position of signals within an overlay group. Select one or
more signals with your left mouse button, and then press and drag your middle or right mouse
button to move the selected signals. If you release the mouse button inside of an overlay
group, Signalscan Waves adds the selected signals to that overlay group.
Note: To add signals to the first (top) position of an overlay group, you need to add them
below the first signal and then move the top signal to a lower position in the group.
Converting Overlaid Signals to Stacked Signals
To separate signals that are in an overlay group, select any node in the overlay group, and
select Edit—Stack from the main menu. Signalscan Waves separates all of the signals in
that overlay group vertically within the named group.
Printing Overlay Signals
You can print the waveforms of the signals in any overlay group using either different line
patterns or different colors for the overlaid signals. See “Printing the Waveform Window” on
page 117 for more information on printing the contents of the Waveform window.
Using the Analog Waveform Height Bracket
Each analog waveform has a height bracket to the right of its object name. Overlay groups
have one height bracket for the entire group.
June 2000
134
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
You use a signal’s or group’s height bracket to change the height of its analog waveform(s) as
follows:
1. Move your mouse pointer over the top or bottom of the bracket that is associated with the
analog object name or overlay group.
The pointer changes to a double-headed vertical arrow.
2. While the pointer is a double-headed arrow, click and drag the bracket up or down to the
desired height. The minimum height of an overlay group is the height that is required to
show the names of all the nodes in the group.
3. Release the mouse button.
The waveforms and the grid underlying the waveforms (if the grid is displayed — see
“Customizing the Display of Analog Signals” on page 137 for more information on displaying
and hiding grids) compress or expand to fit the new height.
Zooming and Panning Analog Signals and Overlay
Groups
In the Waveform window, analog signals and overlay groups have their own Y axis. This
means that you can pan each analog signal and overlay group independently of the
Waveform pane vertical scroll bar and that you can have a different Y zoom factor for each
analog signal and overlay groups in the window. The X axis, however, is common to all nodes
in the Waveform pane. Zooming and scrolling the X axis for any signal scrolls all other signals
in the Waveform pane.
Using the Vertical Zoom Features
The Waveform window has vertical zoom capabilities for all analog signals and overlay
groups. You can access these signals from the button bar (ZoomInY, ZoomOutY, and
ZoomOutYFull buttons) or from the View—Zoom menu.
Note: Digital signals do not have Y zoom capability in Signalscan Waves, so you must select
an analog signal in the Names pane of the Waveform window before you can use the
ZoomInY, ZoomOutY, or ZoomOutYFull buttons and View—Zoom menu options. If you
do not select an analog signal, Signalscan Waves does not enable the Yzoom buttons and
menu options.
The ZoomInY and ZoomOutY buttons zoom and View—Zoom menu options zoom in and
out on a signal or overlay group by a factor of 2.
June 2000
135
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
You can zoom in and out more precisely on the Y axis of a signal or overlay group by setting
the minumum and maximum values for that signal or group. See “Minimum and Maximum
Values” on page 138 for instructions on how to do this.
In addition to the ZoomInY and ZoomOutY options, the Waveform window also has a
ZoomOutYFull button and a ZoomOutYFull menu option under the View—Zoom menu.
ZoomOutYFull adjusts the display in the Waveform pane to show the entire range of Y values
for the selected signal or overlay group.
The ZoomOutYFull feature provides you with a convenient way to set the display of an
overlay group to include the minimum and maximum values of the overlay group. The
minimum value is the lowest value of all the objects in the overlay group, and the maximum
value is the highest value of all the objects in the overlay group.
Using the Horizontal Zoom Features
The Waveform window has horizontal zoom capabilities for all analog and digital signals and
overlay groups. You can access these X zoom options from the button bar (ZoomInX ,
ZoomOutX , and ZoomOutXFull buttons) or from the View—Zoom menu. The time axis (X
axis) is the same for all signals and overlay groups. Therefore, when you select one of the X
zoom options, every signal in the Waveform pane zooms in or out equally.
The ZoomInX and ZoomOutX features zoom in and out on the X axis by a factor of 2.
You can also zoom within a specified horizontal area. To do this, position Cursor1 and
Cursor2 around the area that you want to display in the Waveform pane, and then choose
View—Zoom—Between Cursors (Control-z) or simply click your right mouse button in
the Waveform pane.
In addition to using the button bar and menu options, you can access the X zoom options
quickly by using keyboard shortcuts. Press Control-i to zoom in, Control-o to zoom out,
Control-f to zoom out full, and Control-z to zoom between cursors.
Using the Area Zoom Feature
In addition to its axis-specific zoom features, Signalscan Waves has an area zoom feature
that lets you zoom to display a specific rectangular area of an analog waveform or overlay
group.
To define a rectangular area and zoom in on it, hold down the Shift key while you press and
drag your left mouse button. When you release the mouse button, everything in the Waveform
pane is zoomed in.
June 2000
136
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Panning Analog Waveforms
Panning is similar to zooming in that when you pan horizontally, you pan along the X axis of
all of the signals in the Waveform pane at the same time, whether those signals are analog
or digital. However, you can also separately pan along the Y axis of each analog signal or
overlay group.
To pan all of the nodes in the Waveform pane horizontally, press the left and right arrows on
your keyboard or use the scroll bar at the bottom of the Waveform pane.
To pan all of the signals in the Waveform pane vertically, press the up and down arrows on
your keyboard or use the scroll bar on the right side of the Waveform pane.
To pan a single signal or overlay group vertically, first select the object that you want to pan
from the Names pane. (To select an overlay group, you only need to select one object in that
overlay group.) Then hold down the Shift key while you press the up and down arrows on
your keyboard.
Customizing the Display of Analog Signals
signalscan Waves lets you customize the display of the analog waveforms in your Waveform
window in several different ways. This section explains how to use the custom features of the
analog waveform display. The custom analog display features that are described in this
section are:
■
“Grids” on page 137
■
“Data Points and Lines” on page 138
■
“Minimum and Maximum Values” on page 138
■
“Display Scale” on page 139
Grids
You can use the View—Grid menu item on the Waveform window to enable or disable
displaying a labeled grid in your waveform pane. Signalscan Waves automatically determines
the width of the grid cells uses round numbers to label the grid wherever possible.
You can save the option to display or hide the grid in a configuration file (.do file). To do this,
select Wave Grid from the Preferences list in the Options for Saving a Do-File form. This
saves the current grid setting in the Waveform window in a Do-File. You can also save your
grid display preference by entering the following text in a Do-File:
June 2000
137
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
define waveform window grid on
Data Points and Lines
By default, the Waveform window display analog waveform as lines. However, you can use
the View—Analog Display Mode menu to display the analog waveforms as Points , Lines ,
or Points and Lines . Signalscan Waves displays all of the analog waveforms in the
Waveform pane in the mode that you select.
This display mode can be saved in a (.do file). Select Analog Draw Mode from the
Preferences list in the Options for Saving a Do-File form. This saves the current drawing mode
setting in the Waveform window in a Do-File. You can also save your analog draw mode
preference by entering the following text in a Do-File:
define analog waveform points
See Appendix A, “Saving and Restoring Your Configuration” for more information on saving
and restoring Do-Files.
Minimum and Maximum Values
You can display only a specific range of Y values of each analog signal and overlay group in
your design. Setting the minimum and maximum values for a signal or overlay group is similar
to using the Y zoom features that are described in “Using the Vertical Zoom Features” on
page 135, but setting the minimum and maximum values is quicker if you know the range of
Y values that you want to view.
To set the range of values that you display for a given signal or overlay group, perform the
following steps:
1. Select the signals and overlay groups whose Y values you want to limit in the Waveform
pane display.
2. Choose Format—Define Analog Min/Max Values from the Waveform window main
menu.
The Set Analog Min/Max form appears, as shown in Figure 6-1 on page 139.
June 2000
138
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-1 Set Minimum and Maximum Values
3. Specify the range of values that you want to display in the Waveform window for the
selected analog objects.
If you have the grid display turned on, the Y-axis grid labels update to reflect the new
minimum and maximum values for the selected signals, and the waveforms compress or
expand appropriately.
Note: If you specify a minimum value that is greater than the actual minimum value of a
waveform, or if you enter a maximum value that is less than the actual maximum value of a
waveform, that waveform is cropped in the display; only those portions of the waveform that
are between the values that you specified are displayed. To view the cropped portions of a
waveform, you must vertically pan that waveform.
Display Scale
You can specify the scale of the units in which selected analog objects are displayed in the
Names pane of the Waveform window. For example, if an object normally shows a value of
4500uV in the Names pane, you can change its display scale to 10-3(m) to cause the object
value to appear as 4.5mV in the Names pane.
To change the display scale of an object in the Names pane, you perform the following steps:
1. Select the analog objects in the Names pane whose units you want to change.
June 2000
139
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
2. Choose Format—Define Variable Display Scale from the Waveform window main
menu.
The Variable Display Scale form appears, as shown in Figure 6-2 on page 140.
Figure 6-2 Define Variable Display Scale Form
3. Press the appropriate toggle button to specify the scale of the units in which you want to
display the values of the selected analog objects in the Names pane.
The Names pane display changes to reflect your specifications.
Note: The Waveform pane display is not affected by the variable display scale setting
that you choose. For example, if the selected object shows a value of 4500uV, changing
the display scale to 10-3(m) causes the same value to be displayed as 4.5mV in the
Names pane.
June 2000
140
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Saving Analog Display Configurations
You can save several analog signal display settings as preferences in a Do-File (.do file).
These include:
■
Contents of named groups (including expressions)
■
Zoom settings
■
Overlay Analog setting
■
Grid Display setting
■
Display (draw) mode
■
Default heights of specific waveforms
■
Default heights of specific height brackets
You can also reproduce the current view by reading the configuration file. (Choose
File—Execute Do-File from the Waveform window main menu to read the current
configuration file.) See Appendix A, “Saving and Restoring Your Configuration,” for more
information on using configuration files to create reusable analog signal display settings.
Performing Analog-to-Digital Conversion
You can convert any single analog object to a single-bit digital value by specifying the
threshold values of the object. Similarly, you can convert a set of analog objects to a digital
bus by specifying the threshold values for the entire set of objects. You use the Create Bus
From Selected Variable(s) form to perform analog-to-digital conversion on both single
signals and sets of signals.
To convert an analog signals or set of signals to digital form, you create a bus that contains
the signal(s) that you want to convert, as follows:
1. Click your middle mouse button in the Names pane to position the insertion marker at the
location at which you want to place the new signal or bus.
2. Select the analog object(s) that you want to convert to digital format in the Names pane.
Choose Edit—Create—Bus (Control-w). The Make Bus From Selected
Variable(s) form appears, as shown in Figure 6-3 on page 142.
June 2000
141
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-3 Analog-to-Digital: Create Bus Form
This form is the same as the one shown in Figure 4-32 on page 100, except that this one
has space to enter one or two threshold values. These threshold fields appear only if you
have selected one or more analog objects. Notice the units (V) that are associated with
the threshold values. The other features of the Make Bus From Selected Variable(s)
form work the same as they do for digital signals. (See “Defining and Using Busses” on
page 99 for more information on making buses from sets of digital signals.)
3. Specify one or two threshold values for your digital signal(s).
If you specify only one threshold value, then any of the original analog values that are
less than the threshold value convert to 0 in the digital results, and any values that are
greater than or equal to the threshold are converted to 1.
If you specify two threshold values, then any of the original analog values that are less
than the smaller of the two threshold values convert to 0, any of the original values that
are greater than or equal to the larger of the two threshold values convert to 1, and any
other values (those that are less than the larger threshold value and greater than or equal
to the smaller threshold value) convert to x.
If you perform analog-to-digital conversions and then save your configuration in a Do-File, you
can see those conversions defined by atod functions in the .do file. If you want to create a
script in a Do-File that automatically converts analog signals to digital buses, you can use the
atod (analog-to-digital) function, as described in “Expression Example Using Analog to
Digital Function” on page 145.
June 2000
142
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Creating and Using Analog Expressions
In the Signalscan Waves Waveform window, you can create and use expressions to perform
operations on both analog and digital signals, and you can display the waveforms of the
results of the operations that you perform. Signalscan Waves has a special set of operations
for the analog signals in your designs, and the waveform viewer shows the results of analog
operations in a unique way.
To display the value of an analog expression as an object in the Names pane of the Waveform
window and to show the waveform of the results of that expression in the Waveform pane,
you perform the following steps:
1. Click your middle mouse button in the Names pane to position the insertion marker at the
location at which you want to place your new expression object.
2. Choose Edit—Create—Expression from the Waveform window main menu. The
Create Expression form displays as shown in Figure 6-4 on page 143.
Figure 6-4 Create Expression Form
3. Optionally, enter a name for the new object in the Enter Expression Name field. If you
do not enter a name, Signalscan Waves uses the expression itself as the expression
name in the Names pane of the Waveform window.
June 2000
143
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
4. Enter an expression in the Enter Expression field using any combination of the
operations listed in Table 6-1 on page 144:
Table 6-1 Analog Expression Operations
+x
–x
x+y
x–y
x*y
x/y
x%y
x ** y
x<y
x <= y
x>y
x >= y
x == y
x != y
abs(x)
acos(x)
asin(x)
atan(x)
atan2(y,x)
atod(x,y[units][,z[units]])
cos(x)
cosh(x)
exp(x)
hypot(x,y)
log(x)
log10(x)
sin(x)
sinh(x)
sqrt(x)
tan(x)
tanh(x)
5. Click the OK button on the Create Expression form.
The new object appears at the insertion marker.
Note: If you use expressions on analog objects, Signalscan Waves may not be able to draw
smooth waveforms of the results of those expressions, in the following situations:
■
When you create the expression, if not all of the objects that you use in the expression
are visible in the Waveform window.
■
When you perform certain operations on an analog signal whose value changes
infrequently, or when you zoom in too far on an analog signal after applying certain
operations to it. This happens because Signalscan evaluates all expressions except >,
>=, <, <=, ==, and != only at the data points of the expression operands.
Escaping Special Characters
You can use escape special characters in an analog expression, just you escape characters
in a Verilog expression. To escape special characters in an analog expression, enter a
backslash (\) in front of the object name, and then put a space character after the object name
to end the escape and correctly interpret any remaining parts of the expression. For example:
abs(\N1(v) )
Specifying Expressions with Constant Values
If you use a constant value in your expression, you can append an abbreviation for units, such
as s, ns, V, or mV, to the constant.
June 2000
144
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
The power (**) and square root (sqrt) operations result in the removal of units from the
operands.
Specifying Expressions in a Do-File
You can specify expressions that you want to apply to analog signals as objects in a Do-File.
To define an analog expression as an object in a Do-File, enclose the expression in double
quotation marks and use it in place of an object name in any legal Do-File statement. For
example:
add group A "atod(X1.XI26.PL2,0.6V,2.7V)"
Expression Example Using Analog to Digital Function
You can convert any analog object to a single-bit digital value by using the atod (analog to
digital) function.
The syntax of the atod function is:
atod(objectname ,threshold1 [units ][,threshold2 [units ]])
If you use the atod function, and the analog value that you are converting has units
associated with it, then you must specify units for the threshold value(s). The threshold value
units must be compatible with the analog value units.
This example shows you how to create an expression object that uses the atod function to
display the waveform of an analog signal in digital format in the Waveform window.
Note: This example uses the atod function only to illustrate the process of creating and
viewing an analog expression as an object. This example is not intended to illustrate the best
way to perform analog-to-digital conversions, as when you are using the Signalscan Waves
Waves GUI, it is much easier to use the Create Bus From Selected Variables form to
convert analog signals to digital format. (See “Performing Analog-to-Digital Conversion” on
page 141 for instructions on how to do this.)
Figure 6-5 on page 146 shows an example of using the atod function in the Create
Expression form.
June 2000
145
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-5 Analog-to-Digital: Create Expression Form
Performing Measurements on Analog Signals
You can use Cursor1 and Cursor2 to perform several measurements on the analog signals
that you display in the Waveform window. You use the View menu on the Waveform window
to access the following analog measurement functions:
■
“Value at Cursors” on page 147
■
“Slope For Values at Cursors” on page 148
■
“Minimum, Maximum, and Peak-to-Peak Between Cursors” on page 150
■
“Rise/Fall Time at Cursor1” on page 151
■
“Average Values Between Cursors” on page 153
■
“RMS Values Between Cursors” on page 155
June 2000
146
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Value at Cursors
The View—Value at Cursors menu option on the Waveform window lets you measure the
amount by which an analog object’s value changes over a specific time interval.
To measure the amount by which each of several analog objects changes over a specific time
interval, you perform the following steps:
1. Select the objects whose value changes you want to measure from the Names pane of
the Waveform window.
2. Position Cursor1 and Cursor2 at the start and end times of the interval over which you
want to measure the value changes of the selected objects.
Choose View—Value at Cursors from the Waveform window main menu. The Value
window appears, as shown in Figure 6-6 on page 147, displaying the values at Cursor1
and Cursor2 and the difference between those values for each object that you selected.
If you move the cursors, these values update accordingly.
Figure 6-6 Value at Cursors
June 2000
147
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Slope For Values at Cursors
The View—Slope For Values at Cursors menu option lets you measure the slope of the
the curve of an analog object between two points in time.
To measure the slopes of the curves of several analog objects over a specific time interval,
you perform the following steps:
1. Select the objects whose slopes you want to measure from the Names pane of the
Waveform window.
2. Position Cursor1 and Cursor2 at the start and end times of the interval over which you
want to measure the slopes of the selected objects.
3. Choose View—Slope For Values at Cursors from the Waveform window main menu.
A window appears, as shown in Figure 6-7 on page 149, displaying the slope between
the two points that are defined by Cursor1 and Cursor2 for each object that you selected.
If you move the cursors, Signalscan Waves recalculates the slopes accordingly.
June 2000
148
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-7 Slope For Values at Cursors
June 2000
149
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Minimum, Maximum, and Peak-to-Peak Between Cursors
The View—Min/Max/Peak-to-Peak Between Cursors menu option lets you measure the
minimum, maximum. and peak-to-peak values over a specifc time interval for one or more
objects.
To measure the minimum, maximum, and peak-to-peak values for several objects over a
specific time interval, you perform the following steps:
1. Select the objects whose minimum, maximum, and peak-to-peak values you want to
measure from the Names pane of the Waveform window.
2. Position Cursor1 and Cursor2 at the start and end times of the interval over which you
want to measure the values for the selected objects.
3. Choose View—Min/Max/Peak-to-Peak Between Cursors from the Waveform
window main menu.
A separate window appears, as shown in Figure 6-8 on page 150, displaying the
minimum, maximum, and peak-to-peak values for the area between Cursor1 and
Cursor2 for each object that you selected. If you move the cursors, Signalscan Waves
recalculates these values accordingly.
Figure 6-8 Min/Max/Peak-to-Peak Between Cursors
June 2000
150
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Rise/Fall Time at Cursor1
The View—Rise/Fall Time at Cursor1 menu option lets you measure the rise time or fall
time of an analog object in the Waveform window.
To measure the rise or fall times of several objects in the Waveform window, you perform the
following steps:
1. Select the objects whose rise or fall times you want to measure from the Names pane of
the Waveform window.
2. Position Cursor1 over a rising or falling edge of an object or group of objects.
3. Choose View—Rise/Fall Time at Cursor1 from the Waveform window main menu.
A separate window appears, as shown in Figure 6-9 on page 152, displaying the rise or
fall times for each selected signal at Cursor1. Siganscan Waves calculates these values
using the object values and thresholds that you specify.
Note: For the rise or fall time to have a value for a given object, the value of that object
at Cursor1 must be between the specified thresholds. You can specify different
thresholds by editing the Low Threshold and High Threshold fields and then clicking
the Apply button in the Rise/Fall Time window.
June 2000
151
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-9 Rise/Fall Time at Cursor1
June 2000
152
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Average Values Between Cursors
The View—Average Values Between Cursors menu option lets you measure the average
value of an analog object over a specific time interval.
To measure the average values of several objects over a given time interval, you perform the
following steps:
1. Select the objects whose average values you want to measure from the Names pane of
the Waveform window.
2. Position Cursor1 and Cursor2 at the start and end times of the interval over which you
want to measure the average values of the selected objects.
3. Choose View—Average Values Between Cursors from the Waveform window main
menu.
A separate window appears, as shown in Figure 6-10 on page 154, displaying the
average value of each object that you selected over the time interval that you defined with
Cursor1 and Cursor2. If you move the cursors, Signalscan Waves recalculates the
average value of each object accordingly.
June 2000
153
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-10 Average Values Between Cursors
June 2000
154
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
RMS Values Between Cursors
The View—RMS Values Between Cursors menu option lets you measure the RMS (root
mean square) value of an analog object over a specific time interval.
To measure the RMS values of several objects over a given time interval, you perform the
following steps:
1. Select the objects whose RMS values you want to measure from the Names pane of the
Waveform window.
2. Position Cursor1 and Cursor2 at the start and end times of the interval over which you
want to measure the RMS values of the selected objects.
3. Choose View—RMS Values Between Cursors from the Waveform window main
menu.
A separate window appears, as shown in Figure 6-11 on page 156, displaying the RMS
value of each object that you selected over the time interval that you defined with Cursor1
and Cursor2. If you move the cursors, Signalscan Waves recalculates the RMS value of
each object accordingly.
June 2000
155
Product Version 6.5
Signalscan Waves User Guide
Analog Analysis
Figure 6-11 RMS Value Between Cursors
June 2000
156
Product Version 6.5
Signalscan Waves User Guide
7
Transaction-Based Verification
The information presented in this chapter requires a license for the Affirma verification cockpit
(#29500), which is available separately.
Just as synthesis tools allow you to design at a higher level of abstraction (RTL versus gates),
the tools in the transaction-based verification (TBV) package allow you to simulate and debug
your design at a higher level of functionality (transactions versus signals). Signalscan allows
you to analyze your design’s function at the transaction level, while still retaining the ability to
work at the lower level details of your design’s interface protocols when necessary.
To work at the transaction level, you create a transactor or TVM (Transaction Verification
Module) that handles the transaction details for you. For example, you instruct the TVM to do
a read, supply an address, and have the result returned. With this capability, you can
construct large-scale tests that exercise TVMs rather than supply all of the protocol details in
a vector set. Signalscan makes it easier to analyze simulation results for such systems
because it allows you to view the transactions the TVM is performing directly instead of
analyze miles of waveforms to figure out exactly what happened in your system.
Transaction Representation
This section describes the transaction representation used to store transactions in the SST2
database and subsequently view them in Signalscan.
A transaction occurs on an interface , which is a collection of signals and buses that are
monitored or controlled by a single finite state machine (FSM) in the design being verified.
The FSM controls the activity on the interface, and therefore is known as a thread of control.
A specific sequence of states (typically from Idle to Idle) that the FSM traverses is a
transaction . Examples of transactions include read operations, write operations, and
packet transmissions. A transaction has duration: It begins at some specific time and ends at
some later time.
June 2000
157
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
Figure 7-1 Sample Transaction Sequence on a Thread
cpu0
read
write
write
read
read
simulation time
transaction
Figure on page -158 shows a sequence of read and write transactions that occur on interface
cpu0. All of the activity that occurs on this processor interface between the two arrows
represents a write transaction. Only one thing at a time can occur on an interface, so
transactions cannot overlap. Transactions that overlap occur on multiple threads. See
“Multiple Threads” on page 159.
While the sequence of transactions by itself is useful, its value is somewhat limited during
debugging. You can associate pieces of information, called properties , with each
transaction to aid in your understanding of the system. For example, it is useful to show
address and data.
Figure 7-2 Transactions with Properties
cpu0
read
addr:0xffff428a
data:0x07f264b9
write
addr:0xffff779c
data:0x6842d6aa
label
other properties
Figure on page -158 shows two transactions, each with three properties. The top-most
property is the label, a short user-defined string that identifies the transaction. Below the label
are two additional properties: addr and data.
Although it is shown this way in the example, there is no need to have the same properties
on different transactions. In this example, addr and data happen to be meaningful on both
transactions, but if they were not, there would be no need to carry around unnecessary
properties.
There is no limit to the number of properties that you can associate on a transaction.
Signalscan displays both the property’s name (for example, addr) and its value (for example,
0xffff428a). Property values are integers, floating point numbers, strings of any length, or
four-value (0,1,X,Z) bit vectors of any length.
June 2000
158
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
Hierarchical Transactions
Transactions sometimes occur in phases. The burst read shown in Figure on page -159
below is an example of such a transaction.
Figure 7-3 Hierarchical Transaction
cpu0
burst_read
addr:0xffff428a
data:0x07f264b9
init
byte0
byte:07
byte1
byte:f2
byte2
byte:64
byte3
byte:b9
The burst read begins with an init phase followed by four single byte reads. In verifying the
design, there are times when you only need to consider the top level transaction, and there
are other times when the finer granularity of the individual phases is useful. Signalscan
makes both available. The subordinate phases are called child transactions. Their parent
is the top level burst read.
Children occur on the same thread as their parent and cannot overlap, for the same reason
that no transaction can overlap on the same thread. A child transaction may begin at (or after)
the same time as its parent begins and must end before (or at the same time as) its parent
ends. That is, children transactions cannot extend outside of the time bounds of their parents.
There is no limit to the number of levels of hierarchy that you can create.
You can associate properties with children. The properties of a parent can also be considered
to be properties of a child if the child does not specifically set them. In the example in Figure
on page -159 above, the children of the read transaction can also be considered to have addr
and data as properties. Special deferred properties allow a child to set the property on a
parent. Chapter 9, “Recording Transactions,” describes the concept and mechanisms of
property inheritance in detail.
Multiple Threads
A single FSM is typically capable of performing several different types of transactions.
However, since single FSMs can only be performing a single traversal of its states at a time,
all of its transactions are necessarily sequential (non-overlapping). Many protocols (for
example, protocols for pipelined processor buses) have the concept of multiple overlapping
operations. However, these protocols actually require two or more interacting FSMs to
June 2000
159
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
implement the protocol. Such protocols really represent two independent, yet related,
interfaces or threads within a single TVM. These interfaces operate concurrently and
independently, but data and control information moves between them.
Sometimes, the interfaces of the system interact closely. For example, the address and data
tenure interfaces of a pipelined processor bus protocol interact closely to transfer data
between a bus master and a bus slave. Other times, the interfaces of a system interact
loosely. For example, in a design that bridges traffic from one bus (the processor bus) to
another bus (an IO expansion bus), the activity on the processor interface may cause some
related activity to occur on the IO interface at some later time. These independent cause and
effect transactions are related through the expected operation of the design itself.
In addition to allowing you to keep track of activity on a single interface or thread, Signalscan
provides a means for you to keep track of the relationships between transactions that occur
on different interfaces. The mechanism used relies on transaction tags . Transaction tags
allow you to link transactions together, forming predecessor/successor relationships
between transactions. With such relationships in place, you can use Signalscan to view the
relationships between transactions.
A transaction that causes another transaction to occur is the predecessor of the
consequent transaction. Conversely, the consequent transaction is the successor of the
initiating transaction. For example, consider testing a system where the processor TVM
controls both an address tenure interface and a data tenure interface. The test issues a read
request to the processor TVM, which causes a transaction on the address tenure interface.
Some time later, when the system returns the read data, the related data tenure transaction
occurs on the data tenure interface as shown in Figure on page -160:
Figure 7-4 Multiple Interacting Threads
test
read
predecessor
successor
read
addr_tenure
predecessor
successor
data_tenure
June 2000
read
160
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
The transaction for the address tenure succeeds the test’s transaction (requesting the TVM
to perform the read), and the data tenure transaction succeeds the address tenure
transaction. Conversely, the test’s read transaction precedes the address tenure transaction
and the address transaction precedes the data transaction. These relationships are
maintained in the SST2 database and can be viewed in Signalscan.
Creating Transactions from Verilog
Signalscan provides a set of system tasks, collectively known as the Transaction Recording
System Tasks (TRST), that you use to put transaction information into the SST2 database.
This section outlines the basic set that you can use to do most of what is necessary to record
transactions. The full documentation on all of the TRST functions is in Chapter 9, “Recording
Transactions.”
Defining Basic Transactions
Verification engineers typically use BFMs (Bus Functional Models) as part of their verification
process. They use $display calls to write specific information about model activity into a log
file. To record transaction information from your BFM or TVM (Transaction Verification
Module) into the SST2 database, put a TRST call in the same place that you would normally
use $display.
At first glance, there are two fundamental ways that you can record transactions. For
maximum compatibility with $display, you can use the $trans_display call. For greater
functionality, use the $trans call.
$trans_display
The $trans_display call takes the same arguments as Verilog’s $display call. Its format
is:
$trans_display(format_string ,args );
In many cases, you can simply replace all of the $display calls that you currently use with
$trans_display calls. The effect you get is that a transaction begins (on the thread for that
TVM) at the time that the $trans_display executes, and ends at the time the next
$trans_display call executes (for that thread). The transaction has a description that
matches what the $display would have printed out to the log file.
June 2000
161
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
Like $display, $trans_display can take multiple format strings, each with its own
argument list. The $trans_display call uses the first format string as the transaction’s
label. That is, an alternate way to use $trans_display is:
$trans_display(label_format_string ,args ...,
description_format_string ,args ...);
The label is typically a very short description of the transaction, whereas the description is
typically more verbose. Labels allow you to see quite a bit of information in the transaction
display when you have zoomed out a little. Descriptions allow you to see more detail after
zooming in the Signalscan Waveform Pane.
$trans
The $trans call is the primary transaction call. It is very similar to $display, but it gives you
more control over what gets stored into the transaction record. Specifically, you can assign
properties and use options as follows:
$trans(options ,property_assignments ,
label_format_string ,args ...,
description_format_string ,args ...)
The following example shows how you can assign properties to a transaction. Property
assignments identify the name of the property and its value. Note that you can use
expressions, and also note the use of the equals sign (=) in the string. The equals sign says
you are doing a property assignment.
$trans(options , "write_data=",p2_wrdata,
"address=",((row_addr<<12)+col_addr),
other_property_assignments ,
label_format_string ,args ...,
description_format_string ,args ...)
In addition, there are many options that can be applied to a transaction. One such option is
the -trans_type option. See “$trans Variant Options” on page 206 for more information on
transaction options.
Syntactically, an option is specified as follows:
$trans("-trans_type",trans_type ,
June 2000
162
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
other options , property assignments ,
label_format_string ,args ...,
description_format_string ,args ...)
$trans_event and $trans_error
The $trans_event and $trans_error calls are two other functions that you can use for
recording transactions. Both of these functions take the same arguments that the $trans call
takes.
The $trans_event call generates a zero duration child transaction of the current
transaction. This is useful for recording time-specific properties of the parent transaction.
The $trans_error call also generates a zero length child transaction. In addition to the
properties in the argument list, it sets the error property of the transaction to true, indicating
that the current transaction has an error. Errors can be easily searched and viewed in the
Signalscan Waveform Pane. In addition, errors are automatically tallied for each TVM
individually, as well as globally, and the counts can be viewed in the Waveform Pane along
with the individual transactions.
Defining Bounded and Hierarchical Transactions
The $trans and $trans_display calls are sufficient for most cases. However, they have
two limitations:
■
They presume that a given transaction is always active until the next transaction starts.
■
They cannot be used to build deeper hierarchies of transactions.
Note that event transactions ($trans_error, $trans_event) are always children of
the current transaction. So, in that sense, $trans calls can be used to build two-deep
hierarchies.
There are two additional calls that address both of these limitations: $trans_begin and
$trans_end. These calls can be used to create disjoint transactions or to build transaction
hierarchies.
The $trans_begin call takes the same arguments as the $trans call takes. The
$trans_end call does not take a label or a description, but can be used to set properties on
the current transaction before ending it. Figure 7-5 on page 164 shows a simple example that
illustrates how to build hierarchical transactions using these calls. This code creates a
transaction view that looks similar to Figure 7-3 on page 159.
June 2000
163
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
Figure 7-5 Hierarchical Transactions Source: $trans_begin an $trans_end
$trans_begin("burst_read");
// starts transaction (parent)
$trans_begin("init");
// starts child transaction
#5;
// do some work
$trans_end;
#5;
// ends "init" child transaction
// delay makes transactions disjoint
for(i = 0; i < 4; i = i + 1) begin
$trans_begin("byte%d",i); // starts child transaction
#10;
// do some more work
$trans_end;
// ends "byte" child transaction
end
$trans_end;
// ends parent transaction
Any $trans or $trans_begin calls that are executed after a $trans_begin, but before
its matching $trans_end, introduce another level of hierarchy in transaction recording. This
is useful for simple code segments as shown in Figure 7-5 above, but also can be used to
trace nested task executions. You can accomplish this by having all tasks execute a
$trans_begin at the beginning of their execution, and a $trans_end prior to finishing.
Assigning Properties
Previous sections of this document described how you can associate properties with specific
transactions by using the $trans call or its variants. However, sometimes it is useful to
associate a property with a transaction that has already started. Use the $set_property
call to do that. For example, in the case of a read transaction, the read data can be associated
with the currently open transaction as shown below:
$trans_begin("read");
// start transaction
...
// initiate the protocol
@(read_acknowledgement)
// wait for read data
$set_property("data=",rd_data); // associate read data with the
// current transaction
$trans_end;
// end the transaction
Alternatively, the read data can be associated with the transaction by using the $trans_end
call directly, as shown below:
June 2000
164
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
$trans_begin("read");
// start transaction
...
// initiate the protocol
@(read_acknowledgement)
// wait for read data
$trans_end("data=",rd_data);
// associate read data and
// end the transaction
TVM Declaration/Registration
There are two calls that allow you to identify a module as either a test or a TVM:
$bfm;
$test;
These calls are optional. If a module uses any TRST system tasks and does not use one of
these calls, then that module is presumed to be a TVM. TVM transactions and test
transactions are displayed in different colors in the Signalscan Waveform Pane.
Defining Multi-Threaded TVMs
Up to this point, this section has discussed only single threaded TVMs. Many TVMs (for
example, TVMs for pipelined processor protocols) have more than one thread of execution,
and therefore must record transactions on more than one thread (as shown in Figure 7-4 on
page 160). For TVMs with multiple threads, use the following call to identify the different
threads:
$thread(interface_name );
where the interface_name is a one- to four-character string literal that identifies the
name of the interface.
The $thread call performs two functions:
■
It declares the name of the interface (if it has not previously been declared).
■
It indicates that all of the TRST calls executed within this block belong to the named
interface. In this context, the term block means either a Verilog named block or a Verilog
task.
Note that once a thread is declared using the $thread call with a string literal argument,
subsequent calls to $thread can have a Verilog variable as the argument, where the variable
contains the name (32-bit, four-character) of the pre-declared thread. This is useful when
using a single Verilog task to perform some function on a variety of different threads.
June 2000
165
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
Single-threaded TVMs may use the $thread call, but it is optional. Multi-threaded TVMs
must use the $thread call, and must also ensure that:
■
Every task that uses any TRST call has a $thread call to identify which thread the TRST
calls belong to.
■
Every initial or always block that uses any TRST calls is a Verilog named block, and
has a $thread call that identifies which thread the TRST calls belong to.
The following three examples show how to use the $thread call in initial blocks, always
blocks, and Verilog tasks. For more detailed information and additional examples, see
“Thread System Tasks” on page 198.
Example 1
initial begin : block1
// named block
$thread("addr");
// Declare thread "addr".
//
Any number of:
//
TRST calls, including:
//
o $trans
//
o $trans_begin/$trans_end
//
o $trans_error
//
o $set_property
//
o $get_trans_tag
//
Verilog statements, including:
//
o begin/end
//
o fork/join
//
o task calls
//
o blocking statements (#, wait)
//
For example:
do_work("addr");
// Call Verilog task, passing
// interface info.
end
// end of named block
Example 2
always begin : block2
// named block
$thread("data");
// Declare thread "data".
June 2000
166
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
//
Any number of:
//
TRST calls, including:
//
o $trans
//
o $trans_begin/$trans_end
//
o $trans_error
//
o $set_property
//
o $get_trans_tag
//
Verilog statements, including:
//
o begin/end
//
o fork/join
//
o task calls
//
o blocking statements (#, wait)
//
For example:
do_work("data");
// Call Verilog task, passing
// interface info.
end
// end of named block
Example 3
task do_work
// Verilog task
input [31:0] thread;
// variable containing thread name
begin
// block does not have to be named
$thread(thread);
// Identify which thread the TRST
// calls in this task should affect.
// This can be a constant.
//
Any number of:
//
TRST calls, including:
//
o $trans
//
o $trans_begin/$trans_end
//
o $trans_error
//
o $set_property
//
o $get_trans_tag
//
June 2000
Verilog statements, including:
167
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
//
o begin/end
//
o fork/join
//
o task calls
//
o blocking statements (#, wait)
end
endtask
// end task
Identifying Related Transactions
In addition to creating transactions, the TRST calls allow you to define relationships between
transactions. The relationships are stored into the SST2 database along with the other
transaction information so that you can see the relationships between these transactions by
selecting operations from the Signalscan Control menu, such as:
■
Show Related Transactions
■
Show Predecessors
■
Show Successors
Identifying relationships between transactions depends on linking transactions using a
transaction tag . This is a three-step process:
1. After starting a transaction (the predecessor transaction) in one module, that module can
create a transaction tag for the current transaction, and store the transaction tag into a
64-bit Verilog register.
2. Using any desired mechanism, the module that started the predecessor transaction
passes the transaction tag to another module. For example, this could be accomplished
by calling a task in the other module, passing the transaction tag as one of the arguments
to the task.
3. The other module starts its own transaction (the successor transaction), and links it to
the other transaction by using the $trans_tag function with the -link option. See
“$trans_tag” on page 211.
The following example shows how to use transaction tags to create a relationship between
two different threads in a single, multi-threaded TVM:
module checker(trigger_event1, trigger_event2,
other_input/output_ports);
input trigger_event1,trigger_event2;
...
June 2000
168
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
reg [31:0] trans_tag;
integer
thread_ref;
always @(trigger_event1)
begin : block1
$thread("T1");
$trans_begin("predecessor",
"I'm the predecessor!");
trans_tag = $trans_tag_get;
// perform some protocol for a while...
...
$trans_end;
// and then wait for the other thread to grab the trans tag
// before proceeding with the next transaction...
@(trans_tag);
end
always @(trigger_event2)
begin : block2
$thread("T2");
$trans_begin("successor",
"I'm the successor!");
$trans_tag("-link",trans_tag);
// signal to the other thread that the trans_tag has been
// "grabbed"
trans_tag=~trans_tag;
// perform some protocol for a while...
...
$trans_end;
end
endmodule
This is a simple example of a multi-threaded TVM that shows the basic mechanisms:
■
Getting the transaction tag from the predecessor transaction ($trans_tag_get).
June 2000
169
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
■
Storing it somewhere (trans_tag) where the successor transaction can retrieve it.
■
Linking the successor transaction (-link option on $trans_tag).
Since it is a multi-threaded TVM, this example also shows proper use of the $thread call
(which was described in “Defining Multi-Threaded TVMs” on page 165).
Note: This example also points out another important characteristic of linking transactions
with transaction tags: Only one successor transaction can be linked to a predecessor with a
single transaction tag.
To link several transactions to a single predecessor, you must create a separate transaction
tag for each transaction to be linked; each successor transaction is linked to the predecessor
using its own transaction tag. This is shown in the next example, which illustrates how you
can form a connection between transactions from a test (in one Verilog module) to several
independent TVMs (each in separate modules):
module top;
wire
clk;
wire[31:0] stimulus;
wire[31:0] response;
bfm_src
master
(clk, stimulus);
my_design
duv
(clk, response, stimulus);
bfm_sink
slave
(clk, response);
endmodule
module test;
integer i;
initial begin
for (i=0;i<20;i=i+1) begin
$trans_begin("test_loop_%d",i);
fork
begin
master.stim($trans_tag_get,control_args1);
master.stim($trans_tag_get,control_args2);
master.stim($trans_tag_get,control_args3);
master.stim($trans_tag_get,control_args4);
end
begin
June 2000
170
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
slave.check($trans_tag_get,control_args1);
slave.check($trans_tag_get,control_args2);
slave.check($trans_tag_get,control_args3);
slave.check($trans_tag_get,control_args4);
end
join
$trans_end
end
end
endmodule
module bfm_src(clk, stim_out);
input clk;
output [31:0] stim_out;
...
task stim
input pred_tag;
...
begin
$trans_begin("stim task",
"I'm one of two successors");
$trans_tag("-link",pred_tag);
// Do the protocol for this TVM,
// sending stimulus out the stim_out port, to the DUV.
...
$trans_end;
end
endtask
endmodule
module bfm_sink(clk, resp_in);
input clk;
input [31:0] resp_in;
...
June 2000
171
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
task check
input pred_tag;
...
begin
$trans_begin("response task",
"I'm the other of the two successors");
$trans_tag("-link",pred_tag);
// Do the protocol for this TVM,
// receiving responses from the DUV and checking the results.
...
// Mark any errors that occur.
if (actual_response !== expected_response)
$trans_error("incorrect response!",
"expected=",expected_response,
"actual=",actual_response);
...
$trans_end;
end
endtask
endmodule
In this example, the bfm_src TVM sends stimulus to the DUV, which in turn eventually sends
responses to the bfm_sink TVM. The DUV (as well as some other details) is not shown, in
order to enhance the clarity of the transaction processing example.
During simulation, the test starts a transaction of its own and then initiates tasks in both of the
TVMs in parallel. The transaction created by the test is the predecessor to the transactions in
the TVMs. In this example, every test transaction has eight total successors: four in the
stimulus TVM and four in the checking TVM.
Again, this is a simple example, but it shows the basic mechanisms:
■
Getting the transaction tag from the predecessor transaction ($trans_tag_get).
■
Storing it somewhere (in the task’s input argument) where the successor transaction can
retrieve it.
■
Linking the successor transaction (-link option on $trans_tag).
June 2000
172
Product Version 6.5
Signalscan Waves User Guide
Transaction-Based Verification
This example also shows that there is exactly one transaction tag used to link exactly two
transactions: the predecessor and successor. This is enforced by individual calls to
$trans_tag_get for every call into the TVMs.
One final characteristic to note about the -link option is that it only links that specific
transaction (and its children) to the predecessor. More specifically, unless directed otherwise,
the trans_tag (and therefore the link) officially ends when the linked transaction ends (for
example, when the corresponding $trans_end executes). Once a transaction tag ends, it
cannot be referenced again. There are mechanisms that allow you to end transaction tags at
other times and to link to transaction tags more than once. These advanced options are
described in detail in “$trans_tag” on page 211.
Using the techniques described in this section to record relationships between transactions
enables you to use the Show Related Transactions , Show Predecessors , and Show
Successors features on the Signalscan Waveform Window Control menu.
June 2000
173
Product Version 6.5
Signalscan Waves User Guide
8
Viewing Transactions
The information presented in this chapter requires a license for the Affirma verification cockpit
(#29500), which is available separately.
Basic Transaction Elements
Thread
A thread , or interface , is analogous to a variable. Each thread
occupies a single row on the Waveform Window and can be
selected from within the Design Browser.
Property
A property is a name/value pair. Properties can be associated
with TVMs, threads, and transactions. The most common usage
of properties is for annotating transactions.
Transaction
Transactions appear as blue boxes on threads. Each
transaction contains a set of properties that are shown within the
box.
Transaction threads, or interfaces, appear in the Design Browser along with signals and
variables in each scope. You can select a thread and add it to the Waveform Window in the
same manner that you select and add other objects.
Each transaction has a label at the top and a set of properties. You can drag the row height
control at the right edge of the Name Pane to reveal more or fewer properties in the
transaction box (see Figure 8-1 on page 175 below).
Select Control—Show Properties to display a window that contains all the properties for
the selected transaction. See “Transaction Navigation” on page 176 for a discussion on
transaction selection and navigation.
June 2000
174
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
Figure 8-1 Transaction Properties
Transaction Hierarchies
Transactions can be nested in the Verilog source using the $trans_begin and
$trans_end calls. For any selected transaction, a subordinate transaction is called its child
and its superordinate transaction is called its parent .
When you first select a thread and view it in the Waveform Window, the transactions that are
visible are the top-most of each transaction hierarchy in the thread. To view more levels,
select the thread in the Names Pane on the left side of the window and select Control—
Show Child Transactions . This adds one or more transaction rows to the display. These
rows have the same name as the thread, with a bracketed number indicating the hierarchy
depth that the row represents. Select Control—Show Parent Transactions to add the
parent row to the display (see Figure 8-2 on page 176 below).
Once added, you can delete child or parent rows as desired. It is not necessary to have all
levels of the hierarchy present if you do not need them as you analyze your design.
June 2000
175
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
Figure 8-2 Selected and Related (Highlighted) Transactions
Transaction Navigation
A transaction can be in one of three states:
■
selected
■
highlighted
■
neither highlighted nor selected
June 2000
176
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
At most one transaction can be selected at one time. The selected transaction is filled pink
by default. Any number of transactions can be highlighted at one time. Highlighted
transactions are filled green by default. You can change these colors on the Define Colors
form (select Options—Define Colors ).
To select a transaction, enter Control-click (click your left mouse button while holding
down your Control keyboard key) while your mouse pointer is over that transaction.
You can search for transactions that have a specific relationship to the selected transaction.
The easiest way is to select Control—Show Related Transactions . This highlights
transactions that are related to the selected transaction (see Figure 8-2 on page 176) and
displays the Transaction List Window (see Figure 8-3 on page 177 below). Related
transactions are located by first searching backward through the predecessor chain of the
selected transaction until a transaction is located that has no predecessor. From that
transaction, all successors are traversed and highlighted. This locates all transactions that
have a common point of origin.
Figure 8-3 Transaction List Window
The Transaction List Window helps you navigate among transactions. The currently selected
transaction appears in the top pane. The model name and the thread name appear along with
June 2000
177
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
the transaction begin time and duration. The list below shows all of the transactions that are
related by the relationship selected in the pulldown menu at the top of the window. Select a
different relationship to list a different set of transactions in the Transaction List Window and
highlight the new set of transactions in the Waveform Window.
Highlighted transactions do not automatically appear in the Waveform Window. You will see
a change in the display only if the thread has already been added to the Waveform Window
and the highlighted transaction is currently visible. In the Waveform Window, select
Control—Add Unadded Highlighted Transactions to add to the Waveform Window
threads with highlighted transactions that are not currently shown in the Waveform Window.
Two check boxes in the bottom pane of the Transaction List Window control how much
information you see about each transaction. You can turn on or off viewing of the full
hierarchical name and the composite label.
Buttons along the bottom provide additional navigational control. Prev Trans and
Next Trans move the selection to the transaction either immediately prior or just after the
selected transaction on the same thread.
Prev Error and Next Error also move the selection. The Prev Error button searches for and
selects the latest error transaction that is earlier than the currently selected transaction.
Next Error searches for and selects the earliest error that is later than the current selection,
also on the same thread.
The Show Props button does the same thing as the Control—Show Properties menu
option: It displays a window that lists all the properties assigned to the selected transaction.
Locating Errors
Issuing a $trans_error call in the Verilog model causes the enclosing transaction to be
flagged as an error. A transaction so flagged appears with a red diamond as shown in
Figure 8-4 on page 179.
You can select a thread and then select Control—Show Next Error to search for the next
error on that thread. The search begins at the position of the cursor. You can also use the
Next Error and Prev Error buttons in the Transaction List Window to locate errors on a
specific thread.
June 2000
178
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
Figure 8-4 Error Transaction Marked with a Red Diamond
The error_count Variable
Often, you do not know which thread has errors. Signalscan has a global transaction error
rollup mechanism that simplifies the chore of locating errors in your design. All of the errors
that occurred in your design are rolled up to a single variable called error_count. This
variable contains markers for all errors no matter which thread they occurred on (see
Figure 8-5 on page 180).
At the top level of the design hierarchy is a scope called trans_global. Within that scope
is another scope called trans_properties. Inside trans_properties is a variable
called error_count. This is the variable that contains the global error rollup. Select this
error_count variable and add it to the Waveform Window to provide an easy way to find
errors.
June 2000
179
Product Version 6.5
Signalscan Waves User Guide
Viewing Transactions
In the Waveform Window, position Cursor1 and select Control—Show Next Error to find the
next error. Then select Control—Show Related Transactions to find out where the error
is. This operation selects the error transaction and displays the Transaction List window. The
selected error transaction and any related transactions are shown. Use the Prev Error and
Next Error buttons to navigate to errors on the same thread, or go back to the error_count
variable to find another error.
Figure 8-5 Error Rollup: error_count
June 2000
180
Product Version 6.5
Signalscan Waves User Guide
9
Recording Transactions
The information presented in this chapter requires a license for the Affirma verification cockpit
(#29500), which is available separately.
Signalscan provides a set of system tasks, collectively known as the Transaction Recording
System Tasks (TRST), that you use to put transaction information into the SST2 database.
This chapter describes the TRST calls and their options, properties, and any side effects.
This chapter discusses:
■
Transaction Objects
■
Properties
■
Transaction Recording System Tasks
■
Error Rollup
■
Verilog Plus Arguments
June 2000
181
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Transaction Objects
This section describes the kinds of objects that you can create and operate on with TRST
calls: module instances (TVMs, tests, and DUVs), threads, transactions, transaction tags, and
properties.
Module Instances: TVMs, Tests, and DUVs
Verilog contains module instances, and these can be BFMs (Bus Functional Models), test
modules, or DUVs (modules describing the Design-Under-Verification). In the SST2
Database, they are recorded as TVMs (Transaction Verification Modules).
This chapter is focused on the TVM writer and refers to the TVM as a specific kind of module
instance.
■
Use the $bfm construct to declare and manipulate information on a BFM object.
■
Use a $test construct to declare and manipulate information on a test object.
■
Use a $duv construct to record transactions from within the Design-Under-Verification
itself.
Threads: TVM Threads, Test Threads
A module instance can consist of multiple threads of execution. The always or initial
blocks or branches of a fork can be considered threads in Verilog.
A thread represents a single locus of control. A thread can only do one thing at a time. A
thread in the TVM is sometimes referred to as an interface . A thread in the test is referred
to as a test thread . A TVM can have multiple threads, and each one can do one thing at a
time. Use the $thread construct to declare and manipulate information on a thread object.
Signalscan displays the transactions on a thread on a single line. The TRST calls allow for
flexible user designation of threads. Any named begin-end pair or task can be designated to
be operating in a specific thread using a $thread system task.
Transactions
A thread can perform multiple actions, but only one action at a time. The occurrence of each
action is recorded as a transaction . A transaction in the TVM is referred to as a TVM
transaction . A transaction in a test is referred to as a test segment . This chapter refers
June 2000
182
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
to all of these as transactions. Use the $trans, $trans_begin, and $trans_end,
constructs to define transactions.
Transaction Tags
Transaction tags (or trans tags) are used to link cause and effect transactions together
across thread boundaries. Use the $trans_tag_get and $trans_tag calls to set and use
transaction tags.
Properties
TVMs, threads, and transactions have characteristics about them, and these characteristics
are recorded as properties on the TVM, thread, or transaction. Properties have a name and
a value. Both TVMs and threads are time invariant concepts; in a simulation they always exist.
A transaction is time variant; in a simulation, it starts at a specific time, and it ends at a specific
time. Properties are attached as characteristics to any of the three objects. See “Properties”
below for more information.
Properties
Properties quantify and qualify an object. You can use them during and after a simulation for
locating, filtering, sorting, reporting, and taking actions on an object.
Properties are treated uniformly by all the property constructs. Properties are displayed as
name-value pairs.
Property Definitions
A property is a value of a particular property definition, also known as a property def. A
property definition is an association of the name of a property (see “Property Names” on
page 184), the basic property type (see “Basic Property Types” on page 185) and the format
used for viewing the property (see “Property Formatting” on page 187).
Property definitions can be automatically created for you as you assign properties (see
“Creating Property Definitions Automatically” below), or you can create property definitions
explicitly (see “-property_definitions” on page 213).
June 2000
183
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Searching for Property Definitions
If a property definition is not made on an object before a property assignment is made, then
higher level objects are searched to see if a property definition of the same name exists on
them. For example, if a count property is assigned on a transaction, but the definition of it is
not on the transaction, the parent thread is searched for a count property definition, and then
the parent module instance is searched for a count definition. The first definition found is
used. If no definition is found, then the type information is inferred by the rules in “Creating
Property Definitions Automatically” below.
Creating Property Definitions Automatically
If no property definition exists for a property name, a property definition is created using the
information about the value being assigned. The created property definition is placed on the
object being given the property: a TVM, thread, or transaction. Both the basic property type
(see “Basic Property Types” on page 185) and formatting (see “Property Formatting” on
page 187) are inferred from the value as given in the Verilog construct.
Table 9-1 illustrates the default type of a property based on the type of the value being
assigned to the property.
Table 9-1 Property Definition Inference
Verilog Argument
Basic Property Type
Property Formatting
null
error
-
string literal or
string parameter
string
‘a
real
real
none
integer expression, integer
integer
parameter, or integer variable
‘s
time variable
time
‘d
all others
vector
‘h
Property Names
A property name begins with a letter or underscore and can contain letters, numbers or
underscores. The names are case sensitive.
June 2000
184
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Basic Property Types
Property definitions can be one of several basic property types described in this section. You
can use the type keyword strings listed in Table 9-2 below with any
-property_definitions construct (see “-property_definitions” on page 213). Formatting
property values is discussed in “Property Formatting” on page 187.
Basic Type Strings
Use the following string literals to declare the basic type of a property. In a property definition
construct, one of these types must be declared.
Table 9-2 Properties: Basic Type Strings
Type String
Description
integer
A 32-bit signed integer.
string
A character string of any length, containing any character except NULL,
and terminated with a NULL.
fstring
Same as string, except the value specified must be a literal string
containing format specifiers (%). Additional arguments must be provided
for each of the % specifiers. See “Format Specifiers” on page 188.
script
Same as string except the value is a concatenation of multiple string
literals with a newline added as a separator between the literals. The
concatenation continues until the end of the $ PLI call is reached or the
special string literal <eof> is found.
boolean
A 1-bit value, where 1 = true, 0 = false.
real
A double precision real.
time
A 64-bit time value. It is stored as the unscaled simulator time.
vector
A variable width 4 value/bit.
June 2000
185
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Type Qualifiers
The basic types can be qualified with one or more additional words. These words are used to
specify special types of properties.
Table 9-3 Properties: Basic Type Qualifiers
Type Qualifier
Description
hidden
A hint to Signalscan that the property should not be displayed with
other transaction properties in the transaction box in the Waveform
Window. The property can still be searched on and is viewable in the
transaction Properties Window.
devoted_line
A hint to Signalscan that the property should have a line devoted to it
when being displayed.
multiline
A hint to Signalscan that the value of the property should be
displayed in multiple lines.
not_genetic
Specifies that the property cannot be used to satisfy the query rules
set down in “Searching Property Values” on page 192. It is used in
special cases to prevent a parent’s property from being inherited by a
child. Any property that appears on every transaction is most likely
not genetic. Thus most of the built-in properties are not genetic.
arg=num
Specifies that the property value is a task argument corresponding to
position num in the task.
input
Specifies that the property is an input to the task. Used with arg
above.
output
Specifies that the property is an output to the task. Used with arg
above.
inout
Specifies that the property is an inout to the task. Used with arg
above.
June 2000
186
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Property Formatting
Property formatting can be specified with a -property_definitions construct (see
“-property_definitions” on page 213). Property formatting is specified with one of the following
keywords:
Table 9-4 Property Formatting Keywords
Keyword
Description
‘b
Displays the value as unsigned binary digits. This corresponds to the
Signalscan Command Language add command radix attribute of ‘b.
‘o
Displays the value as unsigned octal digits. This corresponds to the
Signalscan TX Command Language add command radix attribute of ‘o.
‘d
Displays the value as unsigned decimal digits. This corresponds to the
Signalscan TX Command Language add command radix attribute of ‘d.
‘s
Displays the value as signed decimal digits. This corresponds to the
Signalscan TX Command Language add command radix attribute of ‘s.
‘h
Displays the value as unsigned hexadecimal digits. This corresponds to the
Signalscan TX Command Language add command radix attribute of ‘h.
‘a
Displays the value as ASCII characters. This corresponds to the
Signalscan TX Command Language add command radix attribute of ‘a.
none or
The value displayed is defaulted by Signalscan TX.
empty string
Property Type and Format Examples
The examples below illustrate the use of the type keywords listed in “Basic Property Types”
on page 185 and formatting keywords described in “Property Formatting” on page 187. The
-property_definitions construct is discussed in “-property_definitions” on page 213.
Thread Properties Example
$thread("-property_definitions",
"wait_states","integer","‘s",
"cycle_type,","string","‘a");
Transaction Properties Example
$trans("-property_definitions",
June 2000
187
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
"address","integer input arg=1","‘h",
"rtn_data","integer output arg=2","‘h",
"address=",address,
"label","description");
Interpolated Format Strings
A format string is a string literal that contains format specifiers (see Table 9-5 below).
Additional arguments must follow the format string to satisfy the needs of the format
specifiers. The result of interpolating a format string is a regular string with the format
specifiers replaced with text as described in Table 9-5.
Special Substitutions
The special substitutions of the format string are the same as Table 14-1 Page 173 of IEEE
Std 1364-1995 Specification of Verilog-HDL.
Format Specifiers
The format specifiers in Table 9-5 below are understood by $trans constructs for label and
description, and by assignments to fstring properties.
Table 9-5 Format Specifiers
Format Specifier
Description
%d, %D, %i, %I
The next argument in sequence is printed as a decimal
number with leading spaces.
%0d
The next argument in sequence is printed as a decimal
number with no leading spaces.
%width.precisiond
The next argument in sequence is printed as a decimal
number with a minimum width of width and a maximum
width of precision .
%h, %H, %x, %X
The next argument in sequence is printed as a hexadecimal
number with leading spaces. The formats %H or %X print
capital A-F characters.
%0h
The next argument in sequence is printed as a hexadecimal
number with no leading spaces.
June 2000
188
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Table 9-5 Format Specifiers, continued
Format Specifier
Description
%width.precisionh
The next argument in sequence is printed as a hexadecimal
number with a minimum width of width and a maximum
width of precision .
%o, %O
The next argument in sequence is printed as an octal
number with leading zeros.
%0o
The next argument in sequence is printed as an octal
number with no leading zeros.
%width.precisiono
The next argument in sequence is printed as an octal
number with a minimum width of width and a maximum
width of precision .
%b
The next argument in sequence is printed as a binary
number with leading zeros.
%0b
The next argument in sequence is printed as a binary
number with no leading zeros.
%width.precisionb
The next argument in sequence is printed as a binary
number with a minimum width of width and a maximum
width of precision .
%s
The next argument in sequence is printed as a string of
characters to whatever width is required.
%width.precisions
The next argument in sequence is printed as a string of
characters with a minimum width of width and a maximum
width of precision .
%f, %e, %E, %g, %G
The next argument in sequence is printed as a floating point
number. The %f format prints %6f by default. The %e format
is exponential notation. The %g format picks a best fit
between %f and %e.
%width.precisionf
The next argument in sequence is printed as a floating point
number with a minimum width of width and a maximum
width of precision .
June 2000
189
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Table 9-5 Format Specifiers, continued
Format Specifier
Description
%t, %width.precisiont
The next argument in sequence is printed in a time format in
the timescale of the current module (usually nanoseconds).
The time format used can be specified with
$tbv_timeformat. The %t specifier uses four format
values to format a time quantity: units, precision, suffix, and
minimum field width. For TRST calls, all four of these can be
set by calling $tbv_timeformat. If you do not call
$tbv_timeformat, TRST calls use -9 for units, 3 for
precision, a null suffix string, and 20 for the minimum field
width.
%m, %M,
%width.precisionm,
%width.precisionM
The full Verilog hierarchical instance name is printed as a
string of characters similar to %s. No arguments are used.
%n, %width.precisionn
The Verilog module name of the current module is printed
as a string of characters similar to %s. No arguments are
used.
%W, %width.precisionW
The current module and thread name combination is printed
if the call is within a thread. Otherwise, an empty string is
printed. The form of the string printed is
module-instantiation-threadname. The text is printed as a
string of characters similar to %s. No arguments are used.
%w, %width.precisionw
The current thread name is printed if the call is within a
thread. Otherwise, an empty string is printed. The text is
printed as a string of characters similar to %s. No arguments
are used.
width
If width is specified, then this is the minimum width of
characters to be printed. If width begins with a minus sign
(-), then the characters are left justified. If the leading digit
of width is zero (0), then leading spaces are filled with
zeros rather than spaces.
precision
If precision is specified, then this is the maximum width
for non-floating point formats, or it is the number of precision
digits for floating point formats.
June 2000
190
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Format Specifier Examples
The following example:
"module %m, hex ‘h%h, decimal ‘d%d",10,10
produces:
"module path.to.module, hex ‘hA, decimal ‘d10"
Property Assignments
The syntax to assign a property to an object with a construct consists of two arguments:
■
Name=. The first argument is a literal string consisting of the property name with a
trailing equals sign (for example, count=).
■
Value. The second argument is the value to assign to the property, which can be a literal
value, an expression, or a variable.
This syntax allows property value assignments to be easily distinguished from options, format
strings, and other arguments. It also makes it easy to distinguish the property names from the
property values.
Property Assignment Examples
// Property on an interface:
$thread("facility=","pooling");
// Property on a bfm:
$bfm("family=","utopia");
// Transaction created with a static and a dynamic property:
$trans("addr=",addr,
"my_text=","Here is some text",
..);
// Append information to an existing transaction:
$set_property("-last_trans",
"my_text2=","Another text property.");
Multiple Property Assignments
For any object that has a property assigned to it multiple times, the value of the property is
the last value assigned. Previous values of the property are ignored.
June 2000
191
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Removing Property Assignments
See “-undef” on page 214.
Searching Property Values
You can search for the values of properties in Signalscan TX. Lower level objects such as a
transactions inherit properties from higher level objects, such as a parent transaction, thread,
or TVM.
The property value search resolution has a strong notion of a child object inheriting the
property values of its parent. A transaction can inherit properties from its parent thread or
module instance, and a thread can inherit properties from its parent module instance. If the
property value does not exist for the object, then the search is false for that property.
A property that has a type qualifier of not_genetic is not used to satisfy the query
resolution. In that case, the query resolution ignores the property for the purpose of resolving
a property value. This is used in cases where the property is on every transaction or the
property is not meaningful for child transactions. See “Type Qualifiers” on page 186.
Transaction Recording System Tasks
This section describes the transaction recording system tasks (TRST) that are available for
verification designers, test writers, and model writers to implement transaction-based
verification recording.
TRST Introduction
The TRST are grouped into categories by the objects that they operate on, including module
instances, threads, and transactions, as shown in Table 9-6 below.
The TRST also are grouped according to the recommended expertise of the user. Basic users
only need to use a few calls. The levels of user expertise are:
Basic
The basic calls are the easiest to use, are the most robust, and
require the least prior knowledge. They are not much harder to
use than $display calls.
Proficient
The proficient calls require you to have more knowledge of the
system, but are still easy to use. Almost all of the transaction
functionality can be obtained with these calls.
June 2000
192
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Advanced
The advanced calls require you to have advanced knowledge of
the system. These calls allow you to use the advanced features
of the system if you have mastered the more advanced concepts.
TRST calls are summarized in Table 9-6 below:
■
Module instance system tasks (transactor, test, or DUV)
■
Thread system tasks
■
Transaction system tasks
❑
Duration
❑
Event
❑
Replacements for $display
■
Transaction tag system tasks
■
Property system tasks
■
Utility system tasks
The calls summarized in Table 9-6 are described in detail below the table.
Table 9-6 TRST Calls: Organization and Summary
System Task
Description
Module Instance System
Tasks (TVM, Test, or DUV)
These calls are used on a module instance. All of these
calls accept the standard property options and
assignments described in “Property Options” on
page 213. See “Module Instance System Tasks” on
page 195.
$bfm
Defines the current module to be a BFM module.
$tbv_bfm
$test
Defines the current module to be a test module.
$tbv_test
$duv
$tbv_duv
June 2000
Defines the current module to be a part of the DesignUnder-Verification (DUV).
193
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Table 9-6 TRST Calls: Organization and Summary, continued
System Task
Description
Thread System Tasks
These calls define a thread. These calls accept the
standard property options and assignments described in
“Property Options” on page 213. See “Thread System
Tasks” on page 198.
$tbv_thread
(proficient ) Declares a thread name, associates a
thread with a named begin-end pair or a task, and
attaches properties to the thread. Takes special
arguments.
Transaction System Tasks
These calls are used to create transactions on threads.
You can create duration, event, and display transactions.
See “Transaction System Tasks” on page 203.
Duration Transactions
These calls accept the standard property options and
assignments described in “Property Options” on
page 213. See “Duration Transactions” on page 206.
$thread
$trans
Creates a transaction with duration to the next
transaction.
$trans_begin
(proficient ) Marks the beginning of a transaction. The
transaction has duration until a matching $trans_end.
$trans_end
(proficient ) Marks the end of a transaction. Must match
to a $trans_begin.
Event Transactions
These calls accept the standard property options and
assignments described in “Property Options” on
page 213. See “Event Transactions” on page 208.
$trans_event
Creates an event transaction.
$trans_error
Creates an event transaction that is an error.
Display Transactions
These calls do not accept property options or
assignments. See “Display Transactions” on page 209.
$trans_display
Replaces $display for a TVM.
$trans_display_error
Replaces $display for errors on a TVM.
These calls manipulate transaction tags from one thread
to another. These calls do not accept property
Transaction Tag System Tasks assignments or options. See “Transaction Tag System
Tasks” on page 210.
June 2000
194
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Table 9-6 TRST Calls: Organization and Summary, continued
System Task
Description
$trans_tag_get
(advanced ) Gets a transaction tag to be passed from
one thread to another.
$trans_tag
(advanced ) Allows you to operate on a transaction tag,
including linking to it, unlinking to it, and ending it.
Property System Tasks
See “Property System Tasks” on page 212.
$set_property
(advanced ) Sets additional properties or changes the
values of properties on existing objects. Accepts the
standard property assignments and options as listed in
“Property Options” on page 213.
Utility System Tasks
See “Utility System Tasks” on page 215.
$tbv_timeformat
Sets the formats used by %t when %t is used in a TRST
call (see “%t, %width.precisiont” on page 190). This call
has the same syntax as $timeformat, but TRST calls
use $tbv_timeformat to set format values for %t.
Module Instance System Tasks
This section describes the system tasks that manipulate information on module instances,
including TVMs, threads, and DUVs.
All the calls described in this section can accept any of the standard property options and
assignments listed in “Property Options” on page 213.
$bfm
(optional ) Also named $tbv_bfm. Use the $bfm task to declare and manipulate information
on a TVM. Model writers can use it to declare TVM objects and perform actions on existing
TVMs. If no $bfm, $test, or $duv call occurs before the first transaction recording construct,
the module instance is assumed to be a TVM.
Declaring
The $bfm task declares the module instance as a BFM if it has not been declared before. If
the module instance has already been declared, then the additional constructs in the task are
applied. The name of the BFM is always the module name of the Verilog module that it is in.
June 2000
195
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
The BFM has two instance specifications:
■
The Verilog hierarchical scope to the BFM that might be visible using the Verilog
$showscopes command.
■
The pair of the module name with the instantiation parameter value.
A module instance can only be one of a BFM, a test, or a DUV. It cannot be a combination of
them.
$bfm Examples
module my_bfm;
parameter instantiation = 1;
initial begin
$bfm;
...
end
In the following example, a BFM of type my_bfm is created. Its test instantiation name is
my_bfm-3 because the instantiation parameter is 3 in the test bench. Its Verilog instance
name is test_bench.u1.
module test_bench;
...
my_bfm #(3) u1 (...);
end
$test
Also named $tbv_test. The $test system task is similar to the $bfm system task except
it declares the module instance to be a test module.
$duv
Also named $tbv_duv. The $duv system task is similar to the $bfm system task except it
declares the module instance to be part of the Design-Under-Verification.
Module Instance Task Options
This section lists the options that can be used on $bfm, $test, or $duv.
June 2000
196
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Automatic Behavior
The module instance task calls are optional. If a thread is declared and no type for the parent
module instance has been declared, it is assumed to be a BFM. If you specifically want to
designate it as a test or a module from the DUV, you need to explicitly specify the module
instance with $test or $duv.
Automatic properties are placed on the module instance when it is declared. These include
property definitions and property values as described in “Automatic Property Definitions” and
“Automatic Property Values” below.
Common Options and Assignments
The $bfm, $test, and $duv tasks support the following common options:
■
-property_definitions. See “-property_definitions” on page 213.
■
-properties. See “-properties” on page 214.
■
-undef. See “-undef” on page 214.
■
Dash Option (-). See “Dash Option (-)” on page 215.
■
Dash Dash Option (--). See “Dash Dash Option (--)” on page 215.
■
Property assignments. See “Property Assignments” on page 191.
Automatic Property Definitions
When a BFM is created, the following property definitions are created as property definitions
on the BFM:
module_instance_id,"integer hidden","‘s"
module,"string hidden","‘a"
scope,"string hidden","‘a"
instantiation,"integer hidden","‘s"
module_type,"string hidden","‘a"
Automatic Property Values
When a BFM is created, the following property values are assigned to the automatic
properties on the BFM. They also can be inherited by the threads and transactions under the
BFM. (See “Searching Property Values” on page 192).
"module_instance_id=", "bfm_id_of_created_bfm "
"module=", "module_name_of_Verilog_module "
June 2000
197
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
"scope=", "scope_of_module_instance "
"instantiation=", "value_of_Verilog_parameter_instantiation "
"module_type=", ["Bfm"|"Test"|"Duv"]
Thread System Tasks
Threads are the locuses of control that run concurrently during a simulation. In a Verilog
simulation, an example of a thread is an initial or always block. With the TRST system,
you can use a $thread call to associate a thread of execution with a Verilog-named beginend pair or task. This allows a large amount of flexibility in how you can manage threads of
execution in a multi-threaded BFM.
$thread
(optional , proficient ) Also named $tbv_thread. Use the $thread task to declare and
modify information on threads. Model writers can use it to declare threads and perform
actions on existing threads (see “Declarative Form” below) and to switch the focus of activity
from one thread to another (see “Switching Form” on page 199).
Declarative Form
You can use the $thread construct to declare and explicitly name a thread. For the
declarative form of $thread, the first argument is the reference name, and the second
argument is an optional reference number:
■
The reference name is a literal string that is any number of characters, but the last four
characters must be unique. It is an error to specify two different thread reference names
with the same last four characters.
■
The optional reference number is a simple integer you can use if you want to have
arrayed or parameterized threads. If you do not specify the thread reference number, it
is assumed to be the last four characters of the thread reference name. It is an error for
the same thread to be declared with two different reference numbers (see “Multiple
Declarations of the Same Thread” below). It is also an error to have two different threads
with the same reference number.
When a $thread executes, it associates the named begin-end pair or task it is executing
in with the thread. Any transaction calls, such as $trans, that occur in the same begin-end
pair or task are recorded as transactions from the thread.
June 2000
198
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Multiple Declarations of the Same Thread
If the thread has already been declared, additional constructs on the $thread call apply to
the thread. If the thread was not already declared, it is declared when the system task is
made. Thus, any number of declarations of the same thread can be made.
Any Verilog module with more than one thread name declared is considered to be multithreaded. Multi-threaded modules must have their $thread tasks inside Verilog tasks or
named begin-end pairs.
Example Declarations
In the following example, a thread called datt is created:
$thread("datt"); // reference name only
The following example declares a thread with a reference name of addt and a reference
number of 5:
$thread("addt",5); // reference name and number
Switching Form
The $thread call can also be used to switch from one thread to another dynamically using
a variable or expression. The variable or expression needs to be the first argument and needs
to evaluate to a reference number for an already-declared thread.
Example Switching
The following example illustrates declaring two threads with the declarative form of $thread,
and then switching between the two using the switching form of $thread:
$thread("chan1",1); // declaration
$thread("chan2",2); // declaration
channel = expression
$thread(channel);
// switching
$trans("send_example");
Automatic Behavior
The $thread call is optional. If a $trans call is made and no thread has been declared in
the current module instance, a thread is declared with automatic initial properties and the
$trans call uses it. If a thread is created in this automatic manner, then you should not use
$trans_begin and $trans_end constructs. You still can use $trans and
$trans_event constructs. See “$trans Variants” on page 203.
June 2000
199
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Side Effects
If a module instance has not been declared when the $thread command creates a thread,
a module instance is declared with automatic values. These values on the module instance
are listed in “Module Instance Task Options” on page 196.
Automatic Property Definitions and Properties
When a thread is created, the following properties are created as properties on the thread.
These properties can be inherited by transactions created in the thread. See “Searching
Property Values” on page 192.
thread_id,"integer hidden","‘s"
thread_ref,"integer hidden","‘s"
thread_ref_name,"string hidden","‘a"
thread_id = thread_object_id
thread_ref_name = ref_name_given_by_user
thread_ref = ref_number_assumed_or_given_by_user
Common Options and Assignments
The $thread command supports the following common options:
■
-property_definitions. See “-property_definitions” on page 213.
■
-properties . See “-properties” on page 214.
■
-undef. See “-undef” on page 214.
■
Dash Option (-). See “Dash Option (-)” on page 215.
■
Dash Dash Option (--). See “Dash Dash Option (--)” on page 215.
■
Property assignments. See “Property Assignments” on page 191.
Thread Management
Any module instance that uses multiple threads must specify the threads that execute
transaction calls. Since more than one thread can be active at one time, care must be taken
as to how they share tasks or sequences of code. The easiest way to specify concurrent
threads is to have a $thread call at the top of named begin-end pairs or tasks. This is
called thread management . If the threads are not managed correctly, then the transaction
hierarchy can become mixed between the threads.
June 2000
200
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
A multi-threaded module is one where more than one thing is happening concurrently. A
thread is a line of activity where only one thing is happening at a time. A multi-threaded
module is broken up into multiple threads so that all the activity can be seen concurrently. In
Signalscan, a thread’s activity is a horizontal line on the screen.
To utilize thread management, the threads must be explicitly declared with $thread.
Modules without any $thread calls are considered to be single-threaded.
Thread Management Rule
If a module is multi-threaded, a $thread call must occur in a named begin-end block or
task block before a $trans (or equivalent) task.
Multiple Block Example
/*
* The following initial, always, and task execute in the same thread.
*/
initial begin : block1
$thread("t1");
// As many $trans calls or blocking #, @, or wait as desired.
end
always begin : block2
$thread("t1");
// As many $trans calls or blocking #, @, or wait as desired.
end
task my_task; // tasks are considered separately
begin
$thread("t1");
// As many $trans calls or blocking #, @, or wait as desired.
end
endtask
Fork Example
/*
* This fork example has 4 threads: t3, t4, t5, and t6.
*/
begin : block6
$thread("t6");
fork
June 2000
201
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
begin : block3
$thread("t3");
...
end
begin : block4
$thread("t4");
...
end
begin : block5
$thread("t5");
...
end
join
// Automatically considered to be "t6", no $thread needed here.
...
end
Typical Initial/Forever Thread Example
initial begin : addr_ten
$thread("addr_ten");
// As many $trans calls or blocking #, @, or wait as desired.
...
forever begin
// As many $trans calls or blocking as desired.
...
end
end
Multiple Threads in a Single Always Block
Since these threads use the same trigger event, they can be merged together:
always @(posedge clk) begin
$thread("stage1");
// As many $trans calls
...
$thread("stage2");
// As many $trans calls
...
$thread("stage3");
// As many $trans calls
June 2000
: pipe_stages
or blocking #, @, or wait as desired.
or blocking #, @, or wait as desired.
or blocking #, @, or wait as desired.
202
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
...
$thread("stage4");
// As many $trans calls or blocking #, @, or wait as desired.
end
Special Cases
If a named begin-end pair does not have a $thread task, but is nested under another
named begin-end pair that does have a $thread task, the parent named begin-end block
$thread task information is referenced.
// This example references a thread in a parent block.
begin : block1
$thread("t1");
begin : inside_block1
$trans("label");
// This is in thread "t1".
end
end
A blocking task is a Verilog task that contains a Verilog wait, @, # or another blocking task.
If a blocking task is reentered from different threads, transaction collision problems as well as
Verilog reg collision problems may occur. Blocking tasks should not be shared concurrently
between threads.
Transaction System Tasks
Transactions are used to document test intent, model intent, or stand-alone intent. Use the
$trans call to record transaction information. It is the most basic of the transaction calls.
$trans Variants
(basic ) In their simplest form, the $trans variant tasks are called with a single string. This
is considered to be the label . This label is used with labels from other $trans calls (or
$trans_begin or $trans_event) to form a hierarchical label that can be accessed via the
transactions they are attached to (this transaction’s parent, children, predecessors, and
successors). Additional strings may be specified as arguments, and these are combined to
form a description property.
Transaction Type Names
Each transaction type has a transaction name, determined as follows:
June 2000
203
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
■
If there is a -trans_type option on the construct, then the name of the transaction type
is the string argument after that option.
■
If there is no -trans_type option on the transaction, the transaction type name is the
uninterpolated value of the label.
■
In either case, a trans_type property is created with the string value of the name.
Transaction Static Properties
When a transaction is created, the following properties are created from the type and
arguments of the task call that created the transaction. You may attach additional properties.
error=1 (only for $trans_error and $trans_display_error )
event=1 (only for $trans_event )
trans_type=type_name
label = interpolated_label ,_first_format_string
description = interpolated_text ,_subsequent_strings
Automatic Behavior
If there is no thread currently defined on the module instance, then one is created with a name
that is the module instance name with the instantiation parameter. This is the
thread_ref_name for the thread. Any thread created in this default manner should only be
allowed to use event and duration transactions, such as $trans_event(…) or $trans(…).
Transaction Creation
The $trans call creates a new transaction object and attaches it to its parent. The parent is
the transaction generated via the last $trans_begin. It may also attach it to its
predecessors if there are currently active predecessor transactions. See “Transaction Tag
System Tasks” on page 210.
Automatic Properties
When a transaction is created, the following property values are assigned on the transaction.
This includes the properties discussed in “$trans Variants” on page 203.
error=boolean
event=boolean
trans_type=type_name
label=interpolated_value_of_the_label
description=interpolated_value_of_the_text
June 2000
204
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
begin_time=current_time
end_time=current_time
sequence=current_sequence ,_a_unique_ascending_number
hierarchical_label=
label_of_parent_transaction .label_of_this_transaction
composite_label=
hierarchical_label :composite_label_of_the_predecessor
thread_named_block=
full_path_name_to_named_block_or_task_that_has_the_$thread_call
transaction_id=id_of_the_created_transaction
parent_id=id_of_the_parent_transaction
Arguments
In addition to options and optional property assignments on the $trans call, the $trans call
takes one more argument. The first non-optional argument is a format string that is
interpolated and considered to be the label. Additional arguments are used to satisfy the %
format specifiers in the format string. Additional format strings can be specified, and these will
be used to create a description property.
Format Strings
The format string in the $trans call is used in a similar fashion to the Verilog $display task
format string. Formatting codes are embedded in the format string, and these codes are
expanded when the $trans call is made. See “Interpolated Format Strings” on page 188.
The first format string is considered to be the label property for the transaction. The second
and subsequent format strings are considered to be the description property for the
transaction.
After the last argument for the format string is specified, another format string can be given.
It too can have % specifiers, and these must be provided additional arguments. In this fashion,
you can specify as many format strings as you want. This is useful for long and complex notes
that may be multi-line.
One newline is implied by the whole note, but no intermediate newlines are implied, even if
they occur over multiple format strings. Newlines need to be explicitly embedded with \n.
Transaction Label
The label portion of the $trans is the resultant text in the first format string. For example:
$trans("label_part%0d",label_num,
"Here is a complex note.\n",
June 2000
205
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
"Second line of complex note: data = %x\n", data_word,
"Third line, Time = %7.2t",$realtime);
Required Arguments
If a transaction is being created, then at least one argument must be provided to derive the
label of the transaction. This must be at least a simple string. For example:
$trans("read"); // minimum transaction created
$trans Variant Options
The $trans command variants support the following special option:
-trans_type Explicitly specifies the transaction type of a call. Each $trans_xxx call
must have a unique transaction type. Usually this is specified automatically. See “Transaction
Type Names” on page 203.
Common Options and Assignments
The $trans command variants support the following common options:
■
-property_definitions. See “-property_definitions” on page 213.
■
-properties . See “-properties” on page 214.
■
-undef. See “-undef” on page 214.
■
Dash Option (-). See “Dash Option (-)” on page 215.
■
Dash Dash Option (--). See “Dash Dash Option (--)” on page 215.
■
Property assignments. See “Property Assignments” on page 191.
Duration Transactions
$trans
(basic ) The $trans call records actions of a transaction with duration up to the next $trans,
$trans_begin, or $trans_end call. A $trans transaction closes any previously open
$trans transactions and marks their end time.
The actions and options specified under “$trans Variants” on page 203 for the $trans
variants apply to the $trans call.
June 2000
206
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
An event transaction created with the $trans_event or $trans_error calls nests under
a $trans transaction.
If you do not explicitly declare a thread with a $thread task, then you can only utilize a
duration transaction along with an event transaction. This constraint prevents you from
nesting transactions more than one deep. It is useful for legacy BFMs where $display
constructs are replaced with $trans_display constructs directly.
$trans_begin
(proficient ) The $trans_begin call records actions of a new begin transaction construct.
The transaction hierarchy is pushed one level. Transaction hierarchy can be created to any
depth using $trans_begin.
A $trans_begin call closes a previously open duration transaction construct created with
$trans.
A $trans_begin call must be paired with a $trans_end call.
The actions and options specified under “$trans Variants” on page 203 for the $trans
variants apply to the $trans_begin call.
Do not use the $trans_begin call on threads that are declared implicitly. This limitation
prevents erroneous transaction nesting.
$trans_begin Example
In the following example, do_write is the transaction label, and Perform a write to
memory is the transaction description:
$trans_begin("do_write",
"Perform a write to memory.");
$trans_end
(proficient ) The $trans_end call records actions of an end transaction. The transaction
hierarchy is popped at least one level, closing the matching transaction opened as a begin
transaction using $trans_begin and any other duration transactions that may be nested
deeper.
The actions and options specified under “$trans Variants” on page 203 for the $trans
variants apply to the $trans_end call.
June 2000
207
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
$trans_end Example
$trans_end;
The $trans_end call does not accept label or description arguments as the $trans_begin
call does. The -trans_type option is important, however. If unspecified, the $trans_end
call matches the last $trans_begin call. If a -trans_type option is specified, then the
$trans_end matches the last $trans_begin of the same transaction type. This can cause
multiple begin transactions to be ended simultaneously.
If there is an open $trans transaction, then it is ended first before the matching
$trans_begin transaction is ended. See also “$trans_tag Link Example” on page 211.
It is an error to have more $trans_end transactions than $trans_begin transactions.
Do not use the $trans_end call on threads that are declared implicitly. This limitation
prevents erroneous transaction nesting.
Nested $trans_begin, $trans_end Example
In the following example, a Verilog disable occurs in the inner loop. The end of
do_ten_things also ends any other open transactions in the loop.
$trans_begin("do_ten_things");
begin : break_out
for(i=1;i<=10;i=i+1) begin
$trans_begin("loop%d",i);
if(special_condition)
disable break_out;
$trans_end;
end
end
$trans_end("-trans_type","do_ten_things");
Event Transactions
$trans_event
(basic ) The $trans_event task records actions of a transaction event with no duration. An
event transaction must nest under a duration transaction. An event transaction has a start
time, but the end time is the same as the start time. It also has the property event=1 attached
to it.
June 2000
208
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
The actions and options specified under “$trans Variants” on page 203 for the $trans
variants apply to the $trans_event call.
$trans_event Example
$trans_event("data_rdy",
"Found that data is ready.");
$trans_error
(basic ) The is $trans_error call records actions of a transaction event that has an error.
It is the same as $trans_event, except the property error=1 is also set. See “Error
Rollup” on page 209.
The actions and options specified under “$trans Variants” on page 203 for the $trans
variants apply to the $trans_error call.
$trans_error Example
$trans_error("mismatch",
"Found data %d, expected %d", data, expected);
Error Rollup
When $trans_error is called, it performs an error rollup operation as well as creating an
error transaction. The error count of its ancestors is incremented as well as the error count of
the thread, module instance, and a global error count. See “Property System Tasks” on
page 212.
Display Transactions
$trans_display
(basic ) The $trans_display task is a replacement for $display. It processes its
arguments like $display and creates a transaction similar to $trans. Except for the way
the task processes its arguments, $trans_display behaves exactly like $trans. The
$trans_display task does not accept any options or property assignments.
June 2000
209
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
$trans_display_error
(basic ) The $trans_display_error task is the same as the $trans_display task,
except the property error=1 is also set. The $trans_display_error task processes its
arguments like $display and creates a transaction similar to $trans_error. Except for
the way the task processes its arguments, $trans_display_error behaves exactly like
$trans_error. The $trans_display_error task does not accept any options or
property assignments.
Transaction Tag System Tasks
The system task calls listed in this section are used to manage transaction tags, which
propagate the predecessor/successor relationship of transactions.
When you propagate information from one thread to another, you can get a transaction tag to
associate with the information. The information is propagated to the other thread along with
the tag. The tag is then linked to the receiving thread when the information is accessed.
$trans_tag_get
(advanced ) The $trans_tag_get task creates a transaction tag and returns a 32-bit
identifier for it. You can then propagate the tag with other information going to a destination
thread.
Note: To avoid memory leaks, every transaction tag returned by $trans_tag_get must
eventually be ended, either implicitly (see “$trans_tag Link Example” on page 211) or
explicitly (see “$trans_tag("-end",tag)” on page 211).
$trans_tag_get Example
reg [31:0] transaction_tag_ID;
transaction_tag_ID = $trans_tag_get;
first_pipe_stage = {transaction_tag_ID,data1,data2,data3};
// transaction tag ID stored with data
$trans_tag_get Options
The $trans_tag_get task supports the following option:
-above This option defines the thread of focus to be the currently focused thread in the
module above this module in the Verilog hierarchy. It is used within special BFM task queuers
that are instantiated below the test level.
June 2000
210
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
$trans_tag
The $trans_tag system task has various forms that allow you to explicitly link, unlink, or
end a transaction tag. Use the -link, -unlink, or -end option to specify these actions. You
must always specify one and only one of these three options in any $trans_tag call. These
three forms of $trans_tag are described below.
$trans_tag("-link",tag)
(advanced ) This form of $trans_tag links an existing transaction tag, whose ID was
returned from a previous $trans_tag_get call, to the currently open transaction and
thread. This creates a predecessor/successor relationship. When the currently open
transaction ends, the transaction tags linked to it are also ended, along with the predecessor/
successor relationship.
$trans_tag Link Example
In the following example, a transaction tag is accessed when information is accessed by a
destination thread. The transaction tag is linked to the currently open transaction and its
thread of execution. When the transaction ends, the linked transaction tag is also ended.
{transaction_tag_ID,data1,data2,data3} = last_pipe_stage;
// access transaction tag ID stored with data
$trans_begin("later_action");
$trans_tag("-link",transaction_tag_ID);
...
$trans_end;
// ends $trans_tag as well
$trans_tag("-end",tag)
(advanced ) This form of $trans_tag ends an existing transaction tag, whose ID was
returned from a previous $trans_tag_get call. It cannot be linked again. The ending
causes the tag to automatically be unlinked and ends a predecessor/successor relationship.
This form allows you to explicitly end a transaction tag.
$trans_tag("-unlink",tag)
(advanced ) This form of $trans_tag unlinks an existing transaction tag, whose ID was
returned from a previous $trans_tag_get call, from the thread it is linked to. Use it in cases
where the transaction tag is to be handed off to yet another destination thread. The unlinking
ends the predecessor/successor relationship to the current thread.
June 2000
211
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Transaction Scoped Transaction Tags
Any transaction tags linked during a transaction are implicitly ended at the end of that
transaction.
Automatic Transaction Tag Management
The predecessor/successor relationships are automatically managed by TXA storage and
queuing elements. These elements include memories, data queues, and smart queues.
Property System Tasks
Additional properties, property definitions, and signal groupings can be attached to an object
using the $set_property call.
$set_property
(advanced ) Use the $set_property call to attach additional properties or property
definitions to any object listed in “Transaction Objects” on page 182.
If no locator object is specified, the $set_property call attaches items to the currently open
duration or begin transaction created as with the -current_trans option.
$set_property Options
In addition to the standard property options and assignments, the $set_property call
accepts the following options to control what the properties are being attached to:
-current_scope, -current_thread, -current_trans, and -last_trans.
-current_scope (advanced ) This option specifies that the property assignment and
definitions occur on the current module instance. For example:
$set_property("-current_scope","family=","utopia");
-current_thread (advanced ) This option specifies that the property assignments and
definitions occur on the current thread. For example:
$set_property("-current_thread","pooling=",1);
-current_trans (advanced ) This option specifies that the property assignment or
definition occurs on the currently open transaction, or the last transaction created with
$trans or $trans_begin. Event transactions, such as those created with $trans_event
or $trans_error are not referenced since they have no duration. For example:
June 2000
212
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
$set_property("-current_trans", "wait_states=",5);
-last_trans (advanced ) This option specifies that the property assignment or definition
occurs on the last transaction created. The -last_trans option can be used to set
properties on a previously executed $trans_event or $trans_error. This includes event
transactions that have no duration. For example:
$set_property("-last_trans","wait_states=",5);
Common Options and Assignments
The $set_property command supports the following common options:
■
-property_definitions. See “-property_definitions” on page 213.
■
-properties . See “-properties” on page 214.
■
-undef. See “-undef” on page 214.
■
Dash Option (-). See “Dash Option (-)” on page 215.
■
Dash Dash Option (--). See “Dash Dash Option (--)” on page 215.
■
Property assignments. See “Property Assignments” on page 191.
Property Options
Any TRST call that manipulates properties supports the property options described in this
section. This includes the module instance tasks, the $thread task, the transaction tasks,
and the $set_property task itself.
-property_definitions
(advanced ) Use this option to declare a property definition for constructs used by the BFM,
threads of the BFM, or transactions created by threads of the BFM. A property definition is a
triplet of a name of a property, the basic data type of the property, and formatting information
about the property. The property definition applies to properties on the transaction object. The
first argument after the option is the property name (see “Property Names” on page 184), the
second argument is the base data type (see “Basic Property Types” on page 185), and the
third argument is the format string used to print the property (see “Property Formatting” on
page 187). You can use as many property definition triplets as you need before the next
option to the system task.
Transaction objects may have property definitions created automatically when properties are
assigned. When created automatically, the property definition information may be copied to
June 2000
213
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
a lower level object’s definition. See “Creating Property Definitions Automatically” on
page 184.
-property_definitions Example
$bfm("-property_definitions",
"wait_states", "integer", "‘s",
"retry_count", "integer", "‘s");
Additional Information
You can specify as many -property_definitions options as you need for a single call.
Once a property definition has been declared on an object, it is an error to declare it differently
on the same object.
Automatic Behavior
Property definitions should be declared before an assignment is made. Otherwise, an
automatic definition will be created that will clash with the explicit definition.
If a property is assigned to an object and there is no property definition information declared
for it, then a property definition is created on the object and given default values based on
previously defined properties of the same name, or on the value assigned to the property. See
“Creating Property Definitions Automatically” on page 184.
-properties
(proficient ) Use the -properties option to indicate that the following arguments are
property assignments to be made on the transaction object. This option only needs to be
specified if the use of the property assignment syntax is ambiguous. Normally you can simply
perform property assignments on the object. Property assignments are specified as
described in “Property Assignments” on page 191.
-properties Example
$bfm("-properties","mem_bank=",mb);
-undef
The -undef option means to remove the property rather than assign it. The property will no
longer exist on the object, if it existed before.
June 2000
214
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Remove Property Example
$bfm("-undef","family");
Dash Option (-)
The dash option (-) is the null option: You can use it to end an option list. It performs no other
actions.
Dash Option Example
$bfm("-property_definitions",
"mem_bank","integer","‘s",
"-",
"mem_bank=",mb);
Dash Dash Option (--)
The dash dash option (--) is the escape option. This option states that the next argument is
not an option and is to be taken as an argument. It is useful for specifying format strings that
begin with a dash (-).
Utility System Tasks
$tbv_timeformat
(basic ) Use the $tbv_timeformat call to set the format used by %t when %t is used in a
TRST call (see “%t, %width.precisiont” on page 190). This call has the same syntax as
$timeformat, but TRST calls use $tbv_timeformat to set format values for %t.
The syntax of $tbv_timeformat is:
$tbv_timeformat (units , precision , suffix , minimum_field_width );
The $tbv_timeformat arguments are the same as the $timeformat arguments:
units An integer in the range from 0 to -15. Specifies which units to print the time in. For
example, -9 specifies nanoseconds and -12 specifies picoseconds. The default value is -9.
precision
3.
June 2000
Integer. Specifies the number of decimal places to print. The default value is
215
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
suffix String. Specifies the suffix to print. For example, you could specify "NANO"
instead of "ns". The default value is null.
minimum_field_width Integer. Specifies the minimum width for the entire printed
value, including the suffix. The default value is 20.
Error Rollup
An error_count property is kept on each level of object. If this property does not exist, it is
created with an initial value of 0.
When a $trans_error call is made, an error rollup function is executed, and the following
occurs:
1. The error_count property of each ancestor is incremented.
2. The error_count property of the thread is incremented.
3. The error_count property of the module instance is incremented.
4. A global error_count is incremented.
5. The specific transaction that caused the error is identified.
See “Locating Errors” on page 178 for information about finding and viewing error
transactions in Signalscan Waves.
Verilog Plus Arguments
This section describes the Verilog plus arguments that you can use to control the transaction
recording mechanism.
Logging Operations
You can log transaction information into the Verilog log file as you would log $display
information. This allows you to intermix transaction information with other log file information
in the Verilog log file. There is a performance penalty for doing this, since IO operations to the
log file are expensive.
The format of the information makes it easy to extract using awk. Each line has a DAITR
prefix followed by an object ID number. Then the information, in the form of a property
assignment, is displayed.
June 2000
216
Product Version 6.5
Signalscan Waves User Guide
Recording Transactions
Logging All Transactions
The following option is used to log all transactions into the log file:
+daitr_log_all
Logging Error Transactions
The following option is used to log only error transactions into the log file:
+daitr_log_error
June 2000
217
Product Version 6.5
Signalscan Waves User Guide
A
Saving and Restoring Your Configuration
Your Signalscan Waves configuration includes groups, markers, events, and register pages
that you have defined. It also includes preferences such as Names Pane formatting, pane and
window sizes, colors, print preferences, and many others.
Do-Files
Use a Do-File to save and restore the configuration of a Signalscan Waves session.
A Do-File contains Signalscan Waves commands (see Appendix B, “Signalscan Waves
Commands”) that can be loaded and executed by Signalscan Waves. Do-Files are text files
that you can edit with any text editor. By convention, Do-Files are named filename .do, but
you can give them any name.
.signalscanrc File
Signalscan Waves automatically attempts to execute a Do-File named .signalscanrc
when you launch Signalscan Waves. Your current directory and then your home directory are
searched for this file. You may want to use this file to save preferences that you want to use
every time you run Signalscan Waves.
Other commands that you might want to save are design-specific or simulation-specific, and
you do not want to execute them every time you open Signalscan Waves. You can save these
commands in separate Do-Files and load them explicitly as described in “Restoring Your
Configuration” on page 220. For example, you can save different groups and markers in
separate Do-Files to restore different views of a simulation.
Saving Your Configuration
To write out the current configuration or parts of the current configuration of Signalscan
Waves, select File—Save Do-File . A standard file save form is displayed so that you can
specify the path and filename for the Do-File. By convention, a Do-File is named
June 2000
218
Product Version 6.5
Signalscan Waves User Guide
Saving and Restoring Your Configuration
filename .do, but you can give it any name. When you click the OK button, the Options for
Saving a Do-File form is displayed, as shown in Figure 1-1 on page 219:
Figure 1-1 Options for Saving a Do-File
To save all items in a particular category, click to select (highlight) the appropriate button on
the left side of this form. To save none of the items in a particular category, click to de-select
the appropriate button.
To save some but not all of the items in a particular category:
1. Click the down-pointing arrow to the right of the category drop-down menu.
2. Click the category you want to modify, such as Groups or Preferences.
June 2000
219
Product Version 6.5
Signalscan Waves User Guide
Saving and Restoring Your Configuration
The list of items in that category is displayed in the scrollable field.
3. Select (highlight) only the items you want to save in this Do-File.
To select one item, click on it. To select multiple items in the list, click and drag or click
while holding down your Shift or Control key. To de-select all items, click on any
currently selected item. To de-select particular items, click on them while holding down
your Control key.
4. Select another category or click the OK button.
Restoring Your Configuration
Restore a configuration from a Do-File either when you invoke Signalscan Waves or from
within Signalscan Waves.
When You Invoke Signalscan Waves
Specify the -do option on the command line. You can specify as many different Do-Files as
you want. For example:
signalscan -do color.do -do sim1.do design.trn
From Within Signalscan Waves
Click the ExecDoFile button or select File—Execute Do-File . You are prompted for the
name of the file to execute.
To automatically use this configuration every time you run Signalscan Waves, append this
Do-File to the .signalscanrc file in your home directory.
June 2000
220
Product Version 6.5
Signalscan Waves User Guide
B
Signalscan Waves Commands
The Signalscan Waves commands described in this appendix can be entered into a Do-File.
To create a Do-File, you should run Signalscan Waves and then select File—Save Do-File .
You can use the information in this appendix to modify a Do-File.
Lexical Conventions
■
Most keywords can be abbreviated to three (and sometimes two) characters.
■
Keywords are case-insensitive.
■
Backslash (\) is the line continuation character.
■
Carriage return (Return or Enter key) and semicolon (;) are both supported for end of
statement.
Command Syntax
. (period)
Continue simulation.
?
List all the commands supported by Signalscan Waves.
about
about [Signalscan]
Display program names and versions for both Signalscan Waves and the simulator.
June 2000
221
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
add
Adding Objects to the Named Group
add gr[oup] group-name [object-data-list ]
with object-data-list ::=
object [radix ] ['(' option-list ')'] [object-data-list ]
object ::= reg-expression | object-name |
string | bus-description
bus-description ::= '{' bus-name (asc[endingorder] |
des[cendingorder] | noind[ices]) object-data-list '}'
radix ::= '(b|o|d|s|h|a|n|i|mmnemonic-map-name )[+|-]time
option-list ::= option [option-list ]
option ::= cons[tant] number | comme[nt] | [no]strength |
[no]ana[logdisplay] | min[max] min-number max-number |
analogh[eight] number | scaleexp number
Radix options are:
Table B-1 Radix Options
Prefix
Description
'b
binary
'o
octal
'd
unsigned decimal
's
signed decimal
'h
hexadecimal
'a
ASCII
'n
noninverted
'i
inverted
'm
mnemonic map
If the group does not already exist, it is created. If the group exists and has an insertion point,
use it. Otherwise add at the end of the group. Wildcard characters * and ? are accepted.
June 2000
222
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Constants are created with string (constant number ), and comments are created
with string (comment ).
Adding Objects to the Selected Group
add var[iables] [object-data-list ]
with object-data-list ::=
object [radix ] ['(' option-list ')'] [object-data-list ]
object ::= reg-expression | object-name |
string | bus-description
bus-description ::= '{' bus-name (asc[endingorder] |
des[cendingorder] | noind[ices]) object-data-list '}'
radix ::= '(b|o|d|s|h|a|n|i|mmnemonic-map-name )[+|-]time
option-list ::= option [option-list ]
option ::= cons[tant] number | comme[nt] | [no]strength |
[no]ana[logdisplay] | min[max] min-number max-number |
analogh[eight] number | scaleexp number
Add a set of objects to the selected group at the insertion point. If the object list is not
provided, the selected objects are added.
Adding One or More Mnemonic Value Pairs to an Existing Mnemonic Mapping
add mn[emonic] map[ping] mnemonic-map-name mnemonic-mapping-list
mnemonic-mapping-list ::=
value mnemonic [mnemonic-mapping-list ]
value ::= ([radix ] string ) | *
radix ::= '(b|o|d|s|h|a|n|i|mmnemonic-map-name )
mnemonic ::= string
Adding Inputs
add module input
If at least one input or inout port or object connected to an input or inout port of the module
containing the selected object in the Waveform Window is recorded, for each input and inout
port of the module, the object connected to the port in the higher scope is added.
June 2000
223
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Adding Traces
add trace
Add drivers of the currently selected object in the waveform to the objects.
Adding New Elements to an Existing Register Page
add reg[isterpage] register-page-name [register-data-list ]
register-data-list ::=
(text [font-size ] number number text ) |
(variable [font-size ] number number
(variable-name | bus-description )) |
(group [font-size ] number number ('(' register-data-list
')')
font-size ::= fonts[ize] (10|12|14|18|24)
ali[as]
ali[as] [name [existing-command ]]
Create an alias for an existing command or list of commands. Multiple commands should be
separated by a semicolon (;) since the alias statement takes the string as one object to be
processed at the time that the alias is used.
If no argument is provided, list the existing command alias(es).
always
See the arguments for the create break command in “Setting a Permanent Breakpoint”
on page 227.
Set a repeating breakpoint. This is an alias for the create break command.
cd
cd [scope-name ]
Set the default hierarchical scope. If no argument is given, set it to the very top scope.
June 2000
224
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
The standard UNIX directory shortcuts are supported: forward slash (/) for the top of the
current design hierarchy, and double dot (..) to go up one module up.
cen[ter]
cen[ter] [on] (cursor1 | time )
If a time is specified, set Cursor1 to this value. In all cases, redraw the Waveform Window
signal data area such that Cursor1 is at the center.
clo[se]
Closing One or More Simulation Files
clo[se] sim[ulation] fil[e] identifier-list
identifier-list ::= string [identifier-list ]
Closing the Specified Window
clo[se] win[dow]((designb[rowser] | wav[eform] | reg[ister]|
brea[kpoints]
| sou[rce] | eve[nts]) [number ])
col[lapse]
col[lapse] seq[uence] [time]
([cur[sor1]] [time ] | bet[weencursors] [time time ] | all)
Collapse the sequence time area(s) in the selected region. The default is at Cursor1.
con[tinue]
con[tinue] [for time | until time | forever ]
Continue simulation for a specified amount of time, until a specified absolute simulation time,
or forever. When no argument is provided, the argument is obtained from the Control Window
button (initially set to Forever ).
June 2000
225
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
cop[y]
Copy the selected objects in the Waveform Window to the clipboard.
cop[y] sim[ulation] fil[e] data from old-name to new-name
Make a copy of the groups containing the objects belonging to the first simulation file. Then
replace the objects of the groups by the ones with the same names from the new simulation
file.
cre[ate]
Creating a Bus at the Insertion Point
cre[ate] bu[s] bus-name ([asc[endingorder] | [des[cendingorder]
| noind[ices]) object-data-list
Creating a Comment at the Insertion Point
cre[ate] com[ment] string
Creating a Constant at the Insertion Point
cre[ate] con[stant] constant-name value
Creating a New Event
cre[ate] ev[ent] [event-name event-var-seq ]
event-var-seq ::= [object-name string event-var-seq ]
Creating a New Group
cre[ate] gr[oup] group-name [object-data-list ]
See the syntax for the add group command in “Adding Objects to the Named Group” on
page 222.
Creating a New Marker
cre[ate] ma[rker] [marker-name [time ]]
The default time is the Cursor1 time in the Waveform Window.
June 2000
226
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Creating a New Register Page
create reg[isterpage] register-page-name [register-data-list ]
register-data-list ::=
(text [font-size ] number number text )
| (variable [font-size ] number number
(variable-name | bus-description ))
| (group [font-size ] number number
'(' register-data-list ')')
font-size ::= fonts[ize] (10|12|14|18|24)
Setting a Permanent Breakpoint
cre[ate] break[point] [b[efore] | a[fter]] #relative-time
| [@posedge | @negedge] signal | signal = expression
| scope-name file-name line-number
Setting a One-time (Temporary) Breakpoint
cre[ate] tbreak[point] [b[efore] | a[fter]] (#relative-time
| ##absolute-time ) | [@posedge | @negedge] signal
| signal = expression | scope-name file-name line-number
cut
cut
Cut the selected objects in the Waveform Window, placing them on the clipboard.
def[ine]
Defining a List of Bookmarks
def[ine] boo[kmarks] identifier-list
identifier-list ::= string [identifier-list ]
June 2000
227
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Defining the Button Bar for a Specific Window Type
def[ine] but[tons] win-type button-data-list
win-type ::= contr[ol] | designb[rowser] | wav[eform] | register
| source | eve[nt]
button-data-list ::= [number button-name button-data-list ]
The button-name is the abbreviated command for a menu item.
Modifying the Current Color Set with the Provided Color Assignment List
def[ine] color color-definition-list
color-definition-list ::=
color-definition [color-definition-list ]
color-definition ::= ( #hex-rgb-value-string | color-name
| color-rgb-number )
color-rgb-number ::= '(' number number number ')'
Defining the Control Window Setup
def[ine] con[trol] win[dow] window-attribute-list
with window-attribute-list ::= [no]lines
The lines option turns on/off line progress reporting.
Specifying a User-Defined Design View
def[ine] design design-name [scope-mapping-list ]
scope-mapping-list ::=
scope-mapping-pair [scope-mapping-list ]
scope-mapping-pair ::=
(dest-scope-name src-scope-name )
| ('(' dest-scope-name src-scope-name ')')
Specify a user-defined design view, which is useful for putting a design back together after it
has been partitioned. The design view is created if it does not already exist. The destscope-name is the name of the scope in the design to be defined, and the src-scopename is the name of the source scope. Each scope-mapping-pair declaration includes
any sub-scope (or sub-hierarchy) of the specified src-scope-name . To delete the design,
June 2000
228
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
enter the close sim command. To remove a particular scope from the design, define that
scope to the <VOID>:: scope.
Setting a Default for the Variable Display Output Format
def[ine] display format '(b|o|d|s|h|a|n|i)
Setting the Event Search Direction
def[ine] event [search] dir[ection] (forward | backward | toggle)
Setting Use of the Exit Confirmation Form
def[ine] exit [no]pro[mpt]
Define whether the exit confirmation form comes up when exiting.
Setting the Source Code Window Focus
def[ine] focus [on] mod[ule]
Set the Source Code Window focus to the current module being displayed.
Defining or Re-Defining a Mnemonic Mapping
def[ine] mn[emonic] map[ping]
mnemonic-map-name mnemonic-mapping-list
mnemonic-mapping-list ::=
value mnemonic [mnemonic-mapping-list ]
value ::= ([radix ]string ) | *
radix ::= '(b|o|d|s|h|a|mmnemonic-map-name )
mnemonic ::= string
Turning Off Multivalue Indication
def[ine] [no]multi[valueindication]
Turn off the multivalue indication in the Waveform Window.
June 2000
229
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Defining Line Patterns for TimeA, Cursors, and Markers
def[ine] patt[ern] pattern-definition-list
pattern-definition-list ::=
pattern-definition [pattern-definition-list ]
pattern-definition ::= object-name pattern-type
object-name ::= ( curpos | cursor1 | cursor2 | marker )
pattern-type ::= ( solid | dot | dash )
Define the line pattern for TimeA (curpos), Cursor1, Cursor2, and markers.
Defining the Action for Old Live Simulation Data
def[ine] prev[ious] sim[ulation] (kee[p] | rep[lace] | cop[y])
Define the action to be taken with old live simulation data when doing resimulation.
Setting Values for all Print Options
def[ine] print [print-option-list ]
print-option-list ::= print-option [print-option-list ]
print-option ::= printer name | com[mand]
string
string | fil[e]
| tit[le] name | comp[any] string
| desi[gner] name | not[e] string
| ran[ge] ( '(' time to time ')' | defa[ult] | visible | all )
| var[iable] ( visible | sel[ected] | all )
| pag[es] number
| siz[e] (A|B|A4|A3) | [no]bor[der]
See the print command for details in “print” on page 238.
Setting the Simulation Progress Direction
def[ine] prog[ress] dir[ection] (forward | backward | toggle)
Defining the sendmail Command
def[ine] sendm[ail] command string
June 2000
230
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Defining an Alias Number for a Scope
def[ine] sco[pes] number scope-name
This alias may be used later as %n. The scope name may contain a file name and a
hierarchical scope.
Defining the Width of the Sequence Time (Scale) in the Waveform Display
def[ine] se[quence] time width number
Making the Cursors Snap or Not to Transitions
def[ine] [no]snap
Make the cursors snap (or not snap) to the nearest object transition.
Defining Action for Source File Not Found
def[ine] sou[rce] [no]pro[mpt]
Define whether a form will pop up if a Verilog source file is not found.
Setting the Search Path for Verilog Source Files
def[ine] sou[rce] sea[rch] pat[h] string
Defining the Source Code Window Setup
def[ine] sou[rce] win[dow] window-attribute-list
window-attribute-list ::= [no]lin[enumbers] |
[no]cod[ecoverage]
sou[rce] win[dow] [window-attribute-list ]
window-attribute-list ::= ([no]lin[enumbers] |
[no]cod[ecoverage]) [window-attribute-list ]
Defining the Source Code Debug Step Increment Default
def[ine] step [number ]
June 2000
231
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Defining a List of Bus Templates
def[ine] tem[plate] bus identifier-list
identifier-list ::= string [identifier-list ]
Setting the Terminal to the Specified Color Set
def[ine] term[inal] (aut[omatic] | blac[kandwhite] | blac[kwhite]
| gray | grey | colo[r] | colo[r] defa[ult] | colo[r] cla[ssic])
Set the terminal to the specific color set (color, grayscale, or black and white), or ask
Signalscan Waves to detect the monitor type and set it to its best mode.
The color set classic selects the 3.0 color set, and the color set default selects the new
default for Signalscan Waves. Specify the set terminal color command to overwrite the current
color set with the predefined set. You can then change any of the colors with the
define color command.
Setting the Current Units of Time for Display
def[ine] time units ( [def[ault] | s | ms | us | ns | ps | fs])
Defining Use of User-Defined Bus Symbol
def[ine] [no]user[definedbussymbol]
Define whether the name of a user-defined bus is displayed with the user-defined bus symbol
(%).
Defining the User Guide Directory
def[ine] user guid[e] directo[ry] string
Defining Attributes for Selected Objects
def[ine] var[iables] view-attribute-list
view-attribute-list ::= (' b|o|d|s|h|a|n|i)
| [no]ana[log-display] | [no]fullh[ierarchy]names]
| [no]fil[enames] | [no]fullp[athfilenames] | [no]strength
| [no]showfilename
June 2000
232
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Define for the selected objects in the Name Panes (across all windows), the following
additional attributes: radix, strength, analog display, full hierarchical names, simulation file
names, or both the file and hierarchical names.
The filenames, fullpathfilenames, and showfilename attributes are global to all
objects.
Defining the Waveform Window Attributes
def[ine] wav[eform] win[dow] window-attribute-list
window-attribute-list ::= waves[pace] number | namep[ane]
number
| listp[ane] number | waveh[eight] number
| analogh[eight] number | analogm[inmax] number number
Define the Waveform Window attributes: the wavespace, Name and List Panes proportions,
the wave and analog heights, and the minimum and maximum values for analog waves.
Defining the Web Browser Command
def[ine] web brow[ser] command string
del[ete]
del[ete] object
object ::=
alias name | ev[ent] name
| gr[oup] name | brea[kpoints] number
| boo[kmark] identifier-list | mar[ker] name
| mn[emonic] map[ping] identifier-list | reg[ister] name
| tem[plate] bus [identifier-list ]
identifier-list ::= string [identifier-list ]
Delete the identified objects. If no object list is provided, the selected object in the active
window is deleted.
The breakpoint number is the Signalscan Waves number.
desel[ect]
desel[ect] [all]
June 2000
233
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Deselect the selected objects in the Waveform Window.
dis[play]
dis[play] display-object-list
display-object-list ::= object
['(b|o|d|s|h|a|n|i)] display-object-list
Show value of a net or register.
dup[licate]
dup[licate]
Duplicate the selected objects in the Waveform Window.
exe[cute]
exe[cute] do[file] file-name
Execute a Do-File script.
exit
exit [[no]confirm] [sig[nalscan]]
Exit Signalscan Waves. If no argument is provided, and a simulator is running, the user is
asked whether the simulation should be terminated. In all scenarios, a confirmation is
required, unless disabled in the preference settings, or the noconfirm option is used.
exp[and]
exp[and] seq[uence] [time] ([cur[sor1]] [time ]
| bet[weencursors] [time time ] | all)
Expand into Sequence Time in the selected area. Default is at Cursor1.
June 2000
234
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
find
Repeating the More Recent Find Request
find next
Finding an Object in the Names Pane of the Waveform Window
find var[iable] string
force
force name =value
Force an object to the specified value.
gen[erate]
gen[erate] simm[atrix] [desi[gn] design-name ] do[file] dofile-name
[simmatrix-list ]
simmatrix-list ::= simmatrix-pair [simmatrix-list ]
simmatrix-pair ::=
(solver sst-filename )
| ('(' solver sst-filename ')')
Generate a Do-File from a design running under the Precedence simulation backplane
SimMatrix (for example, Vertue). The simulator(s) must be connected to Signalscan Waves
and must be stopped while using this command. The simulator(s) must be running under
SimMatrix control.
help
help [commands ]
Display the use of a specified command. If no command is specified, all commands
supported by Signalscan Waves are listed.
hide
hide design design-list
design-list := design-name [design-list ]
June 2000
235
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Hide a design so that it is not visible in the list of designs above the top level scopes.
inc[lude]
Including the File Name While Creating a Bookmark
inc[lude] boo[kmarks] with[out] filen[ame]
Including the File Name While Storing History of Scopes
inc[lude] sco[pe] hist[ory] with[out] filen[ame]
Include the file name while storing the history of the scopes in the Design Browser.
info
info
Display current simulation time and scope information.
init[iate]
init[iate] sim[ulation] [string ]
Initiate a simulation session, using the provided string to execute the simulator.
inv[ert]
inv[ert]
Invert the selected objects in the Waveform Window.
list
list [open] sim[ulation] files
List the open simulation files.
June 2000
236
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
locate
Locating an Event
locate ev[ent] event-name
Locate the specified event and set the current time at this location.
Locating a Marker
locate ma[rker] marker-name
Locate the specified marker and set the current time at this location.
me[rge]
me[rge] sim[ulation] file[s] to string from file-list
file-list ::= string [file-list ]
Merge specified incremental simulation files into a single simulation file.
mov[e]
mov[e]
Move the selected objects in the Waveform Window to the insertion point.
next
next [statement-count ]
Step to the next source statement or skip over the statement-count statements.
once
once
See arguments for the create tbreak command in “Setting a One-time (Temporary)
Breakpoint” on page 227.
Set a one-time breakpoint. This an alias for the create tbreak command.
June 2000
237
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
open
Opening a Simulation File
open sim[ulation] file simulation-file-name
If the file is not specified, a file browser is presented for selection.
Opening a Window of the Specified Type
open win[dow]
(((designb[rowser] | wav[eform] | brea[kpoints] | sou[rce] |
eve[nts]
| reg[ister] [register-name ] [lock]
[instance-number ] [geo[metry] x-coord y-coord width
height ])
| pref[erences])
register-name ::= reg[ister] string
object-name ::= var[iable] string
window-format ::= format radix
radix ::= '(b|o|d|s|h|a|mmnemonic-map-name )
If an instance-number is not specified or if only one instance of this window type is
supported, then the instance number is assumed to be 1.
If the specified window already exists, it is activated.
pa[ste]
pa[ste]
Paste the contents of the clipboard to the Waveform Window.
print
Printing a Waveform
print [print-option-list ]
print-option-list ::= print-option [print-option-list ]
June 2000
238
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
print-option ::= printer name | com[mand]
string
| fil[e] string | tit[le] name | comp[any] string
| desi[gner] name | not[e] string
| ran[ge] ( '(' time to time ')' | defa[ult] | visible | all )
| var[iable] ( visible | sel[ected] | all )
| pag[es] number | siz[e] (A|B|A4|A3) | [no]bor[der]
Print the waveform to a printer or a Postscript file. If some of these options are not specified,
they are obtained from a previous set print command, or from system defaults. If the print
command is entered without any arguments, the Print form is displayed.
Defining the Print Command to be Used
print [com[mand] string ]
Setting a Company Name for the Print Header
print [comp[any] string ]
Setting a Designer Name for the Print Header
print [des[igner] string ]
Setting the Output Postscript File Name
print [fil[e] string ]
Setting a Note for the Printer Print Header
print [not[e] string ]
Setting the Name of the Printer
print [pr[inter] string ]
Identifying What to Print in the Waveform Window
print [ran[ge] ['(' start-time to end-time ')' | visible | all] ]
Define a time range, or specify one of the two keywords: visible for what is currently visible
in the Waveform Window, or all for the complete simulation time range.
June 2000
239
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Setting the Print Title
print [tit[le] string ]
Identifying Objects to Print
print [var[iables] [visible | selected | all] ]
Identify the objects to be printed, using one of the three keywords: visible for what is
currently visible in the Waveform Window, selected for what is selected in the Waveform
Window, or all for all the objects in the Waveform Window.
pwd
pwd
Display the current scope.
quit
quit [[no]confirm] [sig[nalscan]
See “exit” on page 234.
rel[ease]
rel[ease] object
Release a forced object.
ren[ame]
ren[ame] (gr[oup] | mar[ker] | ev[ent] | reg[isterpage]
| mn[emonic] map[ping] (sim[ulation] fil[e])) old-name new-name
Rename an object. If no argument is provided, the selected object is renamed and a form is
used.
rep[lace]
rep[lace] sim[ulation] fil[e] data [from old-name ] [by new-name ]
June 2000
240
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
Replace data such as group, register, Event, and trace objects from one simulation file to
another simulation file. If the second simulation file is not provided, the data is refreshed from
the first simulation file. If the first simulation file is missing, and there is only one simulation,
the open simulation file is used.
reveal
reveal design design-list
design-list := design-name [design-list ]
Reveal a design that has been previously hidden.
save
save do[file] [file-name ]
Save a Do-File script.
sel[ect]
sel[ect] all
Select all objects in the Waveform Window.
set
Triggering an Event Object
set object
Setting an Object to the Specified Value
set object =value
shift
shift [(by | to) time ] (variables | group | file) identifier-list
identifier-list ::= string [identifier-list ]
Shift the specified object or group or file by the specified relative time or to the specified
absolute time.
June 2000
241
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
show
Note: Most of these commands have a different outcome in interactive and post-simulation
mode, and the SST2 Database only includes the subset of the design that was recorded.
Displaying the Current Breakpoints
show brea[kpoints]
Showing the Drivers of Specified Objects
show drivers name-list
name-list ::= name name-list
Showing the Loads of Specified Objects
show load[s] name-list
name-list ::= name name-list
Displaying Ports
show ports
Listing the Child Scopes of the Current Scope
show sco[pes] [reg-expression]
Listing Specified Objects
show var[iables] [reg-expression ]
List objects in the current scope, or objects whose name matches the regular expression.
source
source file-name
Read commands from the named file. This is an alias for:
execute dofile filename
June 2000
242
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
ste[p]
ste[p] [statement-count ]
Step to the next source statement, or skip over statement-count statements.
sto[p]
sto[p]
Stop the simulation.
term[inate]
term[inate] sim[ulation]
Terminate the simulation session.
topl[evel]
topl[evel]
Go to the top level of the current design. This is an alias for cd /.
undo
undo
Undo the most recent command. Note that this not possible for all commands.
upscope
upscope
Set the current scope to the parent scope of the current scope.
wait
wait
Wait for the pending response from the simulator during a live simulation.
June 2000
243
Product Version 6.5
Signalscan Waves User Guide
Signalscan Waves Commands
write
write to vcd string [time [to time ]]
((group | file) identifier-list | variable object-data-list )
identifier-list ::= string [identifier-list ]
object-data-list ::= object [radix ]
['(' option-list ')'] [object-data-list ]
If the group option is used, the objects in the specified groups are written to a VCD file. If the
file option is used, the objects in the specified open simulation files are written to a VCD
file. If the variable option is used, the specified objects are written to a VCD file.
zoom
zoom (in | out | bet[weencursors] [time time | [out]full
| at time pixels-per-time sequence-time-width )
pixels-per-time ::= number
sequence-time-width ::= number
Zoom in, out, between the cursors, full out, or at a specified time in the Waveform Window. If
a set of two times is provided with the zoom between command, then the cursors are set to
these times before the actual zoom between is executed. You must specify the pixels per time
step and the sequence time width as a floating point number when you enter the zoom at
command.
June 2000
244
Product Version 6.5
Signalscan Waves User Guide
C
Hot Keys, Colors, and Buttons
This appendix describes some of the features of the Signalscan Waves GUI and how to
customize them.
Hot Keys
The Signalscan Waves hot keys, or keyboard shortcuts, are listed in Table C-1. If there is
nothing listed in the Windows Systems column, then that hot key is the same for Windows
systems as it is for UNIX systems. “Windows Systems” means Windows 95, Windows 98,
and Windows NT.
Table C-1 Signalscan Waves Hot Keys
Menu Option
UNIX Systems
Windows
Systems
Edit Menu
Create—Group
Control-g
Create—Marker
Control-m
Create—Event
Control-e
Create—Breakpoint
Control-p
Create—Register Page
Control-r
Create—Bus
Control-w
Create—Bookmark
Control-k
Control Menu
Variable Change—Previous
Control-v
Control-F7
Variable Change—Next
Control-n
Control-F8
June 2000
245
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
Table C-1 Signalscan Waves Hot Keys, continued
Menu Option
UNIX Systems
Windows
Systems
View Menu
Zoom—In
Control-i
Zoom—Out
Control-o
Zoom—Between Cursors
Control-z
Zoom—Out Full
Control-f
Center on Cursor1
Control-t
Expand Sequence Time—At Cursor1
Control-x
Control-+
Collapse Sequence Time—At Cursor1
Control-c
Control--
Control-n
Format Menu
Variable Radix—Binary
Control-b
Variable Radix—Octal
Control-l
Variable Radix—Decimal
Control-d
Variable Radix—Signed
Control-s
Variable Radix—Signed Decimal
Control-s
Variable Radix—Hex
Control-h
Variable Radix—ASCII
Control-a
Custom Buttons
You can change which functions are associated with which buttons in each Signalscan Waves
window, either by using the GUI within Signalscan Waves, or by entering a Signalscan Waves
command into a Do-File.
Using the Define Buttons Form
Select Options—Define Buttons . The Define Buttons form is displayed, as shown in
Figure C-1 on page 247:
June 2000
246
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
Figure C-1 Define Buttons Form
To change the function defined for a button:
1. Select a menu option from the Items in Selected Menu list or from the Items in Selected
Submenu list.
2. Click your left mouse button on the current function for the button whose function you
want to change.
The function you click on below the button number changes to the function that is
selected (highlighted) in the menu items lists.
To undo any changes you make to the button definitions, click the Cancel button in the
Define Buttons form. To return to the default button definitions, click the Default
Settings button.
3. To cause your new button definitions to take effect, click the Configure button.
These new settings only affect the type of window where you selected Options—Define
Buttons . That is, if you changed button definitions on a Design Browser Window and then
open a new Design Browser Window, both Design Browser Windows reflect the button
definition change. However, other windows, such as a Waveform Window, do not reflect these
changes.
June 2000
247
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
These changes only remain in effect for the current Signalscan Waves session. To save these
button definitions, select File—Save Do-File , and in the Options for Saving a Do-File form
(after you have specified a name for the Do-File), select Button Bars on the Preferences list,
as shown in Figure C-2. To use these new button definitions in a new Signalscan Waves
session, execute this Do-File (either on the Signalscan command line or by selecting
File—Execute Do-File ). To automatically use your new button definitions every time you run
Signalscan Waves, append this Do-File to your .Signalscanrc file in your home directory.
Figure C-2 Saving Button Definitions
Entering a Signalscan Waves Command
Another way to specify the function of a button is to enter a define buttons command into
your .Signalscanrc file or into another Do-File that you read.
The following example specifies functions for some of the buttons in a Waveform Window:
define buttons waveform \
9 expand \
10 createmarker \
11 register:1 \
June 2000
248
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
Colors
Custom Colors
You can change which colors are used for which Signalscan Waves features.
Select Options—Define Colors . The Define Colors form is displayed, as shown in
Figure C-3:
Figure C-3 Define Colors Form
To change a color definition:
1. Select a feature from the list on the left side of the Define Colors form.
2. Press and drag your left mouse button to move the Red, Green, Blue, Hue, Brightness,
and Saturation sliders.
3. Click the Apply button.
June 2000
249
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
These new color definitions remain in effect only for this Signalscan Waves session. To use
these color definitions again, save them in a Do-File, as described for buttons above, but
select Color on the Preferences list in the Options for Saving a Do-File form.
Colors When Zooming Out
Signal colors in the Waveform Window may appear to change when you zoom out. This is
because as you zoom out, multiple pixel values must be represented by a single pixel.
Table C-2 shows the algorithm used to determine the pixel color used, listed in order from
highest to lowest priority pixel value to use in the conversion. See also “Notes for Table C-2”
on page 251.
Table C-2 Pixel Colors Used When Zooming Out
If Any of the Multiple Pixel Values Then The Pixel Color Used When Zooming Out Is:
Is: (1)
(4)
Undefined
"Waveform: Undefined State" (purple)
Unknown
"Waveform: Unknown State" (red)
Mixed Bus
"Waveform: Mixed Bus" (yellow)
Range (2)(3)
"Strength: Range" (yellow)
Supply Strength (2)
"Strength: Supply" (coral)
Strong Strength (2)
"Strength: Strong" (green)
Pull Strength (2)
"Strength: Pull" (purple)
Large Strength (2)
"Strength: Large" (fuchsia)
Weak Strength (2)
"Strength: Weak" (aqua)
Medium Strength (2)
"Strength: Medium" (blue)
Small Strength (2)
"Strength: Small" (pink)
High Z Strength (2)
"Strength: High Impedence" (orange)
Range (3)
"Strength: Range" (yellow)
Supply Strength
"Strength: Supply" (coral)
Strong Strength
"Strength: Strong" (green)
Pull Strength
"Strength: Pull" (purple)
Large Strength
"Strength: Large" (fuchsia)
June 2000
250
Product Version 6.5
Signalscan Waves User Guide
Hot Keys, Colors, and Buttons
Table C-2 Pixel Colors Used When Zooming Out, continued
If Any of the Multiple Pixel Values Then The Pixel Color Used When Zooming Out Is:
Is: (1)
(4)
Weak Strength
"Strength: Weak" (aqua)
Medium Strength
"Strength: Medium" (blue)
Small Strength
"Strength: Small" (pink)
High Z Strength
"Strength: High Impedence" (orange)
Notes for Table C-2
1. Pixel values are listed in order from the highest to the lowest priority pixel value to use in
the color conversion.
2. These values are used when on a transition: from high to low, low to high, value to
anything, or anything to value. A transition strength has a higher priority than a nontransition strength.
3. Range means there is a value with a range of possible strengths.
4. The colors in parentheses are the default colors. All these colors are user selectable by
selecting Options—Define Colors as described in “Custom Colors” on page 249.
June 2000
251
Product Version 6.5
Signalscan Waves User Guide
Index
Symbols
always 224
analog features 132
analog-to-digital conversion 141
display mode 138
expressions 143
escaping special characers 144
grid 137
measurements 146
Overlay Analog checkbox 133
overlay groups 133
pan 137
horizontal 137
vertical 137
printing 134
units 142
zoom
horizontal 136
rectangular area 136
vertical 135
-analog option 133
analog waveforms 64, 134
analog-to-digital conversion 141
atod function 145
threshold values 142
atod (analog to digital) function 145
$bfm 165, 182, 193, 195
$display 161
$duv 182, 193, 196
$set_property 164, 195, 212
$shm_probe system task 112
$showscopes 196
$tbv_bfm 193, 195
$tbv_duv 193, 196
$tbv_test 193, 196
$tbv_thread 194, 198
$tbv_timeformat 190, 195, 215
$test 165, 182, 193, 196
$thread 182, 194, 198
$thread call 170
$timeformat 195, 215
$trans 162, 183, 194, 203, 206
limitations 163
$trans_begin 163, 175, 183, 194, 207
$trans_display 161, 194, 209
limitations 163
$trans_display_error 194, 210
$trans_end 163, 175, 183, 194, 207
$trans_error 163, 178, 194, 209, 216
$trans_event 163, 194, 208
$trans_tag 183, 195, 211
$trans_tag_get 169, 183, 195, 210
%t 190
+daitr_log_all 217
+daitr_log_error 217
. (period) 221
.do file 133, 137, 138
.signalscanrc file 248
? 221
B
BFM 161, 182
Bus Functional Model
See also TVM
multi-threaded 198
block 165
blocking task 203
bookmark 37
bundles. See buses
bus functional model
See BFM
buses
Bus Template syntax 43
bus templates 43
creating 99
mnemonics 18, 107
New Name button 101
values 18, 107
A
TVM
Transaction Verification Module 161
abort 221, 238
-above 210
add 222
AddToWave button 45
alias 224
June 2000
252
Product Version 6.5
Signalscan Waves User Guide
buttons
customizing Signalscan buttons 246
Design Browser 35, 36
design hierarchy 35
ascending 37
bookmarks 37
descending 36
Design Under Verification. See DUV
$display 161
display 234
Do-Files 25, 133, 137, 138, 145, 218, 248
duplicate 234
DUV 172, 182
Design Under Verification
C
cd 224
center 225
children. See transactions
close 225
closing a Signalscan session 22
collapse 225
colors
customizing Signalscan colors 249
zooming out 250
comments
adding to your design 63
constants
adding to your design 105
continue 225
Control menu
Add Unadded Highlighted
Transactions 178
Show Child Transactions 175
Show Next Error 178
Show Parent Transactions 175
Show Predecessors 168, 173
Show Properties 174, 178
Show Related Transactions 168, 173,
177
Show Successors 168, 173
copy 226
create 226
-current_scope 212
-current_thread 212
-current_trans 212
Cursor1 14, 48, 50, 57, 61
Cursor2 14, 48, 50, 57
cut 227
E
Edit>Create>Bus menu option 141
Edit>Overlay menu option 134
Edit>Stack menu option 134
error property 163
error rollup 179, 209, 216
error transactions 179
error_count variable 179, 216
-event option 112
events 14, 48, 96
ExecDoFile button 220
execute 234
exit 234
exiting 22
exiting Signalscan 22
expand 234
Expand Sequence Time
See Sequence Time
expressions
adding to your design 107
escaping special characters 144
F
File - Print menu option 117
File>Execute Do-File menu option 220
File>Save Do-File menu option 218
find 235
finite state machine. See FSM
force 235
Format menu 61
formatting time
$tbv_timeformat 190, 215
FSM 157
Finite State Machine
D
DAITR prefix 216
database command
-event option 112
define 227
Define Buttons menu option 246
Define Colors menu option 249
delete 233
deselect 233
June 2000
253
Product Version 6.5
Signalscan Waves User Guide
interacting
L
159
label 158, 174
-last_trans 213
list 236
locate 237
log file 216
G
gate-level designs 112
generate 235
GetDeepAll button 45
grid display 137
Group A 95
groups 14, 95
copy in the Names Pane 63
move in the Names Pane 62
select in the Names Pane 62
M
markers 15, 48, 53, 55
creating 15, 53
merge 237
mnemonic mapping 18, 107
mnemonics 18, 107
module
multi-threaded 201
module instances 182
move 237
Multi-List Pane 14, 15, 16, 58, 95, 99, 126
Register Window 21, 128
multi-threaded BFM 198
multi-threaded module 199, 201
multi-threaded TVMs 169
Multivalue Indication 16, 112
H
height bracket 64, 134
help 235
hide 235
hierarchical transactions 159
hierarchy level 36
hot keys 245
I
N
include 236
info 236
initiate 236
insertion marker 61, 62, 64, 95, 98, 100,
134
moving 62
interactive mode 50, 57, 124
interface 174, 182
See also thread 157
address tenure 160
concurrent 160
data tenure 160
interacting 160
invert 236
inverting values 100
Names Pane 60
New Name button 101
not_genetic property type qualifier
192
O
objects
assignment sequence 113
register pages 121
values 127
once 237
open 237
Options>Define Buttons menu option 246
Options>Define Colors menu option 249
Overlay Analog checkbox 133
overlay groups 133
creating 133
Edit>Overlay 134
K
keyboard shortcuts
June 2000
186,
245
254
Product Version 6.5
Signalscan Waves User Guide
R
Edit>Stack 134
printing 134
radix 222
red diamond 179
reference name 198
reference number 198
Register Pages 19, 127
register pages 121, 128
create customized views of your design
Register Window 20, 121, 127, 128
See also register pages
shift time 127
registers
grouping, ungrouping 129
release 240
rename 240
replace 240
reveal 241
P
parents. See transactions
paste 238
plus args 216
predecessor. See transactions
print 238
Printing dialog box (Waveform
Window) 117
properties 158, 164, 174, 175, 183
See also transactions
$set_property 164, 212
assigning 162
assignments 191
multiple 191
deferred 159
definitions 183
See also property def
description 203
error 163
escape option 215
formatting 187, 188
hidden 186
inheritance 192
inherited 159
label 158, 174
names 184
null option 215
removing 214
searching 192
types 185
qualifiers 186
not_genetic 186, 192
See also -property_definitions
Properties Window 186
property def 183
-property_definitions 185, 187, 213
protocols 159
pwd 240
S
save 241
scopes 36
trans_global 179
trans_properties 179
search
events 96
select 241
Sequence Time 16, 112
expanding 17
set 241
shift 241
shift time 127
$shm_probe system task 112
show 242
signals
strengths 47
Signalscan
analog features 132
close, exit, quit 22
configuration 218
UNIX command line 29
signalscan
-analog option 133
Signalscan commands
. (period) 221
? 221
abort 221, 238
add 222
Q
quit 240
quitting Signalscan
June 2000
22
255
Product Version 6.5
Signalscan Waves User Guide
alias 224
always 224
cd 224
center 225
close 225
collapse 225
continue 225
copy 226
create 226
cut 227
define 227
delete 233
deselect 233
display 234
duplicate 234
execute 234
exit 234
expand 234
find 235
force 235
generate 235
help 235
hide 235
include 236
info 236
initiate 236
invert 236
list 236
locate 237
merge 237
move 237
once 237
open 237
paste 238
print 238
pwd 240
quit 240
release 240
rename 240
replace 240
reveal 241
save 241
select 241
set 241
shift 241
show 242
source 242
step 243
stop 243
terminate 243
toplevel 243
June 2000
undo 243
upscope 243
wait 243
write 244
zoom 244
.signalscanrc 25, 218, 220, 248
See also Do-File
simulation time 123
source 242
special characters
escaping in expressions 144
SST2 database 12, 161, 182
stacked signals
Edit>Stack 134
See also overlay groups 133
step 243
stop 243
successor. See transactions
system tasks 192
See also TRST calls
T
tasks
blocking 203
nested task execution 164
system 192
See also TRST calls
terminate 243
test segment 182
test thread 182
thread 160, 174, 182, 198
See also interface 157
management 200
multiple 158, 200
reference name 198
reference number 198
switching 199
test 182
trigger event 202
threshold values
analog-to-digital conversion 142
time format
$tbv_timeformat 190, 215
TimeA 14, 21, 48, 49, 56, 123, 128
toplevel 243
trans tags 183
trans_global scope 179
trans_properties scope 179
trans_tag 170, 173
256
Product Version 6.5
Signalscan Waves User Guide
-trans_tag_link option 162, 168, 170, 173
-trans_type 206
Transaction List Window 177
Transaction Recording System Tasks. See
TRST calls
transaction tag management 210
transaction tags 210, 211
Transaction-Based Verification 157
transactions 157, 174
cause and effect 160, 183
child 159, 175
description 203
disjoint 163
error 179, 209
See also $trans_error and
$trans_display_error
error count 179
See error_count variable and error
rollup 179
errors 163
hierarchical 159
hierarchical name 178
hierarchy 163, 175, 203
hierarchy levels 159
label 158, 174, 203, 205
linking 160, 168, 170
logging 216
model intent 203
name 203
options 162
overlap 158
parent 159, 175
predecessor 160, 168, 169
predecessor/successor
relationships 160, 210
See also transaction tag management
properties 158, 164, 175, 204
See also properties
recording 161, 181, 192
See also TRST calls
red diamond 178, 179
related 176
See also Control menu and Transaction
List Window
relationships 160
rows in Waveform Window 175
stand-alone intent 203
successor 160, 168, 170
tags 160, 168, 183
See also trans tags
See also trans_tag and -trans_tag_link
June 2000
option
test 165
test intent 203
test segment 182
TVM 165
type 203
transactor 157
TRST calls 161, 181
Transaction Recording System Tasks
$bfm 165, 182, 193
$duv 182, 193
$set_property 164, 195
$tbv_timeformat 195
$test 165, 182, 193
$thread 182, 194
$thread call 170
$trans 162, 183, 194
$trans_begin 163, 183, 194
$trans_display 161, 194
$trans_display_error 194
$trans_end 163, 183, 194
$trans_error 163, 194
$trans_event 163, 194
$trans_tag 183, 195
$trans_tag_get 169, 183, 195
module instance 193
properties 195, 212
thread 194
trans_tag 170
transaction 194, 203
transaction tag 194
transaction tag management 210
TVM 157, 160, 174, 182
$bfm 165
declaration 165
multi-threaded 169
TVM transaction 165, 182
U
undo 243
upscope 243
V
variable names
special characters 144
variables
AddToWave button 45
257
Product Version 6.5
Signalscan Waves User Guide
copy in the Names Pane 63
display scale 139
GetDeepAll button 45
inverted 127
jump to value change 124
move in the Names Pane 62
select in the Names Pane 62
shift time 127
values 47
vectors 127
VCD files 12
vectors
values 127
Verilog log file 216
Verilog plus arguments 216
View>Analog Display Mode menu 138
View>Grid menu option 137
W
wait 243
Waveform Window 47
pink dots. See Multivalue Indication
transaction rows 175
zooming 54
waveforms
analog 47, 64, 134
digital 47
Windows 95 33
Windows 98 33
Windows NT 33
write 244
Z
zoom 244
zooming 54
June 2000
258
Product Version 6.5