VirSim User Guide Version 4.
VirSim User Guide Version 4.3-2003.01, January 2003 Comments? E-mail your comments about Synopsys documentation to doc@synopsys.
Copyright Notice and Proprietary Information Copyright 2003 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement.
Contents 1. VirSim Overview Operation Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Post Simulation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Interactive Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Advantages of VirSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 Key Terms and Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Drag-and-drop Operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 Linking Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21 Accelerator Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23 2. Starting VirSim VCS VirSim GUI Startup Procedures . . . . . . . . . . . . . . . . . . . . . . . 2-2 Opening VirSim in Interactive Mode . . . . . . . . . . . . . . . . . . . . .
Reopening History Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-25 Saving and Loading a Configuration File. . . . . . . . . . . . . . . . . . . . . 2-26 Saving a Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-27 Loading a Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28 Configuration File Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29 Nested Configuration Files. . . . . . . . . . . . . . . . . . . . . .
File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 3-14 3-14 3-15 4. Waveform Window Introducing the Waveform Window . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Signal Name Pane . . . . . . . . . .
Finding the Next or Previous Edge on Selected Signals . . . . . . 4-17 Searching a Signal (Vector or Scalar) for a Specified Value . . . 4-17 Expanding Time to Display Exact Order of Events Using Delta Cycles 4-19 Delta Cycle Recording for Verilog. . . . . . . . . . . . . . . . . . . . . 4-19 Delta Cycle Recording for VHDL . . . . . . . . . . . . . . . . . . . . . 4-20 Expand and Collapse Times . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 View Delta Cycles . . . . . . . . . . . . . . . . . . .
Controlling Paper Size and Orientation . . . . . . . . . . . . . . . . Specifying a Printer Name . . . . . . . . . . . . . . . . . . . . . . . . . . Printing to Postscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adjusting the Signal Name Printout . . . . . . . . . . . . . . . . . . . 4-40 4-41 4-41 4-42 Toolbar and Menu Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43 Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Debug Behavior Using Value Annotation . . . . . . . . . . . . . . . . . . . . 5-9 View Signal Values for All Signals . . . . . . . . . . . . . . . . . . . . . . . 5-9 View Signal Values for One Signal. . . . . . . . . . . . . . . . . . . . . . . 5-10 Follow and Control Source Execution Using Stepping and Breakpoints 5-11 Follow Source Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-11 Control Source Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Before Using the Logic Browser . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Getting Started. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Graphic Objects and Value Text . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 Viewing Graphic Objects . . . . . . .
Menu Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . File Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edit Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 6-29 6-30 6-30 6-31 7.
Graphics Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-18 Display Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-19 View Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-20 8. Interactive Window Introducing the Interactive Window . . . . . . . . . . . . . . . . . . . . . . . . 8-2 History Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Command Prompt . . . . . . . . . . .
Controlling Simulation from Buttons . . . . . . . . . . . . . . . . . . . . . . . . 8-16 Default Buttons Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 Creating User-Defined Buttons . . . . . . . . . . . . . . . . . . . . . . . . . 8-17 Defining a Button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Selection Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-19 Toolbar and Menu Reference . . . . . . . . . . . . . . . .
Library Folder View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-15 Library View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18 Tear Off Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-20 Output Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-20 Toolbar and Menu Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-22 Toolbar . . . . . . . . . . . .
Using the Options Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Options Dialog Buttons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Analyze Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Elaborate Options . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Simulate Options . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting Verilog Compile Options. . . . . . . . . . . . . . . . . . . . . . Setting Verilog Run Options . . . .
12. Event Origin Before Using Event Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Where You Can Use Event Origin . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 How to Use Event Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Display the Event Origin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-5 Choose from Multiple Drivers for an Event . . . . . . . . . . . . . . . . . . . 12-6 Event Origin Classifications . . . .
Deleting a Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 Editing a Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 Setting a Marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-6 15. Expressions Expressions Dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-2 Entering Signal Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Warning if Configuration Is Modified . . . . . . . . . . . . . . . . . . . . . 16-7 Signals Loaded/Registered with Simulator . . . . . . . . . . . . . . . . 16-7 User Defined Unique Event Colors . . . . . . . . . . . . . . . . . . . . . . 16-8 Waveform Window Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-8 Source Window Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-10 Hierarchy Window Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . .
System Tasks for Capturing Delta Cycle Information. . . . . . . . . 17-20 System Tasks for Capturing Unique Event Information . . . . . . . 17-21 Simulator Run-Time Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-24 VCD+ Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-27 Advantages of Separating Simulation from Analysis . . . . . . . . . 17-28 Conceptual Example of Using Verilog VCD+ System Tasks . . . 17-28 VCD+ On/Off PLI Rules . . . . . . .
xxii
About this Manual FIX ME! This manual explains the use of VirSim for running and debugging active simulations and historical records of simulations and where appropriate, provides conceptual information to help you understand the application of VirSim features.
Audience The VirSim User Guide provides product description, tutorial, and reference information to help you use the VirSim simulation debug environment. The information in this document serves as a primary reference source and procedural guide for VirSim users. This guide assumes that the user has the following background. • Working knowledge of the OSF/Motif™.
Platforms VirSim is available for both UNIX and Windows. For Unix, the X Resources file defines specific settings for system behavior. For Windows, settings and system behavior are controlled through the Register file. For information on VirSim setup, see Chapter 16, VirSim Setup. Other Sources of Information For more information about Virsim and other Synopsys products, refer to the following sections.
Verilog Two books are available from Open Verilog International, 15466 Los Gatos Blvd., Suite 109-071, Los Gatos, CA 95032 408-353-8899: • The Verilog HDL Language Reference Manual • Programming Language Interface (PLI) • The Verilog-XL Reference Manual Commercial book available from Automata Publishing Company, 1072 S.
SOLV-IT! Online Help SOLV-IT! is the Synopsys electronic knowledge base. It contains information about Synopsys and its tools and is updated daily. Access SOLV-IT! through e-mail or through the World Wide Web (WWW). For more information about SOLV-IT!, send e-mail to solvitfb@synopsys.com or view the Synopsys Web page at http://www.synopsys.
About this Manual xxviii
1 VirSim Overview 1 VirSim is a modular debug system designed to run in an OSF/Motif™ or Windows NT environment. VirSim can simultaneously post process multiple data files (VCD+, EPIC, etc.) or run an interactive session using a supported simulator. You can view the results of simulations and the source files used to generate the simulations in VirSim windows. Debug sessions can be saved in a configuration file, allowing the session to be resumed.
Operation Modes VirSim presents simulation history in two user-friendly operation modes: • Post Simulation Mode • Interactive Mode Post Simulation Mode VirSim de-couples the debug activity from event driven simulation by using VCD+ history files as its input. In VirSim, we call this post simulation. In post simulation, VirSim uses a Verilog or VHDL simulator in batch mode to generate a VCD+ history file containing the simulation results.
Interactive Mode VirSim runs the simulator and displays simulation data in real-time in VirSim debug windows. You can start the simulation and synchronize debug operations from the Interactive Window. Data is saved to a VCD+ file for later processing. VirSim can run the following simulators interactively: VerilogXL or VCS, and Scirocco. While in interactive mode, VirSim also can analyze any number of history files from previous runs. This allows for easy comparison with previous results.
• A Logic Browser to clearly present design connectivity: structural and behavioral, fanins and fanouts, values and delay information included. • A Source Window in which to view, execute or debug the complete source. • Data from different runs or designs can be viewed in the same window. • Windows can be synchronized to the same or different times. • Execution can be backward or forward in time. • View stand-alone compiled sources to debug Verilog source, even before your fist simulation.
Key Terms and Concepts The VirSim User Guide uses the following terms and concepts in feature descriptions and procedures. Click Left, Click Middle, and Click Right Procedures in this manual use the terms click left, click middle, and click right to refer to the use of one of the mouse buttons to select or operate on an object. Position the cursor on the object and click the appropriate mouse button.
Environment OSF/Motif™ and Windows NT™ You can run VirSim in either the OSF/Motif™ environment or the Microsoft Windows NT™ operating system. Most screen examples in this manual show VirSim screens for Windows NT. Where features and screen format differ significantly, the manual also includes the OSF/Motif™ format. This manual assumes you have a working knowledge of OSF/Motif or Windows NT.
Verilog Language VirSim uses standard Verilog terms including the language, keywords, syntax, system tasks, and PLI calls. VHDL Language VirSim uses standard VHDL terms including the language, keywords, syntax, etc. Window VirSim uses windows to display data and organize features for specific VirSim applications. For example, the Source Window displays source code and provides features for debugging source code.
Interactive Window The Interactive Window is used to control a simulator and display real time information from the simulator (see Figure 1-1, Sample Interactive Window).
Hierarchy Browser The Hierarchy Browser displays the design as modules that are color coded to distinguish the different types of modules in the design (see Figure 1-2, Sample Hierarchy Browser. Navigate up and down the design by pointing and clicking on modules and defining roots in the hierarchy tree. When you select a scope, the Signal Select pane can filter and list the internal signals for that scope.
Figure 1-2 VirSim Overview 1-10 Sample Hierarchy Browser
Waveform Window The Waveform Window displays waveforms for simulation output. Cursors, markers, and expressions let you designate and trace events in simulation time (see Figure 1-3, Sample Waveform Window). Dialogs let you define expressions, buses, signal groups, and breakpoint groups.
Register Window The Register Window allows you to create custom views of signals with descriptive text and graphics (see Figure 1-4, Sample Register Window). You can create views by using the drag-and-drop, cut and paste, and editing tools.
Source Window The Source Window displays the code for the selected source instance or groups of instances (see Figure 1-5, Sample Source Window). You may display values of all signals, set and clear breakpoints in this window, step through lines, or run to a breakpoint.
Logic Browser (Verilog only) The Logic Browser displays connectivity information (see Figure 1-6, Sample Logic Browser). By selecting a module port or primitive terminal, you can trace net connectivity up and down the hierarchy.
Project Window The Project Window is used to analyze, elaborate, and simulate VHDL or mixed VHDL and Verilog projects.
VirSim Navigation The following section describes features used to navigate in VirSim: • Using Mouse Buttons • Selecting Signals • Drag-and-drop Operation • Linking Windows • Accelerator Keys Using Mouse Buttons The VirSim system can be configured for either a two-button or threebutton mouse. Depending on the type of mouse, the buttons work differently for some operations.
• on a dialog to select menu options. • in the Waveform pane to set the Cursor 1 (C1) position. • in the Register Window to select and manipulate graphics tools. Click the middle mouse button: • on a signal or scope to drag-and-drop, move, or copy it. • in the Waveform pane to set the Cursor 2 (C2) position. Click the right mouse button: • on a valid object to invoke a context sensitive menu. • in the timescale area of the Waveform pane to Zoom Cursors.
Selecting Signals In the Signal Select pane of the Hierarchy Browser and the Signal Name Pane of the Waveform Window, it is often desirable to select a range of signals when dragging or editing. VirSim allows this by using a combination of the left-mouse button and right-mouse buttons with the Shift and Control (Ctrl) keys on the keyboard. To Do This Effect Select individual signal Click left on signal Deselects all previously selected signals. Selects and highlights the new signal.
Drag-and-drop Operation Drag-and-drop is used to move or copy scopes, signals, and text (see Figure 1-8, Drag-and-drop Operation). With a 3-button mouse, hold down the middle mouse button to perform drag-and-drop. Use the following operations to drag-and-drop objects within the same window (move is the default): To move objects within the same window Use drag-and-drop or use Shift+drag-and-drop. To copy objects within the same window Use Ctrl+drag-and-drop.
Figure 1-8 Drag-and-drop Operation Move cursor to object. Press mouse button(s) Drag object Release mouse button(s) Moving an Array that is Too Large If during a drag and drop or cut and paste operation the number of elements in an array or radix exceeds the resource value numberOfElementsAllowed default=512, the Sub Range Dialog is automatically opened. The dialog is used to define an object having fewer elements or to cancel the drop operation.
Linking Windows In linked windows, operations initiated in one window can affect views in other windows. Some VirSim windows (Waveform Window, Source Window, Logic Browser, and Register Window) must be linked in order to synchronize operations, such as breakpoint searches, value changes, and change times. Changing the time in one window automatically changes the view in the other linked windows to that time. The linked windows display a common link letter in the upperright corner of the window.
Figure 1-9 Linking Window To link windows: 1. Click left on the Link icon to open a link menu. 2. Choose the link letter of the window to which you want to create a link.
Accelerator Keys By using Accelerator keys, you can perform many menu bar commands quickly from the keyboard. Table 1-1, Common Accelerator Keys, shows commands and accelerator keys for both UNIX and NT Windows environments,and the VirSim windows in which the commands are used. To perform a command, press the accelerator keys indicated in the table. The Common Accelerator Keys table uses the following codes to identify VirSim windows associated with the accelerator keys.
Table 1-1 Common Accelerator Keys (Continued) Operation Accelerator Keys HB WW SW LB RW IW Move Cursor to Beginning of Line Ctrl+B X X X X X X Group Ctrl+Shift+G Views Ctrl+Shift+V Marker Ctrl+Shift+M X Expression Ctrl+Shift+E X X Radix Ctrl+R X X Zoom In Ctrl+F X Zoom Out Ctrl+G X Next Edge n X Previous Edge p X New Hierarchy Browser Ctrl+Shift+H X X X X X Reopen Ctrl+Alt+R X X X X X Breakpoints Ctrl+Shift+R New Waveform Window Ctrl+Shift+W X X
Table 1-1 Common Accelerator Keys (Continued) Operation Accelerator Keys HB WW SW LB RW IW Undo Ctrl+Z Stop Simulator Ctrl+C X X X X X X Finish Simulation Ctrl+D X X X X X X Exit VirSim Ctrl+X X X X X X X Invoke Simulator Ctrl+Shift+I Instance Groups Ctrl+Shift+I X Clear Instance Breaks Ctrl+Shift+B X Clear Group Breaks Ctrl+Shift+G X Load Sources Ctrl+Shift+A Move up one signal Up Arrow X Move down one signal Down Arrow X Move up one page of signals Sh
VirSim Overview 1-26
2 Starting VirSim 1 This chapter describes procedures required to start and run VirSim. There are two ways to start VirSim: entering multiple command line options that specify all the files that you need, or entering only the required options and using the interface to specify the remaining files.
VCS VirSim GUI Startup Procedures Opening VirSim in Interactive Mode Open the VirSim GUI from the command line using switches to specify how VirSim opens, for example: VCS -RI -f source.f +cfgfile+default.cfg optional .cfg file provides the VCS VirSim GUI with a previously saved configuration. other VirSim or VCS simulator options. .f file includes source file list starts VirSim in interactive mode -RI Run Interactive.
+cfgfile+ (Optional.) Specifies using a configuration file that you recorded in a previous session with VirSim. A configuration file specifies what windows to open and what groups, expressions, etc. to use. You can also use the Load Configuration dialog to specify a configuration file. See Saving and Loading a Configuration File. +vslogfile+ Enables logging of VirSim commands. If you do not specify a filename, the log is automatically saved to your working directory as VirSim.log.
Simulating the Design Run the simulation using run-time options to modify how VCS writes history files (.vpd). See Simulator Run-Time Options in Chapter 1, VCD+ (vpd) File Generation for a list of run-time switches. Compile Options for Creating a VPD File from VCS -I Instructs VCS to automatically include the +cli (command line interface), -P virsims.tab (default VirSim PLI table), and -lm (math library) options. The virsims.tab file defines the VCD+ system tasks, such as $vcdpluson.
Starting VirSim in Post-Processing Mode Open the VirSim GUI from the command line using VCS compile time options to specify how VirSim opens, for example: VCS -RPP -f run.f +vpdfile+vcdplus.vpd +cfgfile+default.cfg optional .cfg file provides the VCS VirSim GUI with a previously saved configuration. .vpd file includes simulation results .f file includes source file list starts VirSim in post-processing mode This opens the design in VirSim using a pre-saved environment configuration (.cfg file).
Options for Starting VirSim in Post Processing Mode -RPP Run Post-Processing mode. Starts VirSim for post-process a VCD+ file. Requires a VCD+ file created by the $vcdpluson system task. You can specify the name of the VCD+ file with the +vpdfile option. In post-processing mode VirSim will need to read your source code to use the Logic Browser, so include the source code on the command line with this option. +vcdfile+ Specifies the VCD file you want to use for post-processing.
Scirocco VirSim GUI Startup Procedures When starting the Scirocco VirSim GUI, the following procedures must be performed in the following order: 1. Compile the design. 1. Elaborate the design. 2. Run the simulation. 3. Start the Scirocco VirSim GUI from the command line. 4. Open history files or start a Scirocco interactive simulation. 5. Load configuration files (optional). Starting Scirocco VirSim Example The Scirocco VirSim GUI command line specifies options used to run the Scirocco VirSim GUI.
Figure 2-1 Scirocco VirSim GUI Command Line Simulation Environment 1. History files (.vpd) are produced from the simulation of source files (.vhd or .v). VHDL (.vhd) Verilog (.v) or Source files Compile virsim Elaborate Simulate .vpd File +vpdfile+vcdplus.vpd +cfgfile+default.cfg VirSim Debug Environment 2. VirSim command line can specify history files (.vpd), and configuration files (.cfg). Scirocco VirSim GUI Windows - HB - PW - WW - RW - SW 3. .vpd file includes simulation results. 4. .
Example 2: Start an interactive session and load a .cfg configuration file. virsim +simtype+Scirocco +cfgfile+default.cfg Example 3: Start interactive session, load a .cfg configuration file, and supply simargs. virsim +simtype+Scirocco +cfgfile+default.cfg +simargs+"-time ns" Scirocco VirSim Command Line Arguments The command line arguments are described as follows. +vpdfile++start+
Note: If the default simulator type is not correct, you must also use the +simtype command to select the simulator type. +simtype+ The +simtype+ command is used to select the simulator type. When +simtype is entered at the command line, the simulator starts automatically and the Interactive Window appears. This argument may be used in conjunction with +sim and +simargs to override default simulator names and arguments. The Invocation Dialog Type menu lists the legal simulator types.
Standalone VirSim GUI Startup Procedures When starting the standalone VirSim GUI, the following procedures must be performed in the following order: 1. Install and setup the environment (see Install Notes). 2. Build the simulator. 3. Run the simulation. 4. Start VirSim from the command line. 5. Open history files or start interactive simulation. 6. Load configuration files (optional). Starting Standalone VirSim Example The standalone VirSim command line specifies options used to run VirSim.
Figure 2-2 Command Line Simulation Environment 1. History files (.vpd) are produced from the simulation of source files (.v .vhd). Verilog (.v) or VHDL (.vhd) Source files virsim -f run.f Compiler or Simulator Analyzer PLI +vpdfile+vcdplus.vpd .vpd File +cfgfile+default.cfg VirSim Debug Environment 2. VirSim command line can specify source file (.v or .f), history files (.vpd), configuration files (.cfg), and simulator. VirSim Windows Compiler - HB - LB - WW - RW - SW 3. .
Example 1: Load a .vpd simulation file from time 700 to time 1000 without source but with a .cfg configuration file in post simulation mode. virsim +vpdfile+vcdplus.vpd+start+700+end+1000 +cfgfile+default.cfg Example 2: Start interactive session and load a .cfg configuration file and the verilog source files listed in run.f. virsim +sim+/usr/local/simv +cfgfile+default.cfg -f run.f Standalone VirSim Command Line Arguments The command line arguments are described as follows.
+vcdfile+ The +vcdfile+ command automatically translates the VCS file to vpd format, then loads it immediately on startup. If Verilog source files are supplied on the command line, it is assumed that these source files match the VCD file. You can load multiple files by repeating the +vcdfile+ command for each file. +vpdfile++start++end+ The +vpdfile+ command automatically loads a VCD+ history file on startup.
+simtype+ The +simtype+ command is used to select the simulator type. When +simtype is entered at the command line, the simulator starts automatically and the Interactive Window appears. This argument may be used in conjunction with +sim and +simargs to override default simulator names and arguments. The Invocation Dialog Type menu lists the legal simulator types.
+vslogfile+ Enables logging of VirSim commands to the specified file. If you do not specify a filename, the log is automatically saved to your working directory as VirSim.log. Opening and Closing History Files VirSim provides dialogs for opening and closing history files. You must open a history file or start an interactive session before you can load a configuration.
File Designator: A two-character identifier that differentiates between open files in VirSim. The file designator allows you to differentiate signals with the same hierarchical name but from different simulation history files. Opening the Open File Dialog The Open File Dialog is used to open and re-open history files. To open this dialog, choose Open from the File menu in the menu bar or press the Ctrl+O accelerator keys.
Figure 2-3 Open File Dialog Open Files Displays a list of files that are currently open (includes the twocharacter file designator). If necessary, use the vertical scroll bar to view all files, or use the horizontal scroll bar to read the full filename.
StartTime/End Time Allows loading a time range from within a file. The File Range fields list the file’s time range. The Load Range fields allow you to specify the range that you want to load. Select the button next to the fields that you want to specify. Type Allows selection of the type of file to open from an option menu. Note: When you open a VCD file, it is first translated to a VCD+ file, which then is opened.
If the Source Window or Logic Browser requires sources, the Load Sources Dialog will open automatically to request sources. You must then load the appropriate sources in order to continue. Include Delta Cycle Data (VCD translation only) Indicates whether or not to filter out delta cycle information during translation of .vcd to .vpd. Filter (Motif Only) Applies the filter specification entered in the Filter field.
Figure 2-4 Open File Dialog, Filter Example Directories Initially, shows the current directory (highlighted) and its associated files in the Files list. Click left on a different directory to search for other files or to go up a directory level. Files List of files that match the Filter specification. To open a file: Double-click left on a filename in the Files list, or click left on a filename to select the file, then click left on Ok or Apply. Selection The full filename of the file to open.
Ok Opens the file selected in the Files list; this Open File Dialog closes after you click left on Ok. Apply Opens the file selected in the Files list. The selected file appears in the Open Files list in the Open File Dialog. Cancel Closes the Open File Dialog. Help Opens user information about the Open File Dialog. Opening a Single History File To open only a single history file at a time: • Select the file and click left on Ok.
Opening Multiple History Files To open multiple history files: • Click left on Apply after selecting each file. A unique file designator is automatically assigned to each file. Note: Once a file is opened, it is not possible to change the Designator. If you are using a configuration file, make sure that the designators created match the designators in the configuration file. The Use Source button is enabled by default. Closing History Files The Close File Dialog is used to close history files.
Figure 2-5 Close File Dialog Close File Displays a list of files that are currently open (including the twocharacter file designator). If desired, use the vertical scroll bar to view all files or use the horizontal scroll bar to read the full filename. To close a file: Click left on a filename in the Close File list, then click left on Ok or on Apply. This closes the file, frees all memory used for the file, and removes all signals and scopes from all VirSim windows.
Apply Closes the file selected in the Close File list; the Close File Dialog remains displayed after you click Apply. Cancel Closes the Close File Dialog. Help Opens user information specific to the Close File Dialog. Reopening History Files The File menu includes a Reopen command that reopens all VCD, VCD+ or EPIC history files that have been changed or updated since the data file was last loaded by VirSim. This command is useful if you debug and resimulate history files but do not exit from VirSim.
Saving and Loading a Configuration File The following section provides guidelines for saving and loading a configuration file. Configuration files are ASCII files that contain information that allows VirSim to start in a predefined configuration. The configuration file can include information, such as open windows, signals, instances, expressions, and breakpoints. When a configuration file is saved, it includes links to all active design files along with their attributes.
Saving a Configuration File To save a configuration file from a VirSim window: 1. In the window menu bar, click left on File. 2. Choose Save Configuration to open the Save Configuration dialog (see Figure 2-6, Save Configuration).
Loading a Configuration File 1. Click left on File in the menu bar and choose Load Configuration to open the Load File Dialog (see Figure 2-7, Load Configuration Dialog). 2. Use the Filter field and Directories field to find the desired file. 3. Click left on the file in the Files field and click left on Ok. VirSim restores the configuration defined in the configuration file.
Configuration File Format The configuration file can be created or edited with an ASCII text editor independent of VirSim. However, when working with configuration files in an editor, maintain the following order of definitions: 1. Version 2. Design Statements 3. Language Definition (Verilog or VHDL) 4. Buses 5. Expressions 6. Expression Breakpoint Groups 7. Links 8. Markers 9. Radices 10. Register Window Views 11. Waveform Window Groups 12. Source Window Instance Groups 13. Breakpoints 14.
Nested Configuration Files To nest second level configuration files inside a top level configuration file, use an include command as follows: include “~/abc/def/secondlevel.cfg” You can use as many include statements as you like, but all definitions included within both the main configuration file and all included configuration files must follow the order defined in “Configuration File Format” on page 1-29.
Note: Make sure that the configuration files are self contained. For example, if you define signal groups in the incremental configuration file, everything in the signal group must also exist (i.e., expression, radices, etc.). Note: All parts of an incremental configuration file (signal groups, radices, expressions, etc.) must be unique to be loaded. If an element in the incremental configuration file has the same name as a like thing in the existing configuration, that element is not modified.
Figure 2-8 Load Sources Dialog To use the Load Sources Dialog: 1. Choose Load Sources from the File menu to open the dialog. 2. Type the Verilog sources in the Source Arguments field or the name of a file listing all source (as shown above). 3. Click left on Ok. The Compilation Log lists the load status of each source as it is compiled. If the sources are successfully compiled, the following message displays: Compilation Completed Successfully. Otherwise, error messages are displayed in the dialog.
Compiled sources are listed in the Select icon list with a Z1 designator. To view stand-alone sources, click the Select Design icon in the Hierarchy Browser and select Z1 Verilog Sources. 4. To close the Load Sources Dialog, click left on Done.
Starting VirSim 2-34
3 Hierarchy Browser 1 The Hierarchy Browser is used to locate and select scopes, signals, and ports (as well as variables, generics and constants for VHDL) for use in other windows. If you do not use a configuration file, VirSim opens at the Hierarchy Browser. The Hierarchy Browser works on any one of a number of simultaneously open design hierarchies. You may also open multiple Hierarchy Browser windows.
Introducing the Hierarchy Browser Figure 3-1 Sample Hierarchy Browser The Hierarchy Pane is used to navigate within the design hierarchy. You can expand and collapse the hierarchy, view single or multiple levels, create bookmarks, and drag scopes from this pane to other windows or dialogs. The Signals Tab displays the signals, ports, variables, generics and constants for scopes selected in the Hierarchy Pane.
Selecting a Design To Do This Open a history file from the command line. Specify the VCD file you want to use on the command line when you start VirSim using +vcdfile+filename. See Starting VirSim in Chapter 1. Open a history file from a configuration file. When you open a configuration file (either from the command line or using the Load Configuration command), if no other design is specified, the designs saved in the configuration file are opened automatically.
Choosing View Options You can view the hierarchy in either Outline or Block Views. For both views, you can choose to view in One-Level or Multi-Level mode. In Block View scopes are identified by labeled buttons. In Outline View scopes are defined by icons. Click the Display menu to select view options. See Figure 3-2, Outline View in One-Level and Multi-Level Modes and Figure 3-3, Block View in One-Level and Multi-Level Modes.
Figure 3-2 Outline View in One-Level and Multi-Level Modes Outline View/One Level Figure 3-3 Outline View/Multi Level Block View in One-Level and Multi-Level Modes Block View/One Level Block View/Multi Level Hierarchy Browser 3-5
Navigating the Hierarchy To Do This View all top-level scopes in the design at once. Click left on the Root/Bookmark icon and choose . Traverse the hierarchy using and arrows. (Arrow hierarchy controls appear in single-level block and outline view and multi-level block view.) Click left on the up or down arrows in the parent scope. An up arrow indicates additional hierarchy above the scope. A down arrow indicates additional hierarchy below the scope.
Searching for Scopes and Signals The Search Tab is used to find all scopes or signals that match a search pattern and exist in a selected section of the hierarchy. The search results are a function of the currently selected scope, the search toggle buttons (scopes, signals), the search range, and the search pattern. Available ranges are All, Selected, and Children: Range Description All All scopes or signals in the design hierarchy that match the filter.
Filtering Signals Displayed on the Signals Tab The Signals Tab filter controls can be used to find all signals that match a search pattern and exist in a selected section of the hierarchy. 1. Click left on the Constants, Generics, Variables, Signals, or Ports toggle buttons (only Signals and Ports for Verilog). 2. Enter a text string in the text Entry field to narrow the range. When used alone, the wildcard (*) displays all signals or ports for the selected range. 3. Click left on a signal to select it.
Adding Signals to a Group The Add button adds selected signals to an existing signal group. The Signal Group is selected via the Signal Group menu (see Figure 3-4, Signal Group Menu). Signal groups are used to display related signals in the Waveform Window. When you click left on the Signal Group button, the menu of existing signal groups opens. If there are no available groups, the Group button displays AutoGroup0 (a predefined signal group).
Toolbar and Menu Reference Toolbar You can toggle display of toolbar icons from the View menu. Select Design Icon Root/Bookmark Icon Update Icon The Design icon is used to select which design hierarchy to display in the Hierarchy Browser. In post-simulation or interactive mode, the Design icon lists all open history files (VCD+,VCD, or EPIC) and compiled sources. VCD+ and VCD history files are labeled V1, V2, V3, etc. EPIC files are labeled E1, E2, E3, etc. Compiled sources are labeled Z1.
Context Sensitive Menus Hierarchy Pane Context Sensitive Menu Figure 3-5 Hierarchy Pane CSM Expand Tree Expands the hierarchy tree. Collapse Tree Collapse the hierarchy tree. Create Bookmark Defines the selected item as a bookmark. To return to the bookmark, click the Root/Bookmark icon and select the bookmark from the displayed list. Go To Top Return to the top of the hierarchy.
Signal Pane Context-Sensitive Menu Figure 3-6 Signal Pane CSM Expand Variable Expands the selected variable to display its individual elements. Select All Selects all signals in the Signal Pane Search Pane Context-Sensitive Menu Figure 3-7 Search Pane CSM Create Bookmark Creates a bookmark for a Hierarchy view. The bookmark is added to the Root/Bookmark Icon menu. Remove Bookmark Removes a defined bookmark.
Menu Bar Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position. File Menu Open - Opens the file browser to load a VCD+, VCD, or EPIC history file. Reopen - Reopens all history files that have changed since they were last loaded. Close - Closes an open history file. Load Sources - Compiles Verilog source files.
Edit Menu Copy - Copies the selection to the Clipboard. Select All (Signal Pane) - Selects all signals in the Signal Pane Select All (Search Pane) - Selects all signals or scopes in the Search Pane. Display Menu One Level - Displays a One Level view of the scope hierarchy. Multi-Level - Displays a Multi-level view of the scope hierarchy. Outline View - Displays an outline view of the hierarchy. See “Choosing View Options” on page 1-4. Block View - Displays a block view of the hierarchy.
View Menu View Menu settings are saved when you close VirSim. Hierarchy - Toggles display of the Hierarchy tools (Design, Root/Bookmark, and Update icons). Window Icons - Toggles display of the Window icons.
Hierarchy Browser 3-16
4 Waveform Window 1 The Waveform Window is used to analyze signal data over time and to find causes for transitions. Waveform Window features let you select signals to view and navigate the time domain in both simple and complex ways using tools like Delta Cycle, Markers, Event Origin, and Breakpoints.
Introducing the Waveform Window Refer to Figure 4-1, Sample Waveform Window. The Waveform Window has three major panes: • The Signal Name Pane displays the names of signals and expressions that are in the currently selected group. By default, the Signal Name Pane only displays the last component of the signal’s hierarchical name. To see the signal’s full hierarchy name, scroll or enlarge the pane or point at the signal to see the information in the Status Bar.
• The File Designator Pane displays a two-character identifier associated with each open history file. The window also has the following standard areas: • At the top there is a menu bar and a toolbar. • At the bottom there is a status bar.
Signal Name Pane The Signal Name Pane displays the names of signals and expressions that are in the currently selected group (see Using Multiple Signal Groups to View Relevant Data on page 4-11). The Signal Name Pane displays the last component of the signal’s hierarchical name. To see the signal’s full hierarchy name scroll to the left, enlarge the pane, or point at the signal to see the full hierarchical name in the Status Bar.
To change signal radices select a signal or group of signals and right click on the signal value to view the Radix context sensitive menu. Click on a radix enumeration to select it. Select Radix from the Edit menu to create a user-defined radix (see Chapter 11, Radices).
Table 4-2 Default Radices for VHDL (Continued) Type of Signal, Variable, Constant or Generic Default Change Formats Real SIGNED no Real vector REAL_VECTOR no Record‘ RECORD no Std logic STD_LOGIC no Std logic vector hexadecimal yes Time NS yes For information on user-defined radices, see Radix Dialog in Chapter 11, Radices. Waveform Pane The Waveform Pane displays the waveforms of the signals and expressions listed in the Signal Name Pane.
Cursor Pane The Cursor Pane displays waveform and delta values for cursor types C1, C2, and Icur (Current Time of Simulator). The Icur cursor is displayed only when the Waveform Window is linked to SIM in Interactive mode. The Delta value displays the difference in time between the two cursor values. To choose the cursor types, select them from the two pull down menus in the Cursor Pane. Figure 4-2, Displaying Cursor Values, shows an example of cursor values displayed for cursors C1 and C2.
Status Bar The status bar, located at the bottom of the Waveform Window, displays the information listed in Table 4-3, Status Bar Information Display, according to the position of the pointer.
Selecting and Viewing Signals Adding and Reordering Signals Adding Signals to a Signal Group You can add signals to a signal group in one of four ways: • Drag-and-drop signals from another window to the Waveform Window by dropping them in either of the Signal Name, Signal Value, or Waveform Panes where you want them inserted. When multiple signals are dragged in a single drag operation, they are added to the group in the order in which they were selected.
Reordering Signals in a Signal Group To reorder signals in the group, perform the following in the Signal Name Pane: • Drag-and-drop the signal name. • Cut or copy and then paste using the Waveform Window Edit Menu. Editing Signal Names and Bit Ranges You can edit or change a signal name as long as the new name is a valid signal. If you select a vector, you can modify the part select as long as the bits you enter are valid.
2. In the Signal Group Pane CSM, select Edit... The Edit Signal dialog appears. Figure 4-4 Edit Signal Dialog 3. Edit the signal name or bit range as appropriate, and click OK. The signal name and/or bit range of the selected signal changes in the Signal Name pane. Using Multiple Signal Groups to View Relevant Data A signal group is an arbitrary set of signals and expressions you group together. Once created, the group is global to all Waveform Windows.
Manually Creating a Signal Group 1. Click left on Edit in the menu bar and choose Groups or select the Group icon and choose New Group... to open the Groups Dialog, See Figure 4-5, Sample Groups Dialog. 2. Click left in the Name field and type a group name. 3. Click left on the Add button, or press Enter, to add the name entered to the Groups list and enable the group for use. 4. Click left on the Done button to close the Groups Dialog.
Automatically Creating AutoGroups An AutoGroup is a group with a system generated name. If you dragand-drop a scope or signal into the Signal Name Pane without first selecting a group, VirSim automatically creates an AutoGroup. The name assigned is AutoGroupN where N is a sequentially assigned number starting with 0. Switching Between Multiple Signal Groups To switch between multiple signal groups, click the Group icon. This opens a menu containing all defined signal groups.
Zooming Waveforms Several tools are available to zoom waveforms: To select an area to display by dragging the mouse over it. To zoom in. To zoom out. Click on a waveform. Hold the mouse button down and drag to define a time range. When you release the button, the selected time range will be expanded to fill the horizontal space. Click (Zoom in icon). The zoomed display centers around the C1 cursor. Click (Zoom out icon). The zoomed display centers around the C1 cursor.
Navigating and Viewing the Time Domain The following information is covered in this section: • Measuring Time and Controlling Zoom Regions Using Cursors • Using Markers to Quickly Display a Time Range at a Later Time • Finding the Next or Previous Edge on Selected Signals • Searching a Signal (Vector or Scalar) for a Specified Value • Expanding Time to Display Exact Order of Events Using Delta Cycles Measuring Time and Controlling Zoom Regions Using Cursors Table 4-4, Cursor C-1 and C-2 Positionin
Table 4-4 Cursor C-1 and C-2 Positioning TwoButton Mouse ThreeButton Mouse With Pointer on Verilog Signal With Pointer on Analog Signal With Pointer on Analog Signal Displayed as Digital With Pointer in Timescale Pane Click Left Click Left C1 to nearest edge C1 to time Snap C1 to 50% of threshold Sets C1 Shift + Click Left Shift + Click Left C1 to time C1 to time Snap C1 to 50% of min/max -- Ctrl + Click Left Click Middle C2 to nearest edge C2 to time Snap C2 to 50% of threshold Sets
Finding the Next or Previous Edge on Selected Signals To find the next or previous edge of a signal or group of signals: 1. Select the signal(s). 2. Position the mouse in the Waveform Pane and right click to open the Waveform Pane CSM. 3. Select Next Edge or Previous Edge from the CSM. VirSim locates the next or previous edge that occurs in any of the selected signals. OR 1. Select the signal(s). 2. Use the N and P shortcuts in an active Waveform Window.
2. Enter a name for the expression in the Name field. 3. Drag the signal(s) of interest into the Expression pane (or enter the full hierarchical signal name). Note: The expression must be legal Verilog code and can consist of multiple signals with associated values. 4. Enter the value that you want to search for. For example, an expression that searches for a value might look like the following: V1$test.risc1.
For detailed information on creating and using expressions, refer to Chapter 15, Expressions. Also see Locating Events Using Breakpoint Groups with Enabled Expressions on page 4-24. Expanding Time to Display Exact Order of Events Using Delta Cycles The Delta Cycle feature allows you to display detailed value change data, or delta cycles, that occurred within single sample times.
Delta Cycle Recording for VHDL You can enable the capture of delta cycle information before simulating your design and not during runtime. To capture delta cycle information, set the VPDDELTACAPTURE variable to ON or OFF (default is OFF) in the .synopsys_vss.setup file or use the command line switch -vpddeltacapture on|off when simulating.
View Delta Cycles When you expand a time, a delta cycle area is inserted into Waveform and Timescale panes at the time currently pointed at. Refer to Figure 4-6, Sample Delta Cycle Region. Only cycles that have changes on signals active in the window are displayed, and the cycles are evenly spaced. Spacing for delta cycles is controlled with the VirSim*deltaCycleWidth variable in the Resource file, refer to Chapter 16, VirSim Setup. The default is 8 pixels.
Figure 4-6 Sample Delta Cycle Region Time for the first tick mark in the Delta Cycle area. Delta cycle area is inserted to display intermediate cycles with actual signal changes within a single simulation time. Delta cycle time. In this example, cursor C1 is at time 460 delta cycle 3. Each tick mark represents a value change, or the next delta cycle displayed. Major tick marks are placed at every fifth displayed cycle.
When both cursors are placed in the same delta cycle region, the Delta field (time between C1 and C2) displays the number of delta cycles between cursors. If the cursors are in different delta cycle regions or if only one cursor is in a delta cycle region and the other is in nonexpanded time, the Delta field displays the difference between the two time samples with no reference to delta cycles.
Locating Events Using Breakpoint Groups with Enabled Expressions A breakpoint group defines a subset of all defined expression breakpoints for which expression search is enabled. An expression is added to a breakpoint group by enabling it for that breakpoint group in the Expressions Dialog. Expressions can be enabled for more than one breakpoint group. When searching with a breakpoint group, VirSim stops when any expression enabled in the breakpoint group is satisfied.
Figure 4-7 Breakpoint Groups Dialog To create breakpoint groups: 1. Type the name of the breakpoint group in the Name field and click left on Add. The breakpoint group is added to the Breakpoint Groups Pane. 2. Click left on Edit in the menu bar and choose Breakpoints to open the Breakpoint Groups Dialog. 3. When you are finished, click left on Done to close the Breakpoint Groups Dialog.
Figure 4-8 Expressions Dialog Breakpoint Groups Icon and Name Enabled Search on Expression for Breakpoint Group FindXOR To add expression breakpoints to a breakpoint group: 1. Click left on Edit in the menu bar and choose Expressions to open the Expressions Dialog. 2. In the Expressions Dialog, click left on the Breakpoint Groups icon to open the Breakpoint Groups Menu. The menu displays the breakpoint groups created from the Breakpoint Groups Dialog. 3.
Searching with Breakpoint Groups After creating a breakpoint group and defining expressions, you can use the breakpoint group to perform searches on enabled expressions. Each VirSim window includes a Breakpoint Group icon to open a menu of available breakpoint groups. All windows linked to the same Link group use the same breakpoint group. 1. In any window, click left on the Breakpoint Groups icon to open the Breakpoint Groups Menu and choose the desired breakpoint group.
• User defined events are defined using the $vcdplusevent command (refer to System Tasks and Functions on page 17-3). You can specify the type of event as a text string and the shape and color of the event marker for up to 244 different combinations. When you place the cursor on the event marker, the signal name and the event string appear in the status bar.
Figure 4-9 Displaying Unique Events Unique event symbols Place the cursor on the event symbol and the event string appears in the status bar.
Selecting Drawing Mode (EPIC and Verilog only) The drawing mode lets you display a vector in either digital or analog mode. To select the Drawing mode: 1. In the Waveform Window, click right on the waveform to open the context sensitive menu. 2. Choose Drawing Mode and select the drawing mode type from the context sensitive menu. There are three drawing modes: Analog (StairStep), Analog (Pt to Pt), and Digital. See Figure 4-10, Drawing Modes (EPIC and Verilog Only).
Modifying Waveform Height To modify the waveform height: 1. In the Waveform Window place your cursor on a waveform or select a group of waveforms and place your cursor on any one of the waveforms. Click right to open the context sensitive menu. 2. Select Waveform Height and then choose a multiple (from 1 to 20) of the standard height. The current size is grayed out. Your selection is applied to all selected waveforms.
Displaying Strength Based Colors The Waveform window can display different colors for different strengths. You display strength colors by incrementally loading the strengths.cfg file that is located in the $VIRSIMHOME/ virsims_support/appfiles directory. UNIX users can also display strength colors by setting the VirSim*enableStrengthBasedEncoding X resource to True. If your environment is set up so that XUSERFILESEARCHPATH is set to .
You can change the default strength colors using the waveform style editor. You can, for example, use this editor to specify different colors for supply0 and supply1. Then, for future use, you can save a configuration file to incrementally load your preferred color scheme. Using the Waveform Style Editor The Waveform Style Editor is used to modify the waveform color and style for selected encoding types. First, the file type determines the available encoding types.
Figure 4-11 Waveform Style Editor The Waveform Style Editor has the following style menus and action buttons. File Type The File Type Menu is used to select the file type: Verilog, VHDL, or EPIC. Each file type has a unique set of options for encoding signal types, signal values, and waveform styles from which you can select.
Encoding The Encoding Menu is used to select signal types for the Verilog, VHDL, or EPIC file you select. Verilog signal types include Scalar, Vector, Real, and Event. EPIC signal types include Scalar, Vector, and Analog. VHDL signal types include all standard types and all user defined types in all VHDL files that are currently open. Value The Value Menu is used to select the signal value. The Value Menu contains the available signal values for the selected signal type.
Apply Apply changes waveform styles to the styles set and leaves the Waveform Style Editor open. Cancel Cancel closes the Waveform Style Editor without saving any changes. Help Help opens online help for the Waveform Style Editor.
Figure 4-12 Update Dialog The Update Dialog has Periodic Update buttons, an Update Interval field, and three action buttons. Periodic Update Toggles periodic update on or off. Click left on the appropriate toggle button to enable or disable periodic update. Update Interval Specifies the update interval (in seconds) to check the simulation history file for new data. OK Accepts the entry made in the Update Interval field and closes the Update Dialog. Cancel Closes the Update Dialog without saving changes.
Printing Waveforms To access the Print Dialog from the Waveform Window, click left on the File Menu and choose Print. If multiple Waveform Windows are displayed, the Print Dialog simply associates with the Waveform Window from which it is selected. When using the default Print Dialog settings, printed output is very similar to what is viewed in the associated Waveform Window, with the following differences. • Time-axis display is more elaborate.
• Printing to Postscript • Adjusting the Signal Name Printout Printing a Time Range Use the Begin Time and End Time fields to specify the time range to print. By default, Begin Time displays time at the left edge of the Waveform Pane and End Time displays time at the right edge. The controls automatically constrain entries to times within the simulation. Distributing a Printout Across Several Pages Use the Time Slices and Signal Slices controls to distribute printouts across pages.
To print the signal axis across several pages: Use Signal Slices to divide the signal (y) axis into up to 20 slices (pieces) and print a slice on each page. If the last time slice is only partial, the remainder appears on the last page. For example, if you are printing a group with 37 signals, and Time Slices is set to 1, a request for 4 Signal Slices results in 10 signals on the first three pages and 7 on the last. If Signal Slices is set to one, all 37 signals appear on one printed page.
To rotate the output: Many PostScript output devices assume a portrait orientation for their output space. By default, VirSim prints in landscape mode. Thus, it sets the Rotate Output toggle on. If you prefer portrait orientation, set the toggle off. Specifying a Printer Name For Windows users, use the Print Command field to specify a printer port such as LPT1 for a local printer or a path and printer name such as \\helga\engprinter for a network printer.
To create an Encapsulated PostScript file: The Encapsulated PostScript (EPSF) toggle button is associated with the Print To File toggle button, and has the sole effect of centering the PostScript image on the page with margins equal to 25% of the page width and height. The generated PostScript is fully scalable (i. e. all graphics are drawn relative to the image origin), and may be relocated anywhere on the page using whatever tools are provided by the importing application.
Toolbar and Menu Reference Toolbar You can toggle display of toolbar icons from the View menu. Group Icon Marker Icon Load Icon Zoom In Icon Zoom Out Icon The Group icon opens a menu containing all defined signal groups. The five most recently used groups appear at the top of the menu, with the most recent group first. The remaining groups are listed in alphabetical order in the lower portion of the menu.
Zoom Cursors Icon Zoom Percent Icon Vertical Compress Search Icons Waveform Window 4-44 The Zoom Cursors icon zooms the Waveform Pane to display a time range between cursor C1 and C2. To avoid rounding errors, the Waveform Pane may display a larger time range than that marked by cursors C1 and C2. You can also zoom the cursors by right clicking in the Timescale Pane or selecting Zoom Cursors from the context sensitive menu.
These icons allow you to open new VirSim windows from the Waveform Window toolbar. New Window Icons Breakpoint Group Icon Link Icon The Breakpoint Group icon opens the Breakpoint Groups menu. Breakpoint Groups consist of groups of expressions that are used to search for breakpoints. You can select available breakpoint groups from the menu. Breakpoint groups are created in the Breakpoint Groups Dialog. The group expressions are defined in the Expressions Dialog.
Context Sensitive Menus Signal Group Pane Context Sensitive Menu (CSM) The Waveform Pane CSM is used to display and format waveforms, expand and collapse times, and obtain event origins (see Figure 4-13, Waveform Pane CSM). To open the Waveform Pane CSM, click right on the waveform or a waveform edge. Figure 4-13 Waveform Pane CSM Zoom Cursors Displays a waveform time range between cursors C1 and C2.
Drawing Mode Brings up a menu of drawing mode options: Digital, Analog (StairStep), and Analog (Pt to Pt). Refer to Selecting Drawing Mode on page 4-30. Waveform Height Allows you to choose a multiple (from 1 to 20) of the standard height. The current size is grayed out. Add Blank Places a blank line above the waveform on which you clicked to open the CSM. To delete the blank line, click left on the blank space in the Signal Name Pane to select the blank line then select Cut or Delete from the Edit menu.
Collapse All Time Collapses all expanded delta cycle information. Refer to Expanding Time to Display Exact Order of Events Using Delta Cycles on page 4-19. Next Edge Locates the next edge that occurs in any of the selected signals. Refer to Finding the Next or Previous Edge on Selected Signals on page 4-17. Previous Edge Locates the previous edge that occurred in any of the selected signals. Refer to Finding the Next or Previous Edge on Selected Signals on page 4-17.
Edit ... Opens a dialog that allows you to edit the name or bit range. Menu Bar The following menus include commands specific to the Waveform Window: • File Menu • Edit Menu • Zoom Menu • Display Menu • View Menu Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position.
File Menu Open - Opens the file browser to load an EPIC, VCD, or VCD+ history file. Reopen - Reopens all history files that have changed since they last were loaded. Close - Closes an open history file. Load Sources - Compiles Verilog source. Save Configuration - Saves the current configuration. Load Configuration - Loads a configuration file. Update - Opens the Update Dialog to enable or disable periodic reading of history files from an active simulation or, in interactive mode, a running simulation.
Edit Menu Cut - Cut the selection and move it to the clipboard. Copy - Copy the selection to the clipboard. Paste - Paste the clipboard to a designated area. Delete - Delete the selection. Select All - Selects all signals in the window. Groups - Open the Groups Dialog. A group is a set of signals that are global to all Waveform windows. You create groups in the Groups Dialog. Markers - Open the Markers Dialog. The dialog is used to define markers for specific simulation times.
Zoom Menu Zoom In - increases waveform detail. It displays approximately 50% of the previous time range. Zoom Out - increase waveform viewing area. It displays 200% of the previous time range. Zoom Cursors - displays a waveform time range between cursors C1 and C2. Zoom Percent - Displays a popup menu to choose Zoom Percent of the total time range: 100%, 75%, 50% and 25% Vertical Compress - toggles compression of display vertically.
View Menu View Menu settings are saved when you close VirSim. Waveform Tools - Toggles display of the Waveform tools. Zoom Tools - Toggles display of the Zoom tools. Search Tools - Toggles display of the Search tools. Window Icons - Toggles display of the Window icons. Break Group Icon - Toggles display of the Breakpoint Group icon. Link Icon - Toggles display of the Link icon.
Waveform Window 4-54
5 Source Window 1 Using the Source Window you can: • Navigate and view the design and transparently access all its elements in complex file hierarchies. • Easily edit the correct file using your preferred editor. • Debug design behavior with current signal values annotated next to the signals. • Use Event Origin to locate the origin of any signal change. • Follow and control source execution in selected sections of the design using breakpoints and stepping.
Introducing the Source Window The Source Window has the following three panes: • Execution Pane • Source Text Pane • Control Pane In addition, there is a toolbar for commonly used commands. Figure 5-1, Sample Source Window, shows an example of the Source Window. Figure 5-1 Sample Source Window Menu Bar Toolbar Execution Pane Displays statement execution arrows or line execution count, line breakpoints, breakable lines, and source line numbers.
Execution Pane The Execution pane normally displays arrows to indicate statement execution and dots to indicate line breakpoints (see Table 5-1, Statement Indicators in Execution Mode). Table 5-1 Statement Indicators in Execution Mode Indicator Description In Post Simulation mode, small green dots represent lines that have been executed at least once in the simulation and where a breakpoint might be set. In Interactive mode, the small dots indicate lines that may potentially execute.
Alternatively, the Display menu commands Show Execution and Show Coverage toggle the Execution pane between execution and coverage display modes. Selecting Show Coverage displays the line execution count in place of the statement execution arrows. Selecting Show Execution displays the arrows again. In order to obtain line info and/or line trace data, the simulator may have to be built with or supplied appropriate options or commands.
The source text is color coded to designate user identifiers, keywords and comments. Color Use Blue User-defined identifiers Red Keywords Yellow Comments Green All other text Gray Defined or protected source Note: Colors shown above are the ones defined in the standard configuration. Control Pane The control pane includes the following controls (see Table 5-2, Control Pane).
Table 5-2 Control Description Time Specifies the time of the window and al windows linked to this window. Find Searches the current source for matching text. The Find field includes a text entry field and forward and backward search buttons. If the signal is dragged into the Source Window, the Find box is seeded with the signal name and automatically highlights the first occurrence. To search text, enter the character string to search for in the text entry field and left click on the search button.
Before Using the Source Window Verilog Verilog source information can come from either the Verilog source or from the simulator PLI for certain simulators. The VCD+ file produced by VCS or Scirocco when compiled with the -line option contains information that allows the VirSim Source Window to work without first compiling the source. When the VCD+ file is from other simulators, the Verilog source must be compiled by VirSim.
Note: You can not display the cycle portion of your design in the source window. Navigate and View a Design Drag-and-drop a scope from any other window to the Source Window, and the Source Window displays source for that instance module. An instance can be any module, task, function, or named block in the Verilog source code. Instances may be placed in groups so that a group of instances may be debugged.
Edit the Correct Design File The Source Window Edit menu includes two commands for opening source code in a text editor: Edit Source and Edit Parent. To Do This Open the Source File for the current instance In the Menu Bar, left click on Edit and choose Edit Source. For example, if the current instance displayed is test.risc1.instdec, then the text editor displays source code for test.risc1.instdec. Edit a specific line of source code or an included file.
Figure 5-2 Source Window with Show Values Turned On Current signal values appear below the variable name An asterisk appears when there is not enough space to display the value. Move the mouse over the variable to view a value popup View Signal Values for One Signal To view the current value for one signal, click the Load Value Changes icon if necessary, then move your cursor over the signal name to view a popup of the current signal value.
Follow and Control Source Execution Using Stepping and Breakpoints Follow Source Execution The Source Window displays arrows to indicate all lines that execute this sample time and what line will execute next. Source execution is followed for all instances in the current instance group. Control Source Execution Use the Next/Previous Line icons to follow execution. You can also use the Run icon or any other means to change the current sample time to see all lines that execute at a sample time.
Clear Breakpoints The Edit menu contains two commands for clearing breakpoints: Clear Instance Breaks and Clear Group Breaks. • The Clear Instance Breaks command removes all line breakpoints in the instance currently being shown. • The Clear Group Breaks command removes all line breakpoints in all the instances in the instance group currently in use. In the menu bar, left click on Edit and choose the appropriate breakpoint command. To clear individual breakpoints, left click on the red breakpoint dot.
Using Instance Groups Instance groups are used to filter trace execution information. Only statements executed in instances listed in the current instance group are displayed. The Instance Group Edit Dialog is used to create and edit instance groups. You can add instances to the group by dragging them into the Instance List. You also can add instances to the current instance group by dragging them into the Source Window.
Figure 5-3 Instance Group Edit Dialog Instance Groups Instances in the Instance Group Highlighted Adding an Instance to Instance Group Highlighted The Instance Group Edit Dialog has the following options. Instance Group List Lists the names of the current instance groups. To display the instance group: • Source Window 5-14 left click on an instance group in the Instance Group List. The instances in the group appear in the Instance list.
To add instances to the instance group: • with the instance group highlighted, enter a new instance in the Instance field and left click on Add, or • drag-and-drop a scope into the Instance List pane. Instance Group Used to enter a new instance group. Type the name of the instance group in the text field and left click on Add. The name appears in the Instance Group List. Instance List Lists the names of instances in the instance group.
Delete Deletes the selected instance from the Instance List or the selected group from the Instance Group List. OK Saves changes to the Instance Group Edit Dialog and closes the dialog. Apply Saves changes to the Instance Group Edit Dialog and leaves the dialog open. Cancel Closes the Instance Group Edit Dialog without saving any changes. Help Opens on-line help for the Instance Group Edit Dialog. Define Markers The Markers Dialog is used to define markers for simulation times.
Capture Line Data The Capture Line Data command is used to capture and display line execution data in the Interactive mode. To capture line execution data, left click on the Display menu and then left click on the toggle box to enable Capture Line Data. By disabling capture of line data, you gain significantly improved performance when using line breakpoints in interactive Verilog-XL simulations. The default for Capture Line Data is on.
Line stepping is disabled when Show Coverage is selected. Toolbar and Menu Reference This section includes the following information: • Toolbar • Source Text Pane Context Sensitive Menu • Menu Bar Toolbar You can toggle display of toolbar icons from the View menu. Instance Group Source Window 5-18 The Instance Group icon opens a menu of available instance groups. An instance group is a set of instances for which source tracing can be enabled. Left click on an instance group to select it.
Select Instance Load Value Changes Marker Step Breakpoint Step Line New Window Icons The Select Instance Group icon opens an alphabetized list of all instances in the currently selected instance group. Left click on an instance to select it. The selected instance will then appear in the Source Text pane. Due to the size and ambiguity of the instance list, this icon is inactive when the All Group instance group is selected.
Breakpoint Group Link Icon The Breakpoint Group icon opens the Breakpoint Groups menu. Breakpoint Groups consist of groups of expressions that are used to search for breakpoints. You can select available breakpoint groups from the menu. Selecting a breakpoint group only affects expression breakpoints. The line breakpoints remain the same. Different sets of line breakpoints may be activated with the selection of different instance groups. Breakpoint groups are created in the Breakpoint Groups dialog.
Descend Instance Selects the new scope, adds it if necessary to the current instance group, and displays its source in the Source Text pane. This command is enabled when the word currently being pointed at if appended to the current instance results in a legal instance name for a module. Go to Parent Selects the parent of the currently displayed scope, adds it if necessary to the current instance group, and displays its source in the Source Window.
Menu Bar Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position. File Menu Open - Opens the file browser to load an EPIC, VCD, or VCD+ history file. Reopen - Reopens all history files that have changed since they last were loaded. Close - Closes an open history file. Load Sources - Compiles Verilog source. Save Configuration - Saves the current configuration.
Edit Menu Copy - Copies the selection to the clipboard. Select All - Selects all signals in the window. Edit Source - Opens the source file for the current scope in a text editor window. Edit Parent - Opens the source file for the parent scope in a text editor window. Clear Instance Breaks -Removes all line breakpoints from the instance in use. Clear Group Breaks - Removes all line breakpoints from the instance group in use. Instance Groups - Opens the Instance Group Edit Dialog.
Display Menu Show Execution - Shows execution information for the source file in the Execution pane. Arrows show activity. Show Coverage - Shows coverage information in place of execution information. Coverage displays the execution counts (number of times the line was executed) and disables stepping through source code. Show Values - Displays current values for all signals. Current signal values appear below the variable name.
View Menu View Menu settings are saved when you close VirSim. Source Tools - Toggles display of the Source Window tools. Search Tools - Toggles display of the Search tools. Window Icons - Toggles display of the Window icons. Break Group Icon - Toggles display of the Breakpoint Group icon. Link Icon - Toggles display of the Link icon.
Source Window 5-26
6 Logic Browser 1 The Logic Browser (Verilog only) is a compact, easy-to-read schematic window designed for analysis of complex designs. Drag a scope, signal or group of selected signals into the Logic Browser and click on ports to expand connectivity in relevant areas. Explore the design behavior by analyzing the annotated values for ports and nets as you go backwards and forwards in time.
Introducing the Logic Browser Features Using Logic Browser you can: • Easily trace signal connectivity and view change history. • Perform all functions in post-simulation mode as well as interactive mode. This frees the simulator to perform other work in parallel with debugging. • View all instances and assignments driving or driven by connected nets. • See all ports on instances with their names and values.
Figure 6-1 Sample Logic Browser • All instances and assignments driven by the displayed nets are shown. • Nets are displayed with type, name and current value. • The selected nets are displayed in pink, all others are in green. • Ports on all instances are shown with the connection expression text and value of that expression. Note: only values for the connected ports are loaded by default.
Getting Started The following information is covered in this section: • Before Using the Logic Browser • Getting Started Before Using the Logic Browser Logic Browser accesses simulation value change results either from a VCD+ file or interactively. The Logic Browser requires connectivity, expressions, variables, and other information that are inappropriate to store in a VCD+ file and are not available from the Verilog PLI.
Graphic Objects and Value Text Many graphical objects are used when displaying the loads and drivers of a signal. You may interact directly with the graphic objects to navigate through a design, display signal values, and perform other functions such as editing source files. The following information is covered in this section: • Viewing Graphic Objects • Viewing and Loading Value Text Viewing Graphic Objects Object Text Port Value text is displayed to the right of the port name.
Object Text Module Instance Logic Browser displays the module instance name. (For example, SubmodWithBiDirInst) and the type of module instance (for example, Submod). Primitive Instance The primitive instance name. (For example, aPrimitive) is displayed along with the primitive instance type (for example, and). Assignment Statements All contributors to any assignment statement are displayed as drivers to an instance. Assignments act like primitives with the exceptions listed below.
Viewing and Loading Value Text Value text on the Logic Browser display shows variable data such as signal load status, data availability, and data values. It is dynamically updated according to time viewed, signal load status, and display radix selection. The underlying signal values are obtained either from a VCD+ history file (post-processing mode) or from a running simulation (interactive mode). Any text that is too long to fit in the available space is abbreviated and followed by an asterisk.
Note: To automatically load values for all objects shown in the Logic Browser, select Autoload Values from the Display menu. To Do This Load all signal values for the current view. Click the Load Signal Values icon or select Load View NL from the Logic Browser context sensitive menu. Load values for all signals connected to ports on a specific module instance. Select Load Inst NL from the Module Instance context sensitive menu.
Note that HR values only occur when a signal has more than one driver. A port value - means that VirSim only has the resulting net value and not the values of individual drivers. Add +vpddrivers to the simulator command line to save this data. Note: When a net is driven by multiple instances, the net shows the resultant value, while each driving port shows a hierarchically resolved (HR) value. The HR value is the net contribution from within this instance.
Navigating a Design This section includes the following information: • Navigating the Design in the Time Domain • Navigating Using the Connection Dialog • Navigating the Design with Graphic Objects Navigating the Design with Graphic Objects To move up one level of the hierarchy: Click left on a port to move up one level of hierarchy. In this case, clk is a port on the deltst1 instance.
To descend one level of the hierarchy: Click left on the inside of a port to navigate to a lower level of the design hierarchy. Signal routing from your previous view is maintained. To clear signal routing, select Clear All Routing or Clear Displayed Routing from the Edit menu. To navigate across the design hierarchy: Click left on the outside of a port to add a wire to the schematic The new, or selected, wire appears in pink. All others appear in green.
Navigating the Design in the Time Domain Using Next/Previous Net Change Commands To navigate the time domain using Next/Previous, either click: Next/Previous Selected Signals Change icons for the next/ previous change in the selected net. Green arrows Next/Previous Any Change icon for the next/previous change in any displayed net that has values loaded. Pink arrows You can also click right on an object to display an associated context sensitive menu.
Using Window Links Change the time in a window to which the Logic Browser is linked. Logic Browser updates the values for that time. Navigating Using the Connection Dialog The Connection Dialog can be useful when navigating complex expressions.Click on an object and select View Connection from the context sensitive menu. The Connection Dialog displays a detailed port connection breakout map, Double click on a navigable signal or bit from one of the lists. Logic Browser displays the selected signal.
Using Event Origin Using the position of the mouse pointer as a reference, the Event Origin feature can obtain precise information about the source of a value change at a specific time. For more information, see Chapter 12, Event Origin. To Do This Find the source of a value change on the net. Position the cursor over a net and click right to open the context sensitive menu. Select Event Origin. Find the source of a value change on a connected signal.
• Figure 6-3 Expressions Example Connection Dialog Navigating from the Connection Dialog To navigate directly from the Connection Dialog, either: • Double click left on navigable signals or bits from one of the lists. • Select a navigable signal or bit and click left on the OK or Apply button. An item is not navigable if it is generated from another expression, such as a single bit generated from the expression a & b or a nonexistent bit due to a port size mismatch.
Selecting a Signal with Expressions Verilog permits complex expressions to drive port and terminal connections. A basic problem with complex expressions is that they can present ambiguity in signal selection. The Connection Dialog lets you further define the focus. The HiConn expression and LoConn expression fields display the text of the HiConn and LoConn port expressions for a port instance. (Because primitive terminals do not have a LoConn, their LoConn field is empty.
Expressions Example The following example illustrates the types of complex port expressions that are legal in the Verilog HDL.
Figure 6-4 Connection Dialog Example Note the port connection expressions {a^b,2’b01,a,b} and {z,y}. Right click on the port instance with expression text {a^b,2’b01,a,b}, and choose View Connection from the context sensitive menu. The Connection Dialog appears (see Figure 6-3, Connection Dialog). By double-clicking on either i1 or i2 you can select which signal to follow when descending the hierarchy into the mid module.
Editing Source from Logic Browser The Logic Browser includes two commands for opening source code in a text editor: Edit at Definition and Edit at Instance. The editor used to edit text is determined from the EDITOR environment variable. In Unix, if there is no editor environment variable set, the editor defaults to VI. In Windows, if there is no editor environment variable set, the program looks for a file association. If there is no file association, the editor defaults to WordPad.
Time Scale Settings You can select the display unit and display precision for time values from the Time Scale Dialog. To open the Time Scale Dialog, click left on the Display menu in the menu bar and choose Time Scale. A dialog provides the time-scale selections. For more information on the Time Scale Dialog, see Chapter 10, Time Units. Show Single or Multiple Nets In most cases you will want to use the Logic Browser’s multi-net schematic.
Toolbar and Menu Reference Toolbar You can toggle display of toolbar icons from the View menu. Load Value Changes Previous View Next View The Load Value Changes icon loads values for all signals in the current view. After a load, the NL value text is replaced by NL value text may require loading of multiple signals, depending on the expression. This command is sensitive only if there are NL values in the view. To avoid lengthy load delays, use the toolbar icon judiciously.
Next Selected Signals Change Next Any Change The Next Selected Signals Change icons search forward or backward in time for next or previous value change in selected signals. When a change is located, all values are updated to reflect the new time, and the value change is highlighted to indicted which values have changed. Any other windows that are linked also update to the new time.
Context-Sensitive Menus (CSM’s) Logic Browser context-sensitive menus provide convenient access to the most frequently used operations for various types of objects. The CSM opens when you point and click right on an object. The following context-sensitive menus are covered in this section: • Logic Browser CSM • Module Instance CSM • Module Instance CSM • Port Instance CSM • Selected Net CSM Note: The editor used to edit text is determined from the EDITOR environment variable.
Prev/Next Change Searches backward and forward in time for previous or next value changes on any object in the view for which values are loaded. These menu commands are sensitive whenever one or more port instances are loaded. Load View NL Loads all signals in the current view. After a load, the NL value text is replaced by actual simulation values. A connection with NL value text may require loading multiple signals, depending on the expression.
The editor used to edit text is determined from the EDITOR environment variable. In Unix, if there is no editor environment variable set, the editor defaults to VI. In Windows, if there is no editor environment variable set, the program looks for a file association. If there is no file association, the editor defaults to WordPad.
Edit At Definition Opens an editor at the module type definition line for the module instance. Edit At Instance Opens an editor for the file containing the definition of the module type for the instance. If possible, you are positioned at the line where the module definition starts (the “module” line). Note: The editor used to edit text is determined from the EDITOR environment variable. In Unix, if there is no editor environment variable set, the editor defaults to VI.
Radix Opens the Radix menu. Selecting a radix sets the display value for that port instance only to the selected radix base (binary, hexadecimal, octal, etc.). Refer to Chapter 11, Radices. Prev/Next Change Searches forward or backward in time to the next or previous value change for the selected port instance. Value changes show expression values at different points in time for the port instance. These menu commands are sensitive only when all signals are loaded.
Selected Net CSM The commands in the Selected Net CSM apply to the net on which your cursor is pointing and do not affect other Logic Browsers that may display the same net (see Figure 6-8, Focus CSM). To open the CSM, position the cursor over a net and click right. Figure 6-8 Focus CSM Radix Opens the Radix menu. Selecting a radix sets the display value for that focus net only to the selected radix base (binary, hexadecimal, octal, etc.). Refer to Chapter 11, Radices.
Menu Bar Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position. File Menu Open - Opens the file browser to load an EPIC, VCD, or VCD+ history file. Reopen - Reopens all history files that have changed since they last were loaded. Close - Closes an open history file. Load Sources - Compiles Verilog source. Save Configuration - Saves the current configuration.
Edit Menu Clear Displayed Routes - Clear the displayed routes. To view routes previous to the last change, drag the signal back into the Logic Browser from another window. Clear All Routes - Clear all routes, even those not currently displayed. Dragging a signal in again displays the signal with no previous routing. Markers - Open the Markers Dialog. The dialog is used to define markers for specific simulation times.
Note: We recommend that you do not switch back and forth between single and multi-level views. The two modes share a data structure, and some history may be lost. View Menu View Menu settings are saved when you close VirSim. Source Browser Tools - Toggles display of the Logic Browser tools. Search Tools - Toggles display of the Search tools. Window Icons - Toggles display of the Window icons. Break Group Icon - Toggles display of the Breakpoint Group icon. Link Icon - Toggles display of the Link icon.
Logic Browser 6-32
7 Register Window 1 The Register Window is used to create Design Views using simple graphics tools. The view can show items such as boxes, lines, text, signal values and expression results at specific simulation times, signal names, and user created labels. Introducing the Register Window Window Areas Note: If you use a two-button mouse, you cannot drag and drop signals from the Register Window to other windows. Instead, you must cut or copy and paste.
The Register Window consists of one main display area, a Time field, and a status bar. These are described below. Display Area The design view is created and displayed by placing signals and objects in the display area. You can load the desired design view from a previous configuration or construct it within the display area. The Register Window provides basic drawing tools to construct and enhance the view. Time Field (Time Control Text Field) Use the time field to jump to a specific time.
Which Signals are Loaded? By default, all signals for all defined Register Window views and Waveform Window signal groups are registered in interactive mode or loaded in post-processing mode, regardless of whether they are currently being displayed. You can modify VirSim’s setup to register or load only those signals that are displayed in the currently active Waveform signal group or Register Window view. This may be more efficient when you are analyzing large designs.
Edit Views The View Editor Dialog is used to create, display, rename, and delete views (see Figure 7-2, View Editor Dialog). A view is a named collection of text, signals, and graphics displayed in the Register Window. Figure 7-2 View Editor Dialog In addition to views manually created with the View Editor Dialog, a view is automatically created when anything is added to an empty Register Window. The View Editor Dialog has the following display areas: Views Displays a list of the currently defined views.
Name Used to enter or edit a view name. Names may only contain alphanumeric characters, underscores, and dollar signs. Names must begin with an underscore or alpha character. To Do This Create a View Enter the view name in the Name field and click left on the Add button. Delete a View Click left on the view name in the Views list and click left on the Delete button. Rename a View Click left on the view name in the Views list. Then click left in the Name field and enter the new name.
Using Event Origin Event Origin can obtain precise information about the cause of a signal value change. Point and click right on a signal to open a context sensitive menu and select an option from the Event Origin menu. For more information, see Chapter 12, Event Origin. Display Unique Events (Verilog only) The Unique Events feature allows you to display symbols on signal values for events of interest in the Waveform Window, Register Window, Source Window, and Logic Browser.
Align Objects You can select and align objects (left, right, top, bottom, vertical center, or horizontal center) in relation to an anchor object. The last object you select becomes the anchor object. To align objects: 1. Select the objects you want to align. 2. Click left on the Graphics menu and choose Align. 3. From the Align popup menu, choose the desired alignment: Left, Right, Top, Bottom, Vertical, or Horizontal. Distribute Objects You can select and distribute objects equidistant between two points.
Display File Designators for SIgnals The Display menu Designator command toggles file designators for signals on or off. When turned on, the file designator appears in front of the signal (for example, V1 clock), so that when comparing data from more than one file, you know which file the signal comes from. When turned off, only the signal name appears (for example, clock).To toggle the file designator on or off, in the menu bar click left on Display and choose Designator.
Toolbar and Menu Reference Toolbar You can toggle display of toolbar icons from the View menu. Previous/Next Change Icons View Icon Marker Icon The Previous/Next Change icons search backward and forward in time for the next or previous change on any of the signals in the current view. It then updates all values in the Register Window for the new time. The signals that changed value since the previous display are presented in pink, while the unchanged signals are white.
Text Tool Icon The Text Tool icon activates a text cursor to enter text in the register display area. Click left on the Text Tool icon and move the cursor anywhere you want in the register display area. then click left to position the cursor at the insertion point and type the text. • To delete the previous character(s), press the Backspace key. • To start a new line, press Return. • To cancel text mode, press Esc (escape key) or select another function.
Breakpoint Group Icon Link Icon The Breakpoint Group icon opens a pop-up list of available breakpoint groups. Breakpoint groups consist of groups of user-defined HDL expressions that may be enabled for searching. You can select available breakpoint groups from the menu. Breakpoint groups are created int he Breakpoint Groups Dialog. The expressions are created in the Expressions dialog. For information on creating breakpoint groups, see Locating Events Using Breakpoint Groups with Enabled Expressions.
Signal Properties CSM The Signal Properties CSM is used to change radix, control signal name display, control right-left justification, and find the cause of signal value changes (through the Event Origin command). To open the CSM, point and click right on a signal. This opens the Signal Properties menu (see Figure 7-4, Signal Properties CSM).
Figure 7-5 Radix Menu User Defined Radices Verilog Radix Menu VHDL Radix Menu Event Origin (Verilog only) Event Origin can obtain precise information about the source of a signal value change in the Register Window at a specific time. For more information, see Chapter 12, Event Origin. Label Label is used to enable or disable the display of the signal name for selected signals. Click left on a label and choose Enable or Disable (see Figure 7-6, Label Selection Options).
Format Format is used to format the text position of a selected group of signals, (see Figure 7-7, Format Text Positioning Options). Click right on text to open the Format menu and then choose from the following left and right text positions: Left-Left: Lines up the left side of each selected label and value text pairs. Left-Right: Lines up the left side of each label text and the right side of each corresponding value text of each selected pair.
Menu Bar The following menu bars include commands specific to the Register Window: • File Menu • Edit Menu • Graphics Menu • Display Menu • View Menu Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position.
File Menu Open - Displays the file browser to open an EPIC, VCD, or VCD+ history file. Reopen - Reopens all history files that have changed since they last were opened. Close - Displays the Close File dialog to close an open history file. Load Sources - Displays the Load Sources dialog to compile Verilog source. Save Configuration - Displays the Configuration dialog to save the current configuration. Load Configuration - Displays the Configuration dialog to load a configuration file.
Edit Menu Undo - Undoes the effects of your last command. Cut - Cuts the selection and moves it to the clipboard. Copy - Copies the selection to the clipboard. Paste - Pastes the clipboard to a designated area. Delete - Deletes the selection. Select All - Selects all signals and objects in the window. Views - Opens the Views Dialog to create, rename, and delete views. Markers - Opens the Markers Dialog. The dialog is used to define markers for specific simulation times.
Graphics Menu The Graphics menu includes the following commands for positioning objects in the Register Window: • Distribute Menu • Align Menu Align Menu The following are commands for aligning selected objects in the Register Window. Select the objects you want to align. The Register Window aligns the selected objects with an anchor object. The last object you choose becomes the anchor object. Left - Aligns objects with Left edge of anchor object.
Distribute Menu Using the Distribute commands, you can select and distribute objects equal distance between two points. The two points are determined to be the two extreme points of the selected objects. Vertical - Distributes objects Vertically. Horizontal - Distributes objects Horizontally. Display Menu Time Scale - Opens the Time Scale Dialog for setting the display unit and display precision for VirSim display time. Unique Events - Toggles Unique Events on or off.
View Menu View Menu settings are saved when you close VirSim. Register Tools - Toggles display of the Register Window tool icons. Search Tools - Toggles display of the Search tool icons. Palette Tools - Toggles display of the Palette tool icons. Window Icons - Toggles display of the Window icons. Break Group Icon - Toggles display of the Breakpoint Group icon. Link Icon - Toggles display of the Link icon.
8 Interactive Window 1 The Interactive Window is used to interactively control the simulator using a graphical interface. Using the Interactive Window you can send commands to and view the output of the simulator. The Interactive Window can be synchronized with the other VirSim windows by using the link group SIM.
Introducing the Interactive Window The Interactive Window has the following areas. • History Pane • Command Prompt • User-Defined Buttons • Simulator Controls • Window Status History Pane The History Pane displays the history of all commands sent to the simulator and a simulation log. By default, the scrolled history window displays the last 1000 lines of information. The value can be changed using saveLines as described in Common Settings on page 16-4.
User-Defined Buttons The user-defined buttons in the display area are used to send commands to the simulator. Yellow text buttons denote that a command applies to a selected object. White text buttons do not need a selected object. All user-defined buttons may be changed. See Controlling Simulation from Buttons on page 8-16 for more information.
Scope Control The Scope Control is used to specify and display the current scope. Entering a scope and clicking OK is equivalent to using a $scope() command. Time Display The Time Display shows the current simulation time and time units. The time units are read from the simulator. For Verilog, initially the units are the unit from the last timescale directive compiled. A $timeformat() can be used to override this value. VirSim ignores precision and units string specified in the $timeformat() command.
Window Status This status bar gives a brief description of the object pointed at. Figure 8-1 Sample Interactive Window Stop and Update icons. Active only during simulation.
The Interactive Window provides menu and toolbar controls, simulation log, simulator control, and a pane containing pre-defined and user-defined buttons.
Figure 8-2 Simulator Invocation Dialog Simulation Command Line The Simulation Command Line text area is used to invoke the simulator in an interactive session. Click left in the Command Line area, enter or modify the simulator invocation command, and click left on OK. When enabled, Use Sources allows VirSim to use Verilog sources as supplied on the command line. Sources may be required by the Source Window, Logic Browser, or Event Origin command.
Starting a Session Via the VirSim Command Line You can change the default simulator and invocation arguments on the VirSim command line by using the following options: 1. +simtype+, where simulator_type is VCS, Scirocco, or VXL. 2. +sim+, where simulator_path is a path to your simulator executable (for example, myvxl, mysimv, or /usr/local/mysim). 3.
Controlling the Simulator This section describes several ways to start and control the simulator. The simulator runs forward until it is stopped (using the Stop icon or Ctrl+C), finishes, or a breakpoint is reached. You can set breakpoints from the Interactive Window or any other window linked to the SIM link group. To go backwards in a window, that window first must be unlinked from SIM.
Summary of Simulator Control Commands Simulator control commands set the run time interval, run the simulator to the next change on a specified signal, or run to a specified simulation time. You can choose the appropriate commands from a menu in the Simulator Control pane. The following commands are available for most simulators. Step Time The Step Time command runs the simulator for a specified time interval and then stops. The specified time must be between 0 and the maximum simulation time.
Setting a line breakpoint or searching on an HDL expression are examples of setting a permanent breakpoint. The simulator controls described below set different types of breakpoints. Expression Breakpoints In the Waveform Window, use the Expression Dialog and Breakpoint Group Dialog to create the desired HDL expressions to search for breakpoint groups. For each desired expression, click the Breakpoints toggle button on to enable searching. After the expression breakpoints are set, continue the simulator.
The name of the expression satisfied is displayed; in the above example, it is expr_name. Control Simulation from the Waveform Window There are two ways to control the simulator from the Waveform Window. 1. Search Next Causes the simulator to continue to the next breakpoint. 2. Go to a cursor or a marker The Markers icon in the toolbar pops up a list of cursors and markers.
Note: Find Next/Previous Edge also stops on any expression breakpoint that is turned on in the currently active breakpoint group. Control Simulation from the Source Window There are four ways to control the simulator from the Source Window. Note that in the discussion below, all breakpoints refer to the currently active Instance Group. Only one Source Window may be linked to the simulator at any point in time, and only one Instance Group may be active. 1.
Note: When controlling the simulator from the Source Window, the simulator runs until it encounters any breakpoint. Therefore, the simulator may stop before the desired point for one of two reasons: (1) a breakpoint was entered directly in the simulator command line, or (2) an expression breakpoint was active in the breakpoint group and evaluated as TRUE.
Control Simulation from the Logic Browser (Verilog only) There are three ways to control the simulator from the Logic Browser. 1. Next Selected Net (Transient breakpoint) - Causes the simulator to continue until the selected net changes. 2. Next Any Change (Transient breakpoint) - Causes the simulator to continue until there is a change on any of the displayed signals. 3. Time (Temporary breakpoint) - Sets a breakpoint at an absolute time and causes the simulator to continue.
Controlling Simulation from Buttons The scroll area titled User Defined Buttons consists of buttons for which you can configure behavior, layout, and color. The following information is covered in this section: • Default Buttons Files • Creating User-Defined Buttons • Defining a Button • Selection Substitution Default Buttons Files The buttons are defined in ASCII button files named iwbuttons. in $VIRSIMHOME/appfiles, where is a 3 character extension to identify the simulator.
Figure 8-3 Pre-Defined Button Layout for a Verilog Simulator The buttons file is searched for in the following locations (in order). • The current directory • The users HOME directory • The installation directory The button definition file is used to define button sections. In Figure 8-3, Pre-Defined Button Layout for a Verilog Simulator, there are five button sections. After a button section is defined you may define buttons for each section.
The title displayed in the User-Defined Button area is Control Buttons. It has two columns of buttons and the title text uses the color White Smoke. The label, numcolumns, and foreground are all options. If unspecified, the following defaults are used: label = same as section name numcolumns = 1 foreground = default foreground in X Resource file The individual options are separated by commas, and the entire section definition is terminated with a semicolon.
The individual options are separated by commas, and the entire button definition is terminated with a semicolon. Selection Substitution A button definition may contain a command that includes a $*. When you execute the button, this special string is replaced with the currently selected text. For example, the button definition file may specify the command $display($*) to select a signal and click the button. If you select top.m0.a then click the button, the command $display(top.m0.
Toolbar and Menu Reference Toolbar You can toggle display of toolbar icons from the View menu. Go Icon The Go icon causes the simulator to continue. It is the same as selecting Continue from the Sim pull down menu. The Stop icon stops the simulator. It is the same as selecting Stop from the Sim menu or entering Ctrl+C. Stop Icon Update Icon When the simulator is running, the Update icon loads data from the RAM buffer. Normally, the data in RAM is only loaded when the simulator stops.
Menu Bar Note: Any menu with a dotted line at the top can be torn off and placed on the display for easy access. Click middle above the dotted line, and then drag the menu to a convenient position. File Commands Load Sources - Displays the Load Sources dialog to compile Verilog source. Save Configuration - Displays the Configuration dialog to save the current configuration. Load Configuration - Displays the Configuration dialog to load a configuration file. Close Window - Closes the Interactive Window.
Sim Commands Continue - Continues to run the simulator. Stop - Stops the simulator. Finish - Finishes the simulation. Re-exec - Reruns the simulation with same arguments as the previous run. If a simulation is currently running, it automatically terminates. Invoke Sim... - Opens the Simulator Invocation Dialog to start a new simulation or edit simulation options. Rebuild and Re-exec - Rebuilds and reruns the simulator without exiting from VirSim. (For use with compiled code simulators.
View Menu View Menu settings are saved when you close VirSim. Interactive Tools - Toggles display of the Interactive Window tool icons. Window Icons - Toggles display of the Window icons. Break Group Icon - Toggles display of the Breakpoint Group icon. Link Icon - Toggles display of the Link icon.
Interactive Window 8-24
9 Project Window 1 The Project Window is used to analyze, elaborate, and simulate VHDL or mixed VHDL and Verilog projects. Introducing the Project Window The Project Window has three panes as shown in Figure 9-1, Sample Project Window. • Workspace Pane - Displays the content of a Workspace. • View Pane - Displays the contents of Folders and Libraries. • Output Pane - Displays analyze and elaboration output including error messages.
In addition to the three panes, the Project window includes the following areas: • Title bar - Displays the name of the open workspace, the name of the active project, and the name of the active design top. • Toolbar - Contains analyze, elaborate, stop and simulate icons. • Command Line - Allows you to execute commands and scripts without using the GUI.
Defining Projects and Workspaces The Project Window displays a workspace and a number of projects. Only one workspace can be open in the Project window. What is a Workspace? A workspace contains one or more projects. A workspace has settings that can be shared by all projects in the workspace. You can have one workspace or multiple workspaces. A workspace can contain all of your projects or there can be a workspace for each project. A workspace containing multiple projects can have only one active project.
What is a Project? A project contains VHDL and Verilog source file paths, libraries that receive analyzer output, references to other projects that might need to be analyzed when the project is analyzed, and names of design units that are used as design tops for elaboration and simulation. VHDL and Verilog source files are added to a project. The project is analyzed and analyze errors are corrected. The project is then elaborated and simulated. To troubleshoot the design, open individual Virsim Windows.
Workspace Pane The workspace pane displays the content of a workspace. The pane allows you to expand and collapse the Workspace folder, Project folders, and Library folders. The content of the selected folder is displayed in the View pane. A workspace contains projects and settings common to all the projects. For example, all projects in a workspace can share certain analyzer settings.
Figure 9-2 Workspace Pane When a new project is created, the new project is displayed in a text edit field with a default name (see Figure 9-3, Renaming a Project). To accept the name, click the mouse outside the text edit field. Change the new project name by clicking the mouse in the text edit field. Delete the old name and type in a new name, then press the enter key. The folder name “Project” cannot be removed. To cancel editing and accept the original name press the ESC key.
The Workspace library folder contains Libraries known to Scirocco and libraries defined by the user. When a workspace is opened, VirSim executes show_setup to obtain libraries known to Scirocco. (show_setup is part of the Scirocco installation.) Libraries defined in the synopsys_sim.setup files found in the Scirocco installation and in your home directory are found by show_setup. A Scirocco library logical name can be changed using rename. The new library mapping appears in the synopsys_sim.
Workspace Pane Context Sensitive Menu New VHDL Library Creates new workspace or project VHDL library. Shows default library name in text edit field. The VHDL library has a name and directory path. New Verilog Library Work Creates new project Verilog library Work. The library is named VERILOG_WORK. Verilog libraries are placed in the VERILOG_WORK library during Verilog compilation. New Verilog Library Other... Opens the New Verilog Dialog that is used to create Verilog libraries for the project.
Delete Deletes a project or library. Add Files... Opens Add File dialog so you can add files to a project. View Pane The View pane displays contents of folders and libraries. There are six folders that can be displayed in the View Pane: Workspace, Project, Library, Source Files, Design Tops, and Dependencies. To view the folders content, double click a folder in the View Pane. Workspace Folder View The Workspace Folder View displays the workspace library folder and project folders in the workspace.
Workspace Folder View Context Sensitive Menu This menu is displayed when pressing the right mouse button. Set Active Sets a project as the active project. Rename Renames a project. The project name is displayed in a text edit field in Workspace View. Delete Deletes a project. Selecting the project and pressing the Delete key also deletes project. Project Folder View The four project folders are displayed in Figure 9-6, Project Folder View. To view its content, double click a folder.
Project Folder View Context Sensitive Menu Set Active Sets a project as the active project. Add Files... Opens Add File dialog so you can add files to active project. Design Top Folder View This view displays design tops contained in the projects design top folder. The active design top is displayed with a unique color. Figure 9-7 Design Top Folder View Design Top Folder View Context Sensitive Menu Delete Deletes design top from the project.
Source File Folder View Display source files in the right splitter pane by double clicking the source files folder. Red, green, and yellow icons are displayed near the source file name. • Yellow icon indicates that a source file needs to be analyzed. • Green icon indicates that the source file was analyzed correctly. • Red icon indicates an analyze error. Source files are analyzed in the order displayed. Use the Source File View to reorder files.
Source File Folder View Context Sensitive Menu Add Files Before... Opens Add File dialog so you can add files to a project before file pointed to by mouse. Add Files After... Opens Add File dialog so you can add files to a project after file pointed to by mouse. Delete Removes file from project. A source file can also be removed by pressing the Delete key after the source file is selected. Options...
Full Detail View The full detail view shows the file name, Path, Last Modified Date and Last Compiled Date. Dependency Folder View Dependent projects are analyzed in the order displayed and before source files in the project. Use the Dependency View to reorder files. Select a project name and use Ctrl-UpArrow or Ctrl-DownArrow to move the dependent project. When an active project is analyzed, projects in the dependency list are analyzed if they are out of date.
Dependency Folder View Context Sensitive Menu Add Dependency Adds the selected project from the submenu to the end of dependency list. Add Dependency Before Adds the selected project from the submenu before the selected project. Add Dependency After Adds the selected project from the submenu after the selected project. Delete Removes a dependent project. You can also use Delete key to remove a dependent project.
When a project is analyzed, elaborated, or simulated, the Project Window automatically creates a synopsys_sim.setup file. The file is created in the active project directory when a project is analyzed and in the simulation directory (Using the Options Dialog on page 9-39) when a project is elaborated or simulated. VirSim changes the directory setting to the project directory when analyzing or the simulation directory when elaborating or simulating. Scirocco uses the new setting from the synopsys_sim.
Figure 9-10 Library Folder View Library Folder View Context Sensitive Menu New VHDL Library Creates new workspace or project VHDL library. Shows default library name in text edit field. The VHDL library has a name and directory path. New Verilog Library Work Creates new project Verilog library Work. The library is named VERILOG_WORK. Verilog libraries are placed in the VERILOG_WORK library during Verilog compilation. New Verilog Library Other...
When a library path is renamed, a button is displayed next to the text edit field containing the path. The button can be used to open the “Select a Directory” Dialog. Pressing the Ok button in the Dialog transfers the selected directory to the text edit field. Set Active Sets the library as the active library. The active library receives analyzer output when a library has not been specified using the Options Dialog. Clean Removes all files from the library.
Figure 9-11 Library View Library View Context Sensitive Menu Add Top Adds a design unit to the active project’s Design Tops folder. Sets this design unit as active design top. Edit Source Displays source file containing design unit in text editor. Clean Removes all files from the library. View Full Detail Displays the design unit, Cycle, Compiled, Debug flags, and the Source File.
Tear Off Windows Any of the View Pane views can be displayed in a separate window. Use the View-Tear Off command from the Project Browser Main Menu to create a separate window containing the current View Pane View. Multiple Tear Off windows can be created. Context Sensitive menus are supported in Tear-Off windows. Figure 9-12 Tear Off Window Output Pane The Output pane displays a history of executed commands, analysis and elaboration output, and error messages.
Commands can be transferred from the Output Pane to the Command Line Edit Field by double clicking the command in the Output Pane. In Figure 9-13, Output Pane With Commands, “activate project Group1” command is transferred to the command line by double clicking. The command can be edited further or executed by pressing the carriage return. Figure 9-13 Output Pane With Commands You can use the Output pane to read analyzer errors and to edit source files for correcting analyzer errors.
Output Pane Context Sensitive Menu Edit Source Opens a source file in the text edit window. Explain Error Opens window with text explaining error. Toolbar and Menu Reference This section includes the following information: • Toolbar • Menu Bar Toolbar The Project Window toolbar contains the following icons. Analyze Icon The Analyze icon analyzes the active project and all dependent projects.
The Stop icon stops the analyzer or elaborator. This icon is enabled when the analyzer or elaborator is running. Stop Icon Simulate Icon The Simulate icon opens the Virsim Interactive window, starts Scirocco, and simulates the active design top. Simulate options for the active design top are passed to the simulator. You can start Scirocco from the Interactive Window if it is open. However, using the Simulate Icon transfers the latest Simulate options to the simulator.
Close… - Displays the Close File dialog to close an open history file. Close Window - Closes the Project Window. Exit - Exits VirSim. Previously Opened Workspaces - Displays a list of previously opened workspaces in the File Command Menu. Selecting one of the workspaces opens it. New Workspace - Displays the New Workspace dialog. Use this dialog to create a new workspace. New Project - Creates a new project.
Project Menu Set Active Project - Sets the project selected from the submenu as the active project. Add Files… - Displays the Add Files Dialog. Files are added to the active project. Set Active Design Top Sets the design top selected from the submenu as the active design top. Add Dependency - Adds the project selected from the submenu to the active project. Import Synopsys Setup File...- Displays the Open File dialog. The dialog only displays synopsys_sim.setup files.
Added to active project: RTL_LIB: ./work -Note WORK > RTL_LIB is ignored ALU :/tmp/ALU8 ALU8 :/tmp/ALU8 VERILOG < test.v TIMEBASE = NS Import List of Files... - Displays the Open File dialog. Use the dialog to select a text file containing a list of Verilog or VHDL files. The files will be added to the active project, in the order that they appear.
Tools Menu Analyze All - Unconditionally analyzes the active project and its dependent projects. Analyze Project - Analyzes the active project and its dependent projects only if they are out of date. A project is out of date when the project library is cleaned, when source files are modified, when dependent projects are out of date, or when there are analyze errors. Analyze Files - Analyzes the selected files in the Source File pane. The selected files must belong to the active project.
View Menu Command Line - Shows or hides the command line edit window. Full Detail - When checked, view pane shows all details. Tear Off - The displayed view pane is displayed in a separate window. Windows Menu Hierarchy - Opens Hierarchy window. Waveform - Opens Waveform window. Register - Opens Register window. Source - Opens Source window. Interactive - Opens Interactive Invocation dialog. Close Tear Offs - Closes all Tear Off windows.
Dialogs New Workspace Dialog Use the New Workspace dialog to create a new workspace. A new project and a new project library named WORK are automatically created for the workspace. The new project name is displayed in a text edit field in the Workspace pane. Figure 9-15 New Workspace Dialog Name Shows the name of the workspace. Path Shows the parent workspace directory. Select a Directory Opens the Select Directory dialog. The selected directory is placed in the Path field.
Simulate Shows the name of the simulator. Ok Creates a new workspace and closes the dialog. Cancel Closes the dialog and exits. Does not create a new workspace. A new directory that has the workspace name is created in the ‘Path’ or parent workspace directory, if it does not already exist. The workspace file is placed in the workspace directory. The full name for the workspace file is /Path/workspaceName/workspaceName.vws. New project directories, files, and libraries are created in the workspace directory.
Open File Dialog Use the Open File dialog to find a file to open. The dialog displays files that match the selected Filter. Figure 9-16 Open File Dialog Filter Selects type of file to open.
Files Displays list of files that match filter. Folders Lets you browse through the directory tree. Ok Opens file selected in “Enter file name” field. Update Updates Folders list. Cancel Closes Dialog.
Add Files Dialog Use the Add Files Dialog to add files to a project. Figure 9-17 Add Files Dialog Filter Lets you choose a file filter. Displays valid VHDL and Verilog file extensions defined in BuildDialog file (see Files and Directories). Files Displays filtered files in Files list. Add File Adds the selected file to the active project.
Add All Adds all Verilog and VHDL files in Files list to the project. Folders Use the Folders List to browse through the directory tree. Ok Adds the file to the project and closes dialog. Update Updates Folders list. Cancel Closes Dialog.
Select a Directory Dialog Use the Select a Directory dialog to select a directory. Figure 9-18 Select a Directory Filter Not Used.
Folders Lets you browse through the directory tree. The selected directory is placed in the file name field. Ok Returns contents of file name field and closes dialog. Update Updates the Folders list. Cancel Closes the Dialog. Edit Setup Constants Dialog The Edit Setup Constants Dialog is used to create, modify, and delete constants in the active project. The constants are written to the Project window synopsys_sim.setup file when the active project is analyzed, elaborated, or simulated.
Setup Constants Displays list of constants in active project. Name Edit field for defining the name of a constant. Value Edit field for defining a constant value. Done Closes the dialog. Add Adds the constant in the Name edit field. Update Changes the value of the selected constant. Delete Deletes selected constant.
New Verilog Library Dialog The New Verilog Library dialog is use to create new Verilog libraries. Verilog libraries have the form ’name < pathname’ in the synopsys_sim.setup file. Figure 9-20 New Verilog Library Dialog Library Name Specifies the logical name of the Verilog library Path Name Specifies the pathname of the Verilog library file or directory.
Ok Creates the new library entry in the synopsys_sim.setup file and closes the dialog. Add Creates the new library entry in the synopsys_sim.setup file and clears the fields so you can specify more libraries. Cancel Closes the Dialog. Help Displays an menu page for help topics on Verilog Libraries Using the Options Dialog A project can be analyzed, elaborated, and simulated using default command line settings. The Options dialog is used to change the default settings.
Options Dialog Buttons Ok Sets options on selected objects and closes the dialog. Apply Sets options on selected objects. Apply Defaults Sets selected tab pane to default values. Use Ok or Apply to set options for selected Workspace view objects. Cancel Closes the dialog. Help Displays help information.
Setting Analyze Options Figure 9-21 Analyze Options Use the Analyze tab to set analyze options for a workspace, project, or VHDL source file. Options are set using check buttons, the Library combo box, and the Options edit field. The Command field displays options that are passed to the analyzer. The Library combo box is used to select a library that receives analyzer output. Use the radio button to choose a workspace library or a project library.
Options can be modified for the workspace, projects, or VHDL source files. Separate sets of options are maintained for the workspace, project and files. Initially the three sets of options are identical. Analyze settings for a VHDL source file are determined as follows: Use the file options if they are changed, otherwise use the project options if they are changed, otherwise use the workspace options. A black triangle icon indicates that options are changed.
Options are set using check buttons, the Time Units combo box, the Name edit field, the Directory edit field and the Options edit field. The Command field displays options that are passed to the analyzer. The Name Edit field is used to name the simulation executable. The Directory edit field contains the simulator directory. The elaborator places the simulator in this directory. The interactive VCD+ history file is found in this directory, after the simulator is executed.
Setting Simulate Options Figure 9-23 Simulate Options Use the Simulate tab to set runtime simulator options for a workspace, project or design top. Options are set using check buttons and the Options edit field. The Command field displays options that are passed to the analyzer. The Command field also displays the name of the simulation executable, from the elaborate tab. Options can be modified for the workspace, projects, or design top.
Simulate runtime settings for a design top are determined as follows: Use the design top options if they are changed otherwise use the project options if they are changed otherwise use the workspace options. A black triangular icon indicates that options are changed. Setting Verilog Compile Options Figure 9-24 Verilog Compile Options Use the Compile tab to set VCS compile-time options. These options are passed to the elaborator as a string using the -verilogcomp option.
Options can be modified for the workspace or project. Separate sets of options are maintained for the workspace. Initially the two sets of options are identical. Compile settings for a Verilog project are determined as follows: use the project options if they are changed, otherwise use the workspace options. A black triangular icon indicates that options are changed. Setting Verilog Run Options Figure 9-25 Verilog Run Options Use the Verilog Run tab to set VCS runtime options.
Options can be modified for a workspace, project, or a design top. You can maintain separate sets of options for different workspaces, projects, and design tops. Initially the three sets of options are identical. VCS runtime options for a design top are determined as follows: use the design top options if they have been changed, otherwise use the project options if they have been changed, otherwise use the workspace options. A black triangle icon indicates that options have been changed.
Commands The Project Window commands can be executed from the GUI, the command line, or placed in a file and then executed. Definitions • filename – quoted, full path name of a file. For example “/tmp/ alu.vhd”. • librarydir, workspacedir – quoted, full path name of a directory. For example “/tmp/test”. • [ ] – fields inside brackets are optional. • {option | option1 | …} use one of the list of options.
add constant string Add constant to the active project. add top topname library libname [project projname] Adds design unit ‘topname’ to the active projects list of design tops. add [before | after projname] dependent projname1 Adds project ‘projname1’ to the active projects dependency list. The command has an option to place the project before or after ‘projname’. add filelist filename File filename contains a list of Verilog or VHDL source files that are added to the active project.
analyze from filename Analyzes the active projects list of source files beginning with ‘filename’. analyze file filename [filename1 [filename2…]] Analyzes the list of files for the active project. clean [all] Cleans the active projects libraries. The all option causes all dependent project libraries to be cleaned, in addition to the active project. All files in a library directory are removed, when a library is cleaned. clean {workspace | project} libname Cleans the indicated library.
delete library {workspace | project} libname Deletes ‘libname’ from the workspace or project. delete library verilog libname Deletes Verilog library libname from the active project. delete constant name Deletes a constant from the active project. elaborate Elaborates the active design top. exit Exits VirSim.
new library {workspace | project} libname [librarydir] Creates a new workspace or project library ‘libname’. If directory ‘librarydir’ is not specified, the library is created in the workspace or project directory using libname as the directory name. new library verilog libname pathname Creates a new workspace or project library ’libname.’ THe pathname can be either a quoted string or a character string. open workspace filename Opens workspace ‘filename’.
set option_type {workspace | project projname} string set option_type file filename string set option_type top topname string library libname [project projname] The set command uses the following definitions. option_type = {analyze | elaborate | verilog compile | verilog run} string = quoted string of options (“-time PS –directory /users/tmp”) You use this command to set analyze, elaborate, compile, and simulate options for the active project or workspace.
Files and Directories When the Workspace dialog is used to create a workspace, three new directories are created if they do not already exist, the workspace directory ./workspaceName, the project directory ./workspaceName/ PROJECT1 and a project library ./workspaceName/PROJECT1/ WORK. Saving the new workspace creates two new files, workspaceName.vws, which is in the workspace directory and PROJECT1.vpj, which is in the project directory.
By default, the interactive simulation file is placed in the project directory, unless you use the Options dialog to specify a different simulation directory. Moving Projects Saved paths in a workspace are relative to the workspace path. Thus, a user can easily move a workspace. For example, assume the workspace path is /users/hkrohn/risc and workspace name is ws_relative. The Project Window creates a new directory ws_relative and saves the workspace in /users/hkrohn/risc/ ws_relative/ws_relative.vws.
Using a Makefile To create a makefile for a project, make sure the project is active then select Create Makefile from the Tools menu. The makefile has four targets: all, analyze, elab and sim. When the makefile is created, a synopsys_sim.setup file is written to the workspace path, overwriting any existing setup file. To run the makefile, go to the parent workspace directory and execute the makefile that is contained in the project directory.
10 Time Units 1 This chapter describes how to set display unit and precision values for Time Units. The Time Scale Dialog allows you to configure display units and precision. Because the use of multiple history files may involve different units and precision, it may be necessary to configure the time scale. The Time Scale Dialog has two option menus (Display Unit and Display Precision) and four action buttons. See Figure 10-1, Time Scale Dialog.
Figure 10-1 Time Scale Dialog Display Unit Opens an option of valid time units (see Figure 10-2, Time Selection Menu). Click left on the Display Unit button to change the units that VirSim uses to display time. In the popup menu, click left on the desired time unit. The new time appears on the button face.
Display Precision (Button opens option menu) Opens an option menu of time precision values. From the popup menu, click left on the desired time precision selection. The new time appears on the button face. OK Changes time values to the unit and precision selected and closes the Time Scale Dialog. Apply Changes time values to the unit and precision selected and leaves the Time Scale Dialog open. Cancel Closes the Time Scale Dialog without saving any changes. Help Opens online help for the Time Scale Dialog.
Time Units 10-4
11 Radices 1 This chapter describes the use of the Radix Dialog to create, modify and delete custom radices. A custom radix is used to map vector values to user-defined text strings. For example, the logic value of 6’h04 may be mapped to a display string of HLT. By setting a signal’s radix (for example, in the Waveform Window Signal Value pane) to the new radix, all values of 6’h04 are displayed as HLT.
2. Position the mouse over the desired radix and release the mouse button. For radix value strings, each character represents one bit for binary, 3 bits for octal, and 4 bits for hex. Values are grouped from right to left (e.g. 6’b1xzzzz would be 6’hXz where X=1x and z=zzzz). For decimal values you will either get one non-numeric character or a decimal number representing all the bits.
Radix Dialog (Verilog only) Figure 11-2, Sample Radix Dialog shows the major areas of the Radix Dialog.
Radix Editor (Verilog only) The Radix Editor is used to create new Radices, edit the mappings of a Radix, rename a Radix, and delete a Radix. Radix List Displays all Radices that have been entered. Selecting a Radix Name in this area, then clicking Edit fills in all fields of the dialog with the values associated with this Radix and allows editing of the Mapping List for this Radix. A radix must be added to the Radix List with the Radix Add button before it can be edited with the mapping editor.
Mapping List Editor (Verilog only) The Mapping List Editor is used to create, update, and delete a Radix’s mapping of values to text strings. Mapping List Displays all mappings that have been entered. Selecting a mapping in this area fills in the fields of the dialog with the values associated with this mapping and allows editing of the mapping. Value Used to enter the value to be mapped. The value uses the Verilog number format and can be entered in binary, decimal, octal or hexadecimal.
Creating a User-Defined Radix (Verilog only) Use the following procedure to create a userdefined radix. 1. Click left in the Name field and type a radix name. 2. After the radix name, press Enter to add the name and enable Edit. 3. Click left on Edit or press Enter to edit the value mappings for the new Radix. 4. Type a value to be mapped and press Enter. 5. Type the text string to be displayed for the previously entered value and click left on Add or press Enter. 6.
12 Event Origin 1 The VirSim Event Origin feature (Verilog only) can help you to obtain precise information about the origin of a signal value change at a specific time. VirSim can display signals from all levels of a design hierarchy, including signals named differently but logically equivalent by connection through a module port. Whatever the signal data type and location in the hierarchy, there is a root cause for every signal change, referred to as its event origin.
Before Using Event Origin Event Origin requires that VirSim compile the Verilog source so it can obtain information about the design that is not available from the simulator or vpd file. Source and compile options used must match those that were used when the simulation was run. If the Verilog code has not already been compiled, you will be prompted for the source by the Load Sources Dialog box when Event Origin is selected.
The following is a list of objects for each window where event origin is allowed: • Waveform Window: Any waveform. • Register Window: Any signal. • Source Window: Any valid signal name. • Logic Browser: Any port, port instance, primitive terminal, or focus net. The starting time is the current time displayed for the given window unless you are in the Waveform Window. In this case, the time is determined by the position of the mouse cursor.
Figure 12-1 Event Origin Menu via the Context Sensitive Menu Automatically Select Window This option will select an existing window or create a new window. Primitive terminals and continuous assignments are displayed in a Logic Browser window. Procedural assignments are displayed in a Source Window. If this window is already open it will be used to display the Event Origin. Otherwise, a new one will be created and linked to the one you are in.
View In New Window This option will always create a new window. The type of window is determined as described in the Automatically Select Window option. If possible the new window will be linked to the same link group as the window where this option was selected. Otherwise the window will get a new link group. Display the Event Origin When the event origin is displayed in a Source Window, the instance containing the origin is placed in the EventOrigin instance group.
Choose from Multiple Drivers for an Event If you invoke the event origin function and there is more than one driver contributing to the event, the Multiple Drivers Dialog appears. This dialog shows all drivers contributing to an event and allows you to select an item for display. To display a driver, you can double leftclick on any of the three items for that driver, or you can single leftclick to select an item and use the OK or Apply buttons.
Event Origin Classifications The event origin depends on the type of signal, which can be classified into one of three major categories: 1. Register (reg, integer, time and real) variables, where the values are assigned by procedural statements within initial blocks, tasks, and functions. For these variables, the event origin is defined as the procedural statement that last modified the variable at the event time.
Debug with Event Origin For a register variable (reg, integer, time, or real), a value change always results from the execution of a procedural statement. For a signal declared as a net data type (wire, tri1, etc.), a value change usually results from a change in the output of a driving primitive gate or continuous assign statement (often in a different scope of the hierarchy from the net declaration itself), or may result from a procedural force statement.
Using the +vpddrivers option can aid in debugging problems with multiple drivers since you can see the values of each driver instead of only the resolved value (see Simulator Run-Time Options on page 17-24). For register variables, which are commonly assigned values by multiple statements throughout the course of a simulation, it is exceedingly difficult to determine which line of code correlates to a particular value change using standard debug facilities.
Event Origin 12-10
13 Building Buses 1 Use VirSim’s Bus Builder function to easily create and customize buses. User-created buses can contain signals as well as other user-created buses. Created buses then can be expanded, collapsed, and accessed in the Hierarchy Browser in the same way as vectors, memories, or records. Using Bus Builder Access the Bus Builder dialog from the Edit pull-down menu in either the Waveform or Register windows.
By dragging signals into the Bus Builder Dialog, the component signals are displayed in the dialog and the appropriate default values are set. You can modify any of the dialog settings and then click Ok to create the bus. All components of a bus must be signals from the same history file. Buses can not have components that are expressions. You can not edit a part select using the Bus Builder Dialog.
Bus Builder Dialog Figure 13-1, Bus Builder Dialog, shows the major areas of the Bus Builder Dialog. Figure 13-1 Bus Builder Dialog Name Buses can be named any legal name for the language (e.g., Verilog, VHDL). The bit ranges should not be specified as part of the name as they are added automatically (like any other vector). If no name is specified, by default buses are numbered consecutively within each design file (Bus1 through BusN).
File Specifies the file designator for the source history file. File designators are selected from the pull down menu next to the File field. As you switch files, the Bus Builder dialog lists only the buses associated with the selected file. You can not drag a component from one file into a bus created from another file. Scope When a bus is created, it is associated with a scope in the design. The bus will be displayed in the Hierarchy Browser Signal Select pane for its associated scope.
Components Lists the components of the currently selected bus. You can drag signals into the components list from the Waveform Window and Hierarchy Browser. Reverse Reverses the order of selected bus subcomponents. Delete (below Components list) Deletes selected components. Hide Bus components are displayed in the Hierarchy Browser’s Signal Select list only as part of that bus. When Hide is off, signals are displayed in the Signal Select window both individually and as components of the bus.
Delete Deletes an existing bus. Use the delete key to delete components of a bus. Help Opens on-line help for the Bus Builder Dialog. Using Buses in the VirSim Windows Logic Browser The Logic Browser can not show a bus made up of different signals. When a bus is loaded into the Logic Browser, the Connection Dialog allows you to select which component you want to track. Source Window When a bus is dropped into a Source Window it is displayed in the bus’ scope.
Hierarchy Browser When you create a bus it appears in the Hierarchy Browser Signal Select pane when its associated scope is selected. Click on a bus in the Hierarchy Browser Signal pane to expand it. When expanded, a bus shows the components which, if they are not scalars, can be further expanded. If a bus was created with Hide selected, components that make up that bus are displayed in the Hierarchy Browser only as part of the bus. The individual components are hidden from view in the Hierarchy Browser.
Waveform Window Double click on a bus name in the signal name pane to expand it and show its individual components. Double click again to collapse a bus. Figure 13-3 Buses in the Waveform Window Expanded bus. Collapsed bus.
14 Markers 1 Markers function as user-defined aliases for specific simulation times. They are used to bookmark specific points in simulation time in VirSim windows so that specific simulator times can be easily accessed. How VirSim Uses Markers Markers are displayed in the Waveform Window and can be used to set time in the Waveform, Register, and Source Windows. If any of these windows are linked, setting time to a marker in one window changes the time displayed in all linked windows.
Figure 14-1 Marker in Waveform Window Marker knownOk set Markers 14-2
Markers Dialog The Markers Dialog is used to create, edit, or delete markers (see Figure 14-2, Markers Dialog). Figure 14-2 Markers Dialog The Markers Dialog has a Markers list, a Name text field, a Time text field, a Save Zoom toggle button, and five action buttons. Markers (List) Displays the names of all defined markers. When you select a marker name in this area, all fields of the Marker Dialog display values associated with that marker.
Name (Text Field) Used to enter the name of a new or existing Marker. The name may only contain alpha-numeric characters and underscores and must begin with an alphabetic character. Time (Text Field) When the Marker Dialog is opened, the Time field contains the time at C1. If you have multiple Waveform Windows open, the last placement of C1 is displayed. You can use the C1 time or enter a new time.
Help Opens on-line help for the Markers Dialog. Opening the Marker Dialog In the menu bar, click left on Edit and choose Markers. Creating a Marker To create a marker in the Markers Dialog: 1. Click left in the Name field and enter a Marker name. 2. Click left in the Time field and enter a simulation time or default to current C1 time. 3. If you want to save the zoom factor, click left on the Save Zoom toggle button. A pressed button indicates that the zoom factors will be saved. 4.
Editing a Marker To edit a marker in the Markers Dialog: 1. Click left in the Name field and enter a marker name. 2. Click left in the Time field and enter a simulation time. 3. To save the zoom factor, click left on the Save Zoom toggle button. 4. Click left on the Update button to update edit changes to the marker. Setting a Marker The following procedure explains how to set a marker. You can set a marker in either the Waveform Window, Register Window, or Source Window. 1.
2. Click left on a marker name in the list. All linked windows display simulation data at the time designated by the marker.
Markers 14-8
15 Expressions 1 Expressions are used to create pseudo signals and search for events. Expressions are created with Verilog or VHDL expression syntax and operators. You can search for events that are either level sensitive, edge-triggered, or a combination of both. Expressions can be used for searches in the Waveform Window and results can be displayed in both the Waveform and Register windows.
Expressions Dialog The Expressions Dialog is used to create or edit an expression. Figure 15-1, Sample Expressions Dialog, shows an example of an expression definition in the Expressions Dialog. The expression must have a name and an expression or trigger statement that defines the search criteria. In the example, the expression searches the opcode signal for a signal value of 3’h4.
The Expressions Dialog has a Breakpoints list, a Name field, a reference File designator menu, a reference Scope field, a Trigger field, an Expression field, and five action buttons. Breakpoints Displays the names of all expressions that have been entered and indicates if the expression is being used for searching in the currently active breakpoint group. • Use the Breakpoint icon to select among the defined breakpoint groups.
File Specifies the file designator for the file associated with signal name. File designators are selected from the pull-down menu next to the File field. Not all file types support expressions. The File field displays only those open files that support expressions. If the Trigger or Expression field contains the file designator, the File field is ignored (see Scope below). Scope Specifies a scope from which signal names in the Trigger and Expression fields are referenced.
VHDL alu_out(7 Downto 0)===accum(7 Downto 0) When the expression does not include the full hierarchy name, VirSim looks for all signals in the referenced scope. If you drag in a signal from another window, VirSim automatically adds the file designator and full hierarchy name to the expression. Verilog Trigger The trigger is edge-sensitive. The trigger can use two Verilog edge operators: posedge and negedge or, if the trigger uses just the signal name, any transition of that signal satisfies the expression.
Done Closes the Expressions Dialog. Add Creates a new expression and displays it in the Breakpoints List. Update Updates edit changes to an existing expression. Delete Deletes an existing expression. Help Opens on-line help for the Expressions Dialog. Entering Signal Names To mix signals from different open files, the file designator must be prefixed to the signal name. For example, for Verilog a file designator of V2 and a signal name of test.risc1.reset would be entered as: $V2$test.risc1.
• Signals that have the same file designator as the File option do not need the designator added as a prefix to the hierarchy name. • Signals from different file types (for example, VCD+ and EPIC) cannot be mixed in the same expression. Opening the Expressions Dialog In the menu bar, click left on the Edit menu and choose Expressions. Creating Expressions To create a new expression: 1. Click left in the Name field and enter an expression name. 2. Choose a file designator from the File pull-down menu.
4. Click left in the Trigger field and enter an edge-triggered expression. (If the Expression field is used, this field is optional.) 5. Click left in the Expression field and enter a level sensitive expression. (This field is optional if the Trigger field is used.) For more details on how these expressions behave, see the level sensitive and edge-triggered search examples later in this chapter. 6.
Displaying Expressions To display the signal generated by an expression, drag the expression name from the Expressions Dialog to the Signal Name Pane of the Waveform Window or to the Register Window. A $E$ prefix is added to the expression name and a $T$ prefix is added to the trigger name. The expression signal indicates level sensitive changes in the waveform. Figure 15-2, Displaying Expressions Example, shows how expressions are displayed. Figure 15-2 Displaying Expressions Example 1.
Trigger Types The trigger expression can specify the negative edge, positive edge, or both edges of a signal to trigger on. To specify the edge to trigger on, the trigger expression should include the appropriate eventcontrol statement (see Table 15-1, Trigger Expressions). Table 15-1 Trigger Expressions Trigger Expression Signal Edge clkt Trigger on both negative and positive edge. Verilog: negedge clkt Trigger on negative edge.
Searching with Expressions There are two search arrow icons in the Waveform Window toolbar that allow you to search forward or backward from the C1 cursor. Their search parameters are set by activating the desired expressions or breakpoint groups in the Expressions Dialog. Multiple expressions can be activated concurrently in any breakpoint group, but only one breakpoint group may be active per window link.
Level Sensitive Searches Level sensitive expressions search for when events defined in the expression first become true. These expressions do not have a trigger. Level Sensitive Searching Example: Time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Sig A Sig B Result Stop 2 Stop 1 S1 Stop 3 The search criteria is A low and B high. The expression searches backwards from S1 at time 8. VirSim stops at time 4 (Stop 1) the first time where the criteria became true.
Edge-triggered Searches Edge-triggered expressions search for the specified edge, then check the level sensitive condition designated in the expression. The signal generated for trigger expressions is a vertical arrow for each time the trigger condition occurs.
• Searching forward from S1 for B positive edge produces Result 1. • Searching backward from S2 for B negative edge produces Result 2. • Searching forward from S1 for A or B produces Result 3.
16 VirSim Setup 1 You can individually customize VirSim by defining settings for certain VirSim features and screen colors in the appropriate X Resource file or Windows NT Registry. X Resources enables the user to run VirSim for UNIX with Motif™. VirSim settings are defined in the VirSim specific application defaults file named VirSim.
Caution: Before You Start Whenever you change the X Resource file, always make a backup copy. For NT systems, use the Export feature of the Registry editor to back up Registry settings prior to editing. Use the existing VirSim NT Registry or X Resource file as the basis for changes to settings to assure that the formatting is correct. Changes are not checked for validity and may have adverse affects.
X Resources X Resources enables the user to run VirSim for UNIX with Motif™. VirSim settings are defined in the VirSim specific application defaults file named VirSim. For information on setup for X Resources, see the section Settings for X Resources on page 16-15. To modify selected settings on a per-user basis, add the selected variables from the $VIRSIMHOME/appfiles/VirSim file into your ~/.Xdefaults file and modify the settings. Then execute xrdb -m ~/.
Figure 16-1 VirSim Setup in Registry Summit Design Version 4.0 Common Settings This section lists VirSim settings that you may wish to change.
Note: In X Resources, the variable name is preceded by the prefix VirSim. For example: VirSim.lbModCellColor: Khaki4 VirSim*lbMainFormFM*lbGraphicsDA.background: Black Different platforms use different values for variables. Only X Resources can use color names as values. MainWin and Windows NT require a hex value to identify the color. For example: In X Resources: rwSignalValueForegroundColor: WhiteSmoke In Windows NT rwSignalValueForegroundColor: #f5f5f5 WindowsNT uses the RGB format #RRGGBB.
Numeric and Vector Separator Settings The vectorSeparator variable sets the grouping separator for binary, octal, decimal, or hexadecimal vector values. Legal separators are ",", "_", and ".". With the separator set to "_" and a spacing of 2, a 32-bit value of all-ones is displayed as hexadecimal ff_ff_ff_ff. vectorSeparator: _ The spacing variables listed below set the number of digits between each vector separator for each radix. A value of zero turns off the separator for that radix.
Warning if Configuration Is Modified The warnIfConfigurationModified variable controls the display of the warning dialog: Current configuration has changed. VirSim can be configured to display the dialog when you exit without saving the configuration. When True, the dialog displays when the configuration has changed. The default value is False.
User Defined Unique Event Colors (Verilog only) Table 16-1, User Define Unique Event Colors, shows settings for colors that signify the severity of unique events. Table 16-1 User Define Unique Event Colors Item Variable Error Unique Event dsiColor67: red Warning Unique Event dsiColor68: yellow Information Unique Event dsiColor69: green Waveform Window Settings Table 16-2 and Table 16-3 show settings for the Waveform Window. Colors for dsiColor01 to dsiColor25 appear in the Waveform Style Dialog.
Item Waveform background color This color is used as background for signals or for highlighting signals if one of these modes is enabled. Enable waveform zoom centered around C1. When True, the Waveform Window zooms in centered on cursor C1. When False, the Waveform Window zooms in on the center of the screen Enable waveform highlight line. When True, waveforms for signals that are selected are highlighted as well as the signal name. When False, waveforms are not highlighted.
Source Window Settings Table 16-4 shows settings for the Source Window.
Hierarchy Window Settings Table 16-5, and Table 16-6, show settings for the Hierarchy Window.
Logic Browser Settings Table 16-7 shows settings for the Logic Browser. Windows NT format uses hex values to represent colors. Table 16-7 Item Variable Logic Browser text font ibTextFond: fixed Maximum number of characters in displayed values Increasing this value increases the size of the layout lbwValMaxChars: 10 When True, shows value of base spec (for example, .
Register Window Settings Table 16-8 shows settings for the Register Window: Table 16-8 Settings for Register Window Item Variable Color of label rwLabelForegroundColor: Khaki Color of label background rwLabelBackgroundColor: Khaki Color of signal rwSignalValueForegroundColor: WhiteSmoke Color of signal foreground rwSignalValueBackrgoundColor: Black Color of box rwBoxForegroundColor: Color of line rwLineForegroundColor: Color that indicates a signal change value rwLSignalValueChangedColor: H
Interactive Window Settings Table 16-9, Settings for Interactive Window, shows settings used to change the default behavior of the Invocation Dialog and simulation start-up in interactive mode. These resources are shown below with their default values. There are specific defaults for each supported simulator (for example, vxlDefaultSimulator, and vcsDefaultSimulator). There is a specific iwbuttons file for each type of simulator supported (for example, iwbuttons.vxl).
Table 16-9 Settings for Interactive Window (Continued) Item Variable Force time synchronization for all windows Default is true. Changing the setting to false allows you to move backwards in time in all windows except the Source Window without unlinking from SIM forceSimLinkSync: true Settings for X Resources By default, VirSim automatically uses the X Resource file installed with VirSim.
MWM No additional setup required. OLWM Set the following X resource: olwm.MinimalDecor: ToolTipWindow You may add ToolTips to an existing minimal decorations setting. For example: olwm.MinimalDecor: xclock ToolTipWindow X Color System The following briefly describes the X color system and how VirSim uses this system: • Color Model • Switching Color Maps For more details on this complex subject, refer to the Xlib Programming Manual, listed in the Preface.
visual The visual determines if the system can use color or shades of gray, and if the colors are fixed (read-only) or changeable (read-write). VirSim uses the default visual defined by the X server. colormap The colormap designates the colors available on a display. In most color systems, the colormap contains up to 256 color cells, each of which may contain a unique color. Each application you run typically uses up some of the available color cells.
This option requires that the user explicitly switch between color maps. Other resource options include the keyboard and pointer. These options typically result in unacceptable screen flashing and color changes. Once you have set the colormapFocusPolicy (and restarted mwm), you can change color maps using the mwm Window Menu Button (upper left corner of the border). The menu that pops up should have a color option that initiates installation of the color map.
17 VCD+ (vpd) File Generation 1 VCD+ files, also referred to as vpd files, are binary files containing simulation history data. They are created from $vcdplus system tasks in verilog simulation and by default are named vcdplus.vpd. System tasks include the vcdplus name in the tasks, for example, $vcdpluson, $vcdplusoff, $vcdplusfilename, etc. These system tasks are entered in Verilog code or at the Interactive Window command prompt. Refer to System Tasks and Functions.
For Verilog simulators other than VCS, the correct VCD+ interface must be linked to the simulator in order to produce VCD+ files. This linkage is done as part of VirSim installation and new simulator installation. Refer to the VirSim Installation Notes (separate from this manual). The Scirocco simulator has a built in interface to create VCD+ files. Refer to the Scirocco Reference Manual for details. Advantages of VCD+ VCD+ offers significant advantages over the standard VCD ASCII format.
VCD+ has command-line options that affect performance and file sizes. These options, presented in subsequent sections, allow the user to run VCD+ in the most effective manner. To optimize simulator performance and VCD+ file size, consider the size of the design, the RAM memory capacity of the user workstation, swap space, disk storage limits, and the methodology used in the project. Note: For simulators other than VCS, the VirSim PLI must be linked to your simulator executable.
$vcdpluson The $vcdpluson task begins recording signal value changes of the specified scope(s) or signals to the VCD+ history file. Syntax: $vcdpluson (level,scope*,signal*); The descriptions of the task arguments is as follows: level Specifies the number of hierarchy scope levels to desend to record signal value changes (a zero value records all scope instances to the end of the hierarchy; default is all). scope Specifies the name of the scope in which to record signal value changes (default is all).
Example 3: Record two levels of signal value changes: Scope (test) and one level below. $vcdpluson(2, test); $vcdplusoff The $vcdplusoff task stops recording the signal value changes for specified scope(s) or signal(s). Syntax: $vcdplusoff (level,scope*,signal*); Example 1: Turn recording off. $vcdplusoff(); Example 2: Stop recording signal value changes for scope test.risc1.alu1. $vcdplusoff(test.risc1.alu1); Example 3: Stop recording signal value changes for test.risc1.alu1 and test.risc1.instreg.d1.
Note: The $vcdpluson/off commands increment/decrement an internal counter for each signal to be recorded. If multiple $vcdpluson commands cause a given signal to be saved, the signal will continue to be saved until an equivalent number of $vcdplusoff commands apply to the signal. This approach allows multiple users to instrument the Verilog sources to meet their individual recording requirements for the same simulation run.
$vcdplusautoflushoff; $vcdplusfile The $vcdplusfile specifies a VCD+ file name. If not specified, VCD.vpd is default for VHDL and vcdplus.vpd is default for Verilog. Syntax: $vcdplusfile ("filename"); $vcdplusclose The $vcdplusclose terminates all tracing, flushes data to file, closes the current VCD+ file, and resets all default settings.
Syntax for Specifying MDAs The following syntax is required for specifying MDAs using the $vcdplusmemon, $vcdplusmemoff, and $vcdplusmemorydump system tasks: system_task( Mda [, dim1Lsb [, dim1Rsb [, dim2Lsb [, dim2Rsb [, ... dimNLsb [, dimNRsb]]]]]] ); The description of the syntax is as follows: system_task Name of the system task (required): $vcdplusmemon, $vcdplusmemoff, or $vcdplusmemorydump. Mda This argument specifies the name of the MDA to be recorded. It must not be a part select.
dim2Lsb This is an optional argument with the same functionality as dim1Lsb, but refers to the second dimension. dim2Rsb This is an optional argument with the same functionality as dim1Rsb, but refers to the second dimension. dimNLsb This is an optional argument that specifies the left bound of the Nth dimension. dimNRsb This is an optional argument that specifies the right bound of the Nth dimension.
Running VCS In order for VCS 7.0 to provide MDA data using the $vcdplusmemon and $vcdplusmemoff tasks, the VCS +memcbk and the +v2k switches are required. VCS command line example: vcs -R -I mda.v +memcbk +v2k MDA declaration example: reg [1:0] mem [3:0] [6:4]; In order for VCS 7.0 to provide memory data, the VCS +memcbk switch is required. VCS command line example: vcs -R -I mda.
Figure 17-1 Diagram of example: reg [7:0] mem01 [1:3] [4:6] [7:9] Dimension 2 Dimension 1 5 4 [76543210] 1 6 Dimension 3 [76543210] [76543210] [76543210] [76543210] [76543210] 2 7 [76543210] [76543210] [76543210] 3 1 [76543210] [76543210] [76543210] 8 [76543210] [76543210] [76543210] 2 [76543210] [76543210] [76543210] 3 [76543210] 1 [76543210] [76543210] 9 [76543210] [76543210] [76543210] 2 Note: Unlimited dimensions can be used.
$vcdplusmemon( mem01 ); // Records all elements of mem01 to the VPD file. addr1L = 2; $vcdplusmemon( mem01, addr1L ); // Records elements mem01[2][4][7] through mem01[2][6][9] The elements highlighted by the demonstrate the previous example.
addr1L = 2; addr1R = 3; $vcdplusmemon( mem01, addr1L, addr1R ); // Records elements mem01[2][4][7] through mem01[3][6][9] The elements highlighted by the demonstrate the previous example.
addr1L = 2; addr1R = 2; addr2L = 5; $vcdplusmemon( mem01, addr1L, addr1R, addr2L ); // Records elements mem01[2][5][7] through mem01[2][5][9] The elements highlighted by the demonstrate the previous example.
addr1L = 2; addr1R = 2; addr2L = 5; addr2R = 6; $vcdplusmemon( mem01, addr1L, addr1R, addr2L, addr2R ); // Records elements mem01[2][5][7] through mem01[2][6][9] The elements highlighted by the demonstrate the previous example.
addr1L = 2; addr1R = 2; addr2L = 5; addr2R = 5; addr3L = 8; addr3R = 8; $vcdplusmemon( mem01, addr1L, addr1R, addr2L, addr2R, addr3L ); $vcdplusmemon( mem01, addr1L, addr1R, addr2L, addr2R, addr3L, addr3R ); // Either command records element mem01[2][5][8] The element highlighted by the demonstrates the previous example.
Using the $vcdplusmemorydump Task The $vcdplusmemorydump task dumps a snapshot of memory locations. When the function is called, the current contents of the specified range of memory locations are recorded (dumped). The complete set of multi-dimensional array elements to be dumped can be specified only once. You can specify multiple element subsets of an array using multiple $vcdplusmemorydump commands, but they must occur in the same simulation time.
• Source Statement System Tasks How to Capture Verilog Source Statement Execution Figure 17-7 shows three ways to capture source statement execution. Figure 17-7 Three Ways of Capturing Verilog Source Statement Execution 1. For viewing in post simulation mode, include $vcdplustraceon. Source File (.v) // $vcdpluson; $vcdplustraceon; VCD+ File Simulator PLI Source Execution Data 2. For viewing in post simulation mode, enter the appropriate trace task at the simulator command line.
Source Statement System Tasks • $vcdplustraceon • $vcdplustraceoff Note: For VCS you also must supply the -line option when creating the simulator executable. $vcdplustraceon The $vcdplustraceon task turns on line tracing. Line trace information is saved in the VCD+ file. Syntax: $vcdplustraceon (,*); where level specifies the number of hierarchy scope levels to descend to record line tracing (a zero value records all line tracing to the end of the hierarchy; default is 1 level).
where level specifies the number of hierarchy scope levels to desend to stop recording line tracing (a zero value stops the recording of all line tracing to the end of the hierarchy; default is 1 level). System Tasks for Capturing Delta Cycle Information The following VCD+ system tasks are used to capture and display Delta Cycle information in the Waveform Window.
Note: Delta Cycle collection can start only at the beginning of a time sample. vcdplusdeltacycleon must precede the vcdpluson command to ensure that Delta Cycle collection will start at the beginning of the time sample. $vcdplusdeltacycleoff This command turns off reporting of Delta Cycle information starting at the next sample time. Glitch detection is automatically turned off when $vcdplusdeltacycleoff is executed unless you have previously used $vcdplusglitchon/off.
$vcdplusglitchon The $vcdplusglitchon task turns on checking for zero delay glitches and other cases of multiple transitions for a signal in one sample time. Glitch detection is automatically turned on when $vcdplusdeltacycleon is executed unless you have previously used $vcdplusglitchon/off. Once you have used $vcdplusglitchon/off, VirSim allows you explicit control of glitch detection. When a glitch is detected for a signal, a zero delay glitch event is recorded.
$vcdplusevent The $vcdplusevent task allows the user to record a unique event for a signal at the current simulation time unit. These events can be displayed in the Waveform Window, Logic Browser, and Register Window. There can be a maximum of 244 unique events, plus the pre-defined "glitch" event which is automatically generated by the pli, and a "Too many events" event which all unique events beyond the allowed 244 will be automatically named.
Simulator Run-Time Options Specific command line options are used to generate VCD+. These options are used to set the RAM buffer size, provide the VCD+ default file name, specify the VCD+ file size, ignore file calls, check licenses, and control what information is stored.
Note: The buffer size automatically is increased as needed to comply with the above limit. +vpdfile to set the output file name The vpdfile command allows specification of the output file name. Syntax: +vpdfile+xxx Where xxx is the VCD+ filename (default is vcdplus.vpd). You must include the full file name with the .vpd extension. +vpdfilesize to control maximum file size The +vpdfilesize command creates a VCD+ file, which has a moving window in time while never exceeding a specified file size nn megabytes.
+vpdignore to ignore $vcdplus calls in code The +vpdignore command instructs the simulator to ignore any $vcdplusxx calls and license checking. By default, the simulator checks out a VCD+ PLI license if there is a $vcdplusxx in the Verilog source. In some cases, this statement is never executed and VCD+ PLI license checkout should be suppressed. The +vpdignore command performs the license suppression.
Syntax: +vpdports +vpdnocompress to bypass data compression By default, VCD+ compresses data as it is written to the VCD+ file. The user may disable this feature by supplying the +vpdnocompress command line option. Syntax: +vpdnocompress+ vpdnostrengths to not store strength information By default, VCD+ stores strength information on value changes to the VCD+ file. Use of this option may lead to slight improvements in simulator performance.
Advantages of Separating Simulation from Analysis When a problem is debugged, traditionally, interactive debugging has required a user to occupy one simulator license while simulating, thinking, resimulating, thinking... Simulating once and efficiently storing as much data as possible allows for a more efficient debug methodology: • The simulator is used once and then released to others. • The analysis tool can go both forwards and backwards in time and analyze the complete set of data.
Figure 17-8 Example Definition of VCD+ Signal Capture (Recording) fork #0 $vcdplusglitchon; #100 $vcdpluson (1,B); #200 $vcdplusdeltacycleon; #200 $vcdpluson (1,C); #300 $vcdplusdeltacycleoff; #300 $vcdplusoff (1,B); #500 $vcdplusoff (1,C); #600 $vcdpluson (D.clk); #700 $vcdplusevent (D.clk, "UserEvent", "IS"); #900 $vcdplusoff (D.
• Create a task in source: task sigon_instreg; begin $vcdpluson(test.risc1.instreg); end endtask Then call the task from source code. initial sigon_instreg; Or, enter the task name at the simulator interactive prompt. C1> sigon_instreg; • Using a shell command argument to enable task execution: vcs -f run.f +signal_on initial if ($test$plusargs("signal_on")) sigon_instreg; task sigon_instrg; begin $vcdpluson(test.risc1.
VCD+ On/Off PLI Rules • VCD+ On/Off PLI system tasks follow these basic rules. • vcdpluson and vcdplusoff tasks may be inserted in source code or entered at the simulator interactive prompt. • vcdpluson and vcdplusoff tasks accept one level but multiple scopes/signals as arguments. • vcdpluson and vcdplusoff tasks when applied to the same signal(s) toggle the recording on and off. The count for each signal is accumulative; (+,-). ..on/..on/..off leaves the signal recording on.
Performance Tips The following tips explain how to manage performance of the simulator and VCD+. • Normally you should save data for all signals that you may require for analysis. The time range should be such that it very likely contains the origination of the problem. • Generally, the bigger you make the RAM buffer size (via the +vpdbufsize option), the faster the simulation will complete. The effects are so dependent on circuit and activity that rules-of-thumb do not apply.
• Saving statement execution for an entire design can increase simulation time by eight times or more. To limit performance degradation, limit the use of statement saves to certain scopes. Instead of saving statement execution from time 0, turn on tracing just prior to the time of a suspected problem and off after that time. • The file size increases from 200 to 500 percent when saving line execution data. • Glitch detection and delta cycle may significantly increase the size of the vpd file.
VCD+ (vpd) File Generation 17-34
18 Translating VCD and VCD+ 1 This section covers two optional utilities: vcd2vpd and vpd2vcd. These utilities convert VCD or EVCD files to VCD+ files or VCD+ files to VCD files. VirSim ships with a built in vcd2vpd utility so one could open a VCD file from within VirSim. Note: These two utilities apply to Verilog only.
vcd2vpd Command The command performs one of the following operations: • Converts a standard VCD file to a VCD+ file (.vpd extension). • Converts an LSI Logic EVCD file with $port definitions and associated data to a VCD+ file. For information on the mapping of EVCD signals to VCD+ signals, see Table 18-1, Table 18-2, and Table 18-3.
EVCD Options +dut+ Modifies the string identifier for the Device-Under-Test (DUT) half of the split signal. The default name is DUT. +tf+ Modifies the string identifier for the Test Fixture (TF) half of the split signal. The default name is TF. +indexlast Appends the bit index of a vector bit as the last element of a name.
Mapping EVCD to VCD+ Signals In the conversion, each EVCD port maps to two new VCD+ signals: a Test Fixture (TF) signal and a Device-Under-Test (DUT) signal. Table 18-1, Table 18-2, and Table 18-3 show the mapping of values in the EVCD file to values in the VCD+ file.
Table 18-3 Mapping in Bidirectional Mode (Continued) EVCD Value Maps To VCD+ TF To VCD+ DUT F tr-state (TF and DUT unconnected) HiZ HiZ A unknown (TF 0 and DUT 1) St0 St0 a unknown (TF 0 and DUT x) St0 StX B unknown (TF 0 and DUT 0) St1 St0 b unknown (TF 1 and DUTX) St1 Stx C unknown (TF X and DUT 0) StX St0 c unknown (TF X and DUT 1) Stx St1 f unknown (TF and DUT tri-stated) Smz Smz vpd2vcd Command The vpd2vcd command converts the binary VCD+ file to the standard VCD file in AS
Options -h Translate hierarchy information only -m Give translation metrics during the conversion -s Allow sign extension for vectors. Reduces size of +morevhdl Translate VHDL types that are not directly mappable to verilog types. These VHDL types are in addition to the ones that are directly mappable. See VHDL Mapping. +ignoredelta Leave delta cycle information out of the translation.
VHDL Mapping The following VHDL constructs are mapped for translation from VPD to VCD. Additional VHDL constructs can be pseudo mapped using the +morevhdl switch (see VHDL Mapping). Using the +morevhdl switch allows you to view the additional VHDL constructs, but there may be inaccuracies in the pseudo mapped signals, and you cannot translate a VCD file that uses pseudo mapping back into a VPD file.
Translating VCD and VCD+ 18-8
19 Viewing OpenVera Assertions 1 This chapter introduces OpenVera Assertions and explains how to view them in VirSim.
Introducing OpenVera Assertions OpenVera Assertions (OVA) provides a clear, easy way to describe sequences of events and facilities to test for their occurrence. With clear definitions and less code, testbench design is faster and easier. And you can be confident that you are testing the right sequences in the right way. OpenVera Assertions is a declarative method that is much more concise and easier to read than the procedural descriptions provided by hardware description languages such as Verilog.
• Tests Verilog, VHDL, and mixed-HDL designs using the VCS and Scirocco simulators. • Automatically tests and reports results on all defined sequences. You just write the definitions. • Produces results that can be viewed with VirSim. • Can be monitored and controlled as part of a Vera testbench. How Sequences Are Tested Testing starts with a temporal assertion file, which contains the descriptions of the sequences and instructions for how they should be tested.
// Define an assertion: assert c_normal_s : check(t_normal_s, "Missed a step."); endunit /* Bind the unit to one or more instances in the design. */ // bind module cnt : // All instances of cnt or bind instances cnt_top.dut : // one instance. 4step start_4 // Name the unit instance. #(4) // Specify parameters. (m_clk, outp); // Specify ports. When the temporal assertion file is compiled and run with a simulator, the assertions are continuously tested for the duration of the simulation.
Viewing OVA Results in VirSim You can view OVA results in VirSIm from a VCS, Scirocco, or MixedHDL simulation run if a design is compiled with the -ova_debug or -ova_debug_vpd option. To view the assertion results, start VirSim and load the VPD file from the simulation run. Then go to the scope where the assertion is declared. The scope shows the assertion plus design signals and OVA variables related to the assertion. Drag the assertion and any other signals of interest into the Waveform Viewer.
An assertion shows each evaluation attempt as a colored box: green for success, red for failure, gray for incomplete. A solid, gray bar from the beginning of the simulation time indicates that no attempts have started yet. The left edge of the box marks the start time of the attempt. However, because attempts can overlap, the right edge is not meaningful and the length of the box does not represent the length of the sequence. (The right edge is just the beginning of the next attempt.
Figure 19-4 VirSim Display with Expanded Assertion Results Markers mk_2 and mk_1 Expanded assertions Data for one assertion attempt (started at time 170 but never finished) Figure 19-4 shows four assertions that have been expanded. The vertical markers, mk_1 and mk_2, highlight typical display elements. Marker mk_1 (at time tick 250) is at the beginning of an attempt on each of the first three assertions. Assertion c_a_vector shows a success that started and ended at 250.
Assertion c_inc_pc_2_fetch, at marker mk_2, shows a display of overlapping attempts. The first box for the assertion shows an attempt that started at 10 and ended at 60. The second box shows an attempt that started and ended at 40—after the first attempt started but before it ended. Assertion c_inc_pc_2_fetch also shows truncated start/end times marked with asterisks. You can also see that this assertion was evaluated with a different clock than the other three assertions.
A Waveform Defaults 2 Waveform Defaults A-1
Waveform Style: Verilog Defaults Table A-1, Verilog Waveform Defaults, describes the waveform display characteristics of Verilog signals in the Waveform Window. The Waveform Style Editor lets you assign waveform characteristics to a configuration. When setting Verilog styles, consider how the following miscellaneous Waveform display characteristics apply to Verilog. • Vector values are displayed inside the signal confines.
Table A-1 Signal Value Verilog Waveform Defaults (Continued) Encoding Type Default Color Waveform Display Resource Variable Large 0 Scalar Blue line at bottom eDsiColor13 Pull 0 Scalar Blue line at bottom eDsiColor13 Strong 0 Scalar Blue line at bottom eDsiColor13 Supply 9 Scalar Blue line at bottom eDsiColor13 Small 1 Scalar Green line at top eDsiColor18 Medium 1 Scalar Green line at top eDsiColor18 Weak 1 Scalar Green line at top eDsiColor18 Large 1 Scalar Green
Table A-1 Verilog Waveform Defaults (Continued) Signal Value Encoding Type Default Color Waveform Display Resource Variable Data Vector Aqua open box with value dsiColor14 Some X Vector Red open box with value dsiColor23 Some Z Vector Gold open box with value dsiColor06 All X Vector Red filled box dsiColor23 All Z Vector Gold line at midpoint dsiColor06 Any Value Real Cyan open box with value dsiColor15 Any Event Event Green vertical arrow dsiColor18 All X Memory
Style Editor settings are saved in the configuration file. You can also modify the waveform color by modifying the resource variables. See Chapter 16, VirSim Setup for more information about modifying resources.
Waveform Style: EPIC Defaults The following tables describe rules for waveform display of EPIC values in the Waveform Window. The value strings also apply to the Register Window. The Waveform Style Editor identifies signals by the Signal Value listed in the table.
Table A-4 EPIC Vector Waveforms Vector Value Signal Type Signal Value Waveform Display All unset All ? All UNSET Solid gray box All high impedance All L,H, or X All Hi-Z Solid gray box Some undefined All U or Y Some UNDEF Solid red box Some unset At least one ? and any other value Some UNSET Gray open box with string Some high impedance ‘No ?, at least one L, H, or X and any other value Some Hi-Z Gold open box with string Some undefined No ?, L, H, or X.
Waveform Defaults A-8
Index Symbols -I 2-4 -PP 2-4 -RPP 2-6 $vcdplusautoflushoff 17-6 $vcdplusautoflushon 17-6 $vcdplusdeltacycleoff 17-21 $vcdplusdeltacycleon 17-20 $vcdplusevent 17-23 $vcdplusflush 17-6 $vcdplusglitchoff 17-22 $vcdplusglitchon 17-22 $vcdplusoff 17-5 $vcdplustraceoff 17-19 $vcdplustraceon 17-19 +simargs 2-10, 2-15 +vcdfile 2-6 +vpdbufsize 17-25 +vpddrivers 17-26 +vpdfile 17-25 +vpdfilesize 17-25 +vpdignore 17-26 +vpdnocompress 17-27 +vpdnostrengths 17-27 +vpdports 17-27 A Adding signals to groups 3-9 Align Co
C E C1 Cursor 4-5, 4-16 Searching with expressions 15-11 C2 Cursor 4-16 Clear Breakpoints Command 5-12, 5-23 cnt.
Synopsys Technical Support Center ixxvii hexSpacing 16-6 Hierarchical Resolution 6-8 Hierarchy navigation 3-6 Hierarchy Browser Adding Signals to Groups 3-9 Definition 1-9 Menu Bar 3-13 History file Closing from GUI 2-16 Displaying open 3-6 Multiple files, opening 2-23 Opening from GUI 2-16 Reopen after updating 3-6 Single file, open 2-22 Switching between open designs 3-6 HR 6-8 I -I 2-4 Ignoring Calls and License Checking 17-26 information, other sources i-xxv Instance Group Edit Dialog Options 5-14 Inst
Multiple nets in Logic Browser 6-30 N NA 6-8 NA text 6-8 Navigating a design Hierarchy navigation 3-6 Searching for signals 3-7 Selecting Signal Range 1-18 Next View 6-21 NL 6-7 numericSeparator 16-6 O octalSpacing 16-6 OpenVera Assertions benefits 19-2 flow 19-5 introduction 19-2 overview 19-3 OpenVera Assertions, viewing 19-1 OVA, see OpenVera Assertions -ova_debug option 19-5 -ova_debug_vpd option 19-5 P -PP 2-4 Precision, configure 10-3 Previous View 6-21 Project Window 9-1 Active library 9-5 Adding
File Commands 7-16 Graphics Menu 7-18 Menu Bar commands 7-15 Signal properties CSM 7-9 Tool bar 7-9 Two-button mouse 7-1 View Editor Dialog 7-4 Views Command 7-17 Window areas 7-1 results 19-5 -RPP 2-6 S Search pane 3-2 Searching Events, searching for 4-44 Filters, using 3-7 Signal values, searching for in Wave Window 4-17 Signals, searching for 3-7 Using wildcard characters 3-7 sequence of events, describing 19-2 Setup Common Settings 16-4 VirSim Platforms 16-2 Signal groups Adding signals 3-9 Signal Name
Interactive mode 2-2 Post-processing mode 2-5 VCD+ files 2-3 Stop icon 8-20 support Synopsys Technical Support Center ixxvii T temporal assertion files 19-3 test facilities 19-2 The 2-17 Time Scale Dialog 10-1 Configuring Precision 10-3 Time Units 10-1– 10-3 timeSpacing 16-6 Translating VCD and VCD+ 18-1 Trigger types 15-10 U Undo Command 7-17 Unique Events $vcdplusevent 17-23 $vcdplusglitchoff 17-22 $vcdplusglitchon 17-22 Update Icon 8-20 Use Sources 2-19 User-Defined Buttons, Register Window 83 V VCD C
Waveform Window Controlling simulation 8-12 Debugging Event Origin 12-8 Definition 1-11, 4-2 Drivers in 4-47 Edit Menu Commands 4-51 Expanding and collapsing vectors, arrays, records, or busses 4-13 Expressions, using 15-1 File Menu Commands 4-49, 4-50 Groups 4-11 Creating AutoGroups 4-13 Manually creating 4-12 Switching between multiple groups 413 Positioning Cursor C1 and C2 4-16 Reordering signals 4-9, 4-10 Searching for a signal value 4-17 Selecting signals 4-9 Signal groups 4-11 Signal Name pane 4-2, 4