| # Copyright lowRISC contributors. | |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # Commonly used globals & procs. This file must be sourced first. | |
| set simulator "" | |
| if {[info exists ::env(SIMULATOR)]} { | |
| set simulator "$::env(SIMULATOR)" | |
| } else { | |
| puts "ERROR: tool script run without SIMULATOR environment variable." | |
| quit | |
| } | |
| set waves "none" | |
| if {[info exists ::env(WAVES)]} { | |
| set waves "$::env(WAVES)" | |
| } | |
| set gui 0 | |
| if {[info exists ::env(GUI)]} { | |
| set gui "$::env(GUI)" | |
| } | |
| set tb_top "tb" | |
| if {[info exists ::env(TB_TOP)]} { | |
| set tb_top "$::env(TB_TOP)" | |
| } else { | |
| puts "WARNING: TB_TOP environment variable not set - using \"tb\" as the | |
| top level testbench hierarchy." | |
| } | |
| # Checks if variable is defined, else throw an error and exit. | |
| proc checkVarExists {var} { | |
| upvar $var var_ | |
| if {![info exists var_]} { | |
| puts "ERROR: Variable \"$var\" not found." | |
| quit | |
| } | |
| } | |
| # If variable is defined, then use it, else set the default value. | |
| proc setDefault {var value} { | |
| upvar $var var_ | |
| if {[info exists var_]} { | |
| puts "INFO: \"$var\" is already set to \"$var_\"." | |
| } else { | |
| puts "INFO: Setting \"$var\" to \"$value\"." | |
| set var_ $value | |
| } | |
| return $var_ | |
| } | |
| proc checkEq {var value} { | |
| upvar $var var_ | |
| if {$var_ != $value} { | |
| puts "ERROR: Check failed \"$var\" == \"$value\"!. Actual: \"$var_\"." | |
| quit | |
| } | |
| } | |
| proc checkNe {var value} { | |
| upvar $var var_ | |
| if {$var_ == $value} { | |
| puts "ERROR: Check failed \"$var\" != \"$value\"!. Actual: \"$var_\"." | |
| quit | |
| } | |
| } |