blob: c513490e87bc8f6511fb3af23e573fe30c7d4e62 [file] [log] [blame]
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
# Common TCL script invoked at run-time by the simulator.
# VCS syntax: -ucli -do <this file>
# Xcelium syntax: -input <this file>
set dv_root ""
if {[info exists ::env(dv_root)]} {
set dv_root "$::env(dv_root)"
} else {
puts "ERROR: Script run without dv_root environment variable."
quit
}
# Dumping waves in specific hierarchies.
#
# By default, if wave dumping is enabled, all hierarchies of the top level testbench are dumped.
# For large designs, this may slow down the simulation considerably. To bypass this and only enable
# waves in specific hierarchies, set the dump_tb_top flag to 0 (i.e. uncomment the line below), and
# specify the paths to dump on line 32.
# set dump_tb_top 0
source "${dv_root}/tools/common.tcl"
source "${dv_root}/tools/waves.tcl"
global waves
global simulator
global tb_top
# Dumping waves in specific hierarchies (example):
# wavedumpScope $waves $simulator tb.dut.foo.bar 12
# wavedumpScope $waves $simulator tb.dut.baz 0
if {$simulator eq "xcelium"} {
puts "INFO: The following assertions are permamently disabled:"
assertion -list -depth all -multiline -permoff $tb_top
}
# In GUI mode, let the user take control of running the simulation.
global gui
if {$gui == 0} {
run
if {$simulator eq "xcelium"} {
# Xcelium provides a `finish` tcl command instead of `quit`. The argument '2' enables the
# logging of additional resource usage information.
finish 2
} else {
quit
}
}