Tutorial ModelSIM
Tutorial ModelSIM
Actel
Tutorial
Version 5.5e
Published: 23/Aug/01
The information in this manual is subject to change without notice and does not
represent a commitment on the part of Model Technology. The program described
in this manual is furnished under a license agreement and may not be used or
copied except in accordance with the terms of the agreement. The online
documentation provided with this product may be printed by the end-user. The
number of copies that may be printed is limited to the number of licenses
purchased.
ModelSim support
Support for ModelSim is available from your FPGA vendor. See the About
ModelSim dialog box (accessed via the Help menu) for contact information.
ModelSim Tutorial
T-3
Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T-5
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . T-63
ModelSim Tutorial
T-4
ModelSim Tutorial
T-5
Introduction
Chapter contents
Software versions . . . . . . . . . . . . . . . . T-6
Assumptions . . . . . . . . . . . . . . . . . T-6
ModelSim Tutorial
T-6 Introduction
Software versions
This documentation was written to support ModelSim 5.5d for Microsoft Windows 95/98/
ME/NT/2000. If the ModelSim software you are using is a later release, check the
README file that accompanied the software. Any supplemental information will be there.
Although this document covers both VHDL and Verilog simulation, you will find it a
useful reference even if your design work is limited to a single HDL.
Standards supported
ModelSim VHDL supports both the IEEE 1076-1987 and 1076-1993 VHDL, the
1164-1993 Standard Multivalue Logic System for VHDL Interoperability, and the
1076.2-1996 Standard VHDL Mathematical Packages standards. Any design developed
with ModelSim will be compatible with any other VHDL system that is compliant with
either IEEE Standard 1076-1987 or 1076-1993.
ModelSim Verilog is based on the IEEE Std 1364 Standard Hardware Description
Language Based on the Verilog Hardware Description Language. The Open Verilog
International Verilog LRM version 2.0 is also applicable to a large extent. Both PLI
(Programming Language Interface) and VCD (Value Change Dump) are supported for
ModelSim PE and SE users.
In addition, all products support SDF 1.0 through 3.0, VITAL 2.2b, VITAL’95 - IEEE
1076.4-1995, and VITAL 2000.
Assumptions
We assume that you are familiar with the use of your operating system. If you are not
familiar with Microsoft Windows, we recommend that you work through the tutorials
provided with MS Windows before using ModelSim.
We also assume that you have a working knowledge of VHDL and Verilog. Although
ModelSim is an excellent tool to use while learning HDL concepts and practices, this
document is not written to support that goal.
ModelSim Tutorial
T-7
Command history
As you work on the lessons, keep an eye on the Main transcript window. The commands
invoked by buttons and menu selections are echoed there. You can scroll through the
command history with the up and down arrow keys, or the command history may be
reviewed with several shortcuts at the ModelSim/VSIM prompt.
Shortcut Description
click on prompt left-click once on a previous ModelSim or VSIM prompt in
the transcript to copy the command typed at that prompt to
the active cursor
his or history shows the last few commands (up to 50 are kept)
ModelSim Tutorial
T-8 Before you begin
For example, if you saved a series of compiler commands as mycompile.do (the .do
extension is optional), you could recompile with one command:
do mycompile.do
Note: Neither the prompt nor the Return that ends a command line are shown in the
examples.
ModelSim Tutorial
T-9
ModelSim Tutorial
T-10 Lesson 1 - Creating a Project
2 Upon opening ModelSim for the first time, you will see a Welcome to ModelSim dialog
box. (If this screen is not available, you can enable it by selecting Help > Enable
Welcome from the Main window. It will then display the next time you start
ModelSim.)
Select Create a Project from the Welcome to ModelSim dialog box. Or select File >
New > Project from the ModelSim Main window.
Selecting Create a Project opens the Create Project dialog box.
3 In the Create Project dialog box, enter "test" as the Project Name and select a directory
where the project file will be stored. Leave the Default Library Name set to "work."
ModelSim Tutorial
T-11
4 Upon selecting OK, you’ll see the Main window with Project and Library tabs. Notice
too that the Project name is shown in the status bar below the Workspace.
Workspace
ModelSim Tutorial
T-12 Lesson 1 - Creating a Project
5 The next step is to add the files that contain your design units. Click your right mouse
button
6 For this exercise, we’ll add two Verilog files. Click the Browse button in the Add file
to Project dialog box and open the examples directory in your ModelSim installation.
Select tcounter.v and counter.v. Select Reference from current location and then
click OK.
ModelSim Tutorial
T-13
8 The two files are compiled. Click on the Library tab and you’ll see the compiled design
units listed. If you don’t see the design units, make sure the Library: field shows
"work."
ModelSim Tutorial
T-14 Lesson 1 - Creating a Project
9 The last step in this exercise is to load one of the design units. Double-click counter on
the Designs page. You’ll see a new page appear in the workspace that displays the
structure of the counter design unit.
At this point, you would generally run the simulation and analyze or debug your design.
We’ll do just that in the upcoming lessons. For now, let’s wrap up by ending the simulation
and closing the project. Select Design > End Simulation and after confirming you want to
quit simulating, select File > Close > Project.
ModelSim Tutorial
T-15
ModelSim Tutorial
T-16 Lesson 2 - Basic VHDL simulation
Note: if you didn’t add ModelSim to your search path during installation, you will have
to include the full path when you type this command at a DOS prompt.
3 Before you compile any HDL code, you’ll need a design library to hold the
compilation results. To create a new design library, make this menu selection in the
Main window: Design > Create a New Library.
Make sure Create: a new
library and a logical
mapping to it is selected.
Type "work" in the
Library Name field and
then select OK.
This creates a
subdirectory named work
- your design library -
within the current
directory. ModelSim
saves a special file named
_info in the subdirectory.
(PROMPT: vlib work
vmap work work)
Note: Do not create a Library directory using Windows commands, because the _info
file will not be created. Always use the Design menu or the vlib command from either
the ModelSim or DOS prompt.)
ModelSim Tutorial
Preparing the simulation T-17
4 Compile the file counter.vhd into the new library by selecting the Compile button on
the toolbar:
This opens the Compile HDL Source Files dialog box. (You won’t see this dialog box
if you invoke vcom from the command line.)
Complete the compilation by selecting counter.vhd from the file list and clicking
Compile. Select Done when you are finished.
You can compile multiple files in one session from the file list. Individually select and
Compile the files in the order required by your design.
ModelSim Tutorial
T-18 Lesson 2 - Basic VHDL simulation
5 Now let’s load the design unit. Select the Load Design button from the toolbar:
The Load Design dialog box comes up, as shown below (you won’t see this dialog box
if you invoke vsim with counter from the command line).
The Load Design dialog box lets you select the library and top-level design unit to
simulate. You can also select the resolution limit for this simulation. By default, the
following will appear for this simulation run:
• Simulator Resolution: default (the default is 1 ps)
• Library: work
• Design Unit: counter
ModelSim Tutorial
Preparing the simulation T-19
If the Design Unit is an entity (like counter in this design), you can click on the plus-
box prefix to view any associated architectures.
6 Select the entity counter and choose Load to accept these settings.
7 Next, select View > All from the Main window menu to open all ModelSim windows.
(PROMPT: view *)
For descriptions of the windows, consult the ModelSim User’s Manual.
8 From the Signals window menu, select View > List > Signals in Region. This
command displays the top-level signals in the List window.
(PROMPT: add list /counter/*)
9 Next add top-level signals to the Wave window by selecting View > Wave > Signals
in Region from the Signals window menu.
(PROMPT: add wave /counter/*)
ModelSim Tutorial
T-20 Lesson 2 - Basic VHDL simulation
1 Click in the Main window and enter the following command at the VSIM prompt:
force clk 1 50, 0 100 -repeat 100
2 Now you will exercise two different Run functions from the toolbar buttons on either
the Main or Wave window. (The Run functions are identical in the Main and Wave
windows.) Select the Run button first. When the run is complete, select Run All.
Run. This causes the simulation to run and then stop after 100 ns.
(PROMPT: run 100) (MENU: Run > Run 100ns)
Run -All. This causes the simulator to run forever. To stop the run, go on to
the next step.
(PROMPT: run -all) (MENU: Run > Run -All)
3 Select the Break button on either the Main or Wave toolbar to interrupt the run. The
simulator will stop running as soon as it gets to an acceptable stopping point.
The arrow in the Source window points to the next HDL statement to be executed. (If
the simulator is not evaluating a process at the time the Break occurs, no arrow will be
displayed in the Source window.)
Next, you will set a breakpoint in the function on line 18.
ModelSim Tutorial
Running the simulation T-21
4 Move the pointer to the Source window. Scroll the window vertically until line 18 is
visible. Click on or near line number 18 to set the breakpoint. You should see a red dot
next to the line number where the breakpoint is set. The breakpoint can be toggled
between enabled and disabled by clicking it. When a breakpoint is disabled, the circle
appears open. To delete the breakpoint, click the line number with your right mouse
button and select Remove Breakpoint 18.
(PROMPT: bp counter.vhd 18)
Note: Breakpoints can be set only on executable lines — denoted by green line numbers.
5 Select the Continue Run button to resume the run that you interrupted. ModelSim will
hit the breakpoint, as shown by an arrow in the Source window and by a Break message
in the Main window.
6 Click the Step button to single-step through the simulation. Notice that the values
change in the Variables window. You can keep clicking Step if you wish.
ModelSim Tutorial
T-22
ModelSim Tutorial
T-23
The project feature covered in Lesson 1 executes several actions automatically such as
creating and mapping work libraries. In this lesson we will go through the whole process
so you get a feel for how ModelSim really works.
ModelSim Tutorial
T-24 Lesson 3 - Basic Verilog simulation
2 Copy the Verilog files (files with ".v" extension) from the
\<install_dir>\modeltech\examples directory into the current directory.
Before you can compile a Verilog design, you need to create a design library in the new
directory. If you are familiar only with interpreted Verilog simulators such as Cadence
Verilog-XL, this will be a new idea for you. Since ModelSim is a compiled Verilog
simulator, it requires a target design library for the compilation.
3 Invoke ModelSim:
for Windows - your option - from a Windows shortcut icon, from the Start menu, or
from a DOS prompt:
modelsim.exe
4 Before you compile a source file, you’ll need a design library to hold the compilation
results. To create a new design library, select Design > Create a New Library in the
Main window. (PROMPT: vlib work)
In the Create a New
Library dialog box,
select Create: a new
library and a
logical mapping to
it. Type "work" in
the Library Name
field, and then select
OK. This creates a
subdirectory named
work - your design
library - within the
current directory.
This subdirectory
contains a special
file named _info.
Note: Do not use DOS commands to create a design library. Always use the Main Design
menu or the vlib command.
ModelSim Tutorial
Preparing the simulation T-25
5 Compile the counter.v, and tcounter.v files into the work library by selecting the
Compile button on the toolbar:
Complete the compilation by selecting both files. Control+click (left mouse button)
on counter.v, then tcounter.v from the file list and choose Compile, then Done.
Note: The order in which you compile the two Verilog modules is not important (other
than the source-code dependencies created by compiler directives). This may again seem
strange to Verilog-XL users who understand the possible problems of interface checking
between design units, or compiler directive inheritance. ModelSim defers such checks
until the design is loaded. So it doesn't matter here if you choose to compile counter.v
before or after tcounter.v.
ModelSim Tutorial
T-26 Lesson 3 - Basic Verilog simulation
6 Start the simulator by selecting the Load Design button from the toolbar:
The Load Design dialog box allows you to select a design unit to simulate from the
specified library. You can also select the resolution limit for the simulation. The
default library is work and the default resolution is 1 ps.
8 Bring up the Signals, List and Wave windows by entering the following command at
the VSIM prompt within the Main window:
view signals list wave
ModelSim Tutorial
Preparing the simulation T-27
9 To list the top-level signals, move the pointer to the Signals window and select View
> List > Signals in Region.
(PROMPT: add list /test_counter/*)
ModelSim Tutorial
T-28 Lesson 3 - Basic Verilog simulation
10 Now let’s add signals to the Wave window with ModelSim’s drag and drop feature.
In the Signals window, select Edit > Select All to select the three signals. Drag the
signals to either the pathname or the values pane of the Wave window.
HDL items can also be copied from one window to another (or within the Wave and
List windows) with the Edit > Copy and Edit > Paste menu selections. You can also
delete selected items with the Edit > Delete selection.
11 Next open the Source window. Select View > Source from the Main window.
(PROMPT: view source)
ModelSim Tutorial
Preparing the simulation T-29
12 You may have noticed when you loaded the design in Step 6 that a new pane appeared
in the workspace area of the Main window.
Structure pane
The Structure pane shows the hierarchical structure of the design. By default, only the
top level of the hierarchy is expanded. You can navigate within the hierarchy by
clicking on any line with a "+" (expand) or "-" (contract) symbol. The same navigation
technique works anywhere you find these symbols within ModelSim.
By clicking the "+" next to dut: counter you can see all three hierarchical levels:
test_counter, counter and a function called increment. (If test_counter is not
displayed you simulated counter instead of test_counter.)
13 Click on Function increment and notice how other ModelSim windows are
automatically updated as appropriate.
Specifically, the Source window displays the Verilog code at the hierarchical level you
selected in the Structure window. The source-file name is also displayed in the Source
window title bar.
Using the Structure pane in this way is analogous to scoping commands in interpreted
Verilogs.
For now, make sure the test_counter module is showing in the Source window by
clicking on the top line in the Structure pane.
ModelSim Tutorial
T-30 Lesson 3 - Basic Verilog simulation
1 Select the Run button on the Main window toolbar. This causes the simulation to run
and then stop after 100 ns (the default simulation length).
2 Next change the run length to 500 on the Run Length selector and select the Run
button again.
Now the simulation has run for a total of 600ns (the default 100ns plus the 500 you just
asked for). The status bar at the bottom of the Main window displays this information.
3 The last command you executed (run 500) caused the simulation to advance for 500ns.
You can also advance simulation to a specific time. Type:
run @ 3000
This advances the simulation to time 3000ns. Note that the simulation actually ran for
an additional 2400ns (3000 - 600).
4 Now select the Run All button from the Main window toolbar. This causes the
simulator to run forever.
ModelSim Tutorial
Running the simulation T-31
Your Source window won’t look exactly like the illustration above because your
simulation very likely stopped at a different point.
ModelSim Tutorial
T-32 Lesson 3 - Basic Verilog simulation
1 In the List window select /test_counter/count. From the List window menu bar select
Prop > Signal Props. The Modify Signal Properties (list) dialog box is opened.
Select a display radix of Decimal for the signal count. Click OK. This causes the List
window output to change; the count signal is now listed in decimal rather than the
default binary.
ModelSim Tutorial
Debugging the simulation T-33
2 Now let’s set a breakpoint at line 30 in the counter.v file (which contains a call to the
Verilog function increment). To do this, select dut: counter in the Structure pane of
the Workspace. Move the cursor to the Source window and scroll the window to
display line 30. Click on or near line number 30 to set a breakpoint. You should see a
red dot next to the line number where the breakpoint is set.
The breakpoint can be toggled between enabled and disabled by clicking it. When a
breakpoint is disabled, the circle appears open. To delete the breakpoint, click the line
number with your right mouse button and select Remove Breakpoint.
Note: Breakpoints can be set only on executable lines — denoted by green line numbers.
3 Select the Restart button to reload the design elements and reset the simulation time
to zero.
ModelSim Tutorial
T-34 Lesson 3 - Basic Verilog simulation
Make sure all items in the Restart dialog box are selected, then click Restart.
Note: The Verilog code in this example has a "stop" statement on line 19. If you resume
the execution of the simulation without restarting first, you will stop at that line.
4 Select the Run -all button from the Main window toolbar to resume execution of the
simulation.
When the simulation hits the breakpoint, it stops running, highlights the line with an
arrow in the Source window, and issues a Break message in the Main window.
5 Typically when a breakpoint is reached you will be interested in one or more signal
values. You have several options for checking values.
You can look at the values shown in the Signals window; you can move your mouse
pointer over the count variable in the Source window and press the right mouse button;
or you can use the examine command:
examine count
ModelSim Tutorial
Debugging the simulation T-35
6 Let’s move through the Verilog source functions with ModelSim’s Step command.
Click Step on the toolbar.
7 Experiment by yourself for awhile. Set and clear breakpoints and use the Step and Step
Over commands until you feel comfortable with their operation. When you’re done,
quit the simulator by entering the command:
quit -force
ModelSim Tutorial
T-36
ModelSim Tutorial
T-37
ModelSim Tutorial
T-38 Lesson 4 - Debugging a VHDL design
2 Make sure the new directory is the current directory. Do this by invoking ModelSim
from the new directory or by using the File > Change Directory command from the
ModelSim Main window.
4 Enter the following command at the ModelSim prompt to create a new library:
vlib library_2
5 Compile the source files into the new library by entering this command at the
ModelSim prompt:
vcom -work library_2 gates.vhd adder.vhd testadder.vhd
6 Now let’s map the new library to the work library. To create a mapping you can edit
the [Library] section of the modelsim.ini file, or you can create a logical library name
with the vmap command:
vmap work library_2
7 Start the simulator by selecting Design > Load Design from the Main window, or by
clicking the Load Design icon. The Load Design dialog box is displayed, as shown
below.
ModelSim Tutorial
Preparing the simulation T-39
ModelSim Tutorial
T-40 Lesson 4 - Debugging a VHDL design
9 To open all of the ModelSim windows, enter the following command in the Main
window at the VSIM prompt:
view *
10 Drag and drop the top-level signals to the List window in the following manner: make
sure the hierarchy is not expanded (no minus boxes), select all signals in the Signals
window with Edit > Select All, then drag the selected signals to the List window.
(Signals MENU: View > List > Signals in Region) (PROMPT: add list *)
12 Now change the default simulation run length to 1000 (ns) with the run length selector
on the Main toolbar. Click on the field to edit the number to 1000 (notice how the
arrows allow you to change the run length in increments).
(Main MENU: Options > Simulation > Defaults)
ModelSim Tutorial
Running and debugging the simulation T-41
(PROMPT: run)
A message in the Main window will notify you that there was an assertion error.
Let’s find out what’s wrong. Perform the following steps to track down the assertion
message.
2 First, change the simulation assertion options. Select Options > Simulation from the
Main window menu.
ModelSim Tutorial
T-42 Lesson 4 - Debugging a VHDL design
3 Select the Assertions page. Change the selection for Break on Assertion to Error and
click OK. This will cause the simulator to stop at the HDL assertion statement.
4 To restart the simulation select the Restart button on the Main toolbar.
Make sure all items in the Restart dialog box are selected, then click Restart.
Notice that the arrow in the Source window is pointing to the assertion statement.
ModelSim Tutorial
Running and debugging the simulation T-43
6 If you look at the Variables window now, you can see that i = 6. This indicates that the
simulation stopped in the sixth iteration of the test pattern’s loop.
7 Expand the variable named test_patterns by clicking the [+]. (You may need to resize
the window for a better view.)
8 Also expand the sixth record in the array test_patterns(6), by clicking the [+]. The
Variables window should be similar to the one below.
ModelSim Tutorial
T-44 Lesson 4 - Debugging a VHDL design
The assertion shows that the Signal sum does not equal the sum field in the Variables
window. Note that the sum of the inputs a, b, and cin should be equal to the output
sum. But there is an error in the test vectors. To correct this error, you need to restart
the simulation and modify the initial value of the test vectors.
The -f option causes ModelSim to restart without popping up the confirmation dialog.
10 Update the Variables window by selecting the testbench process in the test Process
window.
12 Select the last four bits (1000) in the value field by dragging the pointer across them.
Then replace them with 0111, and click Change. (Note that this is a temporary edit,
you must use your text editor to permanently change the source code.)
ModelSim Tutorial
Changing new-line triggering T-45
ModelSim Tutorial
T-46 Lesson 4 - Debugging a VHDL design
3 Your last action will be to change the radix to decimal for signals a, b, and sum.
Select Prop > Signal Props. This opens the Modify Signal Properties (list) dialog box.
4 In the List window select the signal you want to change, then make the property
changes in the dialog box. Make the following property changes:
• Select signal a, then click Decimal, then click Apply.
• Select signal b, then click Decimal, then Apply.
• Select signal sum, then click Decimal, then OK.
This brings you to the end of this lesson, but feel free to experiment further with the menu
system. When you are ready to end the simulation session, quit ModelSim by entering the
following command at the VSIM prompt:
quit -force
ModelSim Tutorial
T-47
ModelSim Tutorial
T-48 Lesson 5 - Running a batch-mode simulation
Important: Batch-mode simulations must be run from a DOS prompt. In Windows, you
get a DOS prompt by selecting Start > Programs > Command Prompt. Unless
directed otherwise, enter all commands in this lesson at a DOS prompt.
1 To set up for this lesson you’ll need to create a new directory and make it the current
directory. Copy this file into your new directory:
\<install_dir>\modeltech\examples\counter.vhd
2 Create a new design library (Remember, enter these commands at a DOS prompt):
vlib work
5 You will use a macro file that provides stimulus for the counter. For your convenience,
a macro file has been provided with ModelSim. You need to copy this macro file from
the installation directory to the current directory:
<install_dir>\modeltech\examples\stim.do
6 Create a batch file using an editor; name it yourfile. With the editor, put the following
on separate lines in the file:
add list -decimal *
do stim.do
write list counter.lst
7 To run the batch-mode simulation, enter the following at the command prompt:
vsim -do yourfile -wlf saved.wlf counter
8 Since you saved the simulation results in saved.wlf, you can view the simulation results
by starting up VSIM with its -view switch:
vsim -view saved.wlf
ModelSim Tutorial
T-49
9 Open these windows with the View menu in the Main window, or the equivalent
command at the ModelSim prompt:
view signals list wave
Note: If you open the Process or Variables windows they will be empty. You are looking
at a saved simulation, not examining one interactively; the logfile saved in saved.wlf was
used to reconstruct the current windows.
10 Now that you have the windows open, put the signals in them:
add wave *
add list *
11 Use the available windows to experiment with the saved simulation results and quit
when you are ready:
quit -f
For additional information on the batch and command line modes, please refer to the
ModelSim User’s Manual.
ModelSim Tutorial
T-50
ModelSim Tutorial
T-51
ModelSim Tutorial
T-52 Lesson 6 - Executing commands at startup
Important: Start this lesson from the DOS prompt in the same directory in which you
completed Chapter Lesson 5 - Running a batch-mode simulation.
1 For this lesson, you will use a macro (DO) file that provides startup information. For
convenience, a startup file has been provided with the ModelSim program. You need
to copy this DO file from the installation directory to your current directory:
\<install_dir>\modeltech\examples\startup.do
2 Next, you will edit the modelsim.ini file in the \modeltech directory (or the
modelsim.ini file in your current directory if one exists) to specify a command that is
to be executed after the design is loaded. To do this, open
<install_dir>\modeltech\modelsim.ini using a text editor and uncomment the
following line (by deleting the leading ;) in the [vsim] section of the file:
Startup = do startup.do
Note: The modelsim.ini file must be write-enabled for this change to take place. Using
MS Explorer, right-click on \<install_dir>\modeltech\modelsim.ini, then click
Properties. In the dialog box, uncheck the Read-only box and click OK. (You can also
copy the file to your current directory.)
3 Take a look at the DO file. It uses the predefined variable $entity to do different things
at startup for different designs.
4 Start the simulator and specify the top-level design unit to be simulated by entering the
following command at the DOS prompt:
vsim counter
Notice that the simulator loads the design unit without displaying the Load Design
dialog box. This is handy if you are simulating the same design unit over and over.
Also notice that all the windows are open. This is because the view * command is
included in the startup macro.
5 If you plan to continue with the following practice sessions, keep ModelSim running.
If you would like to quit the simulator, enter the following command at the VSIM
prompt:
quit -f
6 You won’t need the startup.do file for any other examples, so use your text editor to
comment out the "Startup" line in modelsim.ini.
ModelSim Tutorial
T-53
ModelSim Tutorial
T-54 Lesson 7 - Using the Wave window
on
or
iti
rs
ns
on
cu
tra
iti
d)
ns
te
s
These Wave window
ou
x
tra
ec
t2
om x
om a
2
vi
el
or
xt
ll
e
buttons give you quick
ou
e
in
(s
fu
rs
ar
ne
pr
cu
om
te
om
access to cursor placement
d
le
d
d
zo
fin
zo
fin
zo
de
zo
ad
and zooming.
ModelSim Tutorial
Using time cursors in the Wave window T-55
You can add up to 20 cursors to the waveform pane by selecting Cursor > Add Cursor (or
the Add Cursor button shown below). The selected cursor is drawn as a bold solid line; all
other cursors are drawn with thin dashed lines. Remove cursors by selecting them and
choosing using the Cursor > Delete Cursor menu selection (or the Delete Cursor button
shown below).
Finding a cursor
The cursor value (on the Goto list) corresponds to the simulation time of that cursor.
Choose a specific cursor view with Cursor > Goto menu selection.
ModelSim Tutorial
T-56 Lesson 7 - Using the Wave window
Note: The right mouse button of a two-button mouse will not open the Zoom menu. It
will, however, allow you to create a zoom area by dragging left to right while holding
down the button.
ModelSim Tutorial
Zooming - changing the waveform display range T-57
Key Action
i I or + zoom in
o O or - zoom out
f or F zoom full
l or L zoom last
r or R zoom range
ModelSim Tutorial
T-58 Lesson 7 - Using the Wave window
Key Action
<Control-f> opens the find dialog box; searches within the specified
field in the pathname pane for text strings
ModelSim Tutorial
Combining items in the Wave window T-59
ModelSim Tutorial
T-60 Lesson 7 - Using the Wave window
1 Start by creating a new working directory, making it the current directory, and copying
the files from \modeltech\examples\datasets into it.
2 Use the vlib command to create a work library in the current directory.
vlib work
3 Use the vmap command to map the work library to a physical directory. A
modelsim.ini file will be written into the work directory.
vmap work work
5 Load the design and save the simulation to a WLF file named struct.wlf.
vsim -wlf struct.wlf work.cntr_struct
6 Now you will run a DO file that applies stimulus to the design, runs the simulation, and
adds waves to the Wave window.
do stimulus.do
The waves that appear in the Wave window are saved automatically into the struct.wlf
file.
ModelSim Tutorial
Creating and viewing datasets T-61
2 Open struct.wlf (if you don’t specify a dataset name, it will be named "struct" by
default).
dataset open struct.wlf
Notice that the pathname prefix for the signals you just added is the dataset name
"struct". The pathname prefix for the active simulation is "sim".
The results for each simulation should be the same. You can continue experimenting
with the two simulations or quit the simulator.
quit -f
ModelSim Tutorial
T-62
ModelSim Tutorial
T-63
Index
A of a Verilog design 29
Assertion errors 41
I
B IEEE std 1076 6
IEEE std 1364 6
Batch-mode simulation 47
Breakpoints 20
continuing simulation after 21
K
Keyboard shortcuts, Wave window 57
C
Command history 7
L
Compile
Libraries
compile order of Verilog modules 25
creation and mapping 38
Verilog 24
logical mapping 24
List window
D change display radix 32
placing top level Verilog signals in 27
Debugging a VHDL design 37 Load design 18
Design library
create new 24
creating 16
M
do command 8 Macros 8
DO files
executing a DO file in batch-mode 48
using a DO file at startup 52 Q
using the transcript as a DO file 8
drag and drop 7 quit VSIM command 21, 35
E R
Errors restart 34, 42
breaking on assertion 42 Reusing commands 8
finding in VHDL designs 41 Run length selector
viewing in Source window 42 change run length 40
examine command 34 run VSIM command 20
F S
Finding Searching
a cursor in the Wave window 55 for HDL item names and transitions in the Wave
force command 20 window 56
Shortcuts
command history 7
H Wave window 57
Signal transitions
Hierarchy searching for 56
ModelSim Tutorial
T-64 Index
T
Transcript
save 8
Triggering
changing in List window 45
modify 45
V
Verilog
compile 24
interface checking between design units 25
Verilog simulation 23
W
Wave window
placing top level Verilog signals in 27
Windows
viewing all 40
Wave window
changing display range (zoom) 56
cursor measurements 55
using time cursors 54
zooming 56
ModelSim Tutorial