| # 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 |
| } |
| } |