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