DAI

DAI Signalscan User's Guide

TopNextPreviousHome PageSend Feedback


CHAPTER 4 Working with DAI Signalscan

Overview 4-3

Working With Waveforms 4-3

Using the Names Pane 4-3

Using Groups 4-5

Using the Waveform Pane 4-6

Using the Multi-List Pane 4-8

Using Cursors 4-8

Using Markers 4-8

Using TimeA 4-9

Using Events 4-9

Using Buses 4-11

Backtracing Your Design 4-13

Adding Comments and Constants 4-13

Formatting Variables 4-13

Viewing Sequence Time and Multivalue Indication 4-15

Viewing Multi-Dimensional Objects 4-17

Working With Source Code 4-21

Interactive Debugging 4-21

Names Pane 4-26

Source Code Pane 4-27

Navigating 4-28

Setting Breakpoints 4-29

Adding Variables 4-29

Viewing Files 4-29

Viewing Scopes 4-30

Finding the Cause, Definition, or Instantiation 4-30

Working With Schematics 4-31

Recording Structural Elements 4-31

Single-Level versus Multi-Level Viewing 4-31

Schematic Tracer Window 4-32

Schematic Pane 4-33

Buttons and Menu Options 4-36

Menus 4-37

Current Instance, TimeA, and Object Information 4-38

Control>Go To Menu 4-39

Cause Finder 4-40

Statement Trace Information 4-40

Waveform Window 4-40

Schematic Tracer 4-42

Source Code Window 4-42

Printing 4-45

Printing the Waveform Window 4-45

Printing the Schematic Pane 4-46

Database Files 4-47

Writing to a VCD File 4-47

Merging SST Database Files 4-47

Saving and Restoring Your Configuration 4-47

Overview

This chapter describes how to use Signalscan's features. You should also use the quickstart guides available from the Signalscan Help button and sample files available in the examples directory of the Signalscan distribution. The quickstart guides and example files are also available on DAI's public website.

Working With Waveforms

The Waveform Window allows you to view the results of multiple simulations from multiple simulators all in the same window. The Waveform Window displays signal values and strengths as well as Sequence Time. Analog and digital waveforms can be freely intermixed within the same window. The Waveform Window can be used interactively during simulation, as well as in post-simulation analysis.

Use the Design Browser, the Source Code Window, or the command line to add variables to the Waveform Window.

Using the Names Pane

The Names Pane in the Waveform Window displays the variables used in the analysis.

Variables displayed in the Names Pane are organized into groups. See "Using Groups" for information on defining and modifying groups. To scroll the Waveform Window display to a particular group, change the Multi-List Pane to display Groups and click on the name of the desired group.

By default, variables in the Names Pane are displayed as simply the local variable name with the TimeA value and possibly (in analog designs) a units specifier or a height bracket (see "Height Bracket"). Use the Format menu to add or remove any combination of the file name, path name, or full design hierarchy name to all variable names in the Names Pane (see "Formatting Variables"). To change the width of the Names Pane, position your mouse pointer between the Names Pane and the Waveform Pane, and press and drag your left mouse button.

To cut, copy, paste, delete, move, or duplicate a variable, first select the name of the variable in the Names Pane (see Table 4-1 below) and then select the appropriate option from the Edit menu. Variables that you paste, move, or duplicate are added at the insertion marker , the horizontal yellow line in the Names Pane. Position the insertion marker by clicking either the middle or right mouse button before you paste, move, or duplicate variables. You can also move a variable by clicking on the name of the variable with your middle or right mouse button and dragging it to the desired location. To find a variable, select Edit>Find .

 

Table 4-1. Mouse Operations in the Names Pane: Select, Move, and Copy 

Operation

Action

Select one variable or group

Click on the variable or group name with your left mouse button.

Select a contiguous range of variables or groups

Click the left mouse button on a variable or group name, drag the mouse pointer through a range of names, and then release the mouse button. If you started by selecting a variable name, then only variable names will be selected, even if you drag

Extend the selected range from the previous selected variable

Click on one variable name with your left mouse button. Hold down the Shift key and click another variable name with the left mouse button. The two variables you clicked on and all variables between those two are selected, even if they are in different groups.

Select a non-contiguous set of variables or groups

Hold down the Ctrl key while you click your left mouse button on the variables you want to select.

De-select all variables or groups that are currently selected

Click your left mouse button on any variable or group that is currently selected. All are de-selected.

De-select some but not all variables or groups that are currently selected

Hold down the Ctrl key and click your left mouse button on the variables or group you want to de-select.

Select all variables

Select the Edit>Select All menu option.

Move the insertion marker

Click either your middle or right mouse button where you want to position the insertion marker.

Move a variable or group

Click on the variable or group name with your middle or right mouse button, drag the variable or group to a new position, and release the mouse button. The insertion marker is repositioned immediately below the moved variable or group.

Move multiple variables or groups

Select a set of variables or groups with your left mouse button as described above in this table, click your middle or right mouse button on any of the selected names, drag the mouse pointer to the new position, and release the mouse button.

Copy variables or groups

Same as move described above, except hold down the Shift key while you press the middle or right mouse button.

Height Bracket

Analog waveforms and transactions have a bracket to the right of the variable name. To change the height of an analog waveform or transaction box, move your cursor over the top or bottom of the bracket associated with the variable name. The cursor changes to a double-headed vertical arrow. While the cursor is a double-headed arrow, hold down your left mouse button and drag the bracket up or down to the desired height. When you release the mouse button, the waveforms and the grid underlying the waveforms (if any), or the transaction box with its list of transaction properties, compress or expand to fit the new height.

See "Analog Features", for more information on special Signalscan features for analog variables. See Transaction-Based Verification: DAI Signalscan TX User's Guide for more information about transactions.

Using Groups

A group is a collection of variables displayed together. You can define multiple groups, and place any variable any number of times in one or more groups.

To create a group, go to one of the following windows:

  • · Design Browser
  • · Waveform Window
  • · Source Code Window

and select the Edit>Create>Group menu option or enter Ctrl+g from your keyboard. When you change the content of a group in any of these windows, the new content of the group is displayed in both the Waveform Window and the Source Code Window. The Design Browser does not display the complete content of a group but only allows you to add new content.

The default group is Group A. If you add variables without creating a group, they are automatically added to Group A. You can define and simultaneously display multiple groups in the Waveform Window and in the Source Code Window.

In the Design Browser, be sure the group you want to add variables to is selected in the drop down menu at the top of the To Add Pane. Variables are added to the To Add Pane as soon as you click your left mouse button on them in the Variables Pane. The specified variables are added to both the Waveform Window and the Source Code Window when you select the AddToWave button or the Control>Add Variables menu option. See also "Create an Overlay Group".

When you add new variables to the Names Pane, they are inserted at the insertion marker , the horizontal yellow line. Position the insertion marker by clicking either the middle or right mouse button before you add variables. New variables are added just after the insertion point, and new groups are added after the group containing the insertion point.

In the Waveform Window or Source Code Window, you can cut, copy, paste, delete, modify, move, or duplicate a group or a variable within the group by first selecting the name of the group or variable in the Names Pane (see Table 4-1) and then selecting the appropriate option from the Edit menu. Groups and variables are pasted at the insertion marker: the yellow line in the Names Pane. You can also move a group or variable by clicking on the name of the group or variable with your middle or right mouse button and dragging it to the desired location.

To scroll the Waveform Window or Source Code Window display to a particular group, change the Multi-List Pane to display Groups and click on the name of the desired group.

Using the Waveform Pane

The Waveform Pane displays the waveforms of the corresponding variables shown in the Names Pane. You can define markers to mark locations in your simulation that you want to quickly return to later (see "Using Markers"). Two independent cursors, Cursor1 and Cursor2, are used to measure the time between transitions (see "Using Cursors"). TimeA can be defined to link all the windows at a particular simulation time (see "Using TimeA").

Finding the Cause of a Value

See "Control>Go To Menu" and "Cause Finder".

Viewing Multi-Dimensional Objects

See "Viewing Multi-Dimensional Objects".

Zooming

The Waveform window supports a variety of commands for zooming in and out on portions of the waveform. The button bar contains the buttons ZoomInX , ZoomOutX , and ZmOutXFull . The ZoomInX and ZoomOutX buttons expand or contract the view by a factor of two while retaining the center point of the Waveform Pane. ZmOutXFull fits the entire simulation time into the Waveform Pane.

These zoom commands also appear on the View menu. To zoom in, select View>Zoom>In or use the hot key Ctrl+i . Signalscan increases the magnification of the waveforms by a factor of two. To zoom out, select View>Zoom>Out or use the hot key Ctrl+o . Signalscan reduces the magnification of the waveforms by a factor of two.

To fit a particular view into the Waveform Pane, position Cursor1 with the left mouse button and Cursor2 with the middle mouse button, and then click the right mouse button, or select View>Zoom>Between Cursors or use the hot key Ctrl+z . Signalscan shrinks or expands the time between Cursor1 and Cursor2 to fit in the Waveform Pane.

To zoom all the way out, select View>Zoom>Out Full or use the hot key Ctrl+f . Signalscan shrinks the start time and end time to fit into the Waveform Pane.

To adjust the position of the window without changing the zoom level, select View>Center On Cursor1 or use the hot key Ctrl+t . Signalscan scrolls the waveforms so that Cursor1 is displayed at the center of the Waveform Pane.

Scrolling

Use the scrollbars to pan and scroll vertically and horizontally. Click beside the slider in a scrollbar to jump by one screen width or height. Use the arrows in the scrollbars for smooth scrolling.

Using the Multi-List Pane

The Multi-List Pane displays the existing groups, markers, and events. Click on the down arrow in the top right corner of this pane, to the right of the title, to change the display in this pane to Groups, Markers, or Events.

When Groups are displayed, you can scroll to any group by clicking on the name of that group in this pane.

When Markers are displayed, you can scroll to any marker by clicking on the name of the marker.

When Events are displayed, you can search forward or backward for the next occurrence of an event, depending on the current state of the event search direction. Click on the name of the event to do this.

Using Cursors

Cursors appear as vertical lines with the text "Cursor1" or "Cursor2" and the time value at the top.

To reposition Cursor1, click the left mouse button in the Waveform Pane. Cursor1 moves to where you clicked your left mouse button. To reposition Cursor2, click the middle mouse button.

The Snap Cursors To Signal Transition option in the Define Preferences dialog box causes Cursor1 and Cursor2 to snap to waveform transitions that are immediately to the right or left of the cursor. Point the mouse to a variable transition, then click the left or middle mouse button to align Cursor1 or Cursor2 exactly to that transition. You can use this to measure the time between transitions.

The difference in time between Cursor1 and Cursor2 is displayed in the Time Status Pane next to the label "Cur2-Cur1".

Using Markers

Markers appear as vertical lines in the Waveform Pane, with the user-defined marker name and the marker time at the top of the marker. A marker is like a bookmark that you can place at any time in your simulation and give any name you like. Use markers to mark times in your simulation that you may want to quickly jump back to later.

To create a marker, select Edit>Create>Marker or use the hot key Ctrl+m . A dialog box appears showing Cursor1 time as the default marker time. This dialog box allows you to specify a name for the marker and edit the time. The marker is placed at the marker time specified.

To scroll the Waveform Pane display to a marker, change the Multi-List Pane to display Markers and click on the name of the desired marker.

To delete a marker, click on the name of the marker in the Multi-List Pane to select it, and then press the Delete button.

Using TimeA

TimeA appears as a vertical line with the text "TimeA" and the time value at the top. TimeA is a special time cursor that links all the windows at a particular simulation time.

To reposition TimeA, double-click your left mouse button where you want to move TimeA. Cursor1 is also moved to that position.

The time for TimeA is displayed in the Time Status Pane next to the label "TimeA =".

Using Events

An event is a definition for the states of a collection of variables. It is used to define searches through your simulation history.

To create an event, select the variables in the Names Pane that you want to include in the definition of the event. Place Cursor1 at the location in the Waveform Pane that most resembles the event. Select Edit>Create>Events or use the hot key Ctrl+e . The Events Window is displayed with the new event added to the Event List, shown in Figure 4-1:

 

Figure 4-1. Events Window: New Event Added to Event List

 

The initial value for each variable is its value at Cursor1. You can edit any values in the Value Pane. You can also change the default event name assigned by Signalscan by clicking on the name of the event in the Names Pane in the Event Window.

You can change the value of a variable being searched for to be Rising Edge, Falling Edge, or Any Edge by selecting Control>Define as Rising Edge , Control>Define as Falling Edge , or Control>Define as Any Edge .

To display the names of all defined events in the Multi-List Pane in the Waveform Window, click on the down arrow in the top right corner of the pane and select Events from the list. When you click on the name of an event in the pane, the simulation searches forward from Cursor1 to the next occurrence of that event, and Cursor1 is moved. The search for events wraps around from the end of the simulation.

To change the event search direction, do one of the following in the Events Window:

  • · Click on the search direction button to the right of the title "Event" at the top of the Event List.
  • or

  • · Select Control>Define Event Search Direction>Forward or Control>Define Event Search Direction>Backward .

Using Buses

To create a user-defined bus:

  1. 1. In the Names Pane, select the variables that you want to put together as a bus. Click and drag your left mouse button to select multiple variables, or use the Shift or Ctrl key while you click with your left mouse button.
  2. 2. With your middle mouse button, place the insertion point where you want the new bus to be located.
  3. 3. Select Edit>Create>Bus or use the hot key Ctrl+w .
  4. The Make Bus From Selected Variable(s) dialog box displays as shown in Figure 4-2:

 

Figure 4-2. Defining a Bus

 

If all the variable names selected have the same prefix, and the trailing bit numbers are consecutive, the default name is the common prefix, and suffix is the bit index. To modify the content of the bus, change the msb and the lsb, and/or flip the contents of the bus (click the Flip Contents button).

If not all of the selected variables have a common name (a bundle ), the default name is the concatenation of the names of the selected variables, separated by a comma, as shown in Figure 4-3:

 

Figure 4-3. Bundle of Variables Used to Create a Bus

 

When you change the content of the bundle, the name also changes to reflect its content. By default, the bus name is the common name, followed by the indices, and the bundle name is the concatenation of the signals of which it is composed.

To change the name of the bus:

  • · In the Make Bus From Selected Variable(s) dialog box (see Figure 4-2), select the New Name button and enter a new name, and/or select the Display Indices checkbox to enable or disable the display of indices.

You can change the value of the indices to be displayed by editing the msb and lsb. The number of bits is enforced, so if you change the msb, the lsb is also changed to reflect the correct bit count.

Select the Replace Original checkbox to replace the selected variable with the new bus. The selected variable in the Names Pane in the Waveform Window is deleted if Replace Original is selected when the new bus is added.

To modify a bus:

  1. 1. Select either a user-defined bus or a Verilog bus in the Names Pane of the Waveform Window.
  2. 2. Select Edit>Modify to display the Modify Selected Bus dialog box.
  3. The contents of the original bus are displayed at the top of the dialog box as well as the bit contents of the bus.

  4. 3. Change the bits referenced from the original bus to modify the bus.
  5. The default name is the original name with the new modified indices. To rename the bus, select the New Name button.

To expand a bus to show its constituent bits, select either a user-defined bus or a Verilog bus in the Names Pane of the Waveform Window, and then select Edit>Expand .

Backtracing Your Design

Select Control>Add Trace to add the backtrace information for the selected variable. The information is displayed on the lines below the variable.

Select Control>Add Module Inputs to add the inputs to the module containing the variable. The information is displayed on the lines below the selected variable.

Select Control>Go To>Schematic to display the Schematic Tracer Window. The Schematic Tracer Window displays a graphical representation of the backtrace information for the selected variable. Values are provided for every displayed signal. You can graphically and quickly backtrace through your design.

Adding Comments and Constants

Select Edit>Create>Comment to add a comment at the insertion point. Enter the text of your comment in the dialog box that is displayed.

Select Edit>Create>Constant to add a constant at the insertion point. Enter the name of the constant and its value in the dialog box that is displayed. You can use this feature to create constant zero or one if you are going to create a user-defined bus and you want to fill it with zeros or ones.

Formatting Variables

Select one of the options from the Format>Variable Radix menu to change the format of the selected variables.

For example, if a variable is displayed in hexadecimal, it is displayed in the Names Pane as:

variable-name = 'h variable-state

Select Format>Invert to invert the bits of the selected variables. When a variable is displayed in this format, it is displayed in the Names Pane as:

variable-name = 'i variable-state

Select Format>Show Strength to display the strength of the selected variables. When a variable's strength is displayed, it is shown in the Names Pane as:

variable-name = strength variable-state

Select Format>Analog Format to change the selected signals, buses, and real numbers to display their values in an analog format.

Select Format>Shift>Selected Variables or Format>Shift>All Recorded Variables to graphically shift variables by the user-specified absolute or relative time amount. Shifted variables are denoted by a special color and have the amount of time shifted appended to their name. To unshift variables, select the variable and shift to absolute time 0. Shifted variables can be saved to Do-Files and written to VCD files.

Select Format>Define Analog Min/Max Values to specify the minimum and maximum values of the range where the selected analog variables are plotted. This affects only the variables displayed in analog form.

Select Format>Define Variable Display Scale to specify the display scale of the selected variables. For example, if the selected variable shows a value of 4500uV, changing the display scale to mV causes the same value to be displayed as 4.5mV.

Select Format>Full Hierarchy Names to toggle the display of variable names to include/exclude the full hierarchy name of each variable.

Select Format>File Names to toggle the display of variable names to include/exclude the file name of the SST2 Database that contains the variable.

Select Format>Full Path File Names to toggle the display of variable file names to include/exclude the full path of the SST2 Database file that contains the variable.

NOTE: The full path name is only displayed if Format>File Names is selected as well.

Viewing Sequence Time and Multivalue Indication

To view sequence time, you must first record sequence information into your SST2 Database. See "Recording Sequence Information Example" and "$recordvars".

Multivalue Indication

Multivalue Indication graphically identifies areas where sequence order problems may exist: zero-time glitches where variables have received multiple values during a single time step. Such a glitch may indicate a reliance on the simulator's ordering of events, which could later turn into a serious timing problem. Once a glitch is identified, you can further investigate the problem by expanding into the Sequence Time domain.

Multivalue Indication is graphically represented as a pink dot on top of the waveform at the location where it occurred. You can view the actual variable assignment sequence within a given time step by using the Sequence Time feature of Signalscan. See Figure 4-4.

Sequence Time

Sequence Time (patent pending) lets you view and debug activities that conceptually take place at the same instant, but that the simulator executes in a specific order. When different execution orders yield different results, a sequence order problem exists. By graphically displaying the actual variable assignment sequence within a given time step, Sequence Time lets you pinpoint and eliminate this class of problems early in the design cycle, before they result in more serious gate-level problems downstream.

You can view the order in which the variables changed by expanding the sequence time at Cursor1, between cursors, or at all times. These options are available under the View>Expand Sequence Time menu option. For example, to expand sequence time at Cursor1, click your left mouse button on a pink dot in the Waveform Window, and select the View>Expand Sequence Time>At Cursor1 menu option.

If you do not want to view the sequence time, you can collapse the sequence time information by using View>Collapse Sequence Time .

 

Figure 4-4. Multivalue Indication and Sequence Time

 

Viewing Multi-Dimensional Objects

The Signalscan Waveform Window can view only one-dimensional objects. To view a multi-dimensional object, you must view each dimension separately.

Each dimension of a multi-dimensional object is treated as a scope in Signalscan. Each scope is one vector of an array or one variable of a record. Thus, to view multiple dimensions of a multi-dimensional object in the Waveform Pane, you need to iterate the following process:

  1. 1. In the Design Browser, select (single-click your left mouse button on) a scope that represents a multi-dimensional object from the Instances in Current Context list. The Instances in Current Context list updates to display all the scopes in the first dimension of that selected object.
  2. 2. Select one of the scopes listed in the new Instances in Current Context list. The variables for that scope (for that dimension of the multi-dimensional object) are listed in the Nodes/Variables in Current Context list.
  3. 3. Select one or more of the variables in that dimension from the Nodes/Variables in Current Context list. The selected variable names are added to the Design Browser's To Add Pane.
  4. 4. Go back to Step 1 and select another scope. You can re-select the design (Current File field) to refresh the Instances in Current Context list.
  5. 5. Select the AddToWave button.

In the following example, select the scope ARRAY3X4 in Figure 4-5 to list the three scopes in the first dimension of the ARRAY3X4 scope. Select the scope ARRAY3X4[2] in Figure 4-6 to list the nodes in that scope. Select the node ARRAY3X4[2][2] in Figure 4-7 to add that node to the To Add Pane.

 

Figure 4-5. Select a Multi-Dimensional Object

 

 

Figure 4-6. Select a Scope in the First Dimension

 

 

Figure 4-7. Select Nodes in One of the Scopes in the First Dimension

 

Working With Source Code

NOTE: You need DAI Signalscan TX (the TX option of Signalscan) to open the Signalscan Source Code Window and use the Signalscan source code debugging features.

The Source Code Window is used for source level debugging. It displays the source code as the simulator progresses through the simulation. The Source Code Window allows you to easily view variable values and set breakpoints by simply clicking on the source code.

The source code is displayed in the Source Code Pane of the Source Code Window. The values of variables in the source code can be viewed by adding them to the Names Pane. Line breakpoints can be set in the Source Code Pane. Any Events, Groups, or Markers created during this session are displayed in the Multi-List Pane, and all the variables used in this analysis are displayed in the Names Pane. You can search for a string in the Names Pane or the Source Code Pane by selecting Edit>Find . Enter the string you wish to search for, select the pane and search direction, and click on OK .

Interactive Debugging

You can run Signalscan TX interactively with Verilog-XL and Model Technology ModelSim VHDL simulators.

Verilog-XL

Follow the instructions in "Cadence Verilog-XL", but do not invoke your simulator or Signalscan. To invoke your simulator and Signalscan TX interactively:

  • · Invoke Signalscan TX from within your simulator:
    1. a. Invoke your simulator.
    2. b. Use $signalscan (see "$signalscan") at your simulator's command prompt.

or

  • · Invoke your simulator from within Signalscan TX:
    1. a. Invoke Signalscan TX.
    2. b. In the Signalscan TX Control Window, click the Init Simulator button.
    3. c. In the dialog box that appears, enter the appropriate Verilog-XL command line and any arguments (see "Cadence Verilog-XL"). ModelSim users: See "Model Technology ModelSim VHDL" for special required instructions for running ModelSim interactively.

or

  • · Connect to an already-running Signalscan TX from your simulator:
    1. a. Invoke Signalscan TX and your simulator separately.
    2. b. Use $signalscanconnect (see "$signalscanconnect") at your simulator's command prompt. If you have more than one Signalscan TX session already running, your simulator will connect to the first Signalscan TX session it finds on this display.

The two processes (Signalscan TX and your simulator) are now connected, and you can control the simulator with the VCR-like buttons in Signalscan TX and view simulation results as they occur ("marching waveforms"). Your Signalscan TX Control Window should now look something like Figure 4-8:

 

Figure 4-8. Interactive Verilog-XL

 

Before you can see any data in the Waveform Window, you need to step past the first $recordvars statement:

 

Figure 4-9. Interactive Verilog-XL and $recordvars

 

Model Technology ModelSim VHDL

NOTE: Signalscan TX/ModelSim VHDL interactive is only supported for Signalscan TX version 6.1.2 or higher combined with ModelSim VHDL version 5.2a or higher.

Follow the instructions in "Interfacing Signalscan to MTI ModelSim VHDL EE – UNIX", but do not invoke ModelSim or Signalscan. To invoke ModelSim and Signalscan TX interactively:

  • · Invoke Signalscan TX from within your simulator:
    1. a. Invoke your simulator.
    2. b. Use the signalscan command (see "signalscan") at your simulator's command prompt.

or

  • · Invoke your simulator from within Signalscan TX:
    1. a. Invoke Signalscan TX.
    2. b. In the Signalscan TX Control Window, click the Init Simulator button.
    3. c. In the dialog box that appears, enter the appropriate ModelSim command line and any arguments (see "Interfacing Signalscan to MTI ModelSim VHDL EE – UNIX"). Be sure to include -i as an argument to vsim , and remember to put dai on this command line as well, as shown below:

    vsim -i top_level dai

      This command in the Init Simulator dialog box starts a ModelSim simulator and loads the module top_level and the module dai into ModelSim. The module top_level is an example of your top level VHDL module. The module dai is DAI-specific and is necessary for interactive functionality; dai comes from the file $DAI_HOME/signalscan- version /share/daimodeltech.vhdl (see "Interfacing Signalscan to MTI ModelSim VHDL EE – UNIX").

NOTE: Because of the graphical nature of the Signalscan TX/ModelSim interaction, you must use the -i flag to force ModelSim into interactive mode. ModelSim will not start without the -i flag.

The ModelSim GUI displays, and a connection is automatically established between ModelSim and Signalscan TX.

At the first simulator prompt in the simulator main window, type recordvars (or recordsetup and then recordvars — see "Signalscan Commands for MTI ModelSim VHDL") to give you some data to view in Signalscan TX. For example:

VSIM1> recordvars

When you have done this, you can load signals into the Signalscan TX Waveform Window and display them as they are being simulated ("marching waveforms").

NOTE: You must use the ModelSim source window to view your source code and to set breakpoints.

You can control the simulation either using the simulator or using the Signalscan TX VCR-like buttons (Pause, Step, and Continue arrows). The simulator and Signalscan TX remain synchronized. Whenever you Step the simulation or the simulation stops at a breakpoint, the ModelSim source window updates accordingly. The Signalscan TX Source Code Window cannot be used in this manner at this time.

Advancing Simulation Time

To advance the simulation time in interactive mode, you can either single-step through the code or run the simulator in continuous mode. When you step through the code, the simulator executes only one statement at a time. When you select continuous mode, the simulator runs continuously. The Continue button (arrowhead pointing right) uses the option displayed in the Continue drop-down list. The choices are:

  • · Forever . The simulator runs until it reaches a breakpoint, $stop , or the end of the simulation.
  • · For . Requires a time value in the Continue Time field. The simulator runs for the specified length of time or until a breakpoint, $stop , or the end of the simulation is reached.
  • · Until . Requires a time value in the Continue Time field. The simulator runs until the specified time, or until a breakpoint, $stop , or the end of the simulation is reached.

When the simulator stops, the status of the simulator and the next line to be executed are displayed in the window. The source file is displayed, and the line is pointed to by a red arrow.

Names Pane

The Names Pane in the Source Code Window displays the variables used in the analysis.

Variables displayed in the Names Pane are organized into groups. See "Using Groups" for information on defining and modifying groups. To scroll the Source Code Window display to a particular group, change the Multi-List Pane to display Groups and click on the name of the desired group.

The Names Pane allows you to scroll up and down the list of variables. By default, variables in the Names Pane are displayed as simply the local variable name with the current value and possibly (in analog designs) a units specifier. Use the Format menu to add or remove any combination of the file name, path name, or full design hierarchy name to all variable names in the Names Pane (see "Formatting Variables"). To change the width of the Names Pane, position your mouse pointer between the Names Pane and the Source Code Pane, and press and drag your left mouse button.

To cut, copy, paste, delete, move, or duplicate a variable, first select the name of the variable in the Names Pane (see Table 4-1) and then select the appropriate option from the Edit menu. You can also double-click on a variable in the Source Code Pane to add it to the Names Pane. Variables that you paste, move, duplicate, or add are added at the insertion marker , the horizontal yellow line in the Names Pane. Position the insertion marker by clicking either the middle or right mouse button before you paste, move, duplicate, or add variables. You can also move a variable by clicking on the name of the variable with your middle or right mouse button and dragging it to the desired location. To find a variable, select Edit>Find .

Source Code Pane

The Source Code Pane is the area in the Source Code Window that displays the source code. This window is used to:

  • · Follow the execution of the source code through the simulation.
  • · Select variables and examine their values during a simulation run.
  • · Set breakpoints.

The following is a list of the indicators that are used in the Source Code Pane and a description of the function of each of them:

Table 4-2. Source Code Pane Indicators 

Indicator

Description

Stop Sign

Defines a permanent breakpoint in the source code. When the simulation reaches this point, it stops. The breakpoint is not deleted.

Yellow Stop Sign

Defines a temporary breakpoint in the source code. When the simulation reaches this point, it stops. The breakpoint is deleted once it is reached.

Red Diamond

Indicates an executable line of code.

Red Arrow

Identifies the current position of the simulation in the source code, or identifies the cause of a simulation value (see "Displaying Source Code Results" and "Unconnected Pins").

Yellow Arrow

Identifies a possible cause of a simulation value (see "Displaying Source Code Results").

Line numbers are listed along the left side of the Source Code Pane. The line numbers for the current module are displayed in a different color. As the simulation progresses, if Module Focus is set to OFF, then the Source Code Window is seen to jump between the modules. If Module Focus is set to ON, then the Source Code Window does not jump between modules.

Whenever the simulation is stopped, the next line to be executed is pointed to by a red arrow. If the simulation mode is Interactive, the values of the variables in the Names Pane are continually updated as the source code is executed to reflect the current state of the simulation. Therefore, the value of any variable can be seen directly from the Names Pane. However, if Sequence Time is not saved, the values will only be updated at the end of the time step.

The Source Code Pane displays one file at a time. The file is parsed for information such as keywords, variables, and executable statements. Keywords and variables are always colored, but the executable lines are only marked for the current viewing module. The line numbers are also always shown, but the current viewing module has a different line number color to indicate its scope. By default, the current viewing module is the one that contains the line of code to be executed next by the simulator.

The information for this module is also displayed in the status fields. To change the viewing module, click on a line in the new module, and the information for this module is displayed in the status fields.

Navigating

You can jump up and down through your design hierarchy, between module definitions and instantiations, by double-clicking your left mouse button on a module name.

If you double-click on a module name in the definition of that module, the Source Code Pane shows the instantiation of that module in the parent. If you double-click on a module name in an instantiation of that module, the Source Code Pane shows the definition of that module.

Setting Breakpoints

Two types of breakpoints can be set in the source code. They are described below.

Line Breakpoints

As an alternative to the Breakpoints dialog box, you can easily set line breakpoints in the Source Code Pane. On the far left of the Source Code Pane, double-click on diamonds. These denote executable lines of code. A stop icon appears to indicate that there is a breakpoint on that line. Double-click again on that line to delete the breakpoint.

Variable Breakpoints

The Source Code Window can also be used to set breakpoints on variable changes. To do this, select a variable, then select Edit>Create Breakpoint . The Create Breakpoint dialog box is displayed. You can change the condition from Any Edge to Positive Edge or Negative Edge, and then click OK .

Adding Variables

To add variables from the Source Code Pane to the Names Pane, just double-click on the variable in the Source Code Pane. The variable is added at the insertion point. For further information, see "Names Pane".

Viewing Files

The Source File Drop-Down List contains a list of recently viewed files. Select a file from this list or type the name of a new file to load that file into the Source Code Pane.

Viewing Scopes

The Scope Drop-Down List contains a list of recently viewed scopes. Select one of the listed scopes or type in a new scope to view the source for that scope.

Finding the Cause, Definition, or Instantiation

See "Control>Go To Menu" and "Cause Finder".

Working With Schematics

The Schematic Tracer creates schematics on the fly, showing you the drivers for an edge or pin. Use the Schematic Tracer to debug structural designs.

Recording Structural Elements

To display useful data in the Schematic Tracer Window, you should first record structural elements in your design when you simulate. To record structural elements, include a line such as the following in your Verilog source file:

$recordvars("primitives", "drivers");

NOTE: Be sure that you do not specify noports .

For more informaiton, see "Recording Fan-in Example" and "$recordvars".

Single-Level versus Multi-Level Viewing

By default, the Schematic Tracer Window shows multiple hierarchical levels of your design simultaneously as you add elements from different design levels to the window and as you select options to display parent (ascend) or child (fill in) design levels. By default, a new Schematic Tracer Window opens only when you select the Control>Go To>Schematic menu option or, of course, the Windows>Schematic Tracer menu option.

If you want to see each level in your design hierarchy displayed in a separate Schematic Tracer Window, you need to set the DAI_SINGLE_LEVEL environment variable before you invoke Signalscan , as follows:

setenv DAI_SINGLE_LEVEL 1

If you set this variable as shown, then you will see the following behavior:

  • · If you select a set of variables in which different variables belong to different levels of the design, the Schematic Tracer Window displays the logic for the first variable selected, and then displays the logic for any other of the selected variables that are part of that same design level. Selected variables that are not part of this same design level are ignored. If any variables are ignored, an informational message is displayed.
  • · If you paste a variable into a Schematic Tracer Window that already has some logic displayed in it, the window displays both the existing logic and any of the new logic that is part of this same Current Instance. Any selected variables that are not part of this Current Instance are ignored. If any variables are ignored, an informational message is displayed.
  • · If you select an Ascend option, the current design level is collapsed, and the parent design level is displayed in the same Schematic Pane.
  • · If you select a Fill In option, the structure of the selected instance is displayed inside the boundary of that instance in the same Schematic Pane.

Schematic Tracer Window

The Schematic Tracer Window (Figure 4-10) allows you to trace a value backward or forward, trace an unknown value, look inside an instance, look at the parent of the current design level, step to the previous or next time a selected variable changes value, and go from an element in the schematic to the place in the source code where that element is defined or instantiated or that value is assigned.

 

Figure 4-10. Schematic Tracer Window

 

There are two ways to enter variables into a Schematic Tracer Window:

  • · Select a variable or a set of variables and click the Copy button. In the Schematic Tracer Window, click the Paste button.
  • If you paste a variable into a Schematic Tracer Window that already has some logic displayed in it, the window displays both the existing logic and the new logic, showing the connections between the original logic and the new logic.

  • · Select a variable or a set of variables and select the Control>Go To>Schematic menu option. A new Schematic Tracer window opens focused on the selected variables.

Schematic Pane

The Schematic Pane is where the selected portion of your structural design is displayed. When you add a variable to the Schematic Pane, all instances that drive that variable are shown. All ports on each net are shown, and all ports show both their internal port name and value and their external port name and value. Displayed values change dynamically as TimeA changes.

To trace a value, display parent (ascend) or child (fill in) design levels, or zoom in or out, you can use buttons or Control menu options, press and drag the mouse, or double-click.

To select a pin or instance before selecting a button or menu option:

  • · Single-click the left mouse button on a pin to select that pin.
  • · Single-click inside an instance to select that instance.
  • · Hold down the Shift key to select multiple pins or instances.

Whenever more devices or instances are added to the display (through Paste , Trace , TraceX , Ascend , or Fill In ), the design elements that were just added are selected (highlighted). Therefore, for example, you can rapidly expand your view of the design by double-clicking on an external pin and then selecting the Trace button several times in succession without manually selecting any pins in between.

You can move or delete portions of the displayed design. To move an instance, select it with your left mouse button and drag it while holding down the Shift key. See also "Regenerate" and "Delete".

Trace and Fill In Left Mouse Shortcuts

See also "Unconnected Pins" below.

  • · Double-click the left mouse button on an external pin to display the drivers for that pin.
  • · Double-click on an internal pin to display the structure that is driven by that pin.
  • · Double-click in an empty area of the displayed design to display all of the hierarchy at that design level:
    • · Double-click inside an instance to display the internal structure of that instance.
    • · Double-click outside of any instance in the displayed design to fill in all of the Current Instance design level.

Unconnected Pins

If an internal or external pin is connected to a constant, the Schematic Tracer Window shows the value of that constant.

If you double-click on an internal or external pin that is connected to an RTL description, the Schematic Tracer Window shows the selected pin connected to an icon that looks like a piece of paper with text on it. This is a Source Code icon.

Double-click on the Source Code icon to display a Source Code Window focused on the cause of the value of this pin. This is the same behavior you get if you select the pin and then select the Control>Go To>Cause menu option. See "Cause Finder".

Ascend and Zoom Left Mouse Shortcuts

Pressing and dragging your left mouse button performs one of the following functions, depending on which direction you drag the mouse pointer:

Upper left: Ascend.

Press your left mouse button and drag it toward the upper left corner of the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a line labeled "Ascend". The parent structure of the Current Instance is displayed.

Straight Up: Zoom Out.

Press your left mouse button and drag it straight up in the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a line labeled "Zoom Out". When you release your mouse button, the schematic view zooms out a fixed amount. This is the same behavior as selecting the ZoomOut button.

Upper right: Zoom Out -  n .

Press your left mouse button and drag it toward the upper right corner of the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a line labeled "Zoom Out -  n ", where n is the zoom out factor. The zoom out factor in the label changes as you move your mouse. When you release your mouse button, the schematic view zooms out by the factor last indicated in the zoom out line label.

Straight Down: Zoom In.

Press your left mouse button and drag it straight down in the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a line labeled "Zoom In". When you release your mouse button, the schematic view zooms in a fixed amount. This is the same behavior as selecting the ZoomIn button.

Lower right: Zoom In.

Press your left mouse button and drag it toward the lower right corner of the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a rectangle labeled "Zoom In". When you release the mouse button, the Schematic Pane zooms to show only the area inside the rectangle.

Lower left: Zoom To Fit.

Press your left mouse button and drag it toward the lower left corner of the Schematic Pane before releasing it. While you are dragging, the mouse pointer changes to a line labeled "Zoom To Fit". This is the same behavior as selecting the ZoomToFit button.

Finding the Cause of a Value

See "Control>Go To Menu" and "Cause Finder".

Buttons and Menu Options

Button Bar

Trace

Display everything that is driving the selected external pin, or everything that the selected internal pin is driving. This functionality can also be accessed from the Control menu and by double-clicking on a pin. See also "Unconnected Pins".

If an instance is selected, everything that is driving any of the external pins of that instance is displayed. This functionality can also be accessed from the Control menu.

TraceX

Same functionality as Trace except that it continues to expand the design until it reaches a driving block that has more than one X input or no X inputs. Unknown values are shown in red. This functionality can also be accessed from the Control menu.

Ascend

Show the parent design level of the Current Instance. This functionality can also be accessed from the Control menu or by pressing the left mouse button and dragging it toward the upper left corner of the Schematic Pane before releasing it.

Fill In

Display the internal structure of the selected instance, or display the entire structure of the Current Instance if no other instance is selected. This functionality can also be accessed from the Control menu, by double-clicking the left mouse button in an empty area inside an instance, or by double-clicking the left mouse button in an empty area outside any instance.

Menus

Edit Menu

Delete

Deletes the selected instance(s) from the Schematic Pane. Nets between deleted instances and instances that are still showing in the pane are displayed as dashed lines to tell you that something is missing from this net. If you Fill In this design level, the deleted instances re-appear and the dashed lines become solid again.

Select All

Selects all objects for all instances displayed.

Control Menu

Regenerate

Regenerate the current design in the Schematic Pane. If you have moved some instances, they are moved back to the best fit display. This option does not restore any instances that you deleted from the view.

Variable Change

Updates the values of all pins currently displayed in the Schematic Pane to the values they have the Previous time the selected pin changed value or the Next time the selected pin changes value.

Keyboard shortcut: You can also enter Ctrl+v or Ctrl+n to update to the Previous or Next value of the selected pin.

If you select more than one pin, values are updated to their values at the time that any one of the selected pins changes value.

Go To

See "Control>Go To Menu".

Current Instance, TimeA, and Object Information

Immediately above the Schematic Pane is the name of the Current Instance. You can edit this field directly to display the schematic for a different instance.

In the lower right corner of the Schematic Tracer is the TimeA field. You can edit this value directly to update the values displayed in the Schematic Pane.

In the lower left corner of the Schematic Tracer is the object information field. The information displayed in this field changes as you move your mouse pointer over the Schematic Tracer Window. When your mouse pointer is in the Schematic Pane, the object information field displays the full hierarchical name of the object your mouse pointer is over.

Control>Go To Menu

The Control>Go To menu appears on several Signalscan windows: the Waveform Window, Source Code Window, Schematic Tracer, Register Window, and Design Browser.

The Control>Go To menu contains the following options:

Table 4-3. Control>Go To Menu Options

Control>Go To>

Description

Cause

Displays the cause of the selected register, variable, or net value in the Source Code Window or the Schematic Tracer. See "Cause Finder" below.

Definition

Displays the definition of the selected variable in the Source Code Window.

Schematic

Displays the selected structure in the Schematic Tracer.

Instantiation

Displays the selected instantiation in the Source Code Window. This option appears only on the Schematic Tracer Window.

NOTE: A Signalscan TX license is required to open the Source Code Window.

Cause Finder

The Cause Finder feature shows you the cause of a selected value change using either the Source Code Window (for registers) or the Schematic Tracer (for structural elements).

You can use the Cause Finder feature with or without a database of statement trace information. See "Statement Trace Information" below.

You can invoke the Cause Finder feature from the Waveform Window (see "Waveform Window"), from the Schematic Tracer (see "Schematic Tracer"), from the Source Code Window (see "Source Code Window"), from the Design Browser ( Control>Go To>Cause menu option only), or from the Register Window ( Control>Go To>Cause menu option only).

Statement Trace Information

To make the best use of the Cause Finder feature, you should collect statement trace information from the simulator. If you do not collect statement trace information, you will still see results from using the Cause Finder feature, but the results may be less specific. See "Displaying Source Code Results".

For an example and description of collecting statement trace information, see "Recording Statement Trace Example" and "$recordvars".

Waveform Window

To invoke Cause Finder from the Waveform Window, either:

  • · Ctrl +double-click (press the Control keyboard key while you double-click your left mouse button) on a transition in the Waveform Pane.
  • or

  • · Select a transition and then select the Control>Go To>Cause menu option.

A red arrow is displayed in the Waveform Pane pointing to the transition you selected, and Cursor1 and TimeA are set to the time of the transition, as shown in Figure 4-11.

 

Figure 4-11. Go To Cause from Transition in Waveform Pane

 

If there are multiple transitions for a variable at the same simulation time, and sequence time is not expanded, clicking just left of the edge selects the first transition at that time, and clicking just right of the edge selects the last transition at that time. To select a different transition, expand sequence time so that you can easily select the desired transition.

If the edge you selected is a register, then the Source Code Window is opened if it was not already open, or brought to the front if it was already open. An arrow is displayed to the left of the source code line that is the cause of the edge you selected in the Waveform Pane. See "Displaying Source Code Results" for more information.

If the edge you selected is structural, then the Schematic Tracer is opened if it was not already open, or brought to the front if it was already open. The Schematic Pane displays the net you selected in the Waveform Pane.

Schematic Tracer

To invoke Cause Finder from the Schematic Tracer, either:

  • · Ctrl +double-click on a pin or net in the Schematic Pane.
  • or

  • · Select a pin or net in the Schematic Pane, and then select the Control>Go To>Cause menu option.

Depending on what you selected, either another Schematic Tracer Window or a Source Code Window is opened if it was not already open, or brought to the front if it was already open. If the Source Code Window is displayed, an arrow is displayed to the left of the source code line that is the cause of the value of the pin you selected in the Schematic Tracer. See "Displaying Source Code Results" for more information.

Source Code Window

Invoking Cause Finder

To invoke Cause Finder from the Source Code Window, either:

  • · Ctrl +double-click on a variable in the Source Code Pane.
  • or

  • · Select a variable in the Source Code Pane, and then select the Control>Go To>Cause menu option.

If the variable you selected is a register, then the Source Code Pane scrolls to show the cause of that selected value. See "Displaying Source Code Results" below for more information.

If the variable you selected is structural, then the Schematic Tracer is opened if it was not already open, or brought to the front if it was already open. The Schematic Pane displays the net you selected in the Source Code Pane.

Displaying Source Code Results

If you have recorded statement trace information (see "Recording Statement Trace Example"), then a red arrow points to the single source line that caused the edge, as shown in Figure 4-12:

 

Figure 4-12. Source Pane with Single Cause Identified

 

If you have not recorded statement trace information (or if you select something at time 0, before statement trace recording started), then you may see yellow arrows pointing to multiple source lines, as shown in Figure 4-13. In this case, the Multi-List Pane in the Source Code Window contains the category Causes , which displays a list of the possible causes (the lines that are marked by yellow arrows in the Source Pane). Click on one of the lines in the Causes list to scroll the Source Code Pane to that line in the source code.

 

Figure 4-13. Source Pane with Multiple Possible Causes Identified

 

Printing

You can print from the Waveform Window or the Schematic Tracer Window. Signalscan supports printing both in black-and-white and in color.

Printing the Waveform Window

Select the File>Print menu option from the Waveform Window. The Printing dialog box is displayed as shown in Figure 4-14. Buttons across the top of the Printing dialog box allow you to specify header information for each printed page, the printer or file name to print to, the color mode, and which variables to print for which times. You can print all variables, currently selected variables, or currently visible variables, and you can print all times, currently visible times, or the time between specified start and end times. You can scale the printout to fit a specified number of pages, and you can specify the size of paper to use.

The Color button allows you to choose one of the following three selections:

  • · Black on White. Print black lines and labels on a white background. Analog signals in an overlay group are printed using different line patterns. A sample of the line pattern used for each signal is shown next to the signal name in the printout.
  • · Color on White. Print color lines and labels on a white background.
  • · Full Color. Print the window the same way you see it on your monitor.

 

Figure 4-14. Waveform Window Printing Dialog Box

 

Printing the Schematic Pane

Select the File>Print menu option from the Schematic Tracer Window. The Print dialog box is displayed as shown in Figure 4-15. With the Scale buttons, you can print everything that is in the Schematic Pane (Full) or only what is currently visible in the Schematic Pane (View). With the Color Mode buttons, you can specify printing black lines and labels on a white background (Mono) or color lines and labels on a white background (Color).

 

Figure 4-15. Schematic Tracer Window Print Dialog Box

 

Database Files

Writing to a VCD File

For information on writing to VCD files, see "Using the VCD Writer".

Merging SST Database Files

To merge incremental .sst files generated using the $recordfile task during the simulation into one .sst file, select File>Merge SST Files to display the Merge SST File dialog box.

NOTE: This feature requires the executable sstmerge in your executable path.

Saving and Restoring Your Configuration

Do-Files

Use a Do-File to save and restore the configuration of a Signalscan session. You can save your groups, markers, events, register pages, and preferences such as Names Pane formatting, pane and window sizes, colors, print preferences, and many others.

A Do-File contains Signalscan commands (see "DAI Signalscan Command Language Reference") that may be loaded and executed by Signalscan. Do-Files are text files that you can edit with any text editor. Any command that is valid in a Do-File may be typed and executed in the Signalscan Command Line Pane in the Control Window, and vice versa.

.signalscanrc File

Signalscan automatically attempts to execute a Do-File named .signalscanrc when you launch Signalscan. Your current directory and then your home directory are searched for this file. You may want to use this file to save preferences that you want to use every time you run Signalscan.

Other commands that you might want to save are design-specific or simulation-specific, and you do not want to execute them every time you open Signalscan. You can save these commands in separate Do-Files and load them explicitly as described below. For example, you can save different groups and markers in separate Do-Files to restore different views of a simulation.

Saving Your Configuration

To write out the current configuration or parts of the current configuration of Signalscan, select the File>Save Do-File menu option. A standard file save dialog is displayed so that you can specify the path and filename for the Do-File. By convention, Do-Files are named filename .do . When you click the OK button, the Options for Saving a Do-File dialog box is displayed, as shown in Figure 4-16:

 

Figure 4-16. Options for Saving a Do-File

 

To save all items in a particular category, click to select (highlight) the appropriate button on the left side of this dialog box. To save none of the items in a particular category, click to de-select the appropriate button.

To save some but not all of the items in a particular category:

  • · Click the down-pointing arrow to the right of the category drop-down menu.
  • · Click the category you want to modify, such as Groups or Preferences.
  • The list of items in that category is displayed in the scrollable field.

  • · Select (highlight) only the items you want to save in this Do-File.
  • To select one item, click on it. To select multiple items in the list, click and drag, click+ Shift +click, or Ctrl +click. To de-select all items, click on any currently selected item. To de-select particular items, Ctrl +click on them.

  • · Select another category or click the OK button.

Restoring Your Configuration

To restore the configuration from a Do-File:

  • · When you invoke Signalscan:
    • · Use the -do option. You can specify as many different Do-Files as you want.

signalscan -do color.do -do sim1.do design.trn

    or

  • · From within Signalscan:
    • · Click the ExecDoFile button.
    • or

    • · Select the File>Execute Do-File menu option. You are prompted for the name of the file to execute.

To automatically use this configuration every time you use Signalscan, append this Do-File to the .signalscanrc file in your home directory.


DAI
TopNextPreviousHome PageSend Feedback
© Copyright 1999 Design Acceleration, Inc. All rights reserved.